Programming in Karel, Summaries of Programming Languages

Karel the Robot was developed by. Rich Pattis in the 1970s when he was a graduate student at Stanford. • In 1981, Pattis published Karel the.

Typology: Summaries

2022/2023

Uploaded on 05/11/2023

laalamani
laalamani 🇺🇸

3.7

(3)

218 documents

1 / 19

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Programming in Karel
Eric Roberts and Jerry Cain
CS 106J
April 5, 2017
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Partial preview of the text

Download Programming in Karel and more Summaries Programming Languages in PDF only on Docsity!

Programming in Karel

Eric Roberts and Jerry Cain

CS 106J

April 5, 2017

Once upon a time...

Review: Primitive Karel Commands

move() Move forward one square

turnLeft() Turn 90 degrees to the left

pickBeeper() Pick up a beeper from the current square

putBeeper() Put down a beeper on the current square

  • On Monday, you learned that Karel understands the following

commands:

  • At the end of class, we designed a Karel program to solve the

following problem:

1 2 3 (^1 2 3 4 )

1 2 3 (^1 2 3 4 )

The MoveBeeperToLedge Program */

  • File: MoveBeeperToLedge.k

  • This program moves a beeper to a ledge. / function moveBeeperToLedge() { move(); pickBeeper(); move(); turnLeft(); move(); turnLeft(); turnLeft(); turnLeft(); move(); putBeeper(); move(); }*

Defining New Functions

  • In Karel—and in JavaScript as you will see beginning next

week—a function is a sequence of statements that has been

collected together and given a name. All functions in Karel

have the following form:

function name () { statements that implement the desired operation }

  • The first function in a Karel program is the main function,

which is called when you press the Run button at the bottom

of the screen.

  • Most Karel programs define additional helper functions that

implement individual steps in the complete solution.

The turnRight Function

  • As a simple example, the following function definition allows

Karel to turn right by executing three turnLeft operations:

function turnRight() { turnLeft(); turnLeft(); turnLeft(); }

  • Once you have made this definition, you can use turnRight

in your programs in exactly the same way you use turnLeft.

  • In a sense, defining a new function is analogous to teaching

Karel a new word. The name of the function becomes part of

Karel’s vocabulary and extends the set of operations the robot

can perform.

Exercise: Defining functions

  • Define a function turnAround that turns Karel around 180°.
  • Define a function backup that moves Karel backward one

square, leaving Karel facing in the same direction.

function turnAround() { turnLeft(); turnLeft(); } function backup() { turnAround(); move(); turnAround(); }

  • The turnRight and turnAround functions are so important

that they are included in a library called "turns".

Control Statements

  • In addition to allowing you to define new functions, Karel

also includes statement forms that allow you to change the

order in which statements are executed. Such statements are

called control statements.

  • The control statements available in Karel are:
    • The repeat statement, which repeats a set of statements a

predetermined number of times.

  • The while statement, which repeats a set of statements as long

as some condition holds.

  • The if statement, which applies a conditional test to determine

whether a set of statements should be executed at all.

  • The if - else statement, which uses a conditional test to choose

between two possible actions.

Using the repeat Statement

  • You can use repeat to redefine turnRight as follows: function turnRight() { repeat (3) { turnLeft(); } }
  • The following function creates a square of four beepers,

leaving Karel in its original position:

function makeBeeperSquare() { repeat (4) { putBeeper(); move(); turnLeft(); } }

Conditions in Karel

  • Karel can test the following conditions: frontIsClear() frontIsBlocked() leftIsClear() leftIsBlocked() rightIsClear() rightIsBlocked() beepersPresent() noBeepersPresent() beepersInBag() noBeepersInBag() facingNorth() notFacingNorth() facingEast() notFacingEast() facingSouth() notFacingSouth() facingWest() notFacingWest() positive condition (^) negative condition

The if and if - else Statements

  • The if statement in Karel comes in two forms:
    • A simple if statement for situations in which you may or may

not want to perform an action:

if ( condition ) { statements to be executed if the condition is true } if ( condition ) { statements to be executed if the condition is true } else { statements to be executed if the condition is false }

  • An if - else statement for situations in which you must choose

between two different actions:

function test() { putBeeperLine(); turnLeft(); putBeeperLine(); } Exercise: Creating a Beeper Line

  • Write a function putBeeperLine that adds one beeper to

every intersection up to the next wall.

  • Your function should operate correctly no matter how far

Karel is from the wall or what direction Karel is facing.

  • Consider, for example, the following function called test : 1 2 3 4 5 1 2 3 2

The End