Rurple NG

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.

rurple-ng

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

  1. Nel pannello a destra è presente un labirinto (più o meno complicato) con all’interno un robot (!).
  2. Il robot si muove secondo i comandi impartiti dalle 2 frecce della tastiera
    1. Su, avanza di un passo
    2. Sinistra, si gira verso sinistra.
  3. Se tenta di superare la parete provocherà un errore.
  4. Lo scenario si modifica con il clic del mouse
    • sulla griglia, aggiunge / rimuove una parete
    • al centro della cella, imposta il numero di sassi.
  5. A differenza di RUR-PLE gli oggetti si chiamano stone piuttosto che beeper.

La barra degli strumenti contiene

  • btn_reset_world Reset world – Ctrl-R
  • btn_run Run program – F8
  • btn_pause Pause program
  • btn_stop Stop program – Ctrl-F2
  • btn_step Step program – F5
  • Speed, cursore orizzontale che imposta la velocità, anche in esecuzione

La barra dei menu contiene

  1. File
    • New
    • Open…
    • Open sample…
    • Save
    • Save as…
    • Exit
  2. Run
    • Run
    • Pause
    • Stop
    • Step
  3. World
    • Reset
    • New…
    • Open…
    • Open sample…
    • Save
    • Save as…
    • Set stones…
  4. 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

  1. I programmi più semplici sono costituiti soltanto da 2 istruzioni
    1. move(), avanza di un passo
    2. turn_left(), si gira verso sinistra.
  2. 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.
  3. A differenza di RUR-PLE
    • Il robot si ferma quando il programma finisce, non è necessario il comando turn_off()
    • Non sono supportati robot multipli.
  4. Una prima riga di codice viene eseguita automaticamente
    from __future__ import division, print_function, unicode_literals
    Quindi…

    1. il comando print() si scrive con le parentesi come tutti gli altri comandi
    2. 3/2 -> 1.5
    3. 3//2 -> 1

Sono disponibili i comandi seguenti

  1. move()
  2. turn_left()
  3. front_is_clear()
    • left_is_clear()
    • right_is_clear()
  4. facing_north()
  5. pick_stone()
    • put_stone()
    • on_stone()
    • got_stone()
  6. roll_dice()
  7. input_string()
    • input_int()
  8. print()

In realtà si può utilizzare tutta la potenza del linguaggio di programmazione Python 2009.

Esempi 1

svolta 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
passo_1
passo_2
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
quadrato_a 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()
quadrato2 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

  1. si sposta in avanti
  2. incontra un sasso
  3. lo raccoglie
  4. si sposta in avanti
  5. lo rilascia
  6. si sposta in avanti
mpve()
pick_stone()
move()
put_stone()
move()

RISORSE ONLINE

  1. Rurple NG: teaching programming with Python
  2. Teaching programming, RUR-PLE, and Rurple NG
  3. YouTube > Rurple NG 0.5 demonstration
  4. Bitbucket