Tres en raya

Raluca Chescu

//El juego de 3 en raya.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
char matriz [3][3];//la matriz de 3 en raya.

char comprobar (void);
void inic_matriz (void);
void obt_mov_jugador (void);
void obt_mov_computadora (void);
void mostrar_matriz (void);

int main (void)
{
char hecho;
printf (“este es el juego de las tres en raya.\n”);
printf (“jugaras contra el ordenador.\n”);

hecho = ‘ ‘;
inic_matriz();
do {mostrar_matriz ();
obt_mov_jugador();
hecho=comprobar (); //ver si gana
if(hecho!=’ ‘) break; //ganador
obt_mov_computadora();
hecho=comprobar();//ver si gana
} while (hecho==’ ‘ );
if (hecho==’X’) printf (“has ganado!\n”);
else printf (“yo gano!!!\n”);
mostrar_matriz(); //mostrar las posiciones finales
return 0;
}

//inicializar la matriz
void inic_matriz(void)
{
int i, j;

for (i=0;i<3; i++)
for (j=0; j<3; j++) matriz [i] [j]=’ ‘ ;
}

//obtener el movimiento del jugador
void obt_mov_jugador(void)
{
int x,y;
printf(“Introduce las coord de tu X: “);
scanf (“%d%d”, &x, &y);
x–; y–;
if (matriz [x] [y] != ‘ ‘) {
printf (“movimiento invalido, pruebe de nuevo.\n”);
obt_mov_jugador();
}
else matriz [x] [y]= ‘X’;
}

//obtener el movimiento del ordenador
void obt_mov_computadora(void)
{
int i , j;
for (i=0; i<3; i++){
for (j=0; j<3; j++)
if (matriz[i] [j]== ‘ ‘) break;
if (matriz [i] [j] == ‘ ‘) break;
}

if (i*j==9){
printf (“tablas\n”);
exit(0);
}
else
matriz [i] [j] = ‘O’;
}

//mostrar la matriz en la pantall.

void mostrar_matriz(void)
{
int t;
for (t=0; t<3; t++){
printf (“%c | %c | %c “, matriz [t] [0],
matriz [t][1], matriz [t][2]);
if (t!=2) printf(“\n–|–|—\n”);
}
printf(“\n”);

}

//ver si hay un ganador

char comprobar(void)
{
int i;

for(i=0; i<3; i++) //comprobar filas
if (matriz[i][0]== matriz [i][1] &&
matriz [i][0]== matriz [i][2]) return matriz [i][0];

for (i=0; i<3; i++) //comprobar columnas
if (matriz [0][i]==matriz[1][i]&&
matriz[0][i]==matriz [2][i])return matriz [0][i];

//comprobar diagonales
if(matriz[0][0]==matriz [1][1]&&
matriz [1][1]==matriz[2][0]) return matriz [0][2];

return ‘ ‘;
}

Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Una respuesta a Tres en raya

  1. Tres en raya muy particular: si no se hace línea entonces se acaba la partida cuando se colocan 9 fichas sobre el tablero!!.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s