PDA

View Full Version : Memory Pairs Game


randolphi
04-24-2007, 05:34 PM
Hi guys, I need some help 'cos I'm a little confused. I'm creating a memory pairs game and I've already meke it to finish and to restart, but somehow I can't make the cards flip back if the pairs is wrong. here is my code:

//Detener la pelicula
stop();
//Crear la función
Array.prototype.randomNumberGenerator=function(){
//crear límites para los números
maxNum=20;
minNum=1;
range=maxNum-minNum;
//determinar la cantidad de números para crear
numbers=20;
//en caso de solicitar más números de los disponibles
if(numbers > ((maxNum-minNum)+1)){
numbers=(maxNum-minNum)+1;
}
//crear variable de incremento
i=0;
j=0;
//modificadores de flujo que crean cada número y verifican que sea aleatorio
while(i<numbers){
numArray[i]=Math.floor(Math.random()*(range+1))+minNum;
while(j<i){
if(numArray[j]!=numArray[i]){
j++;
}else{
//si el número ya se usó, se crea un nuevo número y verifica de nuevo
numArray[i]=Math.floor(Math.random()*(range+1))+minNum;
j=0;
}
}
//resetea e incrementa "i"
j=0;
i++;
}
}

//crear el array
numArray=new Array();

//correr la función
numArray.randomNumberGenerator();


//Cargar los Movieclips en las instancias
_root.createEmptyMovieClip("mc_1", 1);
_root.mc_1._x = 72.7;
_root.mc_1._y = 42.1;
_root.mc_1.attachMovie("mc_elem" + numArray[0], "elem1", 10);

_root.createEmptyMovieClip("mc_2", 2);
_root.mc_2._x = 205.3;
_root.mc_2._y = 42.1;
_root.mc_2.attachMovie("mc_elem" + numArray[1], "elem2", 11);

_root.createEmptyMovieClip("mc_3", 3);
_root.mc_3._x = 337.9;
_root.mc_3._y = 42.1;
_root.mc_3.attachMovie("mc_elem" + numArray[2], "elem3", 12);

_root.createEmptyMovieClip("mc_4", 4);
_root.mc_4._x = 470.6;
_root.mc_4._y = 42.1;
_root.mc_4.attachMovie("mc_elem" + numArray[3], "elem4", 13);

_root.createEmptyMovieClip("mc_5", 5);
_root.mc_5._x = 603.3;
_root.mc_5._y = 42.1;
_root.mc_5.attachMovie("mc_elem" + numArray[4], "elem5", 14);

_root.createEmptyMovieClip("mc_6", 6);
_root.mc_6._x = 72.7;
_root.mc_6._y = 172.2;
_root.mc_6.attachMovie("mc_elem" + numArray[5], "elem6", 15);

_root.createEmptyMovieClip("mc_7", 7);
_root.mc_7._x = 205.3;
_root.mc_7._y = 172.2;
_root.mc_7.attachMovie("mc_elem" + numArray[6], "elem7", 16);

_root.createEmptyMovieClip("mc_8", 8);
_root.mc_8._x = 337.9;
_root.mc_8._y = 172.7;
_root.mc_8.attachMovie("mc_elem" + numArray[7], "elem8", 17);

_root.createEmptyMovieClip("mc_9", 9);
_root.mc_9._x = 470.6;
_root.mc_9._y = 172.7;
_root.mc_9.attachMovie("mc_elem" + numArray[8], "elem9", 18);

_root.createEmptyMovieClip("mc_10", 10);
_root.mc_10._x = 603.3;
_root.mc_10._y = 172.7;
_root.mc_10.attachMovie("mc_elem" + numArray[9], "elem10", 19);

_root.createEmptyMovieClip("mc_11", 11);
_root.mc_11._x = 72.7;
_root.mc_11._y = 302.1;
_root.mc_11.attachMovie("mc_elem" + numArray[10], "elem11", 20);

_root.createEmptyMovieClip("mc_12", 12);
_root.mc_12._x = 205.3;
_root.mc_12._y = 302.1;
_root.mc_12.attachMovie("mc_elem" + numArray[11], "elem12", 21);

_root.createEmptyMovieClip("mc_13", 13);
_root.mc_13._x = 337.9;
_root.mc_13._y = 302.1;
_root.mc_13.attachMovie("mc_elem" + numArray[12], "elem13", 22);

