Advertisement
nRikee

Kata Tenis

Oct 1st, 2012
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.74 KB | None | 0 0
  1. /**  
  2.    * Clase donde se van anotando los tantos e imprimiendo los resultados  
  3.    */
  4. public class Partido{
  5.     public static void main(String args[]){
  6.         Marcador marcador = new Marcador();
  7.          
  8.         while(!marcador.isTerminado()){
  9.             /* Elige aleatoriamente quién anota el punto */
  10.             if(((int)(Math.random()*10))%2==0) marcador.actualiza(false);  
  11.             else marcador.actualiza(true);
  12.              
  13.             System.out.println(marcador+"\n"); // Imprime el marcador
  14.         }
  15.  
  16.        System.out.println("\n\n El ganador es: " + marcador.quienGana());
  17.     }    
  18. }
  19.  
  20.  
  21.  
  22. /**  
  23.    * Clase marcador, contiene todo lo necesario para mostrar el marcador, excepto la definición de la clase Jugador  
  24.    */
  25. public class Marcador{
  26.     private Jugador player1, player2;
  27.      
  28.     final int GANA = -1;
  29.     final int DEUCE = -2;
  30.     final int VENTAJA = -3;
  31.      
  32.     public Marcador(){
  33.         player1 = new Jugador("Player 1");
  34.         player2 = new Jugador("Player 2");
  35.     }
  36.      
  37.     public Marcador(String pl1, String pl2){
  38.         player1 = new Jugador(pl1);
  39.         player2 = new Jugador(pl2);
  40.     }
  41.      
  42.     /** Actualiza el marcador */
  43.     public void actualiza(boolean anota1){
  44.         if(anota1) player1.anota(); else player2.anota();
  45.          
  46.         if(player1.getPuntuacion()==40 && player2.getPuntuacion()==40){
  47.             player1.setDeuce();
  48.             player2.setDeuce();
  49.         }
  50.     }
  51.      
  52.     /** Comprueba si están en Deuce */
  53.     public boolean isDeuce(){
  54.         return player1.isDeuce() && player2.isDeuce();
  55.     }
  56.      
  57.     /** Comprueba si el partido ha terminado */
  58.     public boolean isTerminado(){  
  59.         return player1.getPuntuacion()==GANA || player2.getPuntuacion()==GANA;
  60.     }
  61.      
  62.     /** Devuelve quién gana */
  63.     public Jugador quienGana(){
  64.         return (player1.getPuntuacion()==GANA? player1 : player2);
  65.     }
  66.      
  67.     /** Sobreescritura de toString() */
  68.     public String toString(){
  69.         return player1 + " ( " + player1.getStringPuntuacion() + " - " + player2.getStringPuntuacion() + " ) " + player2;
  70.     }
  71.  
  72. }
  73.  
  74. /**
  75.   * Clase jugadro, contiene el nombre y la puntuación del susodicho.
  76.   */
  77. public class Jugador{
  78.     String nombreJugador;
  79.     int puntuacion;
  80.      
  81.     final int GANA = 4;
  82.     final int DEUCE = 5;
  83.     final int VENTAJA = 6;
  84.     final int[] marcador = {0,15,30,40,-1,-2,-3,-1};
  85.      
  86.     /** Constructor */
  87.     public Jugador(){
  88.         this("Player 1");
  89.     }
  90.      
  91.     /** Constructor */
  92.     public Jugador(String n){
  93.         nombreJugador = n;
  94.         puntuacion = 0;
  95.     }
  96.      
  97.     /** Sube la puntuación del marcador */
  98.     public void anota(){ puntuacion++; }
  99.      
  100.     /** Comprueba si está en Deuce */
  101.     public boolean isDeuce(){ return puntuacion==DEUCE; }
  102.      
  103.     /** Pon la puntuación en Deuce */
  104.     public void setDeuce(){ puntuacion = DEUCE; }
  105.      
  106.     /** Resetea la puntuación */
  107.     public void reset(){ puntuacion = 0; }
  108.      
  109.     /** Obtener puntuación del jugador */
  110.     public int getPuntuacion(){ return marcador[puntuacion]; }
  111.    
  112.     /** Obtener la puntuación en forma de String */
  113.     public String getStringPuntuacion(){
  114.         String str;        
  115.  
  116.         switch(getPuntuacion()){
  117.  
  118.             case -1: str = "SET"; break;
  119.             case -2: str = "DEUCE"; break;
  120.             case -3: str = "VENTAJA"; break;
  121.             default: str = "";
  122.         }
  123.          
  124.         return "" + (str.equals("")? getPuntuacion(): str);
  125.     }
  126.      
  127.     /** Sobreescritura de toString() */
  128.     public String toString(){      
  129.         return nombreJugador;
  130.     }
  131.      
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement