Hex C++ Delikatna pomoc

0

Witam,

jestem nowy i proszę o wyrozumiałość. :)

Biore się za projekt o nazwie Hex.

Na wejściu wpisywana jest mapa z hex'a, a następnie polecenia które sprawdzają czy:
BOARD_SIZE - jaki jest rozmiar planszy
PAWNS_NUMBER - ilość pionków na planszy
IS_GAME_OVER - czy gra jest skończona
IS_BOARD_POSSIBLE - czy plansza jest prawidłowo zbudowana
CAN_RED_WIN_IN_1_MOVE_WITH_NAIVE_OPPONENT N - czy gracz czerwony może wygrać w posunięciach liczby N z "głupim" przeciwnikiem
CAN_RED_WIN_IN_1_MOVE_WITH_PERFECT_OPPONENT - analogicznie z powyższym tylko, że z "mądrym przeciwnikiem"

Bardziej szczegółowo:
http://screenshooter.net/6757166/ijhonsa
http://screenshooter.net/6757166/agnfwxs
http://screenshooter.net/6757166/sogipoc
http://screenshooter.net/6757166/xxwlisg
http://screenshooter.net/6757166/vwdkash
http://screenshooter.net/6757166/cebdmyt
http://screenshooter.net/6757166/fpclmfl
http://screenshooter.net/6757166/jfjlddw
http://screenshooter.net/6757166/ksmbouw
http://screenshooter.net/6757166/deydpba
http://screenshooter.net/6757166/efaasjn

Moje pytanie, do czego najlepiej zapisywać plansze? Do tablicy dwuwymiarowej, do drzewa binarnego czy może jakiś inny ciekawy pomysł, tak aby jakoś sprawnie to poszło :)
Jeśli ktoś ma jeszcze jakieś ciekawe rozwiązania bardzo bym prosił o ich przedstawienie.

PS: Nie pisze by ktoś za mnie napisał projekt tylko rozplanowuje sobie strategie do całego przedsięwzięcia. Ogólnie musze to zrobić by program był optymalny stąd zwracam się do Was z pytaniem jakimi ciekawymi sposobami można by było to zrobić by praca programu był jak najkrótsza.

Pozdrawiam!
Karol

2

Do tablicy dwuwymiarowej.

0

Hej, hej, to znowu ja. Mam problem z wyznaczeniem IS_GAME_OVER, czy ma ktoś jakieś koncepcje? Czytałem o teorii grafów, ale nie przemawiają do mnie (pewnie temu bo nie do końca wiem jakby to miało działać :) ) Proszę o pomoc.

1

Już rozpisywałem ci ten algorytm.
Robisz trzy kolory czerwonego i trzy niebieskiego
Przy krawędziach różne kolory, wstawiasz trzeci kolor.
Jeżeli na plansze ten trzeci kolor sąsiaduje z jakimś kolorem krawędziowym to przyjmuje ten krawędziowy kolor, powtarzamy dopóki jest co zmieniać.
Jeżeli ze sobą sąsiaduje dwa kolory krawędziowe - jest wygrana.

0
_13th_Dragon napisał(a):

Już rozpisywałem ci ten algorytm.
Robisz trzy kolory czerwonego i trzy niebieskiego
Przy krawędziach różne kolory, wstawiasz trzeci kolor.
Jeżeli na plansze ten trzeci kolor sąsiaduje z jakimś kolorem krawędziowym to przyjmuje ten krawędziowy kolor, powtarzamy dopóki jest co zmieniać.
Jeżeli ze sobą sąsiaduje dwa kolory krawędziowe - jest wygrana.

Ojej, gdzie rozpisywałeś? :) I dzięki za info, chociaż jeszcze nie do końca rozumiem. Zaraz ogarnę- mam nadzieje.

0

Przepraszam, że post pod postem, ale próbuje zebrać atencje :D Koncepcji _13th_Dragon w ogóle nie rozumiem. Tak więc ponawiam pytanie, czy ktoś wie jak ładnie sprawdzić czy gra jest skończona?

0

Może to ci pomoże o to plansza do gry 5x5:

unsigned tb[7][7]=
  {
     {0,3,3,3,3,3,0},
     {4,0,0,0,0,0,6},
     {4,0,0,0,0,0,6},
     {4,0,0,0,0,0,6},
     {4,0,0,0,0,0,6},
     {4,0,0,0,0,0,6},
     {0,5,5,5,5,5,0},
  };

Wstawiasz 1 i 2 odpowiednio.

1 użytkowników online, w tym zalogowanych: 0, gości: 1