Guest User

Untitled

a guest
Mar 17th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.64 KB | None | 0 0
  1. /*******************************************************************************
  2.  * Instance třídy MojeHra představují ...
  3.  *
  4.  * @author    Luboš Pavlíček
  5.  * @version   7. listopadu 2011
  6.  */
  7. public class MojeHra implements IHra
  8. {
  9.     //== Datové atributy (statické i instancí)======================================
  10.  
  11.     private Mince [] poleMinci;
  12.     private boolean konecHry = false;
  13.     private String zaverecnyText="";
  14.     private static final int VELIKOST_POLE = 20;
  15.     //== Konstruktory a tovární metody =============================================
  16.  
  17.     /***************************************************************************
  18.      *  Konstruktor ....
  19.      */
  20.     public MojeHra()
  21.     {
  22.         poleMinci = new Mince[VELIKOST_POLE];
  23.         poleMinci[0] = Mince.getStribrna();
  24.         poleMinci[3] = Mince.getStribrna();
  25.         poleMinci[4] = Mince.getZlata();        
  26.         poleMinci[8] = Mince.getStribrna();
  27.         poleMinci[10] = Mince.getStribrna();
  28.         poleMinci[14] = Mince.getStribrna();
  29.     }
  30.  
  31.     //== Nesoukromé metody (instancí i třídy) ======================================
  32.     /**
  33.      * metoda vrací aktuální pole mincí
  34.      *
  35.      * @return   pole mincí, prvky jsou buď hodnoty null (na políčku nic není),
  36.      *           nebo instance třídy Mince,
  37.      *
  38.      */
  39.     @Override
  40.     public Mince[] getPoleMinci() {
  41.         return poleMinci;
  42.     }
  43.  
  44.     /**
  45.      * Metoda vrací true, pokud je konec hry.
  46.      *
  47.      * @return   true, pokud je konec hry
  48.      */
  49.     @Override
  50.     public boolean konecHry() {
  51.         return konecHry;
  52.     }
  53.  
  54.     /**
  55.      * Metoda vrací text, který se zobrazí na konci hry. Obvykle by v něm mělo
  56.      * být napsáno, kdo vyhrál - zda hráč či počítač.
  57.      *
  58.      * @return závěrečný text
  59.      */
  60.     @Override
  61.     public String zaverecnyText() {
  62.         return zaverecnyText;
  63.     }
  64.  
  65.     /**
  66.      * Metoda zkontroluje tah hráče. Pokud je přípustný, vrátí true, jinak vrací false.
  67.      * Při implementaci se ve hře též obvykle přesune mince v poli.
  68.      *
  69.      * @param tah Tah hráče, tj. z jaké pozice přesouvá minci na jakou pozici.
  70.      * @return    true, pokud je tah přípustný, jinak false.
  71.      */
  72.     @Override
  73.     public boolean tahHrace(Tah tah) {
  74.         if (tah.getZPozice() < 0 || tah.getNaPozici() > VELIKOST_POLE ) {
  75.             return false;
  76.         }
  77.         if (tah.getZPozice() >= tah.getNaPozici()) {
  78.             return false;
  79.         }
  80.         if (poleMinci[tah.getZPozice()] == null) {
  81.             return false;
  82.         }
  83.         if (poleMinci[tah.getNaPozici()] != null) {
  84.             return false;
  85.         }
  86.         for (int i = tah.getZPozice() + 1; i < tah.getNaPozici(); i++) {
  87.             if (poleMinci[i] != null) {
  88.                 return false;
  89.             }
  90.         }
  91.         if (tah.getNaPozici() == VELIKOST_POLE) {
  92.             if (poleMinci[tah.getZPozice()].getNazev().equals("zlatá")) {
  93.                 konecHry = true;
  94.                 zaverecnyText = "Podařilo se Vám porazit počítač";
  95.             }
  96.         }
  97.         else {
  98.             poleMinci[tah.getNaPozici()] = poleMinci[tah.getZPozice()];
  99.         }
  100.         poleMinci[tah.getZPozice()] = null;
  101.         return true;
  102.     }
  103.  
  104.     /**
  105.      * Metoda vrací tah počítače.
  106.      *
  107.      * @return  tah počítače, tj. za jaké pozice přesouvá počítač minci na jakou pozici.
  108.      */
  109.     @Override
  110.     public Tah tahPocitace() {
  111.         int pozicePosledniMince = 0;
  112.         for (int i=18; i >=0; i--) {
  113.             if (poleMinci[i] != null) {
  114.                 pozicePosledniMince = i;
  115.                 break;
  116.             }
  117.         }
  118.  
  119.         if (poleMinci[pozicePosledniMince].getNazev().equals("zlatá")) {
  120.             konecHry = true;
  121.             zaverecnyText = "Počítač Vás porazil";
  122.         }
  123.         poleMinci[pozicePosledniMince] = null;        
  124.         Tah tahPocitace = new Tah(pozicePosledniMince, 19);
  125.         return tahPocitace;
  126.     }
  127.  
  128.     @Override
  129.     public String getNazev() {
  130.         return "bez přeskakování";
  131.     }
  132.  
  133.     @Override
  134.     public String getOHre() {
  135.         return    "bez přeskakování\n"
  136.         + "hráč na tahu posune libovolnou mincí z nižší pozice na vyšší,\n"
  137.         + "při tahu nesmí žádnou jinou minci přeskočit,\n"
  138.         + "nesmí obsadit obsazenou pozici,\n"
  139.         + "vyhrává ten, který první přesune zlatou minci do cíle (na pozici 19),\n"
  140.         + "hraje člověk proti počítači, začíná člověk,";
  141.     }
  142.  
  143.     //== Soukromé metody (instancí i třídy) ========================================
  144.  
  145. }
Add Comment
Please, Sign In to add comment