Advertisement
kajacx

OkoBere

May 28th, 2012
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.40 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Random;
  3.  
  4. public class OkoBere {
  5.  
  6.     public static void main(String[] args) {
  7.         Balicek balik = new Balicek();
  8.         Hrac pokus1 = new Hrac();
  9.        
  10.         //lizni 3 karty
  11.         pokus1.lizniKartu(balik);
  12.         pokus1.lizniKartu(balik);
  13.         pokus1.lizniKartu(balik);
  14.        
  15.         //vypis, co si hrac liznul
  16.         System.out.println(pokus1);
  17.     }
  18. }
  19.  
  20. class Hrac {
  21.  
  22.     private ArrayList<Karta> ruka = new ArrayList<>();
  23.  
  24.     public void reset() {
  25.         ruka.clear();
  26.     }
  27.    
  28.     public Karta lizniKartu(Balicek b) {
  29.         Karta liznuta = b.lizniKartu();
  30.         ruka.add(liznuta);
  31.         return liznuta;
  32.     }
  33.  
  34.     public int celkovySoucet() {
  35.         //dvě esa
  36.         if (ruka.size() == 2 && ruka.get(0).hodnota() == 14 && ruka.get(1).hodnota() == 14) {
  37.             return 21; //kralovske oko
  38.         }
  39.  
  40.         int soucet = 0;
  41.  
  42.         for (int i = 0; i < ruka.size(); i++) {
  43.             soucet = soucet + ruka.get(i).body();
  44.         }
  45.  
  46.         return soucet;
  47.     }
  48.  
  49.     public String toString() {
  50.         if(ruka.isEmpty()) return "Prázdno";
  51.         String text = "";
  52.         for(int i = 0; i<ruka.size(); i++) {
  53.             text = text + ruka.get(i) + ", ";
  54.         }
  55.         text = text + "Celekm bodů: " + celkovySoucet();
  56.         return text;
  57.     }
  58.  
  59. }
  60.  
  61. class Karta {
  62.  
  63.     //0 - 3 -> srdce, krize, kary, piky
  64.     private int barva;
  65.     //7 -> 7, ... , 10 -> 10, 11 -> J, 12 -> Q, 13 -> K, 14 -> A
  66.     private int hodnota;
  67.  
  68.     public Karta(int barva, int hodnota) {
  69.         this.barva = barva;
  70.         this.hodnota = hodnota;
  71.     }
  72.  
  73.     public int barva() {
  74.         return barva;
  75.     }
  76.  
  77.     public int hodnota() {
  78.         return hodnota;
  79.     }
  80.  
  81.     //kolik karta ma hodnotu v bodech
  82.     public int body() {
  83.         if (hodnota <= 10) {
  84.             return hodnota;
  85.         }
  86.         if (hodnota == 14) {
  87.             return 11;
  88.         }
  89.         return 1;
  90.     }
  91.  
  92.     public String toString() {
  93.         String znak = "";
  94.  
  95.         switch (hodnota) {
  96.             case 7:
  97.                 znak = "7";
  98.                 break;
  99.             case 8:
  100.                 znak = "8";
  101.                 break;
  102.             case 9:
  103.                 znak = "9";
  104.                 break;
  105.             case 10:
  106.                 znak = "10";
  107.                 break;
  108.             case 11:
  109.                 znak = "J";
  110.                 break;
  111.             case 12:
  112.                 znak = "Q";
  113.                 break;
  114.             case 13:
  115.                 znak = "K";
  116.                 break;
  117.             case 14:
  118.                 znak = "A";
  119.         }
  120.  
  121.         switch (barva) {
  122.             case 0:
  123.                 return "Srdcová " + znak;
  124.             case 1:
  125.                 return "Křížová " + znak;
  126.             case 2:
  127.                 return "Kárová " + znak;
  128.             case 3:
  129.                 return "Piková " + znak;
  130.         }
  131.        
  132.         return null;
  133.     }
  134. }
  135.  
  136. class Balicek {
  137.  
  138.     private ArrayList<Karta> karty = new ArrayList<>();
  139.  
  140.     public Balicek() {
  141.         reset();
  142.     }
  143.    
  144.     public void reset() {
  145.         karty.clear();
  146.         for (int i = 0; i < 4; i++) {
  147.             for (int j = 7; j <= 14; j++) {
  148.                 karty.add(new Karta(i, j));
  149.             }
  150.         }
  151.     }
  152.  
  153.     public Karta lizniKartu() {
  154.         Random random = new Random();
  155.         int index = random.nextInt(karty.size());
  156.         Karta vybrana = karty.get(index);
  157.         karty.remove(vybrana);
  158.         return vybrana;
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement