Basic 2 Course
Basic 2 Course
paintwhite
repeat (1){
forward (3)
right
forward(3)
right
forward(3)
right
forward(3)
{forward (3)
if (frontIsObstacle )
{ forward (1)
if (frontiswhite) {
forward
left
forward (7)
left
forward (3)
pickup
end
if (frontisbeacon){
left
forward (3)
pickup
end
FrontIsBeacon
{ forward (1)
if (frontiswhite) {
forward
left
forward (7)
left
forward (6)
left
forward (2)
pickup
end
}
if (frontisbeacon){
left
forward (3)
pickup
end
FrontIsBeacon
if (frontisblack)
forward
right
forward (4)
right
forward (1)
if (frontiswhite)
{ forward
left
forward (5)
right
forward
pickup
end
}}
}
if (frontisbeacon)
right
if (frontiswhite){
forward
left
forward (6)
left
forward (2)
if (frontisblack)
forward
right
forward (6)
left
forward
pickup
end
if (frontisbeacon)
{
}
{forward
right
forward (6)
left
forward(3)
left
forward(8)
right
forward
pickup
end}
if(frontisbeacon)
{forward
if (frontiswhite and rightiswhite)
right
forward (6)
left
forward(3)
left
forward(8)
right
forward
pickup
end}
if(frontisbeacon)
{ forward (5)
if (frontisobstacle)
pickup
end
}
if (frontisbeacon)
{ forward (6)
right
forward (5)
if (frontisobstacle)
pickup
end
if (frontisbeacon)
{ forward (6)
right
forward (8)
left
forward (2)
left
forward (2)
if (frontisobstacle)
pickup
end
if (frontisbeacon)
left
forward (2)
right
forward (2)
left
forward (2)
right
forward (2)
left
forward (4)
left
forward (4)
right
forward (5)
right
forward
left
forward
right
forward (3)
right
forward (4)
right
forward (2)
right
forward}
if (frontisobstacle)
pickup
end}
if(frontisbeacon)
forward (4)
right
forward(4)
right
forward (2)
left
forward (5)
left
forward (2)
left
forward(2)
right
forward (2)
left
forward (9)
right
forward (2)
right
forward (5)
left
forward (4)
right
forward (9)
right
forward (2)
left
forward (2)
left
forward (2)
right
forward
if (frontisobstacle)
pickup
end
if(frontisbeacon)
left
forward (3)
right
forward (4)
right
forward (3)
left
forward (4)
right
forward
left
forward (2)
left
forward(2)
if(frontisobstacle)
{
eatup
forward(3)
left
forward(4)
right
forward (5)
left
forward(2)
left
if (frontisobstacle)
eatup
forward (3)
right
forward (2)
right
forward (3)
left
if (frontisobstacle)
eatup
forward
}
if(frontiswhite)
forward
Sequences of procedures
number4
number4
number4
number4
number4
number4
procedure number1
right
forward
left
paintWhite
forward(2)
stopPainting
backward(2)
right
forward
left
}
procedure number4
forward
paintWhite
forward
backward
right
forward
left
forward
backward(2)
stopPainting
right
forward
left
Procedure square
square
procedure square
paintwhite
forward
right
forward
right
forward
right
forward
right
square
procedure square
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
right
forward(4)
left
paintwhite
forward
right
forward
right
forward
right
forward
right
procedure square
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
right
forward(4)
left
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
left (2)
forward
right
forward (2)
right
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
left
forward
left
forward(2)
right (2)
paintwhite
forward
right
forward
right
forward
right
forward
right
right
forward
paintwhite
left
forward
right
forward
right
forward
right
forward
right(2)
forward
paintwhite
left
forward
right
forward
right
forward
right
forward
right
}
procedure square
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
right
forward(4)
left
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
left (2)
forward
right
forward (2)
right
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
left
forward
left
forward(2)
right (2)
paintwhite
forward
right
forward
right
forward
right
forward
right
right
forward
paintwhite
left
forward
right
forward
right
forward
right
forward
right(2)
forward
paintwhite
left
forward
right
forward
right
forward
right
forward
right
stoppainting
right (2)
forward
paintblack
right
forward(4)
right
forward (7)
right
forward (7)
right
forward (7)
right
forward (7)
right
forward (7)
procedure head
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
right
forward(4)
left
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
left (2)
forward
right
forward (2)
right
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
left
forward
left
forward(2)
right (2)
paintwhite
forward
right
forward
right
forward
right
forward
right
right
forward
paintwhite
left
forward
right
forward
right
forward
right
forward
right(2)
forward
paintwhite
left
forward
right
forward
right
forward
right
forward
right
stoppainting
right (2)
forward
paintblack
right
forward(4)
right
forward (7)
right
forward (7)
right
forward (7)
right
forward (7)
right
forward (7)
procedure head
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
right
forward(4)
left
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
left (2)
forward
right
forward (2)
right
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
left
forward
left
forward(2)
right (2)
paintwhite
forward
right
forward
right
forward
right
forward
right
right
forward
paintwhite
left
forward
right
forward
right
forward
right
forward
right(2)
forward
paintwhite
left
forward
right
forward
right
forward
right
forward
right
stoppainting
right (2)
forward
paintblack
right
forward(4)
right
forward (7)
right
forward (7)
right
forward (7)
right
forward (7)
right
forward (7)
right
forward (7)
right
forward (7)
left
stoppainting
forward
left
repeat(7)
paintblack
forward (7)
right
forward (7)
right
forward (7)
right
forward (7)
right
stoppainting
forward (4)
right
forward
left
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
right
forward(4)
left
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
left (2)
forward
right
forward (2)
right
paintwhite
forward
right
forward
right
forward
right
forward
right
stoppainting
left
forward
left
forward(2)
right (2)
paintwhite
forward
right
forward
right
forward
right
forward
right
right
forward
paintwhite
left
forward
right
forward
right
forward
right
forward
right(2)
forward
paintwhite
left
forward
right
forward
right
forward
right
forward
right
stoppainting
right(2)
forward
left
forward (4)
left
}}
repeat(1)
repeat()
}
procedure putProductBack()
goToStart
# of steps to storage:
bringBack(9)
goToStart
# of steps to storage:
bringBack(9)
# of steps to storage:
bringBack(9)
goToStart
# of steps to storage:
bringBack(9)
else
end
procedure bringBack(n)
repeatWhile( frontIsClear)
{
forward(1)
right
forward(n)
left
repeatWhile( frontIsClear)
forward(1)
backward(1)
putDown
procedure goToStart
right
right
repeatWhile( frontIsClear)
forward(1)
right
procedure goBackToStart
right
right
repeatWhile( frontIsClear )
{
forward(1)
right
repeatWhile( frontIsClear )
forward(1)
right
backward(6)
procedure getProduct
right
repeat()
if (frontIsClear)
forward(1)
else if (frontIsBeacon)
pickUp
return
else
end
}
repeat()
procedure putProductBack()
goToStart
# of steps to storage:
bringBack(9)
{
# Robo returns to start
goToStart
# of steps to storage:
bringBack(9)
goToStart
# of steps to storage:
bringBack(9)
goToStart
# of steps to storage:
bringBack(9)
}
# hmm, something wrong??? Going to stop.
else
end
procedure bringBack(n)
repeatWhile( frontIsClear)
forward(1)
right
forward(n)
left
repeatWhile( frontIsClear)
forward(1)
backward(1)
putDown
procedure goToStart
right
right
repeatWhile( frontIsClear)
forward(1)
right
procedure goBackToStart
right
right
repeatWhile( frontIsClear )
forward(1)
right
repeatWhile( frontIsClear )
forward(1)
right
backward(6)
procedure getProduct
right
repeat()
{
if (frontIsClear)
forward(1)
else if (frontIsBeacon)
pickUp
return
else
end
repeat()
procedure putProductBack()
goToStart
# of steps to storage:
bringBack(11)
goToStart
# of steps to storage:
bringBack(18)
goToStart
# of steps to storage:
bringBack(25)
}
goToStart
# of steps to storage:
bringBack(33)
else
end
procedure bringBack(n)
repeatWhile( frontIsClear)
forward(1)
right
forward(n)
left
repeatWhile( frontIsClear)
forward(1)
backward(1)
putDown
procedure goToStart
right
right
repeatWhile( frontIsClear)
forward(1)
right
procedure goBackToStart
right
right
repeatWhile( frontIsClear )
forward(1)
right
repeatWhile( frontIsClear )
{
forward(1)
right
backward(6)
procedure getProduct
right
repeat()
if (frontIsClear)
forward(1)
else if (frontIsBeacon)
pickUp
return
else
end
repeat()
procedure putProductBack()
goToStart
# of steps to storage:
bringBack(18)
goToStart
# of steps to storage:
bringBack(18)
goToStart
# of steps to storage:
bringBack(25)
goToStart
# of steps to storage:
bringBack(33)
else
end
}
procedure bringBack(n)
repeatWhile( frontIsClear)
forward(1)
right
forward(n)
left
repeatWhile( frontIsClear)
forward(1)
backward(1)
putDown
procedure goToStart
right
right
repeatWhile( frontIsClear)
forward(1)
right
}
procedure goBackToStart
right
right
repeatWhile( frontIsClear )
forward(1)
right
repeatWhile( frontIsClear )
forward(1)
right
backward(6)
procedure getProduct
right
repeat()
if (frontIsClear)
forward(1)
else if (frontIsBeacon)
{
pickUp
return
else
end
repeat()
procedure putProductBack()
goToStart
bringBack(26)
goToStart
# of steps to storage:
bringBack(18)
goToStart
# of steps to storage:
bringBack(25)
{
# Robo returns to start
goToStart
# of steps to storage:
bringBack(33)
else
end
procedure bringBack(n)
repeatWhile( frontIsClear)
forward(1)
right
forward(n)
left
repeatWhile( frontIsClear)
forward(1)
backward(1)
putDown
procedure goToStart
right
right
repeatWhile( frontIsClear)
forward(1)
right
procedure goBackToStart
right
right
repeatWhile( frontIsClear )
forward(1)
right
repeatWhile( frontIsClear )
forward(1)
right
backward(6)
}
procedure getProduct
right
repeat()
if (frontIsClear)
forward(1)
else if (frontIsBeacon)
pickUp
return
else
end
repeat()
}
procedure putProductBack()
goToStart
# of steps to storage:
bringBack(33)
goToStart
# of steps to storage:
bringBack(18)
# of steps to storage:
bringBack(25)
goToStart
# of steps to storage:
bringBack(33)
else
end
procedure bringBack(n)
repeatWhile( frontIsClear)
{
forward(1)
right
forward(n)
left
repeatWhile( frontIsClear)
forward(1)
backward(1)
putDown
procedure goToStart
right
right
repeatWhile( frontIsClear)
forward(1)
right
procedure goBackToStart
right
right
repeatWhile( frontIsClear )
{
forward(1)
right
repeatWhile( frontIsClear )
forward(1)
right
backward(6)
procedure getProduct
right
repeat()
if (frontIsClear)
forward(1)
else if (frontIsBeacon)
pickUp
return
else
end
}
repeat()
procedure putProductBack()
goToStart
# of steps to storage:
bringBack(10)
goToStart
# of steps to storage:
bringBack(18)
goToStart
# of steps to storage:
bringBack(25)
goToStart
# of steps to storage:
bringBack(33)
}
else
end
procedure bringBack(n)
repeatWhile( frontIsClear)
forward(1)
right
forward(n)
left
repeatWhile( frontIsClear)
forward(1)
backward(1)
putDown
procedure goToStart
right
right
repeatWhile( frontIsClear)
forward(1)
right
procedure goBackToStart
right
right
repeatWhile( frontIsClear )
forward(1)
right
repeatWhile( frontIsClear )
forward(1)
right
backward(6)
procedure getProduct
right
repeat()
{
if (frontIsClear)
forward(1)
else if (frontIsBeacon)
pickUp
return
else
end
repeat()
procedure putProductBack()
goToStart
# of steps to storage:
bringBack(33)
goToStart
# of steps to storage:
bringBack(18)
goToStart
bringBack(25)
goToStart
# of steps to storage:
bringBack(33)
else
end
procedure bringBack(n)
repeatWhile( frontIsClear)
forward(1)
right
forward(n)
left
repeatWhile( frontIsClear)
forward(1)
backward(1)
putDown
procedure goToStart
right
right
repeatWhile( frontIsClear)
forward(1)
right
procedure goBackToStart
right
right
repeatWhile( frontIsClear )
forward(1)
}
right
repeatWhile( frontIsClear )
forward(1)
right
backward(6)
procedure getProduct
right
repeat()
if (frontIsClear)
forward(1)
else if (frontIsBeacon)
pickUp
return
else
end
}
Using flipCoin
if(flipCoin)
right
else
left
repeat(6)
if (flipCoin)
paintWhite
else
paintBlack
stopPainting
forward(1)
repeat(3)
{
if (flipCoin)
paintWhite
else
paintBlack
stopPainting
forward(1)
repeat(6)
if (flipCoin)
paintWhite
else
paintBlack
stopPainting
forward(1)
}
Robo finds a beacon all by himself!
repeat
if(frontIsBeacon)
eatup
end
if (flipCoin)
forward (2)
right
else
# 3. Complete:
left
if(frontIsBeacon)
{
eatup
end
if (flipCoin)
forward
right
else
# 3. Complete:
left
repeat
if(frontIsBeacon)
eatup
eatup
eatup
eatup
end
if (flipCoin)
forward
right
else
# 3. Complete:
left
No more collisions ..
paintwhite
repeat
if(frontIsBeacon)
eatup
eatup
eatup
eatup
end
if (leftisobstacle)
right
forward
if (rightisobstacle)
left
forward
if (flipCoin)
forward
right
else
# 3. Complete:
left
}
if(frontIsBeacon)
# 1. Complete:pickUppickUp
eatUp
end
if (flipCoin)
# 2. Complete:
forward
left
forward
right
backward
backward
backward
backward
else
# 3. Complete:left
right
repeat(1)
if(frontisclear)
forward(4)
right
if (frontisbeacon)
pickup
forward (5)
right
putdown
if (flipcoin)
left
procedure findpothole
repeat(1)
if(frontisclear)
right
forward (4)
left
forward
right
forward (2)
if (frontisbeacon)
pickup
left (2)
forward (5)
right
forward
putdown
repeat(1)
if(frontisclear)
forward
right
forward (8)
if (frontisbeacon)
pickup
}
left (2)
forward
putdown
if (flipcoin)
left
procedure findpothole
findBeacon
findPothole
# 1. Complete:
procedure findBeacon
repeat
{
right
right
forward
else if(frontIsBeacon)
pickUp
break
if(flipCoin )
left
forward (1)
else
right
forward(1)
}
}
procedure findPothole
repeat
if (frontIsBlack )
putDown
break
if (flipCoin )
left
forward(1)
else
right
forward(1)
}
}
return
findBeacon
findPothole
# 1. Complete:
procedure findBeacon
repeat
right
right
forward
else if(frontIsBeacon)
pickUp
break
if(flipCoin )
left
forward (1)
else
{
right
forward(1)
procedure findPothole
repeat
if (frontIsBlack )
putDown
break
if (flipCoin )
left
forward(1)
}
else
right
forward(1)
}
return
findBeacon
findPothole
# 1. Complete:
procedure findBeacon
repeat
right
right
forward
else if(frontIsBeacon)
pickUp
break
}
if(flipCoin )
left
forward (1)
else
right
forward(1)
procedure findPothole
repeat
if (frontIsBlack )
{
putDown
break
if (flipCoin )
left
forward(1)
else
right
forward(1)
}
}
return
EL CURSO TE DARA EL 94 PORCIENTO, ES LO MINIMO QUE EL PROFE PIDE, POR LO QUE HASTA AHÍ
LLEGUE JEJEJE
-Ricardo