elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 22:28  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  JUEGO DEL TRES EN RAYA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: JUEGO DEL TRES EN RAYA  (Leído 4,734 veces)
Leonar

Desconectado Desconectado

Mensajes: 1


Ver Perfil
JUEGO DEL TRES EN RAYA
« en: 28 Febrero 2006, 18:28 »

Hola tengo que hacer el juego del tres en raya y no llevo ,mucho tiempo con la programacion asi que ando un poko perdidillo la verdad. a ver si alguien puede echarme un cable por favor!!!!!!!!!!!!!

Os dejo lo que tengo echo hasta ahora.saludos

Código:
/*REALIZAR JUEGO TRES EN RAYA: JUGADOR CONTRA JUGADOR*/

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

void tablero (int,int);
void jugador1(void);
void jugador2(void);
char matriz [3][3];
int comprueba(void);


void main(void)
{

printf("BIENVENIDO AL TRES EN RAYA\n");
printf("--------------------------\n");
printf("Las posiciones empiezan en '0' y acaban en '2'\n\n");

do
{
jugador1();
jugador2();
}
while(comprueba!=0);



getch();
}

void jugador1(void)
{
int i,j;

printf("\n\nJugador 1, introduce una posicion\n\n");
printf("\n\n FILA : ");
scanf("%d",&i);
printf("\nCOLUMNA : ");
scanf("%d",&j);

if(i>3 || j>3)
 {
 printf("\n\nLo siento,esa coordenada no existe");
 }

 else
  {
   matriz[i][j]='X';
   tablero(i,j);

  }
comprueba();
getch();
}



void jugador2(void)
{
int i,j;

printf("\n\nJugador 2, introduce una posicion\n\n");
printf("\n\n FILA : ");
scanf("%d",&i);
printf("\nCOLUMNA : ");
scanf("%d",&j);

if(i>3 || j>3)
 {
 printf("\n\nLo siento,esa coordenada no existe");
 }
 else
  {
   matriz[i][j]='O';
   tablero(i,j);

  }

getch();
comprueba();
return;

}

int comprueba (void)
{
      //gana jugador 1
  if(matriz[0][0]== matriz[0][1] && matriz[0][1]==matriz[0][2]&& matriz[0][0]=='X')
     {
     printf("Jugador 1, has ganado la partida!!");
        if(matriz[0][0]== matriz[0][1] && matriz[0][1]==matriz[0][2]&& matriz[0][0]=='O')
        printf("Jugador 2, has ganado la partida!!");
     }
  if(matriz[0][0]== matriz[1][0] && matriz[1][0]==matriz[2][0]&& matriz[0][0]=='X')
     {
     printf("Jugador 1, has ganado la partida!!");

     }
  if(matriz[0][1]== matriz[1][1] && matriz[2][1]==matriz[2][1]&& matriz[0][1]=='O')
     {
     printf("Jugador 1, has ganado la partida!!");

     }
   if(matriz[0][2]== matriz[1][2] && matriz[2][2]==matriz[2][2]&& matriz[0][2]=='O')
     {
     printf("Jugador 1, has ganado la partida!!");

     }
    if(matriz[0][2]== matriz[1][1] && matriz[2][0]==matriz[2][0]&& matriz[0][2]=='O')
     {
     printf("Jugador 1, has ganado la partida!!");

     }


return(1);
}

void tablero (int i,int j)
{
clrscr();

printf("\n\n    0  |  1  | 2 \n");
printf("-------------------\n");
printf(" 0  %c  |  %c  |  %c\n",matriz[0][0],matriz[0][1],matriz[0][2]);
printf("-------------------\n");
printf(" 1  %c  |  %c  |  %c\n",matriz[1][0],matriz[1][1],matriz[1][2]);
printf("-------------------\n");
printf(" 2  %c  |  %c  |  %c\n",matriz[2][0],matriz[2][1],matriz[2][2]);


return;
}


En línea
TheMule

Desconectado Desconectado

Mensajes: 284



Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #1 en: 28 Febrero 2006, 21:17 »

hmm seria bueno que digas especificamente los problemas que te salen

por ahora he visto que a jugador1() le falta el return y en el main pones
Código:
while(comprueba!=0)
ahi te falta los parentesis en el comprueba.... lo he visto rapidismoo pero sospecho que hay un par mas

especifica los errores


En línea
Kpax


Desconectado Desconectado

Mensajes: 317



Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #2 en: 10 Marzo 2006, 14:46 »

si seria de mucha ayuda los errores. pero ya tienes la odea clara es lo importante aunke no necesitas hacer dos funciones diferentes por cada jugador ...con una basta ;)

saludos
En línea

En este mundo una de dos
erconcor

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #3 en: 16 Marzo 2006, 19:24 »

Hola soy Erick y este es tu codigo con unas pequeñas modificaciones. Haber si todavía te sirve.

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

void tablero ();
void jugador(char *J);
int matriz[3][3]={NULL};
char mat[4][4]={"   ","   ","   "};
void comprueba();
int comp;

void main(void)
   {
    clrscr();
    char J='1';
    comp=0;
    gotoxy(12,1); printf("BIENVENIDO AL TRES EN RAYA");
    gotoxy(7,3); printf("Las posiciones empiezan en '1' y acaban en '3'");
    tablero();
    do{
       jugador(&J);
       if(comp==1)
    break;
       jugador(&J);
    }while(comp==0);
    getch();
   }

void jugador(char *J)
   {
    int i,j;
    gotoxy(12,5); printf("Jugador %c introduce una posicion",*J);
    gotoxy(7,7); printf("FILA : ");
    gotoxy(30,7); printf("COLUMNA : ");
    gotoxy(15,7); scanf("%d",&i); i--;
    gotoxy(42,7); scanf("%d",&j); j--;
    gotoxy(1,7); clreol();
    if(i>3 || j>3 || i<0 || j<0)
      {
   gotoxy(13,9); printf("Lo siento,esa coordenada no existe");
      }
    else
      if(matriz[j] == 0)
   {
    gotoxy(13,9); clreol();
    if(*J=='1')
      {
       matriz[j]=1;
       *J='2';
      }
    else
      if(*J=='2')
        {
         matriz[j]=2;
         *J='1';
        }
    tablero();
   }
      else
   {
    gotoxy(13,9); printf("*****  CASILLA OCUPADA  *****");
   }

    comprueba();
   }
//////////////////////////////////////////////////////////////////////////////////////////

void comprueba()
{
      //gana jugador 1
  int i, j, cont=1;
  if((matriz[0][0]== 1 && matriz[0][1] == 1 && matriz[0][2]== 1)
    ||(matriz[1][0]== 1 && matriz[1][1] == 1 && matriz[1][2]== 1)
    ||(matriz[2][0]== 1 && matriz[2][1] == 1 && matriz[2][2]== 1)
    ||(matriz[0][0]== 1 && matriz[1][0] == 1 && matriz[2][0]== 1)
    ||(matriz[0][1]== 1 && matriz[1][1] == 1 && matriz[2][1]== 1)
    ||(matriz[0][2]== 1 && matriz[1][2] == 1 && matriz[2][2]== 1)
    ||(matriz[0][0]== 1 && matriz[1][1] == 1 && matriz[2][2]== 1))
       {
   textcolor(255);
   cprintf("Jugador 1 has ganado la partida!!");
   comp=1;
       }
   else
  if((matriz[0][0]== 2 && matriz[0][1] == 2 && matriz[0][2]== 2)
    ||(matriz[1][0]== 2 && matriz[1][1] == 2 && matriz[1][2]== 2)
    ||(matriz[2][0]== 2 && matriz[2][1] == 2 && matriz[2][2]== 2)
    ||(matriz[0][0]== 2 && matriz[1][0] == 2 && matriz[2][0]== 2)
    ||(matriz[0][1]== 2 && matriz[1][1] == 2 && matriz[2][1]== 2)
    ||(matriz[0][2]== 2 && matriz[1][2] == 2 && matriz[2][2]== 2)
    ||(matriz[0][0]== 2 && matriz[1][1] == 2 && matriz[2][2]== 2))
       {
   textcolor(255);
   cprintf("Jugador 2 has ganado la partida!!");
   comp=1;
       }
    else
    for(i=0;i<3;i++)
       for(j=0;j<3;j++)
     if(matriz[j]!=0)
       {
        cont++;
        if(cont==10)
          {
      textcolor(255);
      cprintf("*** JUEGO EMPATADO ***");
      comp=1;
          }
       }
}

void tablero ()
{
 int i, j;
 for(i=0;i<3;i++)
    for(j=0;j<3;j++)
      {
       if(matriz[j]==1)
    mat[j]='X';
       if(matriz[j]==2)
    mat[j]='O';
      }
gotoxy(30,13); printf("  %c  |  %c  |  %c\n",mat[0][0],mat[0][1],mat[0][2]);
gotoxy(30,14); printf("-------------------\n");
gotoxy(30,15); printf("  %c  |  %c  |  %c\n",mat[1][0],mat[1][1],mat[1][2]);
gotoxy(30,16); printf("-------------------\n");
gotoxy(30,17); printf("  %c  |  %c  |  %c\n",mat[2][0],mat[2][1],mat[2][2]);
}
En línea
Kpax


Desconectado Desconectado

Mensajes: 317



Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #4 en: 29 Marzo 2006, 21:53 »

se puede optimizar mas el code

el criterio es este:

funcion gane(tablero,jugador)
funcion inicializa(tablero)

principal
    inicializa(tablero)
    i=1;/*impar para el 1 jugador y par para el 2*/

    mientras  no (gane(tablero,jugador)) && (i<10)hacer
           
             if (i mod 2!=0)
                escribir(ingrese la posicion)
                leer(x,y)
                Tablero[x,y]=X
             sino
                 Tablero[x,y]=0
             fin si
 
             i++;
     fin mientras
     i--/*se supone que se hizo 9 jugadas*/
     if (i==9) escribir("empate")
     else
           if i mod 2 != 0 escribir(gano 1 juga)
           else escribir(gano 2)

fin

mas eficiencia aun ... recuerda k solo puedes ganar como minimo a partir de la 5 jugada!!!!
En línea

En este mundo una de dos
BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.004


Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #5 en: 29 Marzo 2006, 22:16 »

Mirate este code...funciona perfectamente.

El code era de alguien y Xine lo modifico..o algo asi xD

EDITO: Me acabo de dar cuenta de que lo estas haciendo en C, este que te pongo es C++

Código:
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
   
int Pausa(int e){
   
    long tmi = clock() + e;
    while(clock() < tmi);
}
   
string jsino;
string numero;
string jugador;
string a1=" ",a2=" ",a3=" ";
string b1=" ",b2=" ",b3=" ";
string c1=" ",c2=" ",c3=" ";
int comienzo = 1;



int raya();


//cierta inteligencia 8-)

int enemigo(){
      //ATAKE a traves :S
    if(a1 == "O" && b2 == "O" && c3 != "X" && c3 != "O"){c3 = "O";raya();}
    if(b2 == "O" && c3 == "O" && a1 != "X" && a1 != "O"){a1 = "O";raya();}
    if(a1 == "O" && c3 == "O" && b2 != "X" && b2 != "O"){b2 = "O";raya();}
    if(a3 == "O" && b2 == "O" && c1 != "X" && c1 != "O"){c1 = "O";raya();}
    if(b2 == "O" && c1 == "O" && a3 != "X" && a3 != "O"){a3 = "O";raya();}
    if(a3 == "O" && c1 == "O" && b2 != "X" && b2 != "O"){b2 = "O";raya();}
   
   //ATAKE EN HORIZONTAL
    if(a1 == "O" && a2 == "O" && a3 != "O" && a3 != "X"){a3 = "O";raya();}
    if(b1 == "O" && b2 == "O" && b3 != "O" && b3 != "X"){b3 = "O";raya();}
    if(c1 == "O" && c2 == "O" && c3 != "O" && c3 != "X"){c3 = "O";raya();}
    if(a2 == "O" && a3 == "O" && a1 != "O" && a1 != "X"){a1 = "O";raya();}
    if(b2 == "O" && b3 == "O" && b1 != "O" && b1 != "X"){b1 = "O";raya();}
    if(c2 == "O" && c3 == "O" && c1 != "O" && c1 != "X"){c1 = "O";raya();}
    if(a1 == "O" && a3 == "O" && a2 != "O" && a2 != "X"){a2 = "O";raya();}
    if(b1 == "O" && b3 == "O" && b2 != "O" && b2 != "X"){b2 = "O";raya();}
    if(c1 == "O" && c3 == "O" && c2 != "O" && c2 != "X"){c2 = "O";raya();}
    //ATAKE EN VERTICAL
    if(a1 == "O" && b1 == "O" && c1 != "O" && c1 != "X"){c1 = "O";raya();}
    if(a2 == "O" && b2 == "O" && c2 != "O" && c2 != "X"){c2 = "O";raya();}
    if(a3 == "O" && b3 == "O" && c3 != "O" && c3 != "X"){c3 = "O";raya();}
    if(b1 == "O" && c1 == "O" && a1 != "O" && a1 != "X"){a1 = "O";raya();}
    if(b2 == "O" && c2 == "O" && a2 != "O" && a2 != "X"){a2 = "O";raya();}
    if(b3 == "O" && c3 == "O" && a3 != "O" && a3 != "X"){a3 = "O";raya();}
    if(c1 == "O" && a1 == "O" && b1 != "O" && b1 != "X"){b1 = "O";raya();}
    if(c2 == "O" && a2 == "O" && b2 != "O" && b2 != "X"){b2 = "O";raya();}
    if(c3 == "O" && a3 == "O" && b3 != "O" && b3 != "X"){b3 = "O";raya();}
    //otra jugada de *****
    if(b1 == "X" && a3 == "X" && b2 == "O" && a1 != "X" && a1 != "O"){a1 ="O";raya();}
    if(b1 == "X" && a3 == "X" && b2 == "O" && a1 == "O" && c3 == "X" && b3 != "X" && b3 != "O"){b3 = "O";raya();}
    //bug
    if(a2 == "X" && c3 == "X" && b2 == "O" && a3 != "X" && a3 != "O"){a3 = "O";raya();}
    //jugada de ***** O_o a
    if(a2 == "X" && c1 == "X" && b2 == "O" && b1 != "X" && b1 != "O"){b1 = "O";raya();}
    if(a2 == "X" && b1 == "O" && b2 == "O" && b3 == "X" && c1 == "X" && a3 != "X" && a3 != "O"){a3 = "O";raya();}
    //jugada de ***** O_o b
    if(b1 == "X" && b2 == "O" && c3 == "X" && c2 != "X" && c2 != "O"){c2 = "O";raya();}
    if(a2 == "X" && b1 == "O" && b2 == "O" && b3 == "X" && c1 == "X" && a3 != "X" && a3 != "O"){a3 = "O";raya();}
   
    //jugada5
    if(a1 == "X" && c3 == "X" && a2 != "X" && a2 != "O"){a2 = "O";raya();}
    if(a3 == "X" && c1 == "X" && b1 != "X" && b1 != "O"){b1 = "O";raya();} 
   
    //verticales dobles
    if(a1 == "X" && b1 == "X" && c1 != "O" && c1 != "X"){c1 = "O";raya();}
    if(a2 == "X" && b2 == "X" && c2 != "O" && c2 != "X"){c2 = "O";raya();}
    if(a3 == "X" && b3 == "X" && c3 != "O" && c3 != "X"){c3 = "O";raya();}
    if(b1 == "X" && c1 == "X" && a1 != "O" && a1 != "X"){a1 = "O";raya();}
    if(b2 == "X" && c2 == "X" && a2 != "O" && a2 != "X"){a2 = "O";raya();}
    if(b3 == "X" && c3 == "X" && a3 != "O" && a3 != "X"){a3 = "O";raya();}
    if(c1 == "X" && a1 == "X" && b1 != "O" && b1 != "X"){b1 = "O";raya();}
    if(c2 == "X" && a2 == "X" && b2 != "O" && b2 != "X"){b2 = "O";raya();}
    if(c3 == "X" && a3 == "X" && b3 != "O" && b3 != "X"){b3 = "O";raya();}
     //horizontales dobles
    if(a1 == "X" && a2 == "X" && a3 != "O" && a3 != "X"){a3 = "O";raya();}
    if(b1 == "X" && b2 == "X" && b3 != "O" && b3 != "X"){b3 = "O";raya();}
    if(c1 == "X" && c2 == "X" && c3 != "O" && c3 != "X"){c3 = "O";raya();}
    if(a2 == "X" && a3 == "X" && a1 != "O" && a1 != "X"){a1 = "O";raya();}
    if(b2 == "X" && b3 == "X" && b1 != "O" && b1 != "X"){b1 = "O";raya();}
    if(c2 == "X" && c3 == "X" && c1 != "O" && c1 != "X"){c1 = "O";raya();}
    if(a1 == "X" && a3 == "X" && a2 != "O" && a2 != "X"){a2 = "O";raya();}
    if(b1 == "X" && b3 == "X" && b2 != "O" && b2 != "X"){b2 = "O";raya();}
    if(c1 == "X" && c3 == "X" && c2 != "O" && c2 != "X"){c2 = "O";raya();}       
               
     //a traves :S
    if(a1 == "X" && b2 == "X" && c3 != "X" && c3 != "O"){c3 = "O";raya();}
    if(b2 == "X" && c3 == "X" && a1 != "X" && a1 != "O"){a1 = "O";raya();}
    if(a1 == "X" && c3 == "X" && b2 != "X" && b2 != "O"){b2 = "O";raya();}
    if(a3 == "X" && b2 == "X" && c1 != "X" && c1 != "O"){c1 = "O";raya();}
    if(b2 == "X" && c1 == "X" && a3 != "X" && a3 != "O"){a3 = "O";raya();}
    if(a3 == "X" && c1 == "X" && b2 != "X" && b2 != "O"){b2 = "O";raya();}
    //variadas jugadas y posibles fallos
    if(a1 == "O" && a2 == "X" && a3 == "X" && b1 == "X" && b2 == "O" && b3 == "O" && c3 == "X" && c2 != "X" && c2 != "O"){c2 = "O";raya();}
   
    if(a2 == "X" && b1 == "X" && a1 == "O" && b2 == "O" && c3 == "X" && b3 != "X" && b3 != "O"){b3 = "O";raya();}
   
    if(a1 == "O" && a2 == "X" && b1 == "X" && b2 == "X" && b3 == "O" && c2 == "O" && c3 == "X" && c1 != "O" && c1 != "X"){c1 == "O";raya();}
   
    //jugada
    if(a3 == "X" && b1 == "X"  && b3 != "X" && b3 != "O"){b3 = "O"; raya();}
    if(c3 == "X" && b1 == "X"  && b3 != "X" && b3 != "O"){b3 = "O"; raya();}
    if(a2 == "X" && c1 == "X"  && c2 != "X" && c2 != "O"){c2 = "O"; raya();}
    if(a2 == "X" && c3 == "X"  && c2 != "X" && c2 != "O"){c2 = "O"; raya();}
    //jugada2
    if(c2 == "X" && a1 == "X" && a3 == "X" && c1 != "X" && c1 != "O"){ c1 = "O"; raya();}
    if(b3 == "X" && a1 == "X" && c1 == "X" && c3 != "X" && c3 != "O"){ c3 = "O"; raya();}
    if(a2 == "X" && c1 == "X" && c3 == "X" && a3 != "X" && a3 != "O"){ a3 = "O"; raya();}
    if(b1 == "X" && c3 == "X" && a3 == "X" && a1 != "X" && a1 != "O"){ a1 = "O"; raya();}
    //jugada3
    if(a2 == "X" && c2 == "X" && b1 != "X" && b1 != "O"){b1 = "O";raya();}
    if(b1 == "X" && b3 == "X" && a2 != "X" && a2 != "O"){a2 = "O";raya();}
    //jugada4
    if(b1 == "X" && c2 == "X" && b3 == "X" && c3 != "O" && c3 != "X"){c3 = "O";raya();}
    if(b3 == "X" && a2 == "X" && c2 == "X" && a3 != "O" && a3 != "X"){a3 = "O";raya();}
     
    //jugada6
    if(a2 == "X" && b1 == "X" && b2 == "O" && a1 != "O" && a1 != "X"){a1 = "O";raya();}
    if(a2 == "X" && b3 == "X" && b2 == "O" && a3 != "O" && a3 != "X"){a3 = "O";raya();}
    if(b3 == "X" && c2 == "X" && b2 == "O" && c3 != "O" && c3 != "X"){c3 = "O";raya();}
    if(b1 == "X" && c2 == "X" && b2 == "O" && c1 != "O" && c1 != "X"){c1 = "O";raya();}           
   
   
       
   
   
   
    if(comienzo == 1){
    //comienzo
   if(b2 == "X" && b2 != "X" && b2 != "O"){a1 = "O";comienzo = 0; raya();}
   if(a1 == "X" || a3 == "X" || c1 == "X" || c3 == "X" && b2 != "X" && b2 != "O"){b2 = "O";comienzo = 0; raya();}
   if(a2 == "X" || b1 == "X" || b3 == "X" || c2 == "X" && b2 != "X" && b2 != "O"){b2 = "O";comienzo = 0; raya();}
}
   
   
   //restantes
   if(a1 != "X" && a1 != "O" && a1 != "X"){a1 = "O"; raya();}
   if(a2 != "X" && a2 != "O" && a2 != "O"){a2 = "O"; raya();}
   if(a3 != "X" && a3 != "O" && a3 != "O"){a3 = "O"; raya();}
   if(b1 != "X" && b1 != "O" && b1 != "O"){b1 = "O"; raya();}
   if(b2 != "X" && b2 != "O" && b2 != "O"){b2 = "O"; raya();}
   if(b3 != "X" && b3 != "O" && b3 != "O"){b3 = "O"; raya();}
   if(c1 != "X" && c1 != "O" && c1 != "O"){c1 = "O"; raya();}
   if(c2 != "X" && c2 != "O" && c2 != "O"){c2 = "O"; raya();}
   if(c3 != "X" && c3 != "O" && c3 != "O"){c3 = "O"; raya();}
   
}

int resultado(){
    textcolor(WHITE);
    cout << "\n\n\n\n\n\n                                  1     2     3\n";
    textcolor(LIGHTGREEN);
    cout << "                               \xC9\xcD\xcd\xCD\xCD\xCD\xCB\xcd\xcd\xCD\xCD\xCD\xCB\xcd\xcd\xCD\xCD\xCD\xBB\n";
    textcolor(WHITE);cout <<
            "                             A ";textcolor(LIGHTGREEN);cout << "\xba  ";textcolor(LIGHTRED);if(a1 == "O"){
                                          textcolor(LIGHTBLUE);}cout << a1;
                                          ;textcolor(LIGHTGREEN);cout << "  \xba  ";textcolor(LIGHTRED);if(a2 == "O"){
                                          textcolor(LIGHTBLUE);}cout << a2;textcolor(LIGHTGREEN);cout << "  \xba  ";textcolor(LIGHTRED);if(a3 == "O"){
                                          textcolor(LIGHTBLUE);}cout << a3;textcolor(LIGHTGREEN);cout << "  \xba\n"
            "                               \xcc\xcd\xcd\xcd\xcd\xcd\xce\xcd\xcd\xcd\xcd\xcd\xce\xcd\xcd\xcd\xcd\xcd\xb9\n";
    textcolor(WHITE);cout <<
            "                             B ";textcolor(LIGHTGREEN);cout <<"\xba  ";textcolor(LIGHTRED);if(b1 == "O"){
                                          textcolor(LIGHTBLUE);}cout << b1;textcolor(LIGHTGREEN);cout  << "  \xba  ";textcolor(LIGHTRED);if(b2 == "O"){
                                          textcolor(LIGHTBLUE);}cout << b2;textcolor(LIGHTGREEN);cout << "  \xba  ";textcolor(LIGHTRED);if(b3 == "O"){
                                          textcolor(LIGHTBLUE);}cout << b3;textcolor(LIGHTGREEN);cout << "  \xba\n"
            "                               \xcc\xcd\xcd\xcd\xcd\xcd\xce\xcd\xcd\xcd\xcd\xcd\xce\xcd\xcd\xcd\xcd\xcd\xb9\n";
    textcolor(WHITE);cout <<
            "                             C ";textcolor(LIGHTGREEN);cout <<"\xba  ";textcolor(LIGHTRED);if(c1 == "O"){
                                          textcolor(LIGHTBLUE);}cout << c1;textcolor(LIGHTGREEN);cout  << "  \xba  ";textcolor(LIGHTRED);if(c2 == "O"){
                                          textcolor(LIGHTBLUE);}cout << c2;textcolor(LIGHTGREEN);cout << "  \xba  ";textcolor(LIGHTRED);if(c3 == "O"){
                                          textcolor(LIGHTBLUE);}cout << c3;textcolor(LIGHTGREEN);cout << "  \xba\n"
            "                               \xc8\xCD\xcd\xcd\xCD\xCD\xCa\xcd\xcd\xCD\xCD\xCD\xCa\xcd\xcd\xCD\xCD\xCD\xBc\n";
            textcolor(WHITE);
            cout << jugador << endl;
            Pausa(1);
            sino:
            textcolor(LIGHTCYAN);
            cout << "\n                              Otra Partida (si/no)";
            a1=" ",a2=" ",a3=" ";
            b1=" ",b2=" ",b3=" ";
            c1=" ",c2=" ",c3=" ";
            comienzo = 1;
            textcolor(YELLOW);
            cin >> jsino;
            if(jsino != "si" && jsino != "no"){
                     textcolor(LIGHTMAGENTA);
                     cout << "\n                                 Escoge Si o No...\n";
                     Pausa(50);
                     goto sino;
                     }
            if(jsino == "si"){
                     Pausa(20);                     
                     raya();
                     }
            if(jsino == "no"){
                     Pausa(20);
                     textcolor(LIGHTRED);
                     cout << "\n                                    Saliendo...";
                     Pausa(100);
                     clrscr();
                     cout << "\n\n";
                     abort();
                     
                     }
                     
           
            }
           
 
int raya(){
    clrscr();
    if(a1 == "O" && a2 == "O" && a3 == "O" ||
               b1 == "O" && b2 == "O" && b3 == "O" ||
               c1 == "O" && c2 == "O" && c3 == "O" ||
               a1 == "O" && b1 == "O" && c1 == "O" ||
               a2 == "O" && b2 == "O" && c2 == "O" ||
               a3 == "O" && b3 == "O" && c3 == "O" ||
               a1 == "O" && b2 == "O" && c3 == "O" ||
               c1 == "O" && b2 == "O" && a3 == "O"){
                     jugador = "\n                                   Has Perdido\n";
                     clrscr();
                     resultado();
                     }
    textcolor(WHITE);
    cout << "\n\n\n\n\n\n                                  1     2     3\n";
    textcolor(LIGHTGREEN);
    cout << "                               \xC9\xcD\xcd\xCD\xCD\xCD\xCB\xcd\xcd\xCD\xCD\xCD\xCB\xcd\xcd\xCD\xCD\xCD\xBB\n";
    textcolor(WHITE);cout <<
            "                             A ";textcolor(LIGHTGREEN);cout << "\xba  ";textcolor(LIGHTRED);if(a1 == "O"){
                                          textcolor(LIGHTBLUE);}cout << a1;
                                          ;textcolor(LIGHTGREEN);cout << "  \xba  ";textcolor(LIGHTRED);if(a2 == "O"){
                                          textcolor(LIGHTBLUE);}cout << a2;textcolor(LIGHTGREEN);cout << "  \xba  ";textcolor(LIGHTRED);if(a3 == "O"){
                                          textcolor(LIGHTBLUE);}cout << a3;textcolor(LIGHTGREEN);cout << "  \xba\n"
            "                               \xcc\xcd\xcd\xcd\xcd\xcd\xce\xcd\xcd\xcd\xcd\xcd\xce\xcd\xcd\xcd\xcd\xcd\xb9\n";
    textcolor(WHITE);cout <<
            "                             B ";textcolor(LIGHTGREEN);cout <<"\xba  ";textcolor(LIGHTRED);if(b1 == "O"){
                                          textcolor(LIGHTBLUE);}cout << b1;textcolor(LIGHTGREEN);cout  << "  \xba  ";textcolor(LIGHTRED);if(b2 == "O"){
                                          textcolor(LIGHTBLUE);}cout << b2;textcolor(LIGHTGREEN);cout << "  \xba  ";textcolor(LIGHTRED);if(b3 == "O"){
                                          textcolor(LIGHTBLUE);}cout << b3;textcolor(LIGHTGREEN);cout << "  \xba\n"
            "                               \xcc\xcd\xcd\xcd\xcd\xcd\xce\xcd\xcd\xcd\xcd\xcd\xce\xcd\xcd\xcd\xcd\xcd\xb9\n";
    textcolor(WHITE);cout <<
            "                             C ";textcolor(LIGHTGREEN);cout <<"\xba  ";textcolor(LIGHTRED);if(c1 == "O"){
                                          textcolor(LIGHTBLUE);}cout << c1;textcolor(LIGHTGREEN);cout  << "  \xba  ";textcolor(LIGHTRED);if(c2 == "O"){
                                          textcolor(LIGHTBLUE);}cout << c2;textcolor(LIGHTGREEN);cout << "  \xba  ";textcolor(LIGHTRED);if(c3 == "O"){
                                          textcolor(LIGHTBLUE);}cout << c3;textcolor(LIGHTGREEN);cout << "  \xba\n"
            "                               \xc8\xCD\xcd\xcd\xCD\xCD\xCa\xcd\xcd\xCD\xCD\xCD\xCa\xcd\xcd\xCD\xCD\xCD\xBc\n";
            textcolor(WHITE);             
            cout << "\n                            Seleccion : ";
            textcolor(YELLOW);
            cin >> numero;
           
         if(numero == "a1" &&( a1 == "X" || a1 == "O")||
            numero == "a2" &&( a2 == "X" || a2 == "O")||
            numero == "a3" &&( a3 == "X" || a3 == "O")||
            numero == "b1" &&( b1 == "X" || b1 == "O")||
            numero == "b2" &&( b2 == "X" || b2 == "O")||
            numero == "b3" &&( b3 == "X" || b3 == "O")||
            numero == "c1" &&( c1 == "X" || c1 == "O")||
            numero == "c2" &&( c2 == "X" || c2 == "O")||
            numero == "c3" &&( c3 == "X" || c3 == "O")){
                   textcolor(LIGHTMAGENTA);
                   cout << "\a\n                                 Ya Selecionado.";
                   Pausa(100);
                   raya();
                   }
       
         if(numero != "a1" &&
            numero != "a2" &&
            numero != "a3" &&
            numero != "b1" &&
            numero != "b2" &&
            numero != "b3" &&
            numero != "c1" &&
            numero != "c2" &&
            numero != "c3"){
                      textcolor(LIGHTMAGENTA);
                      cout << "\a\n                              Seleccion Incorrecta.";
                      Pausa(100);
                      raya();
                      }
                     
                     
                     
                     
            if(numero == "quit" || numero == "exit"){
                      cout << "Saliendo del 3 en raya..\n";
                      Pausa(100);
                      clrscr();                     
                      cout << "Pulse 'help' para ayuda.\n\n";
                      abort();
                     
                     
                      }
                     
            if(numero == "a1" && a1 != "X" && a1 != "O")a1 = "X";
            if(numero == "a2" && a2 != "X" && a2 != "O")a2 = "X";
            if(numero == "a3" && a3 != "X" && a3 != "O")a3 = "X";
            if(numero == "b1" && b1 != "X" && b1 != "O")b1 = "X";
            if(numero == "b2" && b2 != "X" && b2 != "O")b2 = "X";
            if(numero == "b3" && b3 != "X" && b3 != "O")b3 = "X";
            if(numero == "c1" && c1 != "X" && c1 != "O")c1 = "X";
            if(numero == "c2" && c2 != "X" && c2 != "O")c2 = "X";
            if(numero == "c3" && c3 != "X" && c3 != "O")c3 = "X";
           
            if(a1 == "X" && a2 == "X" && a3 == "X" ||
               b1 == "X" && b2 == "X" && b3 == "X" ||
               c1 == "X" && c2 == "X" && c3 == "X" ||
               a1 == "X" && b1 == "X" && c1 == "X" ||
               a2 == "X" && b2 == "X" && c2 == "X" ||
               a3 == "X" && b3 == "X" && c3 == "X" ||
               a1 == "X" && b2 == "X" && c3 == "X" ||
               c1 == "X" && b2 == "X" && a3 == "X"){
                     jugador = "\n                                    Has Ganado\n";
                     clrscr();
                     resultado();
                     }
           
                     if(a1 != " " &&
               b1 != " " &&
               c1 != " " &&
               a2 != " " &&
               b2 != " " &&
               c2 != " " &&
               a3 != " " &&
               b3 != " " &&
               c3 != " " ){
                     jugador = "\n                                      Empate\n";
                     clrscr();
                     resultado();
                     }                           
                                     
            enemigo();
                       
            }           

int main(){
    raya();
}


Un saludo
« Última modificación: 29 Marzo 2006, 22:18 por BenRu » En línea
Kpax


Desconectado Desconectado

Mensajes: 317



Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #6 en: 29 Marzo 2006, 23:16 »

... puede ser eficiente porke exiges poco a l programar ... pero creo k este code esta muy largo y tienes cosas muy reptidas

saludos
En línea

En este mundo una de dos
X1n3

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #7 en: 31 Marzo 2006, 15:06 »

Citar
El code era de alguien y Xine lo modifico..o algo asi xD

hey benru de k vas ????

el codigo es mio... 100 % y lo sabes,,,

¬¬
« Última modificación: 31 Marzo 2006, 15:08 por X1n3 » En línea
BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.004


Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #8 en: 1 Abril 2006, 01:05 »

Me dijiste que lo habias pillado y lo habias modificado ¬¬...Pero vamos, que a mi me da igual quien lo haya echo, y si te entendi mal por msn, te pido disculpas.
De todas maneras, me acabo de dar cuenta de que falla al ponerlo en 3c y eso no es realmente un tres en raya, puesto que el tres en raya verdadero funciona de la siguiente manera:
Pones tres fichas, y despues mueves/desplazas esas fichas para "pillarle" el fallo a tu adversario y hacerle linea de tres fichas.

Al ser tu "metodo" o de quien lo haya programado, siempre abra un empate...puesto que esta echo con condicionales if y a no ser que tu tengas un fallo al teclear o se te vaya la perola, empatareis...

En línea
X1n3

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #9 en: 2 Abril 2006, 19:49 »

...
pero eso es porke la makina nunca empieza
En línea
merlin

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #10 en: 5 Abril 2006, 14:16 »

erconcor,
tu compruebas la diagonal (matriz[0][0]== 1 && matriz[1][1] == 1 && matriz[2][2]) pero te falta la diagonal opuesta,es decir:
matriz[0][2]== 1 && matriz[1][1] == 1 && matriz[2][0]
tienes que hacer 8 comprobaciones:
las 3 horizontales,las 3 verticales y las dos diagonales y tu solo haces 7,por lo demas creo que el codigo esta ok.
Salu2
« Última modificación: 6 Abril 2006, 15:27 por merlin » En línea

100% ESPAÑOL
merlin

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #11 en: 6 Abril 2006, 15:28 »

Hoy me he instalado el DEV-C++ 4.9.9.2
es mi primer contacto con este programa y al compilar el codigo de erconcor me da 9 errores, y no se a que son debidos,quiza es pq se esten utilizando funciones de librerias de Borland,no lo se,algunos son:
`main' must return `int'
`clrscr' undeclared (first use this function)
 `clreol' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
`textcolor' undeclared (first use this function)
`cprintf' undeclared (first use this function)
'gotoxy' undeclared (first use this function)

A ver si me podeis echar un cable
Gracias
 

En línea

100% ESPAÑOL
X1n3

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #12 en: 7 Abril 2006, 00:29 »

necesitas tenr el conio.h emulado

http://www.conclase.net/c/devcpp.php?art=conio

metes conio.h y conio.c en %directorio-dev-cpp%\include

y el libconio.a en %directorio-dev-cpp%\lib

luego en el IDE pones opciones del compilador y añades -lconio al linker
En línea
merlin

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #13 en: 7 Abril 2006, 07:59 »

necesitas tenr el conio.h emulado

http://www.conclase.net/c/devcpp.php?art=conio

metes conio.h y conio.c en %directorio-dev-cpp%\include

y el libconio.a en %directorio-dev-cpp%\lib

luego en el IDE pones opciones del compilador y añades -lconio al linker


Hola X1n3,
ya me he descargado los ficheros que necesito, el conio.c , conio.h y el libconio.a,pero a ver
yo ya tengo un conio.h, que hago?? lo sustituyo por este nuevo?
y luego, no entiendo muy bien la parte de añadir -lconio al linker,si me lo pudieras explicar un poquito mejor te lo agradeceria.

EDITO:
he sustituido el conio.h por el nuevo y añadido a la parte de "añadir estos comandos a la linea de comandos del linker" el -lconio,lo he compilado y aun me da un error que es
`main' must return `int'
alguien sabe pq es??? no puedo declarar la main tipo void??
Salu2
« Última modificación: 7 Abril 2006, 08:05 por merlin » En línea

100% ESPAÑOL
X1n3

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: JUEGO DEL TRES EN RAYA
« Respuesta #14 en: 7 Abril 2006, 08:05 »

sisi el conio sustituyelo,

en el dev-cpp haces los siguiente:

herramientas >> Opciones del compilador

activas la casilla de añadir al linker y pones : -lconio

MODIFICADO: k mas te da poner el main tipo int
En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Un juego con tres dados en C
Programación C/C++
Principios en C 7 1,137 Último mensaje 30 Agosto 2011, 02:58
por Principios en C
juego tres en raya
Java
bjpenn 2 1,177 Último mensaje 31 Octubre 2011, 08:17
por Debci
[Aporte] 3 en raya (2 Jugadores)
Programación C/C++
Manimecker 0 381 Último mensaje 15 Enero 2012, 03:07
por Manimecker
Ejemplo de Minimax: 3 en raya
Programación C/C++
ghastlyX 3 558 Último mensaje 16 Enero 2012, 23:27
por m0rf
[SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Java
Maurice_Lupin 1 168 Último mensaje 18 Mayo 2012, 09:16
por Darhius
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines