Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*******************************************************************************
- * Instance třídy MojeHra představují ...
- *
- * @author Luboš Pavlíček
- * @version 7. listopadu 2011
- */
- public class MojeHra implements IHra
- {
- //== Datové atributy (statické i instancí)======================================
- private Mince [] poleMinci;
- private boolean konecHry = false;
- private String zaverecnyText="";
- private static final int VELIKOST_POLE = 20;
- //== Konstruktory a tovární metody =============================================
- /***************************************************************************
- * Konstruktor ....
- */
- public MojeHra()
- {
- poleMinci = new Mince[VELIKOST_POLE];
- poleMinci[0] = Mince.getStribrna();
- poleMinci[3] = Mince.getStribrna();
- poleMinci[4] = Mince.getZlata();
- poleMinci[8] = Mince.getStribrna();
- poleMinci[10] = Mince.getStribrna();
- poleMinci[14] = Mince.getStribrna();
- }
- //== Nesoukromé metody (instancí i třídy) ======================================
- /**
- * metoda vrací aktuální pole mincí
- *
- * @return pole mincí, prvky jsou buď hodnoty null (na políčku nic není),
- * nebo instance třídy Mince,
- *
- */
- @Override
- public Mince[] getPoleMinci() {
- return poleMinci;
- }
- /**
- * Metoda vrací true, pokud je konec hry.
- *
- * @return true, pokud je konec hry
- */
- @Override
- public boolean konecHry() {
- return konecHry;
- }
- /**
- * Metoda vrací text, který se zobrazí na konci hry. Obvykle by v něm mělo
- * být napsáno, kdo vyhrál - zda hráč či počítač.
- *
- * @return závěrečný text
- */
- @Override
- public String zaverecnyText() {
- return zaverecnyText;
- }
- /**
- * Metoda zkontroluje tah hráče. Pokud je přípustný, vrátí true, jinak vrací false.
- * Při implementaci se ve hře též obvykle přesune mince v poli.
- *
- * @param tah Tah hráče, tj. z jaké pozice přesouvá minci na jakou pozici.
- * @return true, pokud je tah přípustný, jinak false.
- */
- @Override
- public boolean tahHrace(Tah tah) {
- if (tah.getZPozice() < 0 || tah.getNaPozici() > VELIKOST_POLE ) {
- return false;
- }
- if (tah.getZPozice() >= tah.getNaPozici()) {
- return false;
- }
- if (poleMinci[tah.getZPozice()] == null) {
- return false;
- }
- if (poleMinci[tah.getNaPozici()] != null) {
- return false;
- }
- for (int i = tah.getZPozice() + 1; i < tah.getNaPozici(); i++) {
- if (poleMinci[i] != null) {
- return false;
- }
- }
- if (tah.getNaPozici() == VELIKOST_POLE) {
- if (poleMinci[tah.getZPozice()].getNazev().equals("zlatá")) {
- konecHry = true;
- zaverecnyText = "Podařilo se Vám porazit počítač";
- }
- }
- else {
- poleMinci[tah.getNaPozici()] = poleMinci[tah.getZPozice()];
- }
- poleMinci[tah.getZPozice()] = null;
- return true;
- }
- /**
- * Metoda vrací tah počítače.
- *
- * @return tah počítače, tj. za jaké pozice přesouvá počítač minci na jakou pozici.
- */
- @Override
- public Tah tahPocitace() {
- int pozicePosledniMince = 0;
- for (int i=18; i >=0; i--) {
- if (poleMinci[i] != null) {
- pozicePosledniMince = i;
- break;
- }
- }
- if (poleMinci[pozicePosledniMince].getNazev().equals("zlatá")) {
- konecHry = true;
- zaverecnyText = "Počítač Vás porazil";
- }
- poleMinci[pozicePosledniMince] = null;
- Tah tahPocitace = new Tah(pozicePosledniMince, 19);
- return tahPocitace;
- }
- @Override
- public String getNazev() {
- return "bez přeskakování";
- }
- @Override
- public String getOHre() {
- return "bez přeskakování\n"
- + "hráč na tahu posune libovolnou mincí z nižší pozice na vyšší,\n"
- + "při tahu nesmí žádnou jinou minci přeskočit,\n"
- + "nesmí obsadit obsazenou pozici,\n"
- + "vyhrává ten, který první přesune zlatou minci do cíle (na pozici 19),\n"
- + "hraje člověk proti počítači, začíná člověk,";
- }
- //== Soukromé metody (instancí i třídy) ========================================
- }
Add Comment
Please, Sign In to add comment