_root.createEmptyMovieClip("mc_14", 14);
_root.mc_14._x = 470.6;
_root.mc_14._y = 302.1;
_root.mc_14.attachMovie("mc_elem" + numArray[13], "elem14", 23);

_root.createEmptyMovieClip("mc_15", 15);
_root.mc_15._x = 603.3;
_root.mc_15._y = 302.1;
_root.mc_15.attachMovie("mc_elem" + numArray[14], "elem15", 24);

_root.createEmptyMovieClip("mc_16", 16);
_root.mc_16._x = 72.7;
_root.mc_16._y = 432.1;
_root.mc_16.attachMovie("mc_elem" + numArray[15], "elem16", 25);

_root.createEmptyMovieClip("mc_17", 17);
_root.mc_17._x = 205.3;
_root.mc_17._y = 432.1;
_root.mc_17.attachMovie("mc_elem" + numArray[16], "elem17", 26);

_root.createEmptyMovieClip("mc_18", 18);
_root.mc_18._x = 337.9;
_root.mc_18._y = 432.1;
_root.mc_18.attachMovie("mc_elem" + numArray[17], "elem18", 27);

_root.createEmptyMovieClip("mc_19", 19);
_root.mc_19._x = 470.6;
_root.mc_19._y = 432.1;
_root.mc_19.attachMovie("mc_elem" + numArray[18], "elem19", 28);

_root.createEmptyMovieClip("mc_20", 20);
_root.mc_20._x = 603.3;
_root.mc_20._y = 432.1;
_root.mc_20.attachMovie("mc_elem" + numArray[19], "elem20", 29);

//fijar variables operativas

var remaining_pairs:Number;
remaining_pairs = 10;

var errores:Number;
errores = 0;

var first_click:String;
first_click = "aaa";

var secon_click:String;
secon_click = "zzz";

//arreglo para fijar los valores de las cartas
valoresCartas = new Array();
valoresCartas[0] = "null";
valoresCartas[1] = "bbb";
valoresCartas[2] = "bbb";
valoresCartas[3] = "ccc";
valoresCartas[4] = "ccc";
valoresCartas[5] = "ddd";
valoresCartas[6] = "ddd";
valoresCartas[7] = "eee";
valoresCartas[8] = "eee";
valoresCartas[9] = "fff";
valoresCartas[10] = "fff";
valoresCartas[11] = "ggg";
valoresCartas[12] = "ggg";
valoresCartas[13] = "hhh";
valoresCartas[14] = "hhh";
valoresCartas[15] = "iii";
valoresCartas[16] = "iii";
valoresCartas[17] = "jjj";
valoresCartas[18] = "jjj";
valoresCartas[19] = "kkk";
valoresCartas[20] = "kkk";

var validaClicks:Boolean;

var primero:String;
primero = "noclicked";

var segundo:String;
segundo = "noclicked"

var botonUno:String;
primero = "noclicked";

var botonDos:String;
segundo = "noclicked"

// Ir al final del juego
function termina ():Void {
if (remaining_pairs == 0) {
_root.gotoAndStop(3);
}
}
// Reiniciar el juego
function reinicia ():Void {
if (errores == 10) {
_root.mc_1.removeMovieClip();
_root.mc_2.removeMovieClip();
_root.mc_3.removeMovieClip();
_root.mc_4.removeMovieClip();
_root.mc_5.removeMovieClip();
_root.mc_6.removeMovieClip();
_root.mc_7.removeMovieClip();
_root.mc_8.removeMovieClip();
_root.mc_9.removeMovieClip();
_root.mc_10.removeMovieClip();
_root.mc_11.removeMovieClip();
_root.mc_12.removeMovieClip();
_root.mc_13.removeMovieClip();
_root.mc_14.removeMovieClip();
_root.mc_15.removeMovieClip();
_root.mc_16.removeMovieClip();
_root.mc_17.removeMovieClip();
_root.mc_18.removeMovieClip();
_root.mc_19.removeMovieClip();
_root.mc_20.removeMovieClip();
_root.gotoAndPlay(1);
break;
}
}
//Cerrar las instancias incorrectas
function cierra ():Void{
if (validaClicks == false) {
_root[primero].gotoAndPlay("back");
_root[segundo].gotoAndPlay("back");
}
}
//Eliminar las instancias correctas
function elimina():Void{
if (validaClicks == true) {
_root[primero].removeMovieClip();
_root[segundo].removeMovieClip();
_root[botonUno]._visible = false;
_root[botonDos]._visible = false;
}
}
//Validar los clicks
function validaLosClicks ():Void {
if (first_click == secon_click) {
validaClicks = true;
--remaining_pairs;
first_click = "aaa";
secon_click = "zzz";
elimina();
termina();
} else if (first_click != secon_click && first_click != "aaa" && secon_click != "zzz") {
validaClicks = false;
first_click = "aaa";
secon_click = "zzz";
errores++;
cierra();
reinicia();
}
}By the way, I made an alternate version attaching the movieclips in the way described on the tutorials, it is:

