OII > Tartaruga

Olimpiadi Italiane di Informatica – 20-11-2019 – Numero 18

La grafica della tartaruga prevede che si possano impartire degli ordini di movimento a una tartaruga, che li eseguirà lasciando sul terreno una traccia dei suoi movimenti, come se avesse una penna attaccata sotto la pancia.

Gli ordini possono essere impartiti tramite un semplice linguaggio, stando attenti che:

  • le istruzioni destra e sinistra sono relative all’orientamento attuale della tartaruga, e il numero che segue è un angolo di rotazione (rispettivamente orario e antiorario) espresso in gradi;
  • le istruzioni pennasu e pennagiu sollevano e abbassano rispettivamente la penna sotto la pancia della tartaruga: quando la penna è sollevata ovviamente non lascia tracce sul terreno;
  • l’istruzione ripeti fa ripetere il blocco che segue, delimitato da parentesi graffe, per un numero di volte indicato a fianco dell’istruzione.

Quest’anno la tartaruga vuole realizzare un autoritratto.
Prima ha disegnato la sua sagoma a matita (in figura la linea tratteggiata) e poi ha iniziato a ricalcarla con la penna.
In questo momento la tartaruga si trova nel vertice in alto a sinistra dell’esagono più alto ed è nella condizione pennagiu, sapendo che gli esagoni del carapace sono regolari e hanno lato l, scegliere tra le seguenti quattro alternative quella che non fa il disegno corretto.

Alternativa A

ripeti 4 {
   destra 60
   avanti l
   sinistra 60
   avanti l
}
ripeti 4 {
   sinistra 60
   avanti l
}
ripeti 3 {
   pennasu
   destra 180
   avanti l
   pennagiu
   ripeti 3 {
      sinistra 60
      avanti l
   }
}

Alternativa B

ripeti 4 {
   destra 60
   avanti l
   sinistra 60
   avanti l
}
ripeti 4 {
   sinistra 60
   avanti l
}
ripeti 3 {
   pennasu
   sinistra 180
   avanti l
   pennagiu
   ripeti 3 {
      sinistra 60
      avanti l
   }
}

Alternativa C

ripeti 4 {
   avanti l
   destra 60
   sinistra 60
   avanti l
}
ripeti 4 {
   sinistra 60
   avanti l
}
ripeti 3 {
   pennasu
   destra 180
   avanti l
   pennagiu
   ripeti 3 {
      sinistra 60
      avanti l
   }
}

Alternativa D

ripeti 4 {
   destra 60
   avanti l
   sinistra 60
   avanti l
}
ripeti 4 {
   sinistra 60
   avanti l
}
ripeti 3 {
   destra 180
   pennasu
   avanti l
   pennagiu
   ripeti 3 {
      sinistra 60
      avanti l
   }
}

Disegna la stessa figura utilizzando Python e il modulo Turtle

  • La direzione iniziale della tartaruga? Si rende necessaria una rotazione di 60° verso destra.
  • Le versioni A, B, D disegnano la stessa figura (4 esagoni in verticale)

Alternativa A

from turtle import *

lato = 100

right(60)

for i in range(4):
   right(60)
   forward(lato)
   left(60)
   forward(lato)

for i in range(4):
   left(60)
   forward(lato)

for i in range(3):
   penup()
   right(180)
   forward(lato)
   pendown()
   for j in range(3):
      left(60)
      forward(lato)

Alternativa B

from turtle import *

lato = 100

right(60)

for i in range(4):
   right(60)
   forward(lato)
   left(60)
   forward(lato)

for i in range(4):
   left(60)
   forward(lato)

for i in range(3):
   penup()
   left(180)
   forward(lato)
   pendown()
   for j in range(3):
      left(60)
      forward(lato)

Alternativa C

from turtle import *

lato = 100

right(60)

for i in range(4):
   forward(lato)
   right(60)   
   left(60)
   forward(lato)

for i in range(4):
   left(60)
   forward(lato)

for i in range(3):
   penup()
   right(180)
   forward(lato)
   pendown()
   for j in range(3):
      left(60)
      forward(lato)

Alternativa D

from turtle import *

lato = 100

right(60)

for i in range(4):
   right(60)   
   forward(lato)
   left(60)
   forward(lato)

for i in range(4):
   left(60)
   forward(lato)

for i in range(3):
   right(180)
   penup()
   forward(lato)
   pendown()
   for j in range(3):
      left(60)
      forward(lato)

Lascia un commento