Vai al contenuto

Scrive ACCIAIO

Tag:

Scrivi una Sub per ogni lettera e poi richiamale nell’ordine desiderato…

scrive_acciaio

Turtle.Speed=10
Turtle.X=150

ScriviA()
ScriviC()
ScriviC()
ScriviI()
ScriviA()
ScriviI()
ScriviO()

Sub ScriviA
  Turtle.PenDown()
  Turtle.Move(50)
  Turtle.Turn(90)
  Turtle.Move(25)
  Turtle.Turn(90)
  Turtle.Move(25)
  Turtle.Turn(90)
  Turtle.Move(25)
  Turtle.Move(-25)
  Turtle.Turn(-90)
  Turtle.Move(25)
  Turtle.PenUp()
  Turtle.Turn(-90)
  Turtle.Move(25)
  Turtle.Turn(-90)
EndSub

Sub ScriviC
  Turtle.PenDown()
  Turtle.Move(50)
  Turtle.Turn(90)
  Turtle.Move(25)
  Turtle.PenUp() 
  Turtle.Turn(90) 
  Turtle.Move(50)
  Turtle.Turn(90)
  Turtle.PenDown()
  Turtle.Move(25)
  Turtle.PenUp()
  Turtle.Move(-50)
  Turtle.Turn(90)
EndSub

Sub ScriviI
  Turtle.PenDown()
  Turtle.Move(50)
  Turtle.PenUp()
  Turtle.Move(-50)
  Turtle.Turn(90)
  Turtle.Move(25)
  Turtle.Turn(-90)
EndSub

Sub ScriviO
  Turtle.PenDown()
  Turtle.Move(50)
  Turtle.Turn(90)
  Turtle.Move(25)  
  Turtle.Turn(90) 
  Turtle.Move(50)
  Turtle.Turn(90) 
  Turtle.Move(25)
  Turtle.PenUp()
  Turtle.Move(-50)
  Turtle.Turn(90)
EndSub

Il codice può essere semplificato utilizzando delle costanti per le distanze e le funzioni per gli angoli di 90 gradi

PASSO =25
PASSO2=2*PASSO
...
Turtle.TurnLeft()
...
Turtle.TurnRight()
...

Diventa semplice scrivere con dimensioni diverse

Turtle.Speed=10

PASSO =25
PASSO2=2*PASSO
Turtle.X=100
Turtle.Y=150
ScriviACCIAIO()

PASSO =30
PASSO2=2*PASSO
Turtle.X=100
Turtle.Y=250
ScriviACCIAIO()

PASSO =35
PASSO2=2*PASSO
Turtle.X=100
Turtle.Y=350
ScriviACCIAIO()


Sub ScriviACCIAIO
   ScriviA()
   ScriviC()
   ScriviC()
   ScriviI()
   ScriviA()
   ScriviI()
   ScriviO()
EndSub

Sub ScriviA
  Turtle.PenDown()
  Turtle.Move(PASSO2)
  Turtle.TurnRight()
  Turtle.Move(PASSO)
  Turtle.TurnRight()
  Turtle.Move(PASSO)
  Turtle.TurnRight()
  Turtle.Move(PASSO)
  Turtle.Move(-PASSO)
  Turtle.TurnLeft()
  Turtle.Move(PASSO)
  Turtle.PenUp()
  Turtle.TurnLeft()
  Turtle.Move(PASSO)
  Turtle.TurnLeft()
EndSub

Sub ScriviC
  Turtle.PenDown()
  Turtle.Move(PASSO2)
  Turtle.TurnRight()
  Turtle.Move(PASSO)
  Turtle.PenUp() 
  Turtle.TurnRight()
  Turtle.Move(PASSO2)
  Turtle.TurnRight()
  Turtle.PenDown()
  Turtle.Move(PASSO)
  Turtle.PenUp()
  Turtle.Move(-PASSO2)
  Turtle.TurnRight()
EndSub

Sub ScriviI
  Turtle.PenDown()
  Turtle.Move(PASSO2)
  Turtle.PenUp()
  Turtle.Move(-PASSO2)
  Turtle.TurnRight()
  Turtle.Move(PASSO)
  Turtle.TurnLeft()
EndSub

Sub ScriviO
  Turtle.PenDown()
  Turtle.Move(PASSO2)
  Turtle.TurnRight()
  Turtle.Move(PASSO)  
  Turtle.TurnRight()
  Turtle.Move(PASSO2)
  Turtle.TurnRight()
  Turtle.Move(PASSO)
  Turtle.PenUp()
  Turtle.Move(-PASSO2)
  Turtle.TurnRight()
EndSub

Scrivere ACCIAIO diventa una Sub richiamata 4 volte.
Cambia anche lo spessore / il colore della penna.

scrive_acciaio4

For n=1 To 4
   GraphicsWindow.PenWidth=n
   ScriviACCIAIO()
   Turtle.TurnRight()
EndFor


Sub ScriviACCIAIO
   ScriviA()
   ScriviC()
   ScriviC()
   ScriviI()
   ScriviA()
   ScriviI()
   ScriviO()
EndSub

...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.