• Jueves 14 de Noviembre de 2024, 16:53

Autor Tema:  Damas Inglesas  (Leído 1202 veces)

fvcfvcfvc11

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Damas Inglesas
« en: Miércoles 30 de Mayo de 2007, 07:03 »
0
Hola a todos, gracias por darse el tiempo de leer esta discusion...

Bueno mi problema es el siguiente, tengo generada una matriz i,j de 8*8 que representa el tablero de juego. A continuación tengo el void que compara los valores obtenidos al dar clic en una posición cualquiera del tablero(matriz),  y lo mando llamar dentro del void que genera los movimientos de las fichas de arriba turno1().

Pero el problema surge cuando corro el juego y realizo los movimientos, em di cuenta que la matriz no cambia de valor porque puedo volver a mover la misma ficha a la misma posicion de nuevo , ya he intentado utilizar variables auxiliares x,y para la transferencia de valores en la matriz, pero ni aun asi se guardan los movimiento realizados....

alguien tiene alguna idea d ecomo resolverlo???  les agradeceria mucho si me ayudan  :D


codigo:


void genera()
   {
     for(i=0;i<8;i++)
     for(j=0;j<8;j++) {
            M[j]=0;
         }
     for(i=0;i<8;i=i+2) M[0]=1;
     for(i=1;i<8;i=i+2) M[1]=1;
     for(i=0;i<8;i=i+2) M[2]=1; //fichas inicio arriba

     for(i=1;i<8;i=i+2) M[3]=3;//
     for(i=0;i<8;i=i+2) M[4]=3; //posibles movimientos;

     for(i=1;i<8;i=i+2) M[5]=2;
     for(i=0;i<8;i=i+2) M[6]=2;
     for(i=1;i<8;i=i+2) M[7]=2;//fichas inicio abajo
     M[j];
     }

  void posicion()
  {

  if( c>120 && c<170  ) i=0;
  if( c>170 && c<220  ) i=1;
  if( c>220 && c<270  ) i=2;
  if( c>270 && c<320  ) i=3;
  if( c>320 && c<370  ) i=4;
  if( c>370 && c<420  ) i=5;
  if( c>420 && c<470  ) i=6;
  if( c>470 && c<520  ) i=7;

  if( d>40  && d<90   ) j=0;
  if( d>90  && d<140  ) j=1;
  if( d>140 && d<190  ) j=2;
  if( d>190 && d<240  ) j=3;
  if( d>240 && d<290  ) j=4;
  if( d>290 && d<340  ) j=5;
  if( d>340 && d<390  ) j=6;
  if( d>390 && d<440  ) j=7;
     }

void turno1()
{
do{
bandera=0;
int salir=0;
genera();
do{
   mouse(a,b,c,d);
   a=3;
   switch(B){
         case 1:  quita();
             settextstyle(1,0,0);
             box(550,70,600,150,1,RED);
             outtextxy(565,90,"T");
             posicion();

             if(c>20 &&c<100 &&d<300 &&d>260) salir=1;//por boton salir

             if(salir!=1&&M[j]==1&&M[i+1][j+1]==3||M[i-1][j+1]==3||M[i+1][j+1]==2&&M[i+2][j+2]==3||M[i-1][j+1]==2&&M[i-2][j+2]==3)
             {
             box(i*50+120,j*50+40,i*50+170,j*50+90,1,CYAN);
             x=i;
             y=j;

             M[j]=M
  • [y];//guardar en matriz

             M[j]=0;
             salir=1;

                do{ mouse(a,b,c,d);
                a=3;
                delay(100);
                switch(B){
                      case 1:  quita();
                     posicion();

                         if( c<520 && c>120 && d>190 && d<240 && M[j]==3 )
                      {
                       R.M[j]=1;
                       setcolor(RED);
                       for(x=20;x>10;x=x-3)
                           {
                           circle(i*50+145,j*50+65,x);
                         }
                       bandera=1;
                        }

                       if(M[i+1][j+1]==2 && M[i+2][j+2]==3 && bandera!=1 )
                         {
                          R.M[i+2][j+2]=1;
                          setcolor(WHITE);

                          circle(245+i*50,165+j*50,22);
                          circle(245+i*50,165+j*50,20);
                          bandera=1;
                          }

                       if(M[i-1][j+1]==2 && M[i-2][j+2]==3 && bandera!=1)
                         {
                         R.M[i-2][j+2]=1;
                         setcolor(WHITE);

                        circle(45+i*50,165+j*50,22);
                        circle(45+i*50,165+j*50,20);
                        bandera=1;
                         }

                      break;
                   }pon();
                 }while(bandera!=1);
          }break;
          }pon();
       }while(salir!=1);

fvcfvcfvc11

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Damas Inglesas
« Respuesta #1 en: Viernes 1 de Junio de 2007, 06:27 »
0
O algún metodo mas simple de validar e intercambiar valores en en la matriz al mover las fichas?  :(   .... he intentado casi toda la tarde...   gracias