por que las funciones no me corren?
AUTOR PREGUNTA #1
#include <iostream>
using namespace std;
char tabl[3][3];
int f=0,c=0;
char Jugador1[15];
char Jugador2[15];
char ficha='x';
int turno=0;
bool a=false;
void tablero(){
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
if(c <2 ) {
cout<<tabl[f][c]<<" | ";
}else{
cout<<tabl[f][c];
}
if (f < 2){
cout<<"\n---------\n";
}
}
}
void jugar(){
do{
if(ficha=='x')
{
cout<<Jugador1<<"Digita la posicion de x";
cout<<"\n ingresa la fila";
cin>>f;
cout<<"\n ingresa la columna";
cin>>c;
}
turno=turno+1;
if(ficha=='o')
{
cout<<Jugador2<<"Digita la posicion de o";
cout<<"\n ingresa la fila";
cin>>f;
cout<<"\n ingresa la columna";
cin>>c;
}
turno=turno+1;
if(ficha=='x' && tabl[f][c] != 'x' && tabl[f][c] !='o'){
tabl[f][c]='x';
ficha='o';
tablero();
}
else if(ficha=='o' && tabl[f][c] != 'x' && tabl[f][c] !='o'){
tabl[f][c]='o';
ficha='x';
tablero();
}else{
cout<<"casilla esta ocupada."<<endl;
jugar();
}
}while(turno>0 && turno<10);
}
bool ganador(){
for(int i=0;i<3;i++)
{
if(tabl[i][0]==tabl[i][1] && tabl[i][0]==tabl[i][2] || tabl[0][i]==tabl[1][i] && tabl[0][i]==tabl[2][i])
return true;
}
if(tabl[0][0]==tabl[1][1] && tabl[1][1]==tabl[2][2] || tabl[0][2]==tabl[1][1] && tabl[1][1]==tabl[2][0])
{
return true;
}
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(tabl[i][j] != 'x' && tabl [i][j] != 'o')
{
return false;
}
}
}
a=true;
return false;
}
int main()
{
cout<<"Digite el nombre del jugador 1: ";
cin>>Jugador1;
cout<<"Digite el nombre del jugador 2: ";
cin>>Jugador2;
while(!ganador())
{
tablero();
jugar();
ganador();
}
if(ficha == 'x' && a==false)
{
cout<<Jugador2<<"has ganado"<<endl;
}else if (ficha == 'o' && a==false){
cout<<Jugador1<<"has ganado"<<endl;
} else{
cout<<"Empate";
}
return 0;
}
-
¿Tienes la misma pregunta? Yo también
Esto también te interesa!
PREGUNTAS SIMILARES
#2
Hola te recomiendo que uses chatgpt para solucionar errores de codigo, porque te lo revisa rapido y efectivo, pero al margen de eso mira el codigo que te pongo a continuacion revisado a ver si se te soluciona en codigo C:
#include <iostream> using namespace std; char tablero[3][3] = {{' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}}; // Inicializa el tablero vacío string Jugador1; string Jugador2; char ficha = 'x'; bool fin_juego = false; void imprimir_tablero(){ for(int i=0; i<3; i++) { for(int j=0; j<3; j++) { cout << tablero[i][j]; if (j < 2) cout << " | "; } cout << endl; if (i < 2) cout << "---------" << endl; } } bool ganador() { // Verifica filas y columnas for(int i=0; i<3; i++) { if(tablero[i][0]==tablero[i][1] && tablero[i][0]==tablero[i][2] && tablero[i][0] != ' ') return true; if(tablero[0][i]==tablero[1][i] && tablero[0][i]==tablero[2][i] && tablero[0][i] != ' ') return true; } // Verifica diagonales if(tablero[0][0]==tablero[1][1] && tablero[0][0]==tablero[2][2] && tablero[0][0] != ' ') return true; if(tablero[0][2]==tablero[1][1] && tablero[0][2]==tablero[2][0] && tablero[0][2] != ' ') return true; // Si ningún espacio está vacío, declara empate for(int i=0; i<3; i++) { for(int j=0; j<3; j++) { if(tablero[i][j] == ' ') return false; } } fin_juego = true; return false; } void jugar() { int f, c; do { cout << (ficha=='x' ? Jugador1 : Jugador2) << ", ingresa la fila (1-3) y columna (1-3) para " << ficha << ": "; cin >> f >> c; f--; c--; // Ajusta a base 0 } while (f < 0 || f > 2 || c < 0 || c > 2 || tablero[f][c] != ' '); // Verifica que la entrada sea válida y que el espacio esté vacío tablero[f][c] = ficha; // Coloca la ficha ficha = (ficha=='x' ? 'o' : 'x'); // Cambia la ficha } int main() { cout << "Digite el nombre del jugador 1: "; cin >> Jugador1; cout << "Digite el nombre del jugador 2: "; cin >> Jugador2; while (!ganador()) { imprimir_tablero(); jugar(); } imprimir_tablero(); // Imprime el tablero final if(fin_juego) cout << "Empate" << endl; else