예제 #1
0
 /**
  * metoda pozwala na dodanie garacza do stołu, pod warunkiem ze ich liczba jest mniejsza od 7
  *
  * @param token
  * @return 1 - dodanao gracza, i rozpoczyna on gre od zaraz
  * @return 2 - dodanao gracza, ale aktualnie trwa rozgrywka
  * @return -1 - nie dodano gracza stół pelny
  */
 public List getEventsList(String token) {
   List tab = new ArrayList();
   int i = 0;
   Set<String> k = activePlayers.keySet();
   for (String keyX : k) {
     tab.add(
         new PlayerEvent(
             keyX.substring(0, keyX.length() - 8),
             activePlayers.get(keyX).getCards(),
             (byte) activePlayers.get(keyX).sumCards(),
             activePlayers.get(keyX).getStatus()));
   }
   tab.add(
       new PlayerEvent(
           "krupier", krupier.getCards(), (byte) krupier.sumCards(), krupier.getStatus()));
   return tab;
 }
예제 #2
0
 /**
  * Metoda zdarzeń zwraca tablice graczy i krupiera traktowanego jako gracz przechowuje 4 wartośći:
  * login ; cards - lista kart posiadanych przez gracza; pointsSum suma pkt ; status - informacja
  * czy graczy wygrał, przegrał, gra dalej itp. itd. a nawet etc.
  *
  * @param token
  * @return
  */
 public PlayerEvent[] getEvents(String token) {
   PlayerEvent tab[] = new PlayerEvent[activePlayers.size() + 1];
   int i = 0;
   Set<String> k = activePlayers.keySet();
   for (String keyX : k) {
     tab[i] =
         new PlayerEvent(
             keyX.substring(0, keyX.length() - 8),
             activePlayers.get(keyX).getCards(),
             (byte) activePlayers.get(keyX).sumCards(),
             activePlayers.get(keyX).getStatus());
     ++i;
   }
   tab[i] =
       new PlayerEvent(
           "krupier", krupier.getCards(), (byte) krupier.sumCards(), krupier.getStatus());
   return tab;
 }
예제 #3
0
  /**
   * Metoda zawiera mechanizm zakończenia gry w chwili kiedy wszyscy gracze spasuja lub system na
   * podstawie punktów stwierdzi wygraną lub przegraną
   */
  private void gamePass() {
    gameStarted = false;
    actionTimer.cancel();
    actionTimer = null;
    sumMap.clear();
    krupier.start();

    Set<String> k = activePlayers.keySet(); // kazdy z graczy dostaje do swojej kolejki zdarzen
    for (String keyX : k) // informacje o kartach krupiera
    sumMap.put(keyX, activePlayers.get(keyX).sumCards());

    krupier.setStatus((byte) 6);

    boolean isWiner = false; // czy któryś gracz ma oczko
    List<String> list = new ArrayList<String>(); // lista graczy którzy mają oczko
    for (String keyX : k) {
      if (sumMap.get(keyX) == 21) {
        activePlayers.get(keyX).setStatus((byte) 1);
        list.add(keyX);
        isWiner = true;
      }
    }

    if (isWiner) // skoro jest gracz z oczkiem to dodaje informacje
    { // o przegranej pozostałych graczy i krupiera
      for (String keyX : k) {
        if (!list.contains(keyX)) activePlayers.get(keyX).setStatus((byte) -1);

        krupier.setStatus((byte) -1);
      }
    }

    if (isWiner == false) // nie ma gracza z oczkiem to analizuje wyniki graczy i krupiera
    {
      List<String> tmp = new ArrayList<String>(); // zmienna z listą zwycięzców
      int wyn = 0;
      boolean krupierIsWinner = false;

      if (krupier.sumCards()
          == 21) // krupier ma oczko i inni gracze nie mieli => krupier wygray gre
      {
        krupier.setStatus((byte) 1);
        krupierIsWinner = true;
      } else if (krupier.sumCards()
          < 21) // jezeli krupier nie przekroszył 21 pkt to jego wynik jest baza
      wyn = krupier.sumCards(); // do analizy wyników pozostałych graczy

      if (krupierIsWinner == false) {
        for (String keyX : k) {
          if (sumMap.get(keyX) < 21) {
            if (sumMap.get(keyX) > wyn) {
              tmp.clear();
              wyn = sumMap.get(keyX); // nowy najwyższy wynik bazowy
              tmp.add(keyX);
            } else if (sumMap.get(keyX) == wyn) tmp.add(keyX);
          }
        }
        for (String keyX : k) {
          if (tmp.size() > 0) {
            krupier.setStatus((byte) -1);
            if (tmp.contains(keyX)) activePlayers.get(keyX).setStatus((byte) 1);
            else activePlayers.get(keyX).setStatus((byte) -1);
          } else {
            krupier.setStatus((byte) 1);
            for (String key : k) activePlayers.get(key).setStatus((byte) -1);
          }
        }
      }
    }
  }