Robot Karel vyjde zo stredu sveta a presunie sa do pravého horného rohu po špirále. Prejdenú cestu (vytvorenú špirálu) označí robot Karel značkami.
Počiatočná situácia:
Karel sa nachádza v strede sveta. Svet neobsahuje žiadne steny.
Kód: Vybrať všetko
. . . . . . .
. . . . . . .
. . . . . . .
. . . > . . .
. . . . . . .
. . . . . . .
. . . . . . . Karel sa nachádza po vykreslení špirály v pravom hornom rohu. Pokiaľ sa Karel pri vykresľovaní ocitne na konci sveta skôr, ako dosiahne pravý horný roh, prestane kresliť a presunie sa na koncovú polohu.
Kód: Vybrať všetko
. . . . . . ^
. . . . . . *
. . * * * . *
. . * * * . *
. . * . . . *
. . * * * * *
. . . . . . .Kód: Vybrať všetko
#include<stdio.h>
#include<karel.h>
void turnRight()
{
turnLeft();
turnLeft();
turnLeft();
}
void turnEast()
{
while(notFacingEast())
{
turnLeft();
}
}
void goToEnd()
{
turnEast();
while(frontIsClear())
{
movek();
}
turnLeft();
while(frontIsClear())
{
movek();
}
turnEast();
}
int main()
{
int i,c;
c=1
putBeeper();
movek();
putBeeper();
turnLeft();
while(frontIsClear()&&leftIsClear())
{
for(i=1;i==c;i++)
{
if(frontIsClear())
{
movek();
putBeeper();
c++;
}
else
{
goToEnd();
}
turnLeft();
}
}
turnRight();
return 0;
}