Vybrané riešenia úloh
First Steps with Karel the Robot
Krok č. 1
#include <karel.h> int main(){ turnOn("stairs.kw"); movek(); turnLeft(); movek(); turnLeft(); turnLeft(); turnLeft(); movek(); pickBeeper(); turnLeft(); movek(); turnLeft(); turnLeft(); turnLeft(); movek(); pickBeeper(); turnLeft(); movek(); turnLeft(); turnLeft(); turnLeft(); movek(); pickBeeper(); turnLeft(); movek(); turnLeft(); turnLeft(); turnLeft(); movek(); putBeeper(); putBeeper(); putBeeper(); turnOff(); return 0; }
Krok č. 2
#include <karel.h> void turnRight(){ turnLeft(); turnLeft(); turnLeft(); } void climbStair(){ turnLeft(); movek(); turnRight(); movek(); } int main(){ turnOn("stairs.kw"); movek(); climbStair(); pickBeeper(); climbStair(); pickBeeper(); climbStair(); pickBeeper(); climbStair(); putBeeper(); putBeeper(); putBeeper(); turnOff(); return 0; }
Training
#include <karel.h> turnRight(){ turnLeft(); turnLeft(); turnLeft(); } jumpOver(){ turnLeft(); movek(); turnRight(); movek(); turnRight(); movek(); turnLeft(); } int main(){ turnOn("training.kw"); jumpOver(); jumpOver(); jumpOver(); jumpOver(); turnOff(); return 0; }
Road
#include <karel.h> // otocenie Karla smerom doprava void turnRight(){ turnLeft(); turnLeft(); turnLeft(); } // otocenie Karla o 180 stupnov void turnAround(){ turnLeft(); turnLeft(); } // vyplnenie diery na ceste a navrat na povodnu poziciu void fillPothole(){ turnRight(); movek(); putBeeper(); turnAround(); movek(); turnRight(); } int main(){ turnOn("road.kw"); movek(); fillPothole(); movek(); movek(); fillPothole(); movek(); turnOff(); return 0; }
Karel and his Sensors
Krok č. 1
#include <karel.h> // otocenie Karla smerom doprava void turnRight(){ turnLeft(); turnLeft(); turnLeft(); } // otocenie Karla o 180 stupnov void turnAround(){ turnLeft(); turnLeft(); } // vyplnenie diery na ceste a navrat na povodnu poziciu void fillPothole(){ turnRight(); movek(); if(noBeepersPresent()) putBeeper(); turnAround(); movek(); turnRight(); } // hlavna funkcia programu int main(){ turnOn("road1.kw"); if( rightIsClear() ) fillPothole(); while( frontIsClear() ){ movek(); if( rightIsClear() ) fillPothole(); } turnOff(); return 0; }
Krok č. 2
#include <karel.h> // otocenie Karla smerom doprava void turnRight(){ turnLeft(); turnLeft(); turnLeft(); } // preskocenie prekazky void jumpOver(){ turnLeft(); movek(); turnRight(); movek(); turnRight(); movek(); turnLeft(); } // hlavna funkcia programu int main(){ turnOn("olympics.kw"); while( noBeepersPresent() ){ while( frontIsClear() ) movek(); jumpOver(); } turnOff(); return 0; }
Chessboard
#include <karel.h> // otocenie Karla smerom doprava void turnRight(){ turnLeft(); turnLeft(); turnLeft(); } // prechod na dalsi riadok void nextLine(){ if( facingEast() ) turnLeft(); else turnRight(); if( frontIsClear() ) movek(); else return; if( rightIsBlocked() ) turnLeft(); else turnRight(); } // vyplnenie 1 riadku void fillLine(){ movek(); putBeeper(); while( frontIsClear() ){ movek(); movek(); putBeeper(); } nextLine(); } int main(){ turnOn("empty1.kw"); while( frontIsClear() ) fillLine(); turnOff(); return 0; }
Collector
#include <karel.h> // otocenie Karla smerom doprava void turnRight(){ turnLeft(); turnLeft(); turnLeft(); } // otocenie Karla o 180 stupnov void turnAround(){ turnLeft(); turnLeft(); } // prechod na dalsi riadok void nextLine(){ if( facingEast() ) turnLeft(); else turnRight(); if( frontIsClear() ) movek(); else return; if( rightIsBlocked() ) turnLeft(); else turnRight(); } // pozbieranie 1 riadku void pickLine(){ while( beepersPresent() ) pickBeeper(); while( frontIsClear() ){ movek(); while( beepersPresent() ) pickBeeper(); } nextLine(); } int main(){ turnOn("empty1.kw"); while( frontIsClear() ) pickLine(); turnAround(); if( leftIsClear() ){ turnLeft(); while( frontIsClear() ) movek(); turnRight(); } while( frontIsClear() ) movek(); while( beepersInBag() ) putBeeper(); turnRight(); while( frontIsClear() ) movek(); turnOff(); return 0; }
Karel Solves Daily Problems
Karel Becomes SuperKarel
Karel Says Goodbye, NetBeans Says Hello
$Id$