예제 #1
0
  private Punktacja czyFul() {
    Punktacja punkt = new Punktacja();
    int tmp;
    // szukamy trojki i pary

    for (int i = 0; i < podajWymiar(); i++) {
      karty[i].ustawDoOddania(0);
    }

    punkt = czyTrojka();
    if (punkt.wartosc > 0) tmp = punkt.wartosc;
    else {
      // to nie ful...
      return punkt;
    }

    punkt.wartosc = 0;
    for (int i = 0; i < podajWymiar() - 1; i++) {
      if (karty[i].doOddania() == 0
          && karty[i + 1].doOddania() == 0
          && karty[i].figura.figura == karty[i + 1].figura.figura) {
        punkt.wartosc = tmp + 300;
        punkt.nazwa = "Ful";
        punkt.wspolczynnik = 0.6f;
        karty[i].ustawDoOddania(1);
      }
    }
    return punkt;
  }
예제 #2
0
  private Punktacja czyPoker() { // sprawdzamy czy jest poker, odpowiedz moze byc tylko tak/nie
    // poker jest wtedy, kiedy wszystkie kolory sa takie same i sa kolejne:
    Punktacja punkt = new Punktacja();

    int k = 0, w = 0;

    Kolor a = karty[0].podajKolor();
    for (int i = 0; i < podajWymiar(); i++)
      if (karty[i].podajKolor() != a) { // przynajniej jedna karta jest innego koloru
        return punkt;
      }

    // ostatnia karta w szeregu powinna byc o 4 numery wyzsza niz pierwsza
    if (karty[0].figura.figura != karty[4].figura.figura + 4) { // a jezeli nie jest...
      return punkt;
    } else {
      k = karty[0].kolor.podajWartoscKoloru();
      w = karty[0].figura.pobierzWartosc();

      if (w > 0) { // poker krolewski
        punkt.nazwa = "Poker krolewski";
        punkt.wartosc = k + 2000;
        punkt.wspolczynnik = 2.0f;
      } else {
        punkt.nazwa = "Poker";
        punkt.wartosc = k + 1000;
        punkt.wspolczynnik = 1.0f;
      }
    }

    return punkt;
  }
예제 #3
0
  private Punktacja czyKareta() {
    // musza byc 4 karty jednej wartosci
    Punktacja punkt = new Punktacja();
    int wartosc = -1;
    int rezultat = 0;

    // sprawdzamy dwie srodkowe karty
    if (karty[1].figura.figura != karty[2].figura.figura) { // to nie jest jednak kareta...
      return punkt;
    } else {
      // no.. moze jednak?
      // pobieramy wartosc srodkowej karty
      wartosc = karty[1].figura.figura;

      for (int i = 0; i < podajWymiar(); i++) {
        if (karty[i].figura.figura == wartosc) {
          rezultat += 1;
          karty[i].ustawDoOddania(1);
        }
      }

      if (rezultat < 4) {
        // nie mamy karety
        return punkt;
      } else {
        punkt.nazwa = "Kareta";
        punkt.wartosc = 700 + karty[1].kolor.podajWartoscKoloru();
        punkt.wspolczynnik = 0.8f;
      }
    }
    return punkt;
  }
예제 #4
0
  private Punktacja czyTrojka() {
    Punktacja punkt = new Punktacja();

    for (int i = 0; i < podajWymiar(); i++) {
      karty[i].ustawDoOddania(0);
    }

    int wynik = 0;
    // pobieramy srodkowa karte
    int a = karty[2].figura.figura;

    // sprawdzamy, czy figury sie zgadzaja dla trzech kart
    for (int i = 0; i < podajWymiar(); i++) {
      if (a == karty[i].figura.figura) {
        wynik += 1;
        karty[i].ustawDoOddania(1);
      }
    }

    if (wynik == 3) {
      punkt.nazwa = "Trójka";
      punkt.wartosc = 300 + karty[2].figura.figura;
      punkt.wspolczynnik = 0.3f;
    }

    return punkt;
  }
예제 #5
0
  private Punktacja czyWysokaKarta() {
    // najwazniejsza jest dla nas najwyzsza karta...
    Punktacja punkt = new Punktacja();

    punkt.nazwa = "Wysoka karta";
    punkt.wartosc = karty[4].figura.figura * 4 + karty[4].kolor.podajWartoscKoloru();
    punkt.wspolczynnik = 0.0f;
    karty[4].ustawDoOddania(1);

    return punkt;
  }
예제 #6
0
  private Punktacja czyStrit() {
    Punktacja punkt = new Punktacja();

    for (int i = 0; i < podajWymiar(); i++) {
      karty[i].ustawDoOddania(0);
    }

    // karty sa ulozone od 9 do K albo od 10 do A

    if (karty[0].figura.figura == 0
        && karty[1].figura.figura == 1
        && karty[2].figura.figura == 2
        && karty[3].figura.figura == 3
        && karty[4].figura.figura == 4) {
      // tak jest!
      for (int i = 0; i < podajWymiar(); i++) {
        punkt.wartosc += karty[i].figura.figura * 4 + karty[i].kolor.podajWartoscKoloru();
        karty[i].ustawDoOddania(1);
      }
      punkt.nazwa = "Strit";
      punkt.wspolczynnik = 0.4f;
      punkt.wartosc += 300;

    } else if (karty[0].figura.figura == 1
        && karty[1].figura.figura == 2
        && karty[2].figura.figura == 3
        && karty[3].figura.figura == 4
        && karty[4].figura.figura == 5) {
      for (int i = 0; i < podajWymiar(); i++) {
        punkt.wartosc += karty[i].figura.figura * 4 + karty[i].kolor.podajWartoscKoloru();
        karty[i].ustawDoOddania(1);
      }
      punkt.nazwa = "Strit";
      punkt.wspolczynnik = 0.4f;
      punkt.wartosc += 300;
    }
    return punkt;
  }
예제 #7
0
  private Punktacja czyKolor() {
    Punktacja punkt = new Punktacja();
    int mwynik = 0;

    for (int i = 0; i < podajWymiar(); i++) {
      karty[i].ustawDoOddania(0);
    }

    int a = karty[0].kolor.podajWartoscKoloru();

    for (int i = 0; i < podajWymiar(); i++)
      if (karty[i].kolor.podajWartoscKoloru() == a) {
        mwynik += 1;
        karty[i].ustawDoOddania(1);
      }

    if (mwynik > 4) {
      punkt.nazwa = "Kolor";
      punkt.wartosc = 400 + karty[0].kolor.podajWartoscKoloru();
      punkt.wspolczynnik = 0.5f;
    }

    return punkt;
  }
예제 #8
0
  private Punktacja czyPary() {
    Punktacja punkt = new Punktacja();

    for (int i = 0; i < podajWymiar(); i++) {
      karty[i].ustawDoOddania(0);
    }

    if (karty[0].figura.figura == karty[1].figura.figura) {
      // ok, pierwsza mozliwa para
      karty[0].ustawDoOddania(1);
      karty[1].ustawDoOddania(1);
    }

    if (karty[1].figura.figura == karty[2].figura.figura) {
      // ok, druga mozliwa para
      karty[1].ustawDoOddania(1);
      karty[2].ustawDoOddania(1);
    }

    if (karty[2].figura.figura == karty[3].figura.figura) {
      // ok, trzecia mozliwa para
      karty[2].ustawDoOddania(1);
      karty[3].ustawDoOddania(1);
    }

    if (karty[3].figura.figura == karty[4].figura.figura) {
      // ok, czwarta mozliwa para
      karty[3].ustawDoOddania(1);
      karty[4].ustawDoOddania(1);
    }

    // karty zaznaczone
    // teraz liczymy ile jest tych kart
    int wynik = 0;
    for (int i = 0; i < podajWymiar(); i++) {
      if (karty[i].doOddania() == 1) {
        wynik++;
        punkt.wartosc += karty[i].figura.figura * 4 + karty[i].kolor.podajWartoscKoloru();
        if (karty[i].figura.figura == 5) { // As
          punkt.wartosc += 16;
        } else if (karty[i].figura.figura == 4) { // Król
          punkt.wartosc += 11;
        } else if (karty[i].figura.figura == 3) { // Dama
          punkt.wartosc += 4;
        } else if (karty[i].figura.figura == 2) { // Walet
          punkt.wartosc += 2;
        } else if (karty[i].figura.figura == 1) { // 10
          punkt.wartosc += 1;
        }
      }
    }

    if (wynik == 4) {
      punkt.nazwa = "Dwie pary";
      punkt.wartosc += 160;
      punkt.wspolczynnik = 0.2f;
    }

    if (wynik == 2) {
      punkt.nazwa = "Para";
      punkt.wartosc += 23;
      punkt.wspolczynnik = 0.1f;
    }

    return punkt;
  }