Gra planszowa Monopoly

0

Cześć wszystkim.

Właśnie przymierzam się do zrobienia gry Monopol. Każdy na pewno wie na czym ta gra polega. Moje pytanie jest następujące, jak mogę narysować plansze do tej gry aby później operować na niej pionkami, ulepszeniami pól (dodawaniem domków), kupowaniem, sprzedawaniem itd. Możecie mnie naprowadzić co mam do tego użyć, nawet pokazać? Kompletnie nie wiem jak mam te pole narysować aby operować dokładnie na jakimś kwadraciku. Gra jest mistrzowska i chciałbym stworzyć coś na miarę gry w rzeczywistości, ponieważ aby pograć w takie coś trzeba co najmniej 4 osoby a wiadomo jak w tych czasach chce się w takie coś grać :/

Z góry dziękuje i proszę o pomoc.

2

Nie jesteś pierwszym który wpadł na taki pomysł: https://www.google.com/search?q=monopoly+pc
Ba, nawet w czasach starej konsoli Sega ktoś na to wpadł :D -

Zaprojektować grę sobie możesz jak Ci wygodniej. Masz kilka typów pól. Większość to państwa, są też pola specjalne, np. więzienie, policja. Każde pole może mieć swój obrazek i parametry tj. cena państwa, cena domku, ilość domków (możesz w kodzie interpretować nadmiarową ilość domków jako hotel). Pozycja rysowania domku to pozycja pola + margines. Ja bym wszystkie dostępne pola wrzucił w listę zachowując kolejność w jakiej pionek po nich przechodzi. W ten sposób ułatwisz sobie uzależnienie przemieszczenia pionka od ilości wyrzuconych oczek na kostce ;) Chyba nie muszę wspominać, że pola to instancje odpowiednich klas ;) ? Możesz sobie nawet zbudować hierarchię klas ładnie z zachowaniem dziedziczenia itd. Klasa pionka może mieć pole przechowujące referencję na aktualne pole. Jeśli ilość wyrzuconych oczek wyjdzie poza zakres listy pól to masz rozwiązane "zdarzenie" przechodzenia przez start - do instancji pionka dodajesz $200 o ile dobrze pamiętam no i dodajesz do pozycji oczka z kostki, których nie dało się naliczyć.

Radziłbym poćwiczyć programowanie grafiki i logiki gry z czymś prostszym, zamiast od razu rzucać się na głęboką wodę.

0

Z tymi pionkami i resztą to może jakoś obmyśliłbym co tam konkretnego zrobić, problem mam na razie taki, że nie wiem jak mam narysować plansze do tej gry. Można zrobić z 30-40 pictureboxów i na nich porysować te pola, jeżeli pionek wejdzie na dany picturebox to dorysować niżej pionek, jeżeli wyjdzie to usunąć z pictureboxa. Pójdzie coś takiego zrobić?

Mógłbyś podsunąć jakieś zadania aby poduczyć się tego co chcę zrobić?

Dziękuje i pozdrawiam.

0

Jak to jeden picturebox? Da się w jednym to zrobić?

Jeżeli na jednym pictureboxie będę miał 40 pól to skąd będę wiedział, na którym polu stoi pionek, co się na nim znajduje itd.?

0
Monopol napisał(a):

Jeżeli na jednym pictureboxie będę miał 40 pól to skąd będę wiedział, na którym polu stoi pionek, co się na nim znajduje itd.?

Jak już napisałem, pionek ma referencję na pole i ta referencja prowadzi do instancji pola, która ma wszystkie dane. Reprezentację graficzną traktuj jako rzecz drugorzędną. To tylko rysowanie tego co zawierają/opisują obiekty w aplikacji. Poza tym, skoro używasz C#, to spróbuj znaleźć jakiś sinik 2D i obleć tutoriale. Np. spróbuj tego - http://dengine.codeplex.com/

0

A jakimś przykładem moglibyście rzucić?

0

No nie wiem... może jakiś pseudo kod:

Rysowanie planszy np.:

foreach (elementy_planszy) as element planszy do
    rysuj_na_płótnie(element_planszy.obrazek, element_planszy.pozycja_x, element_planszy.pozycja_y)

W zdarzeniu po wykonaniu ruchu np.:

if pionek.referencja_na_element_planszy.sprzedane
    then
        if pionek.referencja_na_element_planszy.referencja_na_właściciela is not pionek
            then płać_właścicielowi

itd.
Tego typu rozważania trzeba zawrzeć w algorytmach i klasach.

0

Rysowanie planszy występowałoby tylko na początku włączanie gry, tak?

0

Nie musisz aż tak optymalizować. Ale w sumie możesz planszę narysować na początku aplikacji na powierzchni trzymanej w pamięci, a potem tylko ją rysować po każdej zmianie położenia pionków itp. Bo plansza to warstwa pod wszystkim innym dziejącym się w grze i ona zawsze najpierw musi być narysowana, a dopiero potem są rysowane elementy tj. pionek, domek, hotel. We współczesnych grach rysuje się wszystko co klatkę, zazwyczaj przynajmniej 30 razy na sekundę.

0

To aż taka to gra nie będzie, żeby rysowało 30 razy na sekundę :D

Dobra to będę musiał się czegoś tutaj pouczyć, na początek jakoś narysować tą planszę. Mówicie żęby zrobić to w jednym pictureboxie, później tylko na tle zmieniać poszczególne elementy, tak?

To trudniejsze do wykonania niż do napisania xd

0

PictureBox nie nadaje się do gier.

Napisałem Ci już... zainteresuj się jakąś biblioteką dedykowaną do gier 2D. Np. takie coś znalazłem - http://dengine.codeplex.com/

0

a co zrobić z kartami?

0

Każdy gracz użytkownik będzie miał jakąś strukturę dynamiczną (np. listę) z kartami i do niej będą one dodawane po kupnie.

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