(1 pkt)
A)
Jeżeli masz dokończony i przetestowany wzorzec klasy kolejka z poprzednich zajęć, to przejdź do punktu B).
Jeżeli nie skończyłeś wzorca na poprzednich zajęciach i nie dokończyłeś go w domu (a powinieneś), to dokończ go i przetestuj teraz. Program z poprzednich zajęć MUSI działać !!!
(1 pkt)
B)
Zaimplementuj klasę karta o podanej definicji: karta.h
class karta {
unsigned char kolor;
// 3 <=kolor<= 6
// (kier 3, karo 4, trefl 5, pik 6)
unsigned char wartosc;
// 0 <=wartosc<= 12
// (od 0 do 8 -blotki, 9-J, 10-Q, 11-K, 12-A)
public:
karta(unsigned char=0,unsigned char=0);
friend bool operator<(const karta&, const karta&);
//decyduje pole: wartosc
friend bool operator>(const karta&, const karta&);
//decyduje pole: wartosc
friend bool operator==(const karta&, const karta&);
//decyduje pole: wartosc
friend ostream& operator<<(ostream&, const karta&);
};
Operator<< dla karty zaimplementuj z użyciem kolorów konsoli (przypomnienie w komentarzu w pliku):
2♥ 3♥ 4♥ 5♥ 6♥ 7♥ 8♥ 9♥ 10♥ J♥ Q♥ K♥ A♥ 2♦ 3♦ 4♦ 5♦ 6♦ 7♦ 8♦ 9♦ 10♦ J♦ Q♦ K♦ A♦
2♣ 3♣ 4♣ 5♣ 6♣ 7♣ 8♣ 9♣ 10♣ J♣ Q♣ K♣ A♣ 2♠ 3♠ 4♠ 5♠ 6♠ 7♠ 8♠ 9♠ 10♠ J♠ Q♠ K♠ A♠
(1 pkt)
C)
Wykorzystując wzorzec kolejka, w funkcji main: wygeneruj nową talię kart (uporządkowaną jak powyżej);
Wykonaj tasowanie, oraz rozdanie kart do gry w wojnę dla 2 graczy: jedna karta dla gracza1 i jedna karta dla gracza2;
(2 pkt: podstawowa rozgrywka - 1 pkt + wojna - 1 pkt) D)
Wykorzystując wzorzec kolejka, zaimplementuj grę w wojnę (parametr ILE określa maksymalną liczbę starć);
•
o sile karty decyduje pole: wartość;
•
w przypadku identycznych wartości: mamy wojnę (aż do ewentalnego braku kart...) gracze wykładają na stół po jednej karcie (jeśli mają) i zaraz na nią kładą kartę (jeśli mają) decydującą o wyniku wojny; jeśli dalej jest remis, to wojna toczy się dalej wpp wygrany gracz zabiera obie kupki kart dla siebie;
•
jeśli po wykonaniu ILE starć, nie doszło do zakończenia partii, to o wygranej decyduje bieżąca liczba kart u gracza;
Dla tych, co nie trzymają zbyt często kart w swoich rękach Nowa talia składa się z 52 kart, (stała N=52) Nowa talia składa się z 13 kart (stała KOLOR=13) w każdym kolorze (razem 52): KIER (kod znaku 3),
KARO ((kod znaku 4),
TREFL ((kod znaku 5) oraz
PIK ((kod znaku 6).
Każda karta jest reprezentowana przez: kolor (3÷6) oraz wartość (0÷12).
Jak wygenerować nową talię kart?
Kolejne liczby porządkowe 0÷51 należy przekonwertować na reprezentację karty dwiema wartościami:
0
1
2
3
4
5
6
7
8
9
10
11
12
2♥ 3♥ 4♥ 5♥ 6♥ 7♥ 8♥ 9♥ 10♥ J♥
Q♥ K♥ A♥
13
14
15
16
17
18
19
20
21
22
23
24
25
2♦ 3♦ 4♦ 5♦ 6♦ 7♦ 8♦ 9♦ 10♦ J♦
Q♦ K♦ A♦
26
27
28
29
30
31
32
33
34
35
36
37
38
2♣ 3♣ 4♣ 5♣ 6♣ 7♣ 8♣ 9♣ 10♣ J♣
Q♣ K♣ A♣
39
40
41
42
43
44
45
46
47
48
49
50
51
2♠ 3♠ 4♠ 5♠ 6♠ 7♠ 8♠ 9♠ 10♠ J♠
Q♠ K♠ A♠