-
Notifications
You must be signed in to change notification settings - Fork 1
/
test.spy
160 lines (152 loc) · 3.13 KB
/
test.spy
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
INICIOPROGRAMA
crear entero global1;
crear flotante global2;
crear entero arrGlobal[150];
crear entero despues;
INICIOFUNCION entero circulo PARAMETROS entero lado
crear entero x;
x = 180;
MIENTRAS x>0 HACER
INICIOBLOQUE
MOVER 1;
GIRARDERECHA 1;
MOVER 1;
GIRARDERECHA 1;
x = x -1;
FINBLOQUE
FINMIENTRAS
REGRESA 1;
FINFUNCION
INICIOFUNCION entero triangulo PARAMETROS entero lado
crear entero x;
x = 3;
MIENTRAS x>0 HACER
INICIOBLOQUE
MOVER lado;
GIRARDERECHA 120;
x = x -1;
FINBLOQUE
FINMIENTRAS
REGRESA 1;
FINFUNCION
INICIOFUNCION entero trianguloRecursivo PARAMETROS entero lado, entero veces
crear entero x;
SI (veces == 0) ENTONCES
INICIOBLOQUE
FINBLOQUE
SINO
INICIOBLOQUE
MOVER 200;
GIRARDERECHA 120;
veces = veces - 1;
DECIRALUSUARIO(veces);
trianguloRecursivo(lado,veces);
FINBLOQUE
FINSI
REGRESA 1;
FINFUNCION
INICIOFUNCION entero pentagono PARAMETROS entero lado
crear entero x;
x = 5;
MIENTRAS x>0 HACER
INICIOBLOQUE
MOVER lado;
GIRARDERECHA 72;
x = x -1;
FINBLOQUE
FINMIENTRAS
REGRESA 1;
FINFUNCION
INICIOFUNCION entero fractalEstrella PARAMETROS entero lado
crear entero x;
x = 18;
DESPINTAR;
GIRARIZQUIERDA 180;
MOVER 20;
PINTAR;
MIENTRAS x>0 HACER
INICIOBLOQUE
MOVER 200;
GIRARDERECHA 100;
x = x -1;
FINBLOQUE
FINMIENTRAS
REGRESA 1;
FINFUNCION
INICIOFUNCION entero fractalArbol PARAMETROS entero branchLen
SI branchLen > 5 ENTONCES
INICIOBLOQUE
MOVER(branchLen);
GIRARDERECHA(20);
fractalArbol(branchLen - 15);
GIRARIZQUIERDA(40);
fractalArbol(branchLen - 15);
GIRARDERECHA(20);
RETROCEDE(branchLen);
FINBLOQUE
FINSI
REGRESA 1;
FINFUNCION
INICIOFUNCION flotante fractalSnowFlake PARAMETROS flotante longitud, entero profundidad
crear flotante x;
SI profundidad < 0 ENTONCES
INICIOBLOQUE
MOVER(longitud);
FINBLOQUE
SINO
INICIOBLOQUE
fractalSnowFlake(longitud/3.0, profundidad-1);
GIRARDERECHA(60);
fractalSnowFlake(longitud/3.0, profundidad-1);
GIRARIZQUIERDA(120);
fractalSnowFlake(longitud/3.0, profundidad-1);
GIRARDERECHA(60);
fractalSnowFlake(longitud/3.0, profundidad-1);
FINBLOQUE
FINSI
REGRESA 1.0;
FINFUNCION
INICIOPRINCIPAL
crear entero index;
crear flotante num;
crear booleano var2main;
PEDIRALUSUARIO(index);
si index == 1 ENTONCES
INICIOBLOQUE
circulo(1);
FINBLOQUE
FINSI
SI index == 2 ENTONCES
INICIOBLOQUE
triangulo(100);
FINBLOQUE
FINSI
SI index == 22 ENTONCES
INICIOBLOQUE
trianguloRecursivo(100,3);
FINBLOQUE
FINSI
SI index == 3 ENTONCES
INICIOBLOQUE
pentagono(100);
FINBLOQUE
FINSI
SI index == 4 ENTONCES
INICIOBLOQUE
fractalEstrella(100);
FINBLOQUE
FINSI
SI index == 5 ENTONCES
INICIOBLOQUE
GIRARIZQUIERDA(90);
RETROCEDE(100);
fractalArbol(100);
FINBLOQUE
FINSI
SI index == 6 ENTONCES
INICIOBLOQUE
fractalSnowFlake(500.0,4);
FINBLOQUE
FINSI
FINPRINCIPAL
FINPROGRAMA