Scrivi una Sub per ogni lettera e poi richiamale nell’ordine desiderato…
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.
For n=1 To 4 GraphicsWindow.PenWidth=n ScriviACCIAIO() Turtle.TurnRight() EndFor Sub ScriviACCIAIO ScriviA() ScriviC() ScriviC() ScriviI() ScriviA() ScriviI() ScriviO() EndSub ...