Diskuze: Programování deskové hry

C# .NET .NET (C# a Visual Basic) Programování deskové hry American English version English version

Avatar
Goldminer
Člen
Avatar
Goldminer:

Zdravím programátoři,
mám vymyšlenou deskovou hru pro čtyři hráče, kde každý má 3 figurky. Chtěl bych se zeptat, jak nejlépe vyřešit pohyb figurek po hracím poli, které nebude symetrické. Na fóru jsem se již dočetl, že nejjednodušší to bude zřejmě přes pictureBoxy, nevím však, jak nastavit objekt Figurka, aby měnil obrázek pictureBoxu a aby po kliknutí skočil na pictureBox o přesné vzdálenosti(něco jako kostka) .

Díky moc za všechny rady
Goldminer

 
Odpovědět 21.1.2015 13:31
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Goldminer
Jan Vargovský:

Ahoj, jestli bude mít hra jen jeden směr (resp. klidně i dva), tak si můžeš uložit políčka do kolekce a když máš pohnout figurkou z x do y, tak si zjistíš index políčka x a pak jen přičteš k indexu y-x, jinými slovy, přičteš k němu tolik, kolik si hodil kostkou.

 
Nahoru Odpovědět 21.1.2015 13:57
Avatar
Goldminer
Člen
Avatar
Goldminer:

Udělat si například List pictureBoxů? Jak k nim ale potom budu přistupovat figurkou? Ještě bych měl dodat, že těch políček bude přibližně 60.

 
Nahoru Odpovědět 21.1.2015 14:23
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Goldminer
Jan Vargovský:

Můžeš hodit nějaký grafický návrh, jak ta aplikace má vypadat? Jestli půjde políčka nějak hezky vygenerovat programově, tak ti stačí jeden picturebox a budeš jen na něj vykreslovat jednotlivé obrázky.

 
Nahoru Odpovědět 21.1.2015 14:31
Avatar
Goldminer
Člen
Avatar
Goldminer:

Tvuj napad s listem PictureBoxu se mi libi, ale nejspis budu muset kazdy pictureBox definovat samostatne (pozici,velikos­t,obrazek), jelikoz moje hraci pole bude v podstate do krize. Bude vypadat podobne jako u clovece nezlob se.

 
Nahoru Odpovědět 21.1.2015 15:03
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Goldminer
Jan Vargovský:

To jde přece generovat, zapoj mozek :)

 
Nahoru Odpovědět 21.1.2015 15:11
Avatar
rwn
Člen
Avatar
Odpovídá na Goldminer
rwn:

Mno.. určitě nedělej List pictureBoxů, pokud by sis chtěl vytvářet 60 pictureboxu a do každého cosi vykreslovat, tak si nejsem jistý jak by ti to WF zvládal vykreslovat. WPF je mnohem výkonější co se vykreslování týče a ten by s tím neměl takové problémy, ..ale obecně vytvářet 60 kontrolek je zbytečné.
Nejlepší by bylo si udělat List typu point pro každého hráče, zde by měl každá hráč uloženy 3 souřadnice, kde má svoje figurky.

List<Point> player1 = new List<Point>();

pak by bylo fajn si udělat ještě další List, který bude znázorňovat všechna políčka, také typu Point

List<Point> policka = new List<Point>();

Následně ti už jen chybí si udělat funkci pro vykreslení políčka, která bude vykreslovat políčko na jeho Point pozici a stejně tak figurku, jehož barvu můžeš nastavit pro každého player1, player2.. zvlášť. List policka bys měl samozřejmě seřazen tak, jak vede cesta ve hře, tedy na indexu 0 startovní pozici a na indexu policka.Count poslední políčko. Při posunu například o 3 políčka, si posuneš figurku ze stávající pozice o 3 místa indexu v listu policka kupředu. Určitě použij jen jeden pictureBox ale.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 21.1.2015 15:24
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.