Mám tady zadání úkolu do školy a já si s tím vůbec nevím rady, vím že pro Vás je to jednoduché. Tak bych se chtěl zeptat jak? Popř. řešení. Bohužel POUZE v C!! bez C++
Zadání 1. Domácího úkolu
Napište program pro pohyb figurkou po šachovnici ve 4 směrech.
Požadavky
Po startu program požádá o velikost šachovnice. Velikost může být v rozsahu <4;8>. Neleží-li zadané číslo v tomto rozsahu, program skončí s vhodnou chybovou hláškou a návratovou hodnotou 1 (return 1;)
Pokud je vše v pořádku, vypíše program instrukce pro ovládání, například:
Pohyb figurky:
1 – nahoru
2 – doprava
3 – dolu
4 – doleva
(pro odsazení můžete použít formátovací escape sekvenci \t, ale není potřeba odsazovat)
Program dále vykreslí šachovnici s figurkou na souřadnici [0,0]. Například:
i * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
Dále se program cyklicky ptá na pohyb figurky. Po zadání čísla kódujícího pohyb se znovu vykreslí celá šachovnice s příslušnou změnou polohy figurky. Například ze stavu z předchozího bodu se po zadání číslice 2 pole dostane do stavu:
1 Uzavřený interval
*i* * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
Je-li akce nepovolená (tj. dostala-li by se jejím provedením figurka mimo šachovnici) , vypíše se na výstup srozumitelná chybová hláška a pohyb se neprovede (překreslení může proběhnout i v takovém případě)
Po zadání číslice 0 se program ukončí.
Po zadání neplatného kódu operace (tj. čísla mimo {0,1,2,3,4}) se vypíše vhodná chybová hláška a pokračuje se dále
Poznámky
Vizuální zpracování šachovnice je na vás, jedninnou (logickou) podmínkou je, že znak pro figurku nesmí odpovídat žádnému jinému. Navíc při běžných proporcích fontu je výsledek obdélíkem. Můžete se proto pokusit šachovnici vykreslit „nějak chytře“.
Fórum › C / C++
DÚ v C, šachovnice s figurkou
Poznámky:
1. zadání velikosti šachovnice. Z toho, co uvádíš dále, může být šachovnice obdélníková. Při zadání rozměrů je třeba zadat 2 hodnoty, jedna možnost je dotaz na vodorovný rozměr a pak druhý dotaz na svislý rozměr. V obou případech se otestuje, zda je rozměr správně zadán.
2. samotnou šachovnici do paměti uložíš jako dvourozměrné statické pole o velikosti 8x8, stačí typu char. Pokud je zadána šachovnice menší, část pole se nevyužije.
3. Pohyb figurky po šachovnici vyřešíš jako inkrementaci a dekrementaci indexů pole a zabránění pohybu mimo šachovnici jako hlídání mezí pole:
a/ ověříš, zda pohyb figurky není mimo šachovnici
b/ přepíšeš ve stávající pozici na znak prázdného pole
c/ inkrementuješ nebo dekrementuješ příslušný index pole
d/ do nové pozice zapíšeš figurku
Pro začátek si třeba zkus úlohu zjednodušit a udělat šachovnici s pevným rozměrem 4x4. Po odladění algoritmus modifikuj na složitější - proměnné rozměry šachovnice. V této fázi můžeš jít ještě dál nad rámec zadání - dynamicky alokovat dvourozměrné pole a tím umožnit i zcela jiné (větší) rozměry šachovnice.
Pro jednoduchost bude lepší začít jen se psaním např znaků * pro prázdné pole a F pro figurku - zvládnutí samotného algoritmu je splněním úkolu. S grafikou a barvičkama (např vykreslit skutečnou šachovnici s bílými a černými poli) si můžeš hrát až nakonec - pouťové efekty vylepší hodnocení.
hu
Zkus aspoň kousek zplodit sám, tady se najde dost ochotných lidí na to, aby tě popostrčili správným směrem. Ale bez vlastní snahy to nefunguje. Pan učitel pozná, že to napsal někdo jiný.
hu
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Šachovnice — založil Adadfefek
GUI šachovnice — založil JanH
Šachovnice 2 postavičky, Delphi, console — založil kom445
Doplnění barevných políček šachovnice — založil MaxDJs
Problem s kontrolou ohrozeni vezi - sachovnice — založil brash
Moderátoři diskuze