• Lunes 18 de Noviembre de 2024, 15:44

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Dyamond

Páginas: [1]
1
C/C++ / Problema Con El Pausado Del Juego Conecta 4 En C
« en: Domingo 27 de Junio de 2004, 15:54 »
Este es el codigo fuente del conecta 4 ke he echo, pero hay un problema y no se como solucionarlo y es el siguiente:
Al pulsar la letra p el programa se keda pausado, y hay se deveria kedar hasta pulsar otra vez la letra p, pero si yo pulso el Enter el programa se salta el pausado y me suelta una ficha. A ver si alguno me puedo modificar eso please, lo tengo ke entregar el dia 5 para poder aprobar.

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

int matriz[6][7]={{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},
       {0,0,0,0,0,0,0},{0,0,0,0,0,0,0}};


void cuadricula()
{
textcolor(MAGENTA);
gotoxy(20,6);
cprintf("ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»");
gotoxy(20,7);
cprintf("º                           º");
gotoxy(20,8);
cprintf("ÌÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍ͹");
gotoxy(20,9);
cprintf("º   º   º   º   º   º   º   º");
gotoxy(20,10);
cprintf("ÌÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍ͹");
gotoxy(20,11);
cprintf("º   º   º   º   º   º   º   º");
gotoxy(20,12);
cprintf("ÌÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍ͹");
gotoxy(20,13);
cprintf("º   º   º   º   º   º   º   º");
gotoxy(20,14);
cprintf("ÌÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍ͹");
gotoxy(20,15);
cprintf("º   º   º   º   º   º   º   º");
gotoxy(20,16);
cprintf("ÌÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍ͹");
gotoxy(20,17);
cprintf("º   º   º   º   º   º   º   º");
gotoxy(20,18);
cprintf("ÌÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍ͹");
gotoxy(20,19);
cprintf("º   º   º   º   º   º   º   º");
gotoxy(20,20);
cprintf("ÈÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍͼ");
}

int valorx(int posicion)
{int x;

if(posicion==5)
   x=19;
if(posicion==4)
   x=17;
if(posicion==3)
   x=15;
if(posicion==2)
   x=13;
if(posicion==1)
   x=11;
if(posicion==0)
   x=9;
return x;
}

int valory(int posicion)
{int y;

if (posicion==22)
 y=0;
if (posicion==26)
 y=1;
if (posicion==30)
 y=2;
if (posicion==34)
 y=3;
if (posicion==38)
 y=4;
if (posicion==42)
 y=5;
if (posicion==46)
 y=6;

return y;
}

int comprobar(int x, int y)
{ int raya=0;

 if(matriz
  • [y]==1)

  {
   if((matriz
  • [y]==matriz[x+1][y]) && (matriz
  • [y]==matriz[x+2][y]) && (matriz
  • [y]==matriz[x+3][y]))

    {
     raya=1;
    }
   if((matriz
  • [y]==matriz
  • [y+1]) && (matriz
  • [y]==matriz
  • [y+2]) && (matriz
  • [y]==matriz
  • [y+3]))

    {
     raya=1;
    }
   if((matriz
  • [y]==matriz
  • [y-1]) && (matriz
  • [y]==matriz
  • [y-2]) && (matriz
  • [y]==matriz
  • [y-3]))

    {
     raya=1;
    }
   if((matriz
  • [y]==matriz[x+1][y+1]) && (matriz
  • [y]==matriz[x+2][y+2]) && (matriz
  • [y]==matriz[x+3][y+3]))

    {
     raya=1;
    }
   if((matriz
  • [y]==matriz[x+1][y-1]) && (matriz
  • [y]==matriz[x+2][y-2]) && (matriz
  • [y]==matriz[x+3][y-3]))

    {
     raya=1;
    }
  }

 if(matriz
  • [y]==2)

  {
   if((matriz
  • [y]==matriz[x+1][y]) && (matriz
  • [y]==matriz[x+2][y]) && (matriz
  • [y]==matriz[x+3][y]))

    {
     raya=2;
    }
   if((matriz
  • [y]==matriz
  • [y+1]) && (matriz
  • [y]==matriz
  • [y+2]) && (matriz
  • [y]==matriz
  • [y+3]))

    {
     raya=2;
    }
   if((matriz
  • [y]==matriz
  • [y-1]) && (matriz
  • [y]==matriz
  • [y-2]) && (matriz
  • [y]==matriz
  • [y-3]))

    {
     raya=2;
    }
   if((matriz
  • [y]==matriz[x+1][y+1]) && (matriz
  • [y]==matriz[x+2][y+2]) && (matriz
  • [y]==matriz[x+3][y+3]))

    {
     raya=2;
    }
   if((matriz
  • [y]==matriz[x+1][y-1]) && (matriz
  • [y]==matriz[x+2][y-2]) && (matriz
  • [y]==matriz[x+3][y-3]))

    {
     raya=2;
    }
  }

 return raya;
}


main()
{char letra;
 int posicion=22;
 int x=5;       //controla la posicion de cuadros arriba||abajo
 int t=19;      //controla la X del gotoxy
 int y;         //controla la posicion de cuadros de un lado a otro
 int jugada=1;
 int n=0;
 int i;
 int j;
 int p=0;
 int raya;

clrscr();
textcolor(LIGHTBLUE);
cprintf("               I:INICIO=======P:PAUSA=======S:SALIR=======A:AYUDA");
cuadricula();
gotoxy(posicion,7);
_setcursortype(_NOCURSOR);

do
 {
  letra=getch();
  if (letra==105)  //si la tecla pulsada es I, empieza el juego
   {
    gotoxy(20,3);
    textcolor(RED);
   cprintf("TU TURNO: JUGADOR 1");
    gotoxy(17,25);
    printf("                       ");
   gotoxy(22,7);
   _setcursortype(_SOLIDCURSOR);
   do
    {
     letra=getch();
     x=5;
     if (letra==75)
      {
   posicion=posicion-4;
   gotoxy(posicion,7);
   if (posicion<22)
    {
     posicion=22;
     gotoxy(posicion,7);
    }
       }
      if (letra==77)
       {
   posicion=posicion+4;
   gotoxy(posicion,7);
   if (posicion>46)
    {
     posicion=46;
     gotoxy(posicion,7);
    }
       }
     if (letra==112)  //si la tecla es P, se pausa el juego
       {
   _setcursortype(_NOCURSOR);
   gotoxy(25,24);
   textcolor(RED);
   cprintf("Juego en pausa");
   letra=getch();
   if (letra==112)
    {
     gotoxy(25,24);
     printf("               ");
     _setcursortype(_SOLIDCURSOR);
     gotoxy(27,7);
    }
       }

     if (letra==105)
      {
   for (i=0;i<6;i++)
    {
     for (j=0;j<7;j++)
      {
       matriz[j]=0;
       jugada=1;
      }
    }
   clrscr();
   textcolor(LIGHTBLUE);
   cprintf("               I:INICIO=======P:PAUSA======S:SALIR======A:AYUDA");
   gotoxy(20,3);
   textcolor(RED);
   cprintf("TU TURNO: JUGADOR 1");
   cuadricula();
   gotoxy(posicion,7);
   _setcursortype(_SOLIDCURSOR);
       }

      if (letra==13)                //si se pulsa ENTER, comienza el juego
       {
   y=wherex();
   y=valory(y);

   if ((jugada%2)!=0)
    {
     n=0;
    }
   if ((jugada%2)==0)
    {
     n=1;
    }
   jugada++;

   if (n==0)
    {
     if (matriz
  • [y]==0)

      {
       matriz
  • [y]=1;

       t=valorx(x);
       gotoxy(posicion,t);
       textcolor(BLUE);
       cprintf("O");
       gotoxy(20,3);
       textcolor(RED);
      cprintf("TU TURNO: JUGADOR 2");
       gotoxy(posicion,7);
       _setcursortype(_SOLIDCURSOR);
      }
     else
      {
       do{
       x=x-1;
       }while(matriz
  • [y]==1 || matriz
  • [y]==2);

       matriz
  • [y]=1;

       t=valorx(x);
       if(t>19)
        {
         t=9;
        }
       gotoxy(posicion,t);
       textcolor(BLUE);
       cprintf("O");
      gotoxy(20,3);
      textcolor(RED);
      cprintf("TU TURNO: JUGADOR 2");
      gotoxy(posicion,7);
      _setcursortype(_SOLIDCURSOR);
      }
     p=comprobar(x,y);
     if (p==1)
      {
       gotoxy(31,5);
       textcolor(RED);
      cprintf("JUGADOR 1: GANADOR");
      }
     if (p==2)
      {
       gotoxy(31,5);
       textcolor(RED);
      cprintf("JUGADOR 2: GANADOR");
      }
    }
   if (n==1)
    {
     if (matriz
  • [y]==0)

      {
       matriz
  • [y]=2;

       t=valorx(x);
       gotoxy(posicion,t);
       textcolor(GREEN);
      cprintf("O");
      gotoxy(20,3);
      textcolor(RED);
      cprintf("TU TURNO: JUGADOR 1");
      gotoxy(posicion,7);
      _setcursortype(_SOLIDCURSOR);
      }
     else
      {
       do{
       x=x-1;
       }while(matriz
  • [y]==1 || matriz
  • [y]==2);

       matriz
  • [y]=2;

       t=valorx(x);
       if(t>19)
        {
         t=9;
        }
       gotoxy(posicion,t);
       textcolor(GREEN);
      cprintf("O");
      gotoxy(20,3);
      textcolor(RED);
      cprintf("TU TURNO: JUGADOR 1");
      gotoxy(posicion,7);
      _setcursortype(_SOLIDCURSOR);
      }
     p=comprobar(x,y);
     if (p==1)
      {
       gotoxy(31,5);
       textcolor(RED);
       cprintf("JUGADOR 1: GANA");
      }
     if (p==2)
      {
       gotoxy(31,5);
       textcolor(RED);
       cprintf("JUGADOR 2: GANA");
      }
    }
       }
     }
   while(letra!=115 && p==0);

    if (p==1 || p==2)
     {
     gotoxy(20,22);
     textcolor(RED);
     cprintf("Juego acabado");
     gotoxy(17,25);
     textcolor(RED);
     cprintf("Pulse la tecla ESC para salir");
    }

   if (letra==115)
     {
      _setcursortype(_NOCURSOR);
      gotoxy(17,25);
      textcolor(RED);
     cprintf("Pulse la tecla ESC para salir");
     }
   }

  if (letra==115)
   {
    _setcursortype(_NOCURSOR);
    gotoxy(17,25);
    textcolor(RED);
   cprintf("Pulse la tecla ESC para salir");
   }

  if (letra==97)
   {
   clrscr();
   printf("         MENU DE AYUDA\n\n");
   printf("Si usted pulsa la tecla I, el juego empezara\n\n");
   printf("Si usted pulsa la tecla P, el juego quedara pausado\n\n");
   printf("Si usted desea terminar el juego pulse la tecla S\n\n");
   printf("Si usted desea moverse por la pantalla utilice las teclas de direcci¢n\n\n");
   printf("Cuando usted dese depositar una ficha en la casilla elegida pulse la tecla ENTER\n\n");
   letra=getch();
   if (letra==97)
    {
     clrscr();
     textcolor(LIGHTBLUE);
     cprintf("         I:INICIO=====P:PAUSA======S:SALIR======A:AYUDA");
     cuadricula();
     gotoxy(posicion,7);
     _setcursortype(_NOCURSOR);
    }
  }
 }
while(letra!=27);

return 0;
}

Páginas: [1]