Presentazione ufficiale
Rurple NG is a tool for teaching programming to those who have never programmed before.
It is very closely based on an existing tool, RUR-PLE, but in a brand new implementation with various improvements.
Prova!
- IDE
- SINTASSI
- Esempi 1 (percorsi)
- Esempi 2 (sassi)
IDE
Rurple NG è un IDE rivolto a chi vuole imparare le basi della programmazione.
Sfrutta i punti di forza di RUR-PLE ma con delle modifiche per semplificare l’utilizzo.
Osserva
- Nel pannello a destra è presente un labirinto (più o meno complicato) con all’interno un robot (!).
- Il robot si muove secondo i comandi impartiti dalle 2 frecce della tastiera
- Su, avanza di un passo
- Sinistra, si gira verso sinistra.
- Se tenta di superare la parete provocherà un errore.
- Lo scenario si modifica con il clic del mouse
- sulla griglia, aggiunge / rimuove una parete
- al centro della cella, imposta il numero di sassi.
- A differenza di RUR-PLE gli oggetti si chiamano stone piuttosto che beeper.
La barra degli strumenti contiene
- Reset world – Ctrl-R
- Run program – F8
- Pause program
- Stop program – Ctrl-F2
- Step program – F5
- Speed, cursore orizzontale che imposta la velocità, anche in esecuzione
La barra dei menu contiene
- File
- New
- Open…
- Open sample…
- Save
- Save as…
- Exit
- Run
- Run
- Pause
- Stop
- Step
- World
- Reset
- New…
- Open…
- Open sample…
- Save
- Save as…
- Set stones…
- Help
- About…
SINTASSI
Nel pannello di sinistra si scrive il codice (programma) per impartire un certo comportamento.
La sintassi del linguaggio sfrutta i punti di forza di RUR-PLE ma con delle modifiche per semplificare l’utilizzo
- I programmi più semplici sono costituiti soltanto da 2 istruzioni
- move(), avanza di un passo
- turn_left(), si gira verso sinistra.
- In caso di errore la linea di codice responsabile sarà illuminata.
- L’errore e il numero di riga vengono scritti anche nel pannello sotto lo scenario.
- A differenza di RUR-PLE
- Il robot si ferma quando il programma finisce, non è necessario il comando turn_off()
- Non sono supportati robot multipli.
- Una prima riga di codice viene eseguita automaticamente
from __future__ import division, print_function, unicode_literals
Quindi…- il comando print() si scrive con le parentesi come tutti gli altri comandi
- 3/2 -> 1.5
- 3//2 -> 1
Sono disponibili i comandi seguenti
- move()
- turn_left()
- front_is_clear()
- left_is_clear()
- right_is_clear()
- facing_north()
- pick_stone()
- put_stone()
- on_stone()
- got_stone()
- roll_dice()
- input_string()
- input_int()
- print()
In realtà si può utilizzare tutta la potenza del linguaggio di programmazione Python 2009.
Esempi 1
Con turn_left() svolta a sinistra rispetto alla direzione attuale
move() # turn_left() # NORD move() # |
|
Ripete 4 volte un passo in avanti e gira a sinistra
move() # turn_left() # NORD move() # turn_left() # OVEST move() # turn_left() # SUD move() # turn_left() # EST |
|
Il robot si trova nella 2° cella in basso e deve spostarsi nella 1° cella, mantenendo lo stesso orientamento
turn_left() # NORD turn_left() # OVEST move() # turn_left() # SUD turn_left() # EST |
|
Il robot gira intorno a un ostacolo
turn_left() # NORD move() turn_left() # EST turn_left() turn_left() move() turn_left() # SUD turn_left() turn_left() move() turn_left() # EST |
|
Il robot percorre un quadrato ma in senso antiorario, quindi deve svoltare in modo strano…
turn_left() # NORD move() turn_left() # EST turn_left() turn_left() move() turn_left() # SUD turn_left() turn_left() move() turn_left() # OVEST turn_left() turn_left() move() turn_left() # EST turn_left() |
|
Con due movimenti per volta disegna un quadrato di lato doppio. | |
… | |
Lo scenario prevede un corridoio contorto.
move() move() move() move() turn_left() # NORD move() move() turn_left() # OVEST move() move() turn_left() # SUD move() move() move() move() |
|
Il corridoio da percorrere ha lunghezza decrescente.
Conviene usare una funzione con parametro. |
|
… | |
… |
Esempi 2
Osserva le mosse del robot
mpve() pick_stone() move() put_stone() move() |
|