Commit 92fba5bd by roshka

La clase InicioJuego es la clase principal. Tateti 1.0

parents
import java.util.Scanner;
public class InicioJuego{
public static void main(String[] args) {
//Creamos las herramientas necesarias para el juego
Tablero tabla = new Tablero();
Juego juego = new Juego();
String nombre1,nombre2;
Scanner teclado = new Scanner(System.in);
//Iniciamos el juego
System.out.println("Bienvenido al Tateti");
System.out.println("Por favor, ingrese el nombre del jugador 1");
nombre1 = teclado.nextLine();
System.out.println("Por favor, ingrese el nombre del jugador 2");
nombre2 = teclado.nextLine();
System.out.println("Ok " + nombre1 + " y " + nombre2 + ", vamos a jugar.");
//Preparamos el tablero
tabla.imprimirTableroVacio();
char resultado = juego.aJugar(nombre1,nombre2);
//Imprimir en pantalla al ganador
if(resultado == 'e'){
System.out.println("Nadie gano");
}else if(resultado == 'O'){
System.out.println("El ganador es: "+nombre1);
}else{
System.out.println("El ganador es: "+nombre2);
}
System.out.println("Fin del juego");
}
}
\ No newline at end of file
La clase principal es InicioJuego.class en ambos juegos.
Disfrute
File added
import java.util.Scanner;
public class Juego{
//Creamos los variables globales para la clase
char valor;
int contadorJugadas;
char[][] tablero;
Scanner teclado;
String jugadorActual;
//Este es constructor
public Juego(){
this.jugadorActual = "";
this.valor = 'O'; //Empieza la ficha 'O'
this.contadorJugadas = 0;
this.tablero = new char[3][3];//Creamos el tablero
for(int fila = 0;fila<3;fila++){//Vaciamos el tablero
for(int columna = 0;columna < 3;columna++){
this.tablero[fila][columna] = ' ';
}
}
this.teclado = new Scanner(System.in);//Creamos el objeto para recibir datos desde el teclado
}
public char aJugar(String jugador1,String jugador2){
this.jugadorActual = jugador1;
String colocacion;
int fila,columna;
char valorTemp;
char ganador = 'e';
Tablero dibujo = new Tablero();
boolean finJuego = false;
//Este bucle sirve para realizar el juego hasta que haya un ganador o no haya mas casilla que cargar
while(!finJuego || this.contadorJugadas<9){
colocacion = this.comprobarPosicionSintaxis();//Comprobamos si la sintaxis es correcta correctas
//Convierte los valores obtenidos desde teclado a valores int
fila = Integer.parseInt(""+colocacion.charAt(0)) - 1;
columna = Integer.parseInt(""+colocacion.charAt(2)) - 1;
//Este if comprueba si la posicion donde coloca la ficha ya esta o no esta ocupado
if(this.comprobarPosicionVacio(fila, columna)){
this.tablero[fila][columna] = this.valor;//Carga la ficha en el tablero
valorTemp = this.valor;
dibujo.imprimirTablero(this.tablero);//imprime el tablero actual
//Cambia el tipo de ficha
if(valor=='O'){
this.valor = 'X';
this.jugadorActual = jugador2;
}else{
this.valor = 'O';
this.jugadorActual = jugador1;
}
//Verifica si el jugador actual ya gano o no gano el juego
if(verificarJuego(valorTemp) && this.contadorJugadas>2){
finJuego=true;
ganador = valorTemp;
break;
}
//En caso que todavia no gano, se establece la cantidad de posiciones cargadas, y se continua el juego
this.contadorJugadas++;
}else{
System.out.println("La casilla ya esta cargada. Agrega otro valor");
}
}
return ganador;
}
private String comprobarPosicionSintaxis(){
String posicion = "";
boolean correcto = false;
//Este bucle termina hasta que el usuario cargue la sintaxis correcta
while(!correcto){
System.out.print(this.jugadorActual + ", ingrese una posicion en formato fila,columna: ");
posicion = teclado.nextLine();
//Verifica si la sintaxis tiene la longitud correcta
if(posicion.length()!=3){
System.out.println("No se cargo los datos correctamente, por favor cargue de nuevo");
}else if(posicion.charAt(1)!=','){
System.out.println("No se cargo el ',' .Por favor, respete la sintaxis");
//Verifica si las posiciones existen en el tablero
}else if(Integer.parseInt(""+posicion.charAt(0))<1 || Integer.parseInt(""+posicion.charAt(0))>3){
System.out.println("Fila incorrecta, por favor cargue de nuevo");
}else if(Integer.parseInt("" + posicion.charAt(2))<1 || Integer.parseInt(""+posicion.charAt(2))>3){
System.out.println("Columna incorrecta, por favor cargue de nuevo");
}else{
correcto = true;
}
}
return posicion;
}
private boolean comprobarPosicionVacio(int fila,int columna){
boolean resultado;
if(this.tablero[fila][columna]==' '){
resultado = true;
}else{
resultado = false;
}
return resultado;
}
private boolean verificarJuego(char valor){
boolean resultado = false;
//Primero verificamos filas
for(int i=0; i<3 && !resultado; i++){
if(this.tablero[i][0] == valor && this.tablero[i][1] == valor && this.tablero[i][2] == valor){
resultado = true;
break;
}
}
//Comprobamos columna
for(int i=0; i<3 && !resultado; i++){
if(this.tablero[0][i] == valor && this.tablero[1][i] == valor && this.tablero[2][i] == valor){
resultado = true;
break;
}
}
//comprobar diagonal 1
if(!resultado && this.tablero[0][0] == valor && this.tablero[1][1] == valor && this.tablero[2][2] == valor){
resultado = true;
}
//comprobar diagonal 2
if(!resultado && this.tablero[0][2] == valor && this.tablero[1][1] == valor && this.tablero[2][0] == valor){
resultado = true;
}
return resultado;
}
}
\ No newline at end of file
File added
public class Tablero{
final String arribaYBase = "| - - - | - - - | - - - |" ;
public void imprimirTableroVacio(){
System.out.println(" 1 2 3 ");
for(int j = 0;j<3;j++){
System.out.println(" " + arribaYBase);
System.out.print(j+1);
System.out.println("| | | |");
}
System.out.println(" " + arribaYBase);
}
public void imprimirTablero(char[][] temporal){
for(int i = 0;i<3;i++){
System.out.println(arribaYBase);
System.out.println("| " + temporal[i][0] + " "+ "| " + temporal[i][1] + " " + "| " + temporal[i][2] + " |");
}
System.out.println(arribaYBase);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment