• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

UPS - Karel

Started by misho.17, 15.12.2013, 05:12:50

« predchdzajce - alie »

misho.17

Potreboval by som poradiť s Karlom.

Ako by ste riešili zozbieranie značiek, ak sa Karol nachádza v pravom dolnom rohu a má postupne po riadkoch zozbierať značky tak, aby značky zostali len na vedľajšej diagonále. Riešenie má byť pre akúkoľvek mapu sveta. Nepožadujem, že mi tu vypíšete všetky príkazy, len by som chcel nápad na to, ako ich pozbierať.

Prikladám obrázky:
obr. vpravo reprezentuje začiatok programu.
obr. vľavo reprezentuje koniec programu (zostanú iba značky, ktoré sú vyznačené, ostatné sú pozbierané).


misho.17

Ešte doplním zadanie úlohy pre lepšie pochopenie:


Robot si postaví pomocou značiek uprostred plochy sveta štvorec. Potom postupuje vodorovne po riadkoch a počas cesty do konečnej pozície upraví štvorec tak, že z nej zostane iba vedľajšia diagonála.
Počiatočná situácia:

Karel sa nachádza v ľavom hornom rohu. Rozmery sveta sú vždy štvorcové.

>.....

......

......

......

......

......

Situácia po postavení štvorca:

......

.****.

.****.

.****.

.****.

.....>

Koncová situácia:

Karel sa opäť nachádza v ľavom hornom rohu.

>.....

....*.

...*..

..*...

.*....

......

panKapitan

Najprv si zisti rozmery sveta while(frontIsClear()){movek();sirka++} a pre výšku to isté a potom si predstav, že rozmery vieš a robíš všetko postupne čo treba, už to potom neje ťažké

xxx3

tak ako pise panKapitan .. zistit sirku a vysku a potom budes zbierat tie znacky s tym, ze v druhom riadku nechas prvu zprava, v tretom riadku druhu, vo stvtom tretiu .. a tak vzdy o jednu poziciu dalej az kym nedojdes na predposledny riadok

misho.17

#4
Diagonála sa dá zobraziť len v štvorcovom, takže stačí zmerať napr. len šírku. No ale ako zapísať aby v 2. riadku nechalo značku v 2. stĺpci, v 3. riadku v 3.stĺpci..? Nejak si s tým nakoniec aj tak neviem poradiť...

A ešte napr. po vykreslení značiek sa dá prekontrolovať aj šírka, aj výška, tie by sa potom dali porovnať a ak by neboli rovnaké, tak by sa ukončil program, aby sa to nevykresľovalo.