[ Príspevkov: 2 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.12.13
Prihlásený: 12.03.16
Príspevky: 9
Témy: 7 | 7
NapísalOffline : 22.10.2015 0:15 | Karol- Ariadnina niť

Zdravim potrebujem pomoct s jednym problemom v zadani. Ak karol prejde tym istym miestom tak tam nepolozi znacku aby si ich usetril. Potom pri navrate domou nemoze skontrolovat aku cestou sa vydat ..
Program zatial vyzera nasledovne..

Karol- Ariadnina niť

Karol- Ariadnina niť

Karol- Ariadnina niť

#include <karel.h>

void darkWalk();
void control();
void turnBack();
void turnRight();

int main() {
setStepDelay(200);
turnOn("world1.kw");

control();
darkWalk();
turnOff();

return 0;
}
void turnBack() {
turnLeft();
turnLeft();
movek();

}

void control() {
if (frontIsClear()){
movek();
}
else {
turnRight();
movek();
}
while (noBeepersPresent () ){
turnBack();
turnLeft();
if (leftIsBlocked()){
turnRight();
}
if (rightIsBlocked()){
turnLeft();
}
control();
darkWalk();
}
void darkWalk() {
pickBeeper();
control();
}
void turnRight(){
turnLeft();
turnLeft();
turnLeft();
}


Offline

Užívateľ
Užívateľ
Karol- Ariadnina niť

Registrovaný: 24.08.12
Prihlásený: 09.02.19
Príspevky: 59
Témy: 0 | 0
NapísalOffline : 23.10.2015 18:26 | Karol- Ariadnina niť

Taková krásná úloha, a tak hnusný Karel. Co je to sakra za obludnost? TOHLE JE KAREL! :ogle:

Nejjednodušší řešení bude rekurze. Program prostě vyzkouší postupně všechny čtyři směry: pokud před Karlem není zeď, popojde a podívá se jestli je tam beeper. Když ano, zvedne ho a zavolá znovu sám sebe, jinak couvne. To je celé.


_________________
"Existuje pouze jeden člověk, který má méně přátel než Bill Gates, a tím je Saddám Husajn." (Paul Grayson)
 [ Príspevkov: 2 ] 


Karol- Ariadnina niť



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Karol - intenzita svetla

v Assembler, C, C++, Pascal, Java

1

453

30.10.2017 23:37

ac.milan



© 2005 - 2024 PCforum, edited by JanoF