Code:
	Gucki running
Number of Neurons: 30
Number of Links: 42
press return
Simulation step number 0
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:1 dst:3 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
Simulation step number 1
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:2 dst:4 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
Simulation step number 2
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 3
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 4
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 5
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 6
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 7
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 8
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 9
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
simulations steps done: 10
 Gucki stopped
 
	Code:
	#define RUNNING_ON_PC
#define NUMBEROFNEURONS 30
//********************** RUNNING ON PC ***********************************
#ifdef RUNNING_ON_PC
#include <iostream>
#include <stdint.h>
#include <stdio.h>
using namespace std;
#define FOREVER while(1)
typedef uint8_t uns8; // stdint.h compatibility
typedef bool   BOOL;
#define FALSE  0
#define TRUE   1
// funktioniert nicht
static unsigned char* FSR;
#define INDF (*FSR)
#define LINK_SRC 0
#define LINK_DST 1
#define LINK_USE 2
#endif
//************************** RUNNING ON PIC ***************************************
#ifdef RUNNING_ON_PIC
#include "allpic.h"
#pragma config = 0b000110000100     // hex-datei: fuses des 12F629
#pragma cdata[0x2100] =            \
  0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
  0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
  0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
  0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
  0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
  0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
  0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
  0xFF,0xFF                // eeprom initialisierung
#define EE_ROM                // eeprom nutzen
#include "pic_mem.h"
#include "timeloop.h"
// LINK-Zugriffe
#define LINK_RD(a,m)    ee_read((a) + offsetof(struct _link,m))
#define LINK_WR(a,m,v)    ee_write((a) + offsetof(struct _link,m),v)
#endif
#define OUT_0        0        // GPIO
#define OUT_1        1        //
#define OUT_2        2        //
#define IN_2        3        //
#define IN_1        4        //
#define IN_0        5        //
//** alle sensoren, aktoren, triebe und neuronen nach abstraktion gestaffelt ******
uns8 zellen[NUMBEROFNEURONS];            // zellen im RAM anlegen
// cells are bit coded
// b7        b6 b5 b4 b3 b2 b1 b0
// FIRE_REQ  ( cell potential   )
#define FIRE_LIMIT    10        // fire_limit
#define RD_SUM        (INDF & 0x3F)    // ZELL-Zugriffe
#define WR_SUM(s)    {INDF &= ~0x3F; INDF |= (s);}
#ifdef RUNNING_ON_PIC
#define RD_FIRE_REQ    (INDF.7)
#define WR_FIRE_REQ(b)    {INDF.7 = (b);}
#endif
#ifdef RUNNING_ON_PC
#define RD_FIRE_REQ    !!(INDF&0x80)
#define WR_FIRE_REQ(b)    {INDF&=~0x80;INDF|=b<<7;} //{INDF.7 = (b);}
#endif
#define SENS_0        0               // Sensoren
#define SENS_1        1
#define SENS_2        2
#define AKT_0        3               // spezialzellen definieren
#define AKT_1        4
#define AKT_2        5
#define TIMER        6        // Timer-Zelle
#define HUNGER        7        // Hunger-Zelle
#define FIRST_NEURON    8        // Beginn des Hirns
//******* verbunden werden zellen mit vielen links (dendriten) *********
#define NO_LINK        -1
#define MAX_LINKS    (128 / sizeof(struct _link))    // viele links im EEPROM
struct _link {                // struktur eines EEPROM-links
  uns8 src;                // leerer link: src_zelle == NO_LINK
  uns8 dst;                // verbindet source- mit dest-zelle
  uns8 use;                // nützlichkeit dieses links
};
//********************** RUNNIN ON PC ***********************************
#ifdef RUNNING_ON_PC
_link Simulated_EEPROM[NUMBEROFNEURONS];
void initEEPROM()
{
    for(int n=0;n<MAX_LINKS    ;n++)
    {
        int address=n;
        Simulated_EEPROM[address].src=0xFF;
        Simulated_EEPROM[address].dst=0;
        Simulated_EEPROM[address].use=0;
    }
}
uns8 LINK_RD(uns8 address, uns8 component)
{
  uns8 value = 0;
  if (component == LINK_SRC) value = Simulated_EEPROM[address].src;
  if (component == LINK_DST) value = Simulated_EEPROM[address].dst;
  if (component == LINK_USE) value = Simulated_EEPROM[address].use;
  return value;
}
void LINK_WR(uns8 address, uns8 component, uns8 value)
{
  if (address < NUMBEROFNEURONS)
  {
    if (component == LINK_SRC) Simulated_EEPROM[address].src = value;
    if (component == LINK_DST) Simulated_EEPROM[address].dst = value;
    if (component == LINK_USE) Simulated_EEPROM[address].use = value;
  } else
  {
      printf("Error: link address out of range, address:%d\n ",address);
  }
}
void showAktor(int aktorId,bool bit)
{
    /*
    printf("%d:",aktorId);
    if(bit) printf("ON ");
    else printf("OFF ");
    */
}
void showLinks(uint8_t adr)
{
    int src=Simulated_EEPROM[adr].src;
    int dst=Simulated_EEPROM[adr].dst;
    int use=Simulated_EEPROM[adr].use;
    printf("%d - src:%d dst:%d use:%d\n",adr,src,dst,use);
}
void showNeurons()
{
    for(int n=0;n<NUMBEROFNEURONS;n++)
    {
        int neuronNumber=n;
        int potential=zellen[n]&0x3F;
        int fireRequest=(zellen[n]&0x80)>>7;
        printf("%d - val:%d, fire:%d\n",neuronNumber,potential,fireRequest);
    }
}
void showAll()
{
  puts("show state of the links:");
  for (uint16_t n = 0; n < MAX_LINKS; n++)
  {
    showLinks(n);
  }
  puts("show Neurons");
  showNeurons();
  puts("");
}
#endif
static uns8 rand_link;            // randomize link
static uns8 pattern;
static uns8 learn;
static void gi_lerne(void)        // die genesis
{
  uns8 zell_ind = sizeof(zellen), link, free, buf;
  BOOL hit;
  do {                    // Suche feuernde zellen
    //FSR = &zellen[zell_ind];        // pointer auf zelle
    //FSR = zellen + zell_ind;
    FSR = zellen + --zell_ind;        // pointer auf zelle
    /**** sensoren, aktoren und triebe sind besondere zellen *****/
#ifdef RUNNING_ON_PIC
    switch(zell_ind) {
      case SENS_0: WR_FIRE_REQ(pattern.0); break;
      case SENS_1: WR_FIRE_REQ(pattern.1); break;
      case SENS_2: WR_FIRE_REQ(FALSE); break;
      case AKT_0:  GPIO.OUT_0 = RD_FIRE_REQ; continue;
      case AKT_1:  GPIO.OUT_1 = RD_FIRE_REQ; continue;
      case AKT_2:  GPIO.OUT_2 = RD_FIRE_REQ; continue;
      default: break;
    }
#endif
#ifdef RUNNING_ON_PC
    switch(zell_ind) {
      case SENS_0: WR_FIRE_REQ(pattern&1); break;
      case SENS_1: WR_FIRE_REQ((pattern>>1)&1); break;
      case SENS_2: WR_FIRE_REQ(FALSE); break;
      case AKT_0:  showAktor(0,RD_FIRE_REQ); continue;
      case AKT_1:  showAktor(1,RD_FIRE_REQ); continue;
      case AKT_2:  showAktor(2,RD_FIRE_REQ); continue;
      default: break;
    }
#endif
    /***** diese zeilen sind der kern des systems *****************/
    if(!RD_FIRE_REQ) continue;        // zelle möchte nicht feuern
    WR_FIRE_REQ(FALSE);            // zell-feuerwunsch wird nun erfüllt
    free = NO_LINK; link = 0; hit = FALSE;    // verfolge die links
    do {                // alle links durchsuchen
      buf = LINK_RD(link,LINK_SRC);        // linkbyte lesen
      if(buf == NO_LINK) free = link;    // leeren link merken
      else if(buf == zell_ind) {    // einen link gefunden
    uns8 hbuf = LINK_RD(link,LINK_USE);    // nuetzlichkeit lesen
    if(hbuf) hit = TRUE;        // nutzlink gefunden
    if(++hbuf > FIRE_LIMIT) hbuf = FIRE_LIMIT;// limitieren
    FSR = zellen + LINK_RD(link,LINK_DST);// pointer auf dst-zelle
    buf = RD_SUM + hbuf;        // zellsumme berechnen
    if(buf > FIRE_LIMIT) buf = FIRE_LIMIT;    // limitieren
    WR_SUM(buf);            // zellsumme speichern
    if((buf == FIRE_LIMIT)&&(!RD_FIRE_REQ)) {// will dst feuern?
      WR_FIRE_REQ(TRUE);        // FIRE_REQ vormerken
      LINK_WR(link,LINK_USE,hbuf);    // nuetzlichkeit inkrementieren
    }
      }
      link += sizeof(struct _link);    // nächsten link adressieren
    } while(link < MAX_LINKS * sizeof(struct _link));
    /** wenn kein nützlicher link gefunden und platz ist: erzeuge neuen link **/
    if((!hit)&&(free != NO_LINK)) {
      LINK_WR(free,LINK_SRC,zell_ind);    // link neu erzeugen
      if(learn) buf = learn;        // gewollte verlinkung
      else {                // zufällige verlinkung
    if(++rand_link >= sizeof(zellen)) rand_link = FIRST_NEURON;
    buf = rand_link;
    if((buf == zell_ind)&&(++buf >= sizeof(zellen))) buf = FIRST_NEURON;
      }
      LINK_WR(free,LINK_DST,buf);
      LINK_WR(free,LINK_USE,0);        // ob der link nützlich wird, weiß keiner
    }
  } while(++zell_ind < sizeof(zellen));    // nächste zelle
}
static void gi_verlerne(void)        // links überarbeiten
{
  uns8 link = 0, buf;
  do {                    // alle links durchsuchen
    if(LINK_RD(link,LINK_SRC) != NO_LINK) {    // leere links skippen
      buf = LINK_RD(link,LINK_USE);        // nuetzlichkeit lesen
      if(buf) LINK_WR(link,LINK_USE,--buf);    // langsam verlernen
      if(!buf) LINK_WR(link,LINK_SRC,NO_LINK);// link ganz löschen
    }
    link += sizeof(struct _link);    // nächster link
  } while(link < MAX_LINKS * sizeof(struct _link));
}
#define DELETE        0
#define REDUCE        1
#define SLEEP        2
static void gi_zellen(uns8 steuer)    // zell-erregungen überarbeiten
{                    // DELETE, REDUCE oder SLEEP
  uns8 zell_ind = sizeof(zellen);
  do {                    // Suche zellen
    FSR = zellen + --zell_ind;
    if(steuer == DELETE) INDF = 0;    // flags und summe auf einen schlag
    else if(steuer == REDUCE) {if(RD_SUM) WR_SUM(RD_SUM - 1);}
    else if(RD_SUM > FIRE_LIMIT) WR_SUM(FIRE_LIMIT);
  } while(zell_ind);            // nächste zelle
}
#define NUMBER_OF_SIMULATION_STEPS 10
int main()
{
#ifdef RUNNING_ON_PC
    printf("Gucki running\n" );
    initEEPROM();
    printf("Number of Neurons: %d\n",NUMBEROFNEURONS);
    printf("Number of Links: %d\n",(int)MAX_LINKS);
    puts("press return");
    getchar();
#endif
#ifdef RUNNING_ON_PIC
  RP0 = 1;                // erstmal alle Spezialregister...
  #asm
    DW /*CALL*/ 0x2000 + /*ADRESSE*/ 0x03FF // oscal abholen
  #endasm
  OSCCAL = W;                // und Oszillatorkalibrierung speichern
  OPTION = 0;                 // global weak-pullup ein (je 20kOhm)
  WPU = _BV(IN_0) | _BV(IN_1) | _BV(IN_2);
  TRISIO = _BV(IN_0) | _BV(IN_1) | _BV(IN_2);    // eingänge
  RP0 = 0;                // normale register und ram
  CMCON = 0x07;                // komparator aus
  timeloop_init();            // timer initialisieren
#endif
  rand_link = FIRST_NEURON;
  gi_zellen(DELETE);            // zellerregungen löschen
  uns8 loop = 0;
  int steps=0;
  for(steps=0;steps<NUMBER_OF_SIMULATION_STEPS;steps++)
  {
    switch(loop)
    {
      case 0: pattern = 0x01; learn = AKT_0; break;
      case 1: pattern = 0x02; learn = AKT_1; break;
      case 2: pattern = 0x03; learn = AKT_2; break;
      default:
      {
        #ifdef RUNNING_ON_PC
          printf("error, no pattern\n");
              #endif
      }//FOREVER;
    }
    gi_lerne();
#ifdef RUNNING_ON_PC
    printf("Simulation step number %d\n",steps);
    showAll();
#endif
    loop++;
#ifdef WEG
    gi_verlerne();            // links langsam verlernen
    if(!++loop) {
      gi_verlerne();            // links langsam verlernen
      gi_zellen(SLEEP);            // schlafen
    }
    else if(!(loop & 0x1F))        // alle 32 durchläufe
      gi_zellen(REDUCE);        // zellerregungen vermindern
#endif
  }
#ifdef RUNNING_ON_PC
  printf("\nsimulations steps done: %d\n",steps);
  printf(" Gucki stopped\n");
#endif
    //return 0;
}
/* ENDE */
 Wenn Du Linux hast, kannst Du die Datein mit 
Lesezeichen