OII > Dieci quadrati

201314_ss_16

Olimpiadi Italiane di Informatica – 21-11-2013 – Numero 16

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 sulla 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 espresso in gradi;
  • 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.

Data la seguente figura a sinistra prodotta con la grafica della tartaruga e il seguente codice che l’ha prodotta, indicare quali numeri mancano nelle posizioni indicate dalle lettere X, Y e Z

lato = 10
ripeti 10
{
	ripeti --- X ---
	{
		avanti lato
		destra 90
	}
	pennasu
	sinistra 90
	avanti --- Y ---
	sinistra 90
	avanti --- Z ---
	sinistra 180
	pennagiu
	lato = lato + 20
}

L’immagine dell’esercizio è stata prodotta con l’ambiente di programmazione KTurtle.

201314_ss_16_s

Nella figura trovi l’applicazione funzionante e le costanti richieste!

  • X = 4
  • Y = 10
  • Z = 10

Disegna la stessa figura utilizzando Python e il modulo Turtle

import turtle

WIDTH  = 800  # larghezza finestra
HEIGHT = 800  # altezza finestra

turtle.setup(WIDTH, HEIGHT)
turtle.shape("turtle")
turtle.bgcolor("pink")
turtle.pencolor("red")
turtle.pensize(4)
turtle.speed(0)

DISTANZA = 25
PASSO    = DISTANZA

for quadrato in range(10):
    turtle.pendown()
    for lato in range(4):
        turtle.forward(DISTANZA)
        turtle.right(90)

    turtle.penup()
    turtle.left(90)
    turtle.forward(PASSO)
    turtle.left(90)
    turtle.forward(PASSO)
    turtle.right(180)
    DISTANZA += 2*PASSO

turtle.done()

Lascia un commento