Le prime 6 righe della mappa contengono coppie di bit.
Il bianco corrisponde a vero.
ROBO deve calcolare l’OR logico di coppie di bit.
Il robot osserva i bit e in caso di risultato vero traccia una linea bianca a destra.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
repeat(6) { left() calcola() south(1) right() right() } procedure calcola() { if(frontIsWhite()) { scrivi() } else { west(1) if(frontIsWhite()) { east(1) scrivi() west(1) } east(1) left() } } procedure scrivi() { east(1) paintWhite() east(1) stopPainting() west(2) } |
Si può fare meglio?
ROBO deve calcolare l’AND logico di ogni coppia di bit a sinistra.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
repeat(6) { left() calcola() south(1) right() right() } procedure calcola() { if(frontIsWhite()) { west(1) if(frontIsWhite()) { scrivi() } else { east(1) } } } procedure scrivi() { east(2) paintWhite() east(1) stopPainting() west(2) } |