Witam

styczność z c++ miałem dość znikomą, a jest potrzeba napisania symulacji gry w wojne, mianowicie chodzi o to, że nie wiem jak 'zagnieździć' karty w programie, tzn maja byc 24 (od 9 do asa) karty, każdy dostaje po połowie i trzeba jakoś porównywać te karty, nie wiem jak je zapisać aby mozna było nimi zarządzać jak kartami, po prostu mam problem jak zacząć

zadane 05 Maj '11, 14:18

lqsym's gravatar image

edytowane 05 Maj '11, 16:39

rafek's gravatar image

Klasa karta, rodzaj i kolor karty jako enum, a porównanie poprzez przeciążenie operatora równości (sprawdzasz enumy więc np. rzutujesz na inta co załatwia wartość karty dla Damy = 3 < Króla = 4, tak samo możesz poradzić sobie z kolorami).

trwały link

odpowiedziane 05 Maj '11, 14:36

Spetz's gravatar image

jak później rozwiązać rozgrywkę ?

jeden zabiera karty i wkłada je do talii itp. aż komuś skończą się karty

(06 Maj '11, 14:30) lqsym

Spróbuj znaleźć najbardziej odpowiednią strukturę danych do tego - skoro karty zawsze kładzie się na spód kupki - oznacza to ni mniej ni więcej tylko last-in-last-out (ostatni co wchodzi ostatni wychodzi), czyli również FIFO (first-in-first-out) czyli nic innego jak np single-linked list lub kolejka. W tym przypadku kolejka jest łatwiejsza - kiedy ktoś przegra "pojedynek" dokładasz mu karty na koniec. Kto ma pustą kolejkę ten wygrywa ;) ot - cały algorytm.

(07 Maj '11, 13:10) matma

Talię kart chyba najlepiej przechowywać za pomocą klasy vector. Tasowanie można wykonać za pomocą: random_shuffle.

A kolory i wartości jak to zostało wspomniane wyżej można zrobić np tak:

enum kolor {PIK, TREFL, KARO, KIER}; 

enum wartosc {_2, _3, _4, _5, _6, _7, _8, _9, _10, WALET, DAMA, KROL, AS};

trwały link

odpowiedziane 05 Maj '11, 18:39

b1ackjack's gravatar image

edytowane 05 Maj '11, 19:01

Twoja odpowiedź

toggle preview

Podstawy składni Markdown

  • *kursywa* lub __kursywa__
  • **pogrubienie** lub __pogrubienie__
  • link:[tekst](http://url.com/ "Tytuł")
  • obraz?![alt tekst](/path/img.jpg "Tytuł")
  • wypunktowanie: 1. Foo 2. Bar
  • aby przełamać wiersz, po prostu dodaj dwie spacje w miejscu, w którym chcesz, aby nowy wiersz się rozpoczął
  • podstawowoe znaczniki HTML również są obsługiwane

Tagi pytania:

zadane: 05 Maj '11, 14:18

wyświetlane: 1,237 razy

ostatnia aktywność: 05 Maj '11, 19:01

Powiązane pytania