0% encontró este documento útil (0 votos)
32 vistas4 páginas

Codigojuego

El documento presenta un código en Java para un juego de Triki (Tres en Raya) que utiliza una lista enlazada para registrar las jugadas. Incluye clases para nodos y la lista enlazada, así como métodos para controlar el flujo del juego, mostrar el tablero y verificar ganadores o empates. El juego permite a dos jugadores ingresar sus nombres y realizar jugadas alternadas en un tablero de 3x3.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas4 páginas

Codigojuego

El documento presenta un código en Java para un juego de Triki (Tres en Raya) que utiliza una lista enlazada para registrar las jugadas. Incluye clases para nodos y la lista enlazada, así como métodos para controlar el flujo del juego, mostrar el tablero y verificar ganadores o empates. El juego permite a dos jugadores ingresar sus nombres y realizar jugadas alternadas en un tablero de 3x3.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

package com.mycompany.

trikii;

import java.util.Scanner;

// Nodo para lista enlazada de jugadas


class Nodo {
String jugada;
Nodo siguiente;

public Nodo(String jugada) {


this.jugada = jugada;
this.siguiente = null;
}
}

// Lista enlazada para guardar historial de jugadas


class ListaEnlazada {
Nodo primero;

public ListaEnlazada() {
primero = null;
}

// Agrega jugada al final


public void agregar(String jugada) {
Nodo nuevo = new Nodo(jugada);
if (primero == null) {
primero = nuevo;
} else {
Nodo actual = primero;
while (actual.siguiente != null) {
actual = actual.siguiente;
}
actual.siguiente = nuevo;
}
}

// Imprime todas las jugadas


public void imprimir() {
Nodo actual = primero;
while (actual != null) {
System.out.println(actual.jugada);
actual = actual.siguiente;
}
}
}

public class Trikii {

String[] jugadores = new String[2];


String[] simbolos = {"X", "O"}; // Ya se sabe que son X y O
String[][] tablero = new String[3][3];
ListaEnlazada registro= new ListaEnlazada();
Scanner scanner = new Scanner(System.in);

// Limpiar pantalla usando secuencias ANSI


public void limpiarPantalla() {
System.out.print("\033[H\033[2J");
System.out.flush();
}

public void mostrarPantallaInicial() {


limpiarPantalla();
System.out.println("=======================================");
System.out.println("|| BIENVENIDOS AL ||");

System.out.println("|| JUEGO DEL TRIKI ||");


System.out.println("|| Presiona Enter para jugar ||");

System.out.println("=======================================");
try { System.in.read();} catch (Exception e) {}
}

public void controlJugadores() {


System.out.print("Nombre jugador 1(X); Tu nombre: ");
jugadores[0] = scanner.nextLine();
System.out.print("Nombre jugador 2(O); Tu nombre: ");
jugadores[1] = scanner.nextLine();
}

public void mostrarTablero() {


System.out.println("\n 0 1 2 ");
System.out.println(" -------------");
for (int i = 0; i < 3; i++) {
System.out.print(i + " |");
for (int j = 0; j < 3; j++) {
String simbolo = tablero[i][j];
System.out.print(simbolo == null ? " |" : " " + simbolo + " |");
}
System.out.println();
System.out.println(" -------------");
}
}

public boolean Ganador() {


for (int i = 0; i < 3; i++) {
if (tablero[i][0] != null && tablero[i][0].equals(tablero[i][1]) &&
tablero[i][1].equals(tablero[i][2])) {
return true;
}
if (tablero[0][i] != null && tablero[0][i].equals(tablero[1][i]) &&
tablero[1][i].equals(tablero[2][i])) {
return true;
}
}
if (tablero[0][0] != null && tablero[0][0].equals(tablero[1][1]) &&
tablero[1][1].equals(tablero[2][2])) {
return true;
}
if (tablero[0][2] != null && tablero[0][2].equals(tablero[1][1]) &&
tablero[1][1].equals(tablero[2][0])) {
return true;
}
return false;
}

public boolean empate() {


for (int i = 0; i < 3; i++) {
for (int j=0; j < 3; j++) {
if (tablero[i][j] == null) return false;
}
}
return true;
}

public void iniciarjuego() {


controlJugadores();
int turno = 0;
while(true) {
limpiarPantalla();
mostrarTablero();

String jugador = jugadores[turno % 2];


String simbolo = simbolos[turno % 2];
System.out.println(jugador + " (" + simbolo + ")- eligue fila y columna
(0-2): ");

int fila =-1;


int col =-1;

while (true) {
System.out.print("Fila (0-2): ");
if (scanner.hasNextInt()) {
fila = scanner.nextInt();
if (fila >= 0 && fila <= 2) break;
else System.out.println("Número fuera de rango. Intenta
nuevamente.");
} else {
System.out.println("Entrada inválida. Debes ingresar un
número.");
scanner.next(); // limpiar entrada inválida
}
}

// Validar columna
while (true) {
System.out.print("Columna (0-2): ");
if (scanner.hasNextInt()) {
col = scanner.nextInt();
if (col >= 0 && col <= 2) break;
else System.out.println("Número fuera de rango. Intenta
nuevamente.");
} else {
System.out.println("Entrada inválida. Debes ingresar un
número.");
scanner.next(); // limpiar entrada inválida
}
}
scanner.nextLine(); // limpiar buffer

if(tablero[fila][col] != null) {
System.out.println("casilla ocupada, elige otra.");
System.out.print("Presiona Enter...");
scanner.nextLine();
continue;
}
tablero[fila][col] = simbolo;
registro.agregar(jugador + ": (" + fila + "," + col + ")");

if (Ganador()) {
limpiarPantalla();
mostrarTablero();
System.out.println("Felicidades"
+ " " + jugador + ", has ganado!");
break;
}
if (empate()) {
limpiarPantalla();
mostrarTablero();
System.out.println("Empate, no hay ganadores.");
break;
}
turno++;
}

System.out.println("\nmovimientos realizados:");
registro.imprimir();
}

public static void main(String[] args) {


Trikii juego = new Trikii();
juego.mostrarPantallaInicial();
juego.iniciarjuego();
}
}
Maryuris Velasquez-Valery Rebatta

También podría gustarte