DÚ v C, šachovnice s figurkou – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

DÚ v C, šachovnice s figurkou – C / C++ – Fórum – Programujte.comDÚ v C, šachovnice s figurkou – C / C++ – Fórum – Programujte.com

 

Zapl
~ Anonymní uživatel
2 příspěvky
22. 10. 2013   #1
-
0
-

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“.
 

Nahlásit jako SPAM
IP: 78.102.245.–
22. 10. 2013   #2
-
+1
-
Zajímavé

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

Nahlásit jako SPAM
IP: 195.178.67.–
Zapl
~ Anonymní uživatel
2 příspěvky
22. 10. 2013   #3
-
0
-

#2 hlucheucho
Děkuji za odpověď ale Céčko dělám teprve měsíc, a to co si mi napsal je pro mě španělská vesnice. Ale i tak díky za odpoveď :D 

Nahlásit jako SPAM
IP: 78.102.245.–
22. 10. 2013   #4
-
0
-

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

Nahlásit jako SPAM
IP: 195.178.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 71 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý