Tres en raya

Dificultad: (2/4) (Medio-Fácil)1100 Visitas: 1
Fecha: 2009-02-06 20:07:16

El juego del tres en raya para 2 jugadores hecho en java

A continuación comento las clases usadas y el código principal:

Clase Main. Se usa para iniciar el programa, pregunta el nombre de los jugadores y inicia el juego con partida.ejecutar(jugador1, jugador2);
Codigo fuente @java
  1. public class Main {
  2. public Main() {
  3. }
  4. public static void main(String[] args) {
  5. Jugador j1,j2;
  6. String s,s0;
  7. TresEnRaya partida1,partida2,partida3;
  8. //Pido nombres
  9. System.out.println("Dime tu nombre Jugador 1");
  10. s = Lector.leerString();
  11. j1 = new Jugador(s);
  12. System.out.println("Dime tu nombre Jugador 2");
  13. s0 = Lector.leerString();
  14. j2 = new Jugador(s0);
  15.  
  16. // Ejecuto 3 partidas del Tres en Raya y genero
  17. // un numero aleatorio si es 0 juega primero el jugador 1
  18. // Si es 1 juga primero el 2
  19.  
  20. System.out.println("Comienza la Partida numero 1");
  21. partida1 = new TresEnRaya();
  22. if ((int)(Math.random() * 2) == 0)
  23. partida1.ejecutar(j1,j2);
  24. else
  25. partida1.ejecutar(j2,j1);
  26.  
  27. System.out.println("Comienza la Partida numero 2");
  28. partida2 = new TresEnRaya();
  29. if ((int)(Math.random() * 2) == 0)
  30. partida2.ejecutar(j1,j2);
  31. else
  32. partida2.ejecutar(j2,j1);
  33.  
  34. System.out.println("Comienza la Partida numero 3");
  35. partida3 = new TresEnRaya();
  36. if ((int)(Math.random() * 2) == 0)
  37. partida3.ejecutar(j1,j2);
  38. else
  39. partida3.ejecutar(j2,j1);
  40.  
  41. if( j1.getNum_partidas() > j2.getNum_partidas())
  42. System.out.println(j1.getNombre()+" GANA con "+j1.getNum_partidas()+ " partidas ganadas");
  43. if (j2.getNum_partidas() > j1.getNum_partidas())
  44. System.out.println(j2.getNombre()+" GANA con "+j2.getNum_partidas()+ " partidas ganadas");
  45. if (j1.getNum_partidas() == j2.getNum_partidas())
  46. System.out.println(">- Empate -<");
  47. }
  48.  
  49. }
Programado en PaNa-S.com
Clase TresEnRaya:
Codigo fuente @java
  1. public class TresEnRaya {
  2. // Atributos
  3.  
  4. // Constructores
  5. public TresEnRaya() {
  6. }
  7.  
  8. // Metodos
  9. //** Ejecuta una partida de 3 en raya */
  10. public void ejecutar(Jugador j1, Jugador j2) {
  11. //Declaro variables y objetos
  12. boolean sw;
  13. // La variable turnojugador me va a indiciar a quien le toca tirar
  14. int turnojugador=1;
  15. String c;
  16. Disparo d;
  17. Tablero t = new Tablero();
  18.  
  19. //Muestro el tablero
  20. t.muestrate();
  21.  
  22. // EL juego se repite mientras el tablero no este lleno (empate) o no haga nadie tres en raya
  23. do {
  24. // Compruebo si puedo tirar en la posicion que me pasa y sino pido otras coordenadas
  25. do {
  26. //Pide disparo y comprueba que es correcto
  27. do {
  28. if (turnojugador == 1)
  29. System.out.println(j1.getNombre()+" es tu turno, Dime coordenadas (1-3)");
  30. else
  31. System.out.println(j2.getNombre()+" es tu turno, Dime coordenadas (1-3)");
  32. c = Lector.leerString();
  33. if ((c.charAt(0) >= 1 && c.charAt(0) <= 3) && (c.charAt(2) >= 1 && c.charAt(2) <= 3))
  34. sw=true;
  35. else
  36. sw=false;
  37. }while(sw=false);
  38.  
  39. // Instancio disparo
  40. d = new Disparo(Character.getNumericValue(c.charAt(0)),Character.getNumericValue(c.charAt(2)));
  41. }while(t.compruebaSiSePuedeTirar(d)==false);
  42.  
  43.  
  44. // Compruebo si despues del tiro a ganado o si el tablero esta lleno
  45. if ( turnojugador == 1 ){
  46. t.ponDisparoJ1(d);
  47. if (t.ganaAlguien(1) == true){
  48. // Muestra el tablero ganador
  49. t.muestrate();
  50. // Muestra el mensaje de que ha ganado
  51. System.out.println("Gana "+j1.getNombre());
  52. // aumenta partida ganada y se sale del bucle
  53. j1.setNum_partidas(j1.getNum_partidas()+1);
  54. break;
  55. }
  56. turnojugador++;
  57. }else{
  58. t.ponDisparoJ2(d);
  59. if (t.ganaAlguien(2) == true){
  60. // Muestro el tablero ganador
  61. t.muestrate();
  62. // Muestro el mensaje de que ha ganado
  63. System.out.println("Gana "+j2.getNombre());
  64. // Le aumento una partida ganada
  65. j2.setNum_partidas(j2.getNum_partidas()+1);
  66. break;
  67. }
  68. turnojugador = 1;
  69. }
  70. if (t.estaLleno() == true)
  71. System.out.println("Empate");
  72. // Muestro el tablero
  73. t.muestrate();
  74. }while(t.estaLleno()==false);
  75. }
  76. }
Programado en PaNa-S.com

Toda la lógica del juego se repite hasta que uno de los dos gane, o el tblero este lleno. Primero se muestra el tablero a modo de inicialización, luego se le piden las coordenadas del disparo al jugador que le toque, instancio el disparo, lo pongo en el tablero y por último compruebo el tablero.

El script lo puedes descargar aquí

Tres en raya está en la categoría: Java

Bookmark and Share
Puntuado 3/5 (60%) (54 Votos)
Escribe un comentario

No hay comentarios

Escribe tu comentario

Imagen Anti-Spam

Últimos tutoriales

Últimos scripts

Enlaces

Nube de tags

  modding     herramientas     htc diamond     messenger     bank4droid     php     css     windows     jtuenti     moviles     cbrutonoti     htc magic     overclocking     xhtml     seo     mac     java     android     cperdidas  

El contenido de esta página requiere una versión más reciente de Adobe Flash Player.

Obtener Adobe Flash Player



Generado desde cero con PHP y MySQL. Valid XHTML/CSS/RSS   
Technology Top Blogs DigNow.net Technology blogs & blog posts

Quantcast