224 lines
7.4 KiB
Factor
224 lines
7.4 KiB
Factor
|
|
USING: kernel namespaces arrays sequences threads math math.vectors
|
|
ui random springies springies.ui ;
|
|
|
|
IN: springies.models.2x2snake
|
|
|
|
: model ( -- )
|
|
|
|
{ } clone >nodes
|
|
{ } clone >springs
|
|
0.002 >time-slice
|
|
gravity off
|
|
|
|
1 147.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
2 164.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
3 182.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
4 200.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
5 218.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
6 236.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
7 254.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
8 272.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
9 290.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
10 308.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
11 326.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
12 344.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
13 362.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
14 380.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
15 398.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
16 416.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
17 434.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
18 452.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
19 470.0 324.0 0.0 0.0 1.0 1.0 mass
|
|
20 147.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
21 164.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
22 182.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
23 200.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
24 218.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
25 236.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
26 254.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
27 272.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
28 290.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
29 308.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
30 326.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
31 344.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
32 362.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
33 380.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
34 398.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
35 416.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
36 434.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
37 452.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
38 470.0 298.0 0.0 0.0 1.0 1.0 mass
|
|
1 1 2 200.0 1.500000 18.0 spng
|
|
2 3 2 200.0 1.500000 18.0 spng
|
|
3 3 4 200.0 1.500000 18.0 spng
|
|
4 4 5 200.0 1.500000 18.0 spng
|
|
5 5 6 200.0 1.500000 18.0 spng
|
|
6 6 7 200.0 1.500000 18.0 spng
|
|
7 7 8 200.0 1.500000 18.0 spng
|
|
8 8 9 200.0 1.500000 18.0 spng
|
|
9 9 10 200.0 1.500000 18.0 spng
|
|
10 10 11 200.0 1.500000 18.0 spng
|
|
11 11 12 200.0 1.500000 18.0 spng
|
|
12 12 13 200.0 1.500000 18.0 spng
|
|
13 13 14 200.0 1.500000 18.0 spng
|
|
14 14 15 200.0 1.500000 18.0 spng
|
|
15 15 16 200.0 1.500000 18.0 spng
|
|
16 16 17 200.0 1.500000 18.0 spng
|
|
17 17 18 200.0 1.500000 18.0 spng
|
|
18 18 19 200.0 1.500000 18.0 spng
|
|
19 1 3 200.0 1.500000 36.0 spng
|
|
20 2 4 200.0 1.500000 36.0 spng
|
|
21 3 5 200.0 1.500000 36.0 spng
|
|
22 4 6 200.0 1.500000 36.0 spng
|
|
23 5 7 200.0 1.500000 36.0 spng
|
|
24 6 8 200.0 1.500000 36.0 spng
|
|
25 7 9 200.0 1.500000 36.0 spng
|
|
26 8 10 200.0 1.500000 36.0 spng
|
|
27 9 11 200.0 1.500000 36.0 spng
|
|
28 10 12 200.0 1.500000 36.0 spng
|
|
29 11 13 200.0 1.500000 36.0 spng
|
|
30 12 14 200.0 1.500000 36.0 spng
|
|
31 13 15 200.0 1.500000 36.0 spng
|
|
32 14 16 200.0 1.500000 36.0 spng
|
|
33 15 17 200.0 1.500000 36.0 spng
|
|
34 16 18 200.0 1.500000 36.0 spng
|
|
35 17 19 200.0 1.500000 36.0 spng
|
|
36 20 21 200.0 1.500000 18.0 spng
|
|
37 22 21 200.0 1.500000 18.0 spng
|
|
38 22 23 200.0 1.500000 18.0 spng
|
|
39 23 24 200.0 1.500000 18.0 spng
|
|
40 24 25 200.0 1.500000 18.0 spng
|
|
41 25 26 200.0 1.500000 18.0 spng
|
|
42 26 27 200.0 1.500000 18.0 spng
|
|
43 27 28 200.0 1.500000 18.0 spng
|
|
44 28 29 200.0 1.500000 18.0 spng
|
|
45 29 30 200.0 1.500000 18.0 spng
|
|
46 30 31 200.0 1.500000 18.0 spng
|
|
47 31 32 200.0 1.500000 18.0 spng
|
|
48 32 33 200.0 1.500000 18.0 spng
|
|
49 33 34 200.0 1.500000 18.0 spng
|
|
50 34 35 200.0 1.500000 18.0 spng
|
|
51 35 36 200.0 1.500000 18.0 spng
|
|
52 36 37 200.0 1.500000 18.0 spng
|
|
53 37 38 200.0 1.500000 18.0 spng
|
|
54 20 22 200.0 1.500000 36.0 spng
|
|
55 21 23 200.0 1.500000 36.0 spng
|
|
56 22 24 200.0 1.500000 36.0 spng
|
|
57 23 25 200.0 1.500000 36.0 spng
|
|
58 24 26 200.0 1.500000 36.0 spng
|
|
59 25 27 200.0 1.500000 36.0 spng
|
|
60 26 28 200.0 1.500000 36.0 spng
|
|
61 27 29 200.0 1.500000 36.0 spng
|
|
62 28 30 200.0 1.500000 36.0 spng
|
|
63 29 31 200.0 1.500000 36.0 spng
|
|
64 30 32 200.0 1.500000 36.0 spng
|
|
65 31 33 200.0 1.500000 36.0 spng
|
|
66 32 34 200.0 1.500000 36.0 spng
|
|
67 33 35 200.0 1.500000 36.0 spng
|
|
68 34 36 200.0 1.500000 36.0 spng
|
|
69 35 37 200.0 1.500000 36.0 spng
|
|
70 36 38 200.0 1.500000 36.0 spng
|
|
71 1 20 200.0 1.500000 26.0 spng
|
|
72 2 21 200.0 1.500000 26.0 spng
|
|
73 3 22 200.0 1.500000 26.0 spng
|
|
74 4 23 200.0 1.500000 26.0 spng
|
|
75 5 24 200.0 1.500000 26.0 spng
|
|
76 25 6 200.0 1.500000 26.0 spng
|
|
77 7 26 200.0 1.500000 26.0 spng
|
|
78 27 8 200.0 1.500000 26.0 spng
|
|
79 9 28 200.0 1.500000 26.0 spng
|
|
80 29 10 200.0 1.500000 26.0 spng
|
|
81 11 30 200.0 1.500000 26.0 spng
|
|
82 31 12 200.0 1.500000 26.0 spng
|
|
83 13 32 200.0 1.500000 26.0 spng
|
|
84 33 14 200.0 1.500000 26.0 spng
|
|
85 15 34 200.0 1.500000 26.0 spng
|
|
86 35 16 200.0 1.500000 26.0 spng
|
|
87 17 36 200.0 1.500000 26.0 spng
|
|
88 37 18 200.0 1.500000 26.0 spng
|
|
89 19 38 200.0 1.500000 26.0 spng
|
|
90 1 21 200.0 1.500000 31.064449 spng
|
|
91 2 20 200.0 1.500000 31.064449 spng
|
|
92 2 22 200.0 1.500000 31.622777 spng
|
|
93 3 21 200.0 1.500000 31.622777 spng
|
|
94 3 23 200.0 1.500000 31.622777 spng
|
|
95 4 22 200.0 1.500000 31.622777 spng
|
|
96 4 24 200.0 1.500000 31.622777 spng
|
|
97 5 23 200.0 1.500000 31.622777 spng
|
|
98 5 25 200.0 1.500000 31.622777 spng
|
|
99 6 24 200.0 1.500000 31.622777 spng
|
|
100 6 26 200.0 1.500000 31.622777 spng
|
|
101 7 25 200.0 1.500000 31.622777 spng
|
|
102 7 27 200.0 1.500000 31.622777 spng
|
|
103 8 26 200.0 1.500000 31.622777 spng
|
|
104 8 28 200.0 1.500000 31.622777 spng
|
|
105 9 27 200.0 1.500000 31.622777 spng
|
|
106 9 29 200.0 1.500000 31.622777 spng
|
|
107 10 28 200.0 1.500000 31.622777 spng
|
|
108 10 30 200.0 1.500000 31.622777 spng
|
|
109 11 29 200.0 1.500000 31.622777 spng
|
|
110 11 31 200.0 1.500000 31.622777 spng
|
|
111 12 30 200.0 1.500000 31.622777 spng
|
|
112 12 32 200.0 1.500000 31.622777 spng
|
|
113 13 31 200.0 1.500000 31.622777 spng
|
|
114 13 33 200.0 1.500000 31.622777 spng
|
|
115 14 32 200.0 1.500000 31.622777 spng
|
|
116 14 34 200.0 1.500000 31.622777 spng
|
|
117 15 33 200.0 1.500000 31.622777 spng
|
|
118 15 35 200.0 1.500000 31.622777 spng
|
|
119 16 34 200.0 1.500000 31.622777 spng
|
|
120 16 36 200.0 1.500000 31.622777 spng
|
|
121 17 35 200.0 1.500000 31.622777 spng
|
|
122 17 37 200.0 1.500000 31.622777 spng
|
|
123 18 36 200.0 1.500000 31.622777 spng
|
|
124 18 38 200.0 1.500000 31.622777 spng
|
|
125 19 37 200.0 1.500000 31.622777 spng
|
|
126 1 22 200.0 1.500000 43.600459 spng
|
|
127 3 20 200.0 1.500000 43.600459 spng
|
|
128 2 23 200.0 1.500000 44.407207 spng
|
|
129 4 21 200.0 1.500000 44.407207 spng
|
|
130 3 24 200.0 1.500000 44.407207 spng
|
|
131 5 22 200.0 1.500000 44.407207 spng
|
|
132 4 25 200.0 1.500000 44.407207 spng
|
|
133 6 23 200.0 1.500000 44.407207 spng
|
|
134 5 26 200.0 1.500000 44.407207 spng
|
|
135 7 24 200.0 1.500000 44.407207 spng
|
|
136 6 27 200.0 1.500000 44.407207 spng
|
|
137 8 25 200.0 1.500000 44.407207 spng
|
|
138 7 28 200.0 1.500000 44.407207 spng
|
|
139 9 26 200.0 1.500000 44.407207 spng
|
|
140 8 29 200.0 1.500000 44.407207 spng
|
|
141 10 27 200.0 1.500000 44.407207 spng
|
|
142 9 30 200.0 1.500000 44.407207 spng
|
|
143 11 28 200.0 1.500000 44.407207 spng
|
|
144 10 31 200.0 1.500000 44.407207 spng
|
|
145 12 29 200.0 1.500000 44.407207 spng
|
|
146 11 32 200.0 1.500000 44.407207 spng
|
|
147 13 30 200.0 1.500000 44.407207 spng
|
|
148 12 33 200.0 1.500000 44.407207 spng
|
|
149 14 31 200.0 1.500000 44.407207 spng
|
|
150 13 34 200.0 1.500000 44.407207 spng
|
|
151 15 33 200.0 1.500000 31.622777 spng
|
|
152 32 15 200.0 1.500000 44.407207 spng
|
|
153 14 35 200.0 1.500000 44.407207 spng
|
|
154 16 33 200.0 1.500000 44.407207 spng
|
|
155 15 36 200.0 1.500000 44.407207 spng
|
|
156 34 17 200.0 1.500000 44.407207 spng
|
|
157 16 37 200.0 1.500000 44.407207 spng
|
|
158 18 35 200.0 1.500000 44.407207 spng
|
|
159 17 38 200.0 1.500000 44.407207 spng
|
|
160 19 36 200.0 1.500000 44.407207 spng
|
|
|
|
! Send the half of the snake in a random direction
|
|
|
|
nodes> 10 [ swap nth ] with map
|
|
nodes> 10 [ 19 + swap nth ] with map append
|
|
100 random -50 + 100 random 100 + { -1 1 } random * 2array
|
|
[ swap set-node-vel ] curry
|
|
each ;
|
|
|
|
: go ( -- ) [ model ] go* ;
|
|
|
|
MAIN: go
|