Seite anzeigenÄltere VersionenLinks hierherNach oben Eine ältere Version des Dokuments wurde geladen! Beim Speichern wird eine neue Version des Dokuments mit diesem Inhalt erstellt. Dateiauswahl====== Programmieren lernen mit Karel ====== * Karel bei FredOverflow auf [[https://github.com/fredoverflow/karel|GitHub]] * [[https://www.youtube.com/watch?v=IdbLJKs2K0g&list=PL5vhQpd0v6Y5dVcY8_9Ru6dANaz6UmPnL|Karel Playlist]] von Fred Überlauf * [[https://www.youtube.com/watch?v=MLIWyMXEo_U&list=PL0VBitL0dCgQhvP6Nob7_SeMCnKtH6Lk8|Karel Lösungen]] Christian Ottenhaus ===== Python Karel from Standford University ===== * [[https://compedu.stanford.edu/karel-reader/docs/python/en/intro.html|Karel the Robot learns python]] - Stanford University * [[https://github.com/TylerYep/stanfordkarel|standford Karel]]@ github ===== Sequenzen ===== <codedoc code:c++> void karelsFirstProgram() { moveForward(); pickBeeper(); moveForward(); turnLeft(); moveForward(); turnRight(); moveForward(); dropBeeper(); moveForward(); } </codedoc> ===== Schleifen ===== <codedoc code:c++> void defuseOneBomb() { moveForward(); moveForward(); moveForward(); moveForward(); moveForward(); moveForward(); moveForward(); moveForward(); moveForward(); turnAround(); pickBeeper(); turnAround(); moveForward(); moveForward(); moveForward(); moveForward(); moveForward(); moveForward(); moveForward(); moveForward(); moveForward(); turnAround(); } </codedoc> <codedoc code:c++> void defuseOneBomb() { repeat(9){ moveForward() } pickBeeper(); turnAround(); repeat(9){ moveForward() } turnAround(); } </codedoc> ===== 1.1.3 defuseTwoBombs ===== <codedoc code:c++> void defuseTwoBombs(){ defuseOneBomb(); turnLeft(); defuseOneBomb(); } void defuseOneBomb() { goOneWay(); pickBeeper(); goOneWay(); } void goOneWay(){ repeat(9){ moveForward(); } turnAround(); } </codedoc> ===== Funktionen ===== <codedoc code:c++> void defuseOneBomb() { goOneWay() pickBeeper(); goOneWay() } void goOneWay(){ repeat(9){ moveForward() } turnAround(); } </codedoc> <codedoc code:c++> void defuseTwoBombs(){ defuseOneBomb(); turnLeft(); defuseOneBomb(); } void defuseOneBomb() { goOneWay(); pickBeeper(); goOneWay(); } void goOneWay(){ repeat(9){ moveForward(); } turnAround(); } </codedoc> ===== Bedingungen / Verzweigungen ===== <codedoc code:c++> if (onBeeper()){ pickBeeper(); } </codedoc> <codedoc code:c++> if (onBeeper()){ pickBeeper(); } else{ dropBeeper(); } </codedoc> ==== Bedingungen ==== ^ Bedingung ^ Anmerkung ^ | onBeeper() | Karel checks whether a beeper is on the square he currently stands on. | | beeperAhead() | Karel checks whether a beeper is on the square immediately in front of him. | | leftIsCleear() | Karel checks whether no wall is between him and the square to his left. | | frontIsClear() | Karel checks whether no wall is between him and the square in front of him. | | rightIsClear() | Karel checks whether no wall is between him and the square to his right. | ===== Generalisieren ===== <codedoc code:c++> void repairHole(){ turnRight(); moveForward(); dropBeeper(); turnAround(); moveForward(); turnRight(); moveForward(); } void repairTheStreet(){ while(frontIsClear()){ if(rightIsClear()){ repairHole(); } else{ moveForward(); } } } </codedoc> SpeichernVorschauAbbrechen Zusammenfassung Hinweis: Durch das Bearbeiten dieser Seite geben Sie Ihr Einverständnis, dass Ihr Inhalt unter der folgenden Lizenz veröffentlicht wird: CC Attribution-Share Alike 4.0 International karel/karel.1673205321.txt.gz Zuletzt geändert: 2023/01/08 20:15von 185.38.49.0