Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - rami.robot

#1
Ejercicios / duda sobre programa en c.
4 Enero 2018, 19:51 PM
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.

[
#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