|
||
|
|
|
|||||||
| Avisos |
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Desarrollo Juego Memorice
Hola!. Soy egresado de Ing. Informática de la Universidad Santo Tomas, Chile. Soy nuevo en lo que es con el desarrollo de APP en Android. Actualmente estoy desarrollando una mini app para niños con juegos didácticos. Me gustaría desarrollar un juego de tipo 'Memorice', pero no tengo muchos conocimientos sobre metodos en el desarrollo Android. Me gustaría saber si alguien acá ha desarrollado algun juego parecido, como para que me de una ayudita. Que metodos usar, si alguien tiene algun tutorial para aprender, etc. (Estoy desarrollando con Eclipse.)
Actualmente tengo este codigo. Una Gridvview que es llenada con un arraylist de imagenes(animaleslist).Necesito generar el random del arraylist de imagenes , para que salgan desordenadas pero en parejas. Saludos y Gracias de Ante mano. Juego3libre.xml Código:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/GridView1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/logo"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:src="@drawable/juegayaprendelogo" />
<GridView
android:id="@+id/GridView"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="44dp"
android:numColumns="4"
tools:context=".GridImageActivity" >
</GridView>
</RelativeLayout>
Código:
package com.paquete.juegayaprendeapp;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListAdapter;
public class Juego3Libre extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.juego3libre);
//Acá seteo el nombre del layout
this.setTitle("JUEGO MEMORICE");
GridView gridview = (GridView) findViewById(R.id.GridView);
gridview.setAdapter(new GridViewImageAdapter(this));
}
}
Código:
package com.paquete.juegayaprendeapp;
import java.util.ArrayList;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class GridViewImageAdapter extends BaseAdapter{
private Context mContext;
private ArrayList<Integer> animaleslist = new ArrayList<Integer>();
/** Constructor de clase */
public GridViewImageAdapter(Context c){
mContext = c;
//se cargan las miniaturas
animaleslist.add(R.drawable.caballo);
animaleslist.add(R.drawable.cerdo);
animaleslist.add(R.drawable.leon);
animaleslist.add(R.drawable.rana);
animaleslist.add(R.drawable.gato);
animaleslist.add(R.drawable.gallo);
animaleslist.add(R.drawable.foca);
animaleslist.add(R.drawable.mono);
animaleslist.add(R.drawable.caballo);
animaleslist.add(R.drawable.cerdo);
animaleslist.add(R.drawable.leon);
animaleslist.add(R.drawable.rana);
animaleslist.add(R.drawable.gato);
animaleslist.add(R.drawable.gallo);
animaleslist.add(R.drawable.foca);
animaleslist.add(R.drawable.mono);
}
@Override
public int getCount() {
return animaleslist.size();
}
@Override
public Object getItem(int position) {
return animaleslist.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View view, ViewGroup viewgroup) {
ImageView imageView = new ImageView(mContext);
imageView.setLayoutParams( new GridView.LayoutParams(85, 85) );
imageView.setScaleType( ImageView.ScaleType.CENTER_CROP );
imageView.setPadding(5, 5, 5, 5);
imageView.setImageResource( animaleslist.get(position) );
return imageView;
}
}
Última edición por marellanor Día 08/08/14 a las 21:39:02. |
|
|
|
#2
|
||||
|
||||
|
Collections.shuffle(animaleslist) y ya la tienes ordenada al azar.
Saber si dos elementos son pareja es trivial comparando el valor de los dos elementos.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
|
#3
|
||||
|
||||
|
"probé con 'Collections.Shuffle(animaleslist);' y me manda error de sintaxis.
¿Qué podrá ser?." Perdón Edit!, estaba utilizándolo mal ese método. Me funciona de maravilla el random con Collections.Shuffle. Muchas Gracias!. Última edición por marellanor Día 09/08/14 a las 00:34:16. |
|
#4
|
||||
|
||||
|
Como se puede ver en los post de arriba. Tengo creada una gridview. Me gustaría saber como saber que imagen se esta tocando de la gridview y esconder dicha imagen.
Saludos |
|
#5
|
||||
|
||||
|
Buenas.
Tendras que crear otra imagen por ejemplo un interrogante o lo que quieras, aparte de: private ArrayList<Integer> animaleslist = new ArrayList<Integer>();, es decir otro ImageView. Asignar un evento onClickListener a cada elemento del gridwiew a cada imagen y cambiar imageView.setVisibility(View.Invisible) o View.Gone, y devolver o bien el interrogante o la imagen del arraylist . Aunque yo no lo plantearia asi Lo que haria es crear un gridlayout y cada elemento con dos imageview uno visible y otro gone, recorreria con un bucle for a cada elemento del grid y asignaria un onclicklistener y ahi implementaria la lógica. SUpongo que habra muchas formas de hacerlo Última edición por manolazo Día 14/08/14 a las 20:46:26. |
|
#6
|
||||
|
||||
|
Quizas me puedan ayudar con este codigo.
Cita:@Override
public void onItemClick(AdapterView<?> partent, View v, int position, long id) { // TODO Auto-generated method stub Dialog d = new Dialog(this); //d.setTitle("Imagen " + (position + 1) + " seleccionada"); //d.show(); ImageView imageview = new ImageView(this); //Obetengo la imagen en la posicion tocada imageview.setImageResource(animaleslist.get(positi on)); d.setContentView(imageview); d.show(); } ![]() Saludos y gracias!! |
|
#7
|
||||
|
||||
|
Me respondo solo jaja. Logre setear la imagen de un arraylist (animaleslist) segun la imagen que se ha clickeado en la gridview. Ahora tengo otra interrogativa. Alguien sabe como guardar una imagen de un arraylist en una variable para poder hacer las comparaciones si ambas imagenes son iguales?
Código:
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// TODO Auto-generated method stub
ImageView imageview =(ImageView) v;
//Obetengo la imagen en la posicion tocada y seteo la imagen
imageview.setImageResource(animaleslist.get(position));
}
Saludos y gracias. |
![]() |
Estás aquí
|
||||||
|
||||||