Scrivi una Sub per ogni lettera e poi richiamale nell’ordine desiderato…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
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
1 2 3 4 5 6 7 |
PASSO =25 PASSO2=2*PASSO ... Turtle.TurnLeft() ... Turtle.TurnRight() ... |
Diventa semplice scrivere con dimensioni diverse
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
For n=1 To 4 GraphicsWindow.PenWidth=n ScriviACCIAIO() Turtle.TurnRight() EndFor Sub ScriviACCIAIO ScriviA() ScriviC() ScriviC() ScriviI() ScriviA() ScriviI() ScriviO() EndSub ... |