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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }