Hra kostky - program v pascalu

Od: Datum: 05.06.13 18:44 odpovědí: 1 změna: 07.06.13 10:57

jak mám napsat hru kostky v pascalu? >>pravidla<<

můj postup: měl bych asi dvě pole se šesti políčky. v jednom by se pomoci random vypsalo 6 nahodnyh cisel a do druheho by se kostky odkladaly. v poli na odlozene kostky by byl for cyklus, ktery by postupne pridaval body. to cele by bylo v cyklu while, který by se porad opakoval az by jeden z hracu vyhral.Hra by byla pro dva hrace, ktery by se stridaly po kazdem tahu a pricitalo by se jim skore.

je to spravne?muzete poradit?.děkuji za odpověď


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 07.06.13 10:57
avatar

No, ta pravidla nejsou zdaleka nejjednodušší.

Celé to poběží ve whilu, dokud nebude jeden z hráčů mít dost bodů. Pak to skončí.

Uvnitř cyklu se budou střídat tahy hráčů, respektive to bude fungovat úplně stejně, jen to na konci tahu přičte body jednou jednomu, podruhé druhému.

Vlastní tah bude to nejhorší. Udělal bych asi pole struktur (nebo se to v pascalu jmenuje record?), které by představovalo kostky. Těm přiřadit asi tyhle vlastnosti: aktuální hodnota hodu; odložená ano/ne. Možná ještě nějaká další vhodná vlastnost.

Na začátku tahu nastavím všechny kostky jako nevybrané a "hodím" všemi. Teď nejspíš budu muset pro všechny možné výherní kombinace zjistit, jestli některá z nich existuje. Po zjištění tyto dostupné kombinace nabídnu uživateli k volbě té, kterou chce použít (jestli jsem pochopil pravidla správně, že si může vybrat). Pokud žádná výhra neexistuje (nebo jsem ani neměl žádné dostupné volné kostky), končím tah. Po jeho volbě (nebo automaticky, pokud bude jen jedna možná) přičtu body k mezisoučtu, vybrané kostky této výherní kombinace nastavím jako odložené a vracím se na začátek tohoto odstavce, tedy hodím všemi zbylými nevybranými.

Nic z tohodle by nebylo velkým problémem. Zásadní body, které se však musejí vyřešit a které dle způsobu řešení problémem být můžou (zejména proto, že to je v pascalu), jsou tyto dva:

doplněno 07.06.13 11:07:

1. Jak si zaznamenávat, které kostky jsou dostupné a které kostky patří ke které nabízené volbě. Ono pole struktur, jak jsem psal, nebude možná nejlepší. Možná by bylo lepší mít pole dostupných (jen true/false pro každou) a pole hodnot (1-6 pro každou) a pro výherní kombinaci vytvářet opět pole (true/false), značící, které kostky do té kombinace patří. Pak by se provedení výběru této kombinace stalo docela jednoduchým.

V návaznosti na to by se to taky dalo reprezentovat jako bitové pole, 00111111 vše dostupné, 00101110 dvě vybrané atd. Totéž pro výherní kombinace. S tím by se taky operovalo docela snadno.

Jinou možností by bylo s těmi poli manipulovat a prvky (vybrané kostky) z nich reálně vyjímat. Pak by se zjednodušila logika zjišťování výher atd, ale musela by se přidat tato operace vyjímání. Taky by možná stačilo mít jen počet zbylých kostek, ne jejich pozici.

2. Samotné zjišťování výherních kombinací. Seřadit podle velikosti. Najít jedničku, najít pětku. Najít trojici, v případě jedniček jiné body. Zjistit, jestli se jedná o posloupnost nebo jestli jsou vždy dvě za sebou shodné.

Více kombinací naráz, které jdou vybrat společně: zdá se, že tedy po nabídnutí kombinací a výběru uživatelem (tj byly alespoň dvě různé výherní kombinace) budete muset předchozí krok spustit znovu a zjistit, jestli odebráním kostek se druhá (nebo třetí nebo ostatní) kombinace rozbila, nebo jestli je nadále platná. Pak nabídnout znova (nebo automaticky připočíst, pokud je jen jedna).

Ohodnoceno: 2x
 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.