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?
//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?