var mc_20 = _root.mc_20.attachMovie("mc_elem" + numArray[19], "elem20", 29);In this case I can flip back the cards but unable to restart the game if I exceed the 10 errors

Finally this is the example code for the buttons
on (press) {
_root.mc_6.gotoAndPlay("flip");
if (first_click == "aaa") {
first_click = valoresCartas[numArray[5]];
primero = "mc_6";
botonUno = "btn_06";
} else if (first_click != "aaa" && secon_click == "zzz") {
secon_click = valoresCartas[numArray[5]];
segundo = "mc_6";
botonDos = "btn_06";
}
}
on (release) {
validaLosClicks();
}

Can anybody give me a hand?

3pepe3
04-25-2007, 09:58 AM
...By the way, I made an alternate version attaching the movieclips in the way described on the tutorials....
so which tutorial you're talking???? looks like it's a bad one :P
first of all use a for loop to attach and control all the cards (position and atributes)
In the attached version i fix all the problems and now it's finished
En fin al parecer a nadie le gusto la forma en k pusiste tu thread... la siguiente vez intenta poner menos codigo en un inicio y una vez que alguien se interese en tu caso pondras el codigo o incluiras el archivo para k asi te pueda ayudar.
:rolleyes:

randolphi
04-26-2007, 01:01 AM
Oye, pepe...

Gracias por tu valiosa colaboración y por tu sugerencia. Me refiero a uno de los tutoriales de aquí (pero con todas las cosas que he buscado ya no tengo ni idea de cual fue...) unicamente, con respecto a la forma de empleo del attachMovie. Desde luego que te habras dado cuenta de que no soy un Programador, ya que recién ahora, he comenzado a dedicarme seriamente al ActionScript, y toda vez que las herramientas como el for, si bien tienen un altísimo grado de utilidad, prefiero no usarlas porque aún no las domino cabalmente.

En todo caso agradezco nuevamente tu ayuda. Esperando alcanzar mayores conocimientos para dedicarme yo también a ayudar a otros.

randolphi
04-26-2007, 01:06 AM
Se me olvido decirte, que me pareció muy interesante tu sitio web, muy agradable y sobre todo me gusto mucho tu trabajo fotográfico...

3pepe3
04-26-2007, 08:57 AM
Muchas gracias randolphi... En cuanto a la forma de aprendizaje y dominio de de las funciones, propiedades y todo lo demás de actionscript te recomiendo que intentes configurarlas y entenderlas lo antes posible.
Prueba y error son la llave del conocimiento.

También otra forma de incrementar el conocimiento y saber hacer en actionscript lo he adquirido aquí en el foro tratando de resolver problemas y dudas de otros.
Por ejemplo la primera vez que instale flash fue hace 8 meses y no tenia ni la menor idea de programación y aquí en el foro empecé con una primer pregunta de porque este código no funcionaba :on(release){gotoAndPlay(1)
Y minutos después alguien me dijo k me faltaba ‘}’ al final del bloque. Y en ese momento pensé que el foro no era tan malo como yo lo tenia visualizado (de nerds y antisociales). Y ayudar solo hace que el conocimiento se reafirme.
Baaaaaaaaaaa…. Mucho rollo… me alegro poder haberte ayudado.
Y la siguiente vez que pongas código ponlo entre [as]….código…[*/as] (sin el asterisco*)

softenglish
03-22-2008, 06:53 PM
i've downloaded memoryfinal.zip it has a cards.fla file. i want to have this game with sounds matching pictures. can anybody help me? i want to modify the cards.fla file so that pics match sounds. can it be possible. i'm just learning actionscrip.

softenglish:confused: