buenas puede ayudarme con este programa de tres en raya con matrices en el cual no soy capaz de hacer que cuando un jugador marque 'x' en por ejemplo la casilla 2, el otro jugador no pueda marcar 'o' en la misma casilla. aun asi no se si he cometido algun error.
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex
Código (c) [Seleccionar]
[
#include <stdio.h>
#include <stdlib.h>
int main(){
int i,j,a,b,fallo,cont,jugador;
char numero,ficha,tablero[3][3];
char nombre1[30],nombre2[30];
printf("NOMBRE DE JUGADOR 1: ");
scanf("%s",nombre1);
printf("NOMBRE DE JUGADOR 2: ");
scanf("%s",nombre2);
numero='1';
for(i=0;i<3;i++){
for(j=0;j<3;j++){
tablero[i][j]=numero++;
}
}
printf("\n---------------\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("| %c |",tablero[i][j]);
}
printf("\n---------------\n");
}
cont=0;
do{
do{
if(cont==0||cont==1||cont==4||cont==5||cont==8||cont==9){jugador=1;}
else{jugador=2;}
if(jugador==1){
printf("%s seleccione posicion: ",nombre1);
scanf("%c",&ficha);
}
else{
printf("%s seleccione posicion: ",nombre2);
scanf("%c",&ficha);
}
fallo=0;
switch(ficha){
case '1':{
if(tablero[0][0]=='X'||tablero[0][0]=='O')
fallo=1;
printf("casilla esta ocupada\n");
if(jugador==1){tablero[0][0]='X';}
else{tablero[0][0]='O';}
break;
}
case '2':{
if(jugador==1){tablero[0][1]='X';}
else{tablero[0][1]='O';}
break;
}
case '3':{
if(jugador==1){tablero[0][2]='X';}
else{tablero[0][2]='O';}
break;
}
case '4':{
if(jugador==1){tablero[1][0]='X';}
else{tablero[1][0]='O';}
break;
}
case '5':{
if(jugador==1){tablero[1][1]='X';}
else{tablero[1][1]='O';}
break;
}
case '6':{
if(jugador==1){tablero[1][2]='X';}
else{tablero[1][2]='O';}
break;
}
case '7':{
if(jugador==1){tablero[2][0]='X';}
else{tablero[2][0]='O';}
break;
}
case '8':{
if(jugador==1){tablero[2][1]='X';}
else{tablero[2][1]='O';}
break;
}
case '9':{
if(jugador==1){tablero[2][2]='X';}
else{tablero[2][2]='O';}
break;
}
}
}while(fallo==1);
cont++;
system("cls");
printf("\n---------------\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("| %c |",tablero[i][j]);
}
printf("\n---------------\n");
}
}while(cont<=16);
system("pause");
return 0;
}
]
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex