juego del gato

Iniciado por m@o_614, 8 Mayo 2012, 20:34 PM

0 Miembros y 1 Visitante están viendo este tema.

m@o_614

Saludos

Tengo este codigo que es en si una traducción de C, y me salen los siguientes errores en las líneas 35,58 y 78 que dice g cannot be resolved y no se si es porque tengo que utilizar herencia o por que

Código (java) [Seleccionar]
public class Gato {
final int MAX_FILA=3;
final int MAX_COLUM=3;
final int MAX_TURNO=9;
char gato[][];
public Gato(){
gato=new char[MAX_FILA][MAX_COLUM];
}
public int verificarFilas(){
int i,j,suma=0,ganador;
for(i=0;i<MAX_FILA;i++){
for(j=0;j<MAX_COLUM;j++){
suma+=gato[i][j];
}
if(suma==264){
System.out.println("El ganador es el jugador X");
ganador=1;
return ganador;
}
else if(suma==237){
System.out.println("El ganador es el jugador O");
ganador=2;
return ganador;
}
else
ganador=0;
}
if(ganador==0)
g.verificarColumnas();
return ganador;
}
public int verificarColumnas(){
int i,j,suma=0,ganador;
for(i=0;i<MAX_FILA;i++){
for(j=0;j<MAX_COLUM;j++){
suma+=gato[j][i];
}
if(suma==264){
System.out.println("El ganador es el jugador X");
ganador=1;
return ganador;
}
else if(suma==237){
System.out.println("El ganador es el jugador O");
ganador=2;
return ganador;
}
else
ganador=0;
}
if(ganador==0)
g.verificarDiagonal();
return ganador;
}
public int verificarDiagonal(){
int i,suma=0,ganador;
for(i=0;i<MAX_FILA;i++)
suma+=gato[i][i];
if(suma==264){
System.out.println("El ganador es el jugador X");
ganador=1;
return ganador;
}
else if(suma==237){
System.out.println("El ganador es el jugador O");
ganador=2;
return ganador;
}
else
ganador=0;
if(ganador==0)
g.verificarDiagonalInv();
return ganador;
}
public int verificarDiagonalInv(){
int i,j,suma=0,ganador;
for(i=2,j=0;j<MAX_COLUM;i--,j++)
suma+=gato[i][j];
if(suma==264){
System.out.println("El ganador es el jugador X");
ganador=1;
return ganador;
}
else if(suma==237){
System.out.println("El ganador es el jugador O");
ganador=2;
return ganador;
}
else
ganador=0;
if(ganador==0)
return ganador;
}
public void imprimirTablero(char gato[][]){
int i,j;
for(i=0;i<MAX_FILA;i++){
for(j=0;j<MAX_COLUM;j++){
if((gato[i][j])=='X'||(gato[i][j])=='O')
System.out.println(" "+gato[i][j]);
else
System.out.println(" ");
System.out.println("|");
}
System.out.println("\n");
System.out.println("_____");
System.out.println("\n");
}
}
public void turnoJugador(){
Gato g=new Gato();
final int MAX_JUG=2;
int i,fila,columna,turno;
char jugador[]={'X','O'},letra;
turno=1;
do
{
for(i=0;i<MAX_JUG;i++){
System.out.println("Es turno del jugador "+jugador[i]);
System.out.print("Dime la fila (1 a 3):");
fila=ScanF.leeInt();
System.out.println(" "+fila);
System.out.print("Dame la columna (1 a 3):");
columna=ScanF.leeInt();
System.out.println(" "+columna);
letra=jugador[i];
gato[fila-1][columna-1]=letra;
g.imprimirTablero(gato);
}

}while((turno<=MAX_TURNO));
}
public static void main(String[] args) {
int i,ganador;
final int MAX_JUG=2;
System.out.println("Juego del Gato v1.0");
Gato g=new Gato();
g.turnoJugador();
ganador=g.verificarFilas();
if(ganador!=0)
                                   i=MAX_JUG+1;
}
}


gracias

Proteus1989

Resumiendo está fatal xD
Variables usadas sin inicializar, uso de g. en métodos donde no se han definido...

Te recomiendo instales eclipse donde al dejar el ratón por encima te diga todos los fallos que tienes.

Para empezar quita todos lo g. que veas que no estén en el main
int verificarDiagonalInv() no tiene un return al final, siempre están dentro de condicionales, y aunque sepas a ciencia cierta que tiene que pasar por algún return el compilador se va a quejar.
ScanF.leeInt(); no existe. Usa la clase Scanner o bufferedReader (busca ejemplos en internet)

Con eso en principio no debería darte errores de sintaxis, otra cosa es que los algoritmos estén bien construidos.

m@o_614

la clase ScanF no se necesita porque tengo dos clases en un mismo archivo la clase Gato y la clase ScanF por eso no se ocupa

s00rk

Si durante la partida uno gana y aunno terminan los turnos seguiran jugando y al final si los dos ganan y puede que salte al falso ganador, eso dependiendo de tu la forma que checas el ganador.

Segun yo ya lo habias hecho bien en C++ recordando tu tema, no entiendo porque te complicas en algunas cosas heheh.
Suerte ;D

m@o_614

si el programa en C ya compila bien, en cuanto encuetra ganador termina el programa, lo que sucede es que apenas voy empezando en esto de Java y creo que me fallan algunos conceptos

saludos