Merge branch 'develop'

This commit is contained in:
Raphaelsav 2024-06-05 18:01:57 +02:00
commit 7834c0b90b
10 changed files with 519 additions and 66 deletions

1
Agents/SheepsandWolf Normal file
View File

@ -0,0 +1 @@
24,22,1;48,23,1;72,23,1;23,52,2;52,48,2;74,46,2;

View File

@ -0,0 +1 @@
37,33;77,30;79,48;70,69;15,55;26,16;41,15;65,29;67,48;56,58;42,60;46,39;74,20;

2
Rule/testblob Normal file
View File

@ -0,0 +1,2 @@
2;3;1;3;5;8
3;3;5;7

100
World/glider_test Normal file
View File

@ -0,0 +1,100 @@
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0

100
World/random Normal file
View File

@ -0,0 +1,100 @@
1;1;0;1;1;0;0;0;1;1;0;1;1;1;0;1;1;0;1;0;0;0;0;0;1;0;0;1;0;0;1;0;0;0;1;0;1;0;0;1;1;1;0;1;1;0;0;1;0;1;0;0;1;0;0;1;0;1;1;0;0;1;0;1;1;0;1;1;0;0;0;0;0;0;0;1;0;0;0;0;1;0;1;1;1;1;1;0;0;1;1;1;0;0;0;0;0;1;1;1
1;1;0;0;0;0;1;1;0;0;0;1;1;0;0;0;0;1;1;1;0;0;1;0;0;1;1;1;1;0;1;1;0;1;0;0;1;1;0;0;0;1;1;0;1;0;1;1;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;0;0;0;0;0;0;0;0;1;1;1;0;1;1;0;0;0;1;1;1;1;0;0;1;0;1;0;1;1;1;0;0;0;0;1;0;0
1;0;0;1;0;0;0;1;1;0;0;1;1;1;1;0;1;1;0;0;1;1;0;1;0;1;1;1;0;1;0;0;0;0;1;1;0;0;1;0;0;0;1;0;0;0;1;0;1;0;1;1;0;1;0;0;1;0;1;1;1;1;1;1;1;1;1;1;1;0;1;1;0;1;0;0;0;1;0;1;1;0;0;1;0;0;0;0;1;1;1;0;1;0;0;0;1;1;1;0
1;0;0;0;1;0;1;1;1;0;0;1;1;0;0;0;0;1;0;0;1;0;1;0;0;1;1;1;0;1;0;1;0;0;0;1;1;1;1;1;1;1;1;0;1;0;1;1;0;0;0;1;0;0;1;1;0;1;0;0;1;0;1;0;0;1;0;0;0;0;0;0;1;1;1;1;0;0;0;1;1;0;0;1;1;1;1;0;0;1;0;0;1;1;0;0;1;1;0;0
0;0;0;1;0;0;1;1;1;0;0;0;0;0;1;0;1;1;1;0;0;0;0;1;1;1;0;0;0;1;0;0;1;1;0;1;0;1;0;0;0;0;0;1;1;1;0;1;0;1;1;0;0;1;0;1;1;0;0;0;1;1;1;0;1;1;0;0;1;1;0;1;0;0;1;0;0;1;0;0;0;0;1;1;1;1;0;1;0;0;1;0;0;0;0;1;1;1;0;0
0;1;0;0;1;0;0;0;0;1;0;1;1;0;0;0;1;0;0;1;1;0;1;0;0;0;1;0;1;1;0;0;1;1;0;0;1;1;0;1;0;1;1;1;1;1;0;1;0;1;1;1;0;1;1;0;0;0;1;0;1;0;1;0;1;0;0;0;1;0;1;1;1;0;0;0;0;0;1;0;1;0;1;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;1;0
1;1;0;1;1;1;0;1;0;0;1;1;1;0;0;0;1;1;0;1;0;1;1;0;0;1;1;1;1;0;1;1;1;1;0;1;1;1;0;0;1;0;1;0;1;0;0;1;1;1;1;0;1;1;0;0;1;1;1;1;1;0;1;0;1;0;1;1;1;0;0;1;1;0;1;0;0;0;1;0;0;0;0;0;0;0;1;1;0;1;1;1;1;1;1;0;0;1;1;0
0;0;1;0;0;1;1;1;0;1;1;1;0;0;0;0;0;1;1;0;1;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;1;1;1;0;0;1;0;0;0;0;1;1;0;1;0;0;0;1;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;0;1;0;0;1;0;1;0;1;0;0;0;1;1;0;0;0;0;1;0;0;1;0;1;0
1;0;1;1;0;1;0;0;1;1;0;1;1;0;1;1;0;0;0;1;1;0;1;1;1;0;0;0;1;1;1;0;0;1;1;1;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;1;1;1;1;1;1;1;1;0;1;1;1;1;1;0;0;0;0;0;0;1;0;1;0;0;1;0;0;1;1;1;0;0;0;1;0;0;0
0;0;1;0;1;1;0;0;1;0;1;1;0;1;1;1;1;0;1;1;0;0;0;1;0;1;1;0;1;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;0;0;1;0;1;0;1;0;0;1;0;1;0;1;1;0;1;0;0;1;1;0;1;1;0;0;0;0;1;1;0;1;0;1;1;1;0;1;0;0;0;1;0;1;0;1;1;1;0;0;1;1;1;1
1;0;0;1;0;0;1;1;1;1;0;0;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;0;1;1;0;0;1;0;0;1;0;0;1;1;1;1;1;1;0;0;1;1;0;0;0;1;0;1;0;1;1;1;1;0;1;0;0;0;1;1;0;0;0;0;1;1;1;0;0;0;1;1;1;1;0;1;1;0;0;1;1;0;0;1;1;0;0;1;1;1;1
1;1;0;0;0;1;0;0;0;0;0;0;1;1;0;1;1;1;1;0;1;0;1;1;0;0;1;0;1;0;0;1;0;0;1;0;1;0;0;1;0;0;0;1;1;0;1;0;1;1;1;1;0;1;1;1;0;0;0;1;1;0;1;1;0;1;0;1;1;1;1;1;1;1;0;0;0;0;0;1;0;1;0;1;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0
1;0;1;0;0;0;1;1;0;1;1;1;0;0;0;0;1;0;1;0;1;0;0;1;1;0;1;1;0;1;0;0;0;1;0;0;0;1;0;1;1;0;0;1;0;0;1;0;1;1;1;0;1;0;1;0;0;0;1;1;1;1;0;0;0;1;1;1;0;1;1;1;1;1;1;1;1;0;0;1;0;0;1;1;1;1;1;1;1;0;0;1;0;1;0;1;1;1;0;0
1;0;0;0;1;0;1;1;1;1;1;0;0;0;1;0;1;0;1;0;0;0;0;0;1;0;0;0;0;0;1;0;1;1;0;1;1;1;0;0;0;0;1;1;1;0;0;1;1;0;1;0;0;0;1;0;0;1;1;1;0;1;0;0;1;1;0;0;1;1;1;1;0;0;1;1;1;1;1;0;1;0;1;0;0;0;1;0;1;1;1;0;0;0;0;0;1;1;1;1
0;1;0;1;0;1;0;1;1;1;1;0;0;1;1;1;1;1;0;1;1;0;1;1;1;0;0;1;1;0;0;0;0;0;1;0;0;0;1;0;0;0;1;0;1;0;0;0;1;0;1;1;0;0;0;0;0;0;1;0;0;0;0;0;1;0;1;1;0;0;0;0;0;1;0;1;1;0;0;0;1;0;1;0;0;0;0;1;0;0;0;1;1;0;0;1;0;0;1;1
1;1;1;1;1;1;1;1;1;1;1;0;1;0;1;1;1;1;0;0;1;1;0;0;0;0;0;1;0;0;1;0;1;0;1;1;1;0;1;0;0;0;1;1;0;0;1;1;1;0;0;1;0;0;0;0;0;1;0;1;0;1;1;1;0;0;1;1;1;1;0;1;1;0;0;1;0;1;0;0;1;0;0;1;1;0;1;1;1;0;0;1;1;1;0;1;0;1;1;1
0;1;1;1;1;0;0;1;1;0;0;1;1;0;0;1;0;1;1;1;0;1;0;0;1;0;0;1;0;1;1;0;1;1;0;0;1;1;0;0;0;1;0;0;0;1;1;0;0;1;0;1;1;0;0;0;0;0;0;0;0;1;0;1;0;0;1;1;0;1;1;0;1;0;1;1;0;1;1;0;1;0;0;0;0;0;0;0;1;1;1;1;0;0;0;0;1;0;1;1
1;0;1;1;1;0;1;1;1;1;1;0;0;1;0;1;0;1;1;1;1;1;0;0;0;1;0;0;1;1;0;0;0;0;0;1;1;1;0;1;1;0;1;0;1;1;1;1;1;0;0;0;0;0;1;0;1;0;1;1;0;1;0;0;1;1;1;1;1;1;0;0;0;1;1;1;0;0;1;0;0;0;1;1;1;1;1;1;1;0;1;1;1;0;1;0;0;1;0;1
0;1;0;1;1;1;1;1;0;0;1;0;1;1;1;0;0;0;0;0;0;0;0;0;0;1;0;1;1;1;1;0;1;0;0;1;0;0;0;1;0;0;0;1;0;1;1;1;1;0;1;1;0;0;0;1;0;0;1;1;0;1;1;0;1;0;1;0;0;1;1;1;1;1;1;1;0;1;0;0;1;0;0;0;1;1;0;1;0;0;1;1;1;0;1;1;1;1;1;1
1;0;0;0;0;0;0;1;0;0;0;1;1;1;1;0;1;1;1;0;0;0;1;1;1;0;1;0;0;1;0;1;1;0;0;1;0;0;0;1;0;0;0;0;1;1;0;1;1;0;0;0;1;0;0;1;0;1;1;1;0;1;1;1;1;0;1;0;1;0;1;1;1;1;0;0;0;1;0;0;1;0;0;0;0;0;1;0;0;0;1;0;1;0;0;1;1;1;0;1
0;1;0;1;1;0;0;1;0;1;0;1;1;1;0;1;0;1;0;0;0;1;1;1;0;1;1;0;1;1;0;1;1;0;1;0;1;1;0;0;1;0;0;0;0;0;0;1;1;1;1;1;1;1;0;1;0;1;1;0;0;1;0;0;0;0;0;0;1;0;0;1;1;1;1;1;0;1;0;0;0;0;1;1;1;1;0;1;1;0;0;1;0;0;0;0;1;0;1;1
1;1;1;1;1;1;0;0;0;1;0;1;1;1;1;0;0;1;0;0;0;1;0;1;1;0;0;0;1;1;1;1;1;1;0;1;0;1;1;1;1;1;1;1;1;1;0;0;0;0;0;1;0;0;0;0;1;1;1;1;1;0;1;0;0;0;1;0;1;0;0;1;1;0;1;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0;0;1;0;0;1;0;1;1;0;0
0;1;0;1;0;1;1;1;1;0;1;0;0;0;0;1;0;1;1;1;1;0;1;1;0;1;0;1;1;0;1;0;0;1;0;0;0;0;1;0;0;0;1;0;1;0;0;1;0;1;1;1;1;0;1;0;0;0;1;0;0;1;0;0;1;0;0;1;1;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;1;1;0;1;0;0;0;0;0;1;0;0;0
1;0;1;0;1;0;0;1;1;0;1;0;0;0;0;0;0;1;0;1;1;1;1;1;0;1;0;0;0;0;0;0;0;1;1;1;1;0;1;0;0;0;0;0;1;1;0;1;0;1;1;1;0;1;0;0;1;0;1;1;0;0;0;1;1;0;0;1;0;1;1;1;0;0;1;1;1;1;0;0;0;1;0;0;1;1;1;1;1;1;0;1;0;1;1;0;0;1;0;0
1;0;1;1;1;0;1;1;0;0;1;0;0;0;1;0;0;0;1;0;0;1;1;0;1;1;0;0;1;0;0;1;0;0;0;1;0;1;0;0;1;0;1;0;0;0;1;1;0;0;0;1;1;1;0;1;1;0;0;0;1;0;0;0;1;0;1;1;1;1;1;1;1;0;1;0;1;1;1;1;0;1;1;1;1;1;1;0;0;1;1;0;1;1;1;0;1;0;0;1
0;1;1;0;1;1;0;1;1;0;1;1;0;0;1;0;1;1;1;1;1;0;0;0;1;1;1;0;1;0;1;1;0;0;0;1;1;0;0;1;0;1;1;0;0;1;1;1;0;1;0;1;0;0;0;1;0;1;1;0;1;0;0;1;1;1;0;1;0;0;0;1;0;0;0;1;1;1;0;0;1;0;1;1;1;1;0;0;1;0;0;0;0;0;0;0;1;1;0;0
1;1;1;1;0;0;1;0;0;0;1;0;1;1;1;1;0;0;0;1;1;0;0;1;1;0;1;0;1;0;0;0;1;0;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;0;0;1;0;1;0;0;0;1;1;0;0;0;1;0;0;0;0;0;1;0;0;1;0;0;0;0;1;0;1;1;0;0;1;0;1;0;1;0;1;1;1;0;1;0;0;0;1;1;0;1
0;0;0;1;0;0;1;1;1;0;1;1;0;0;0;1;0;0;0;1;0;1;1;0;1;0;0;0;1;0;0;1;0;0;1;1;0;0;0;0;1;0;1;0;0;1;1;1;1;1;0;1;1;0;0;0;0;0;1;1;1;0;0;0;0;0;0;1;1;0;0;0;0;1;0;0;0;1;1;1;0;1;1;1;0;1;0;0;0;0;1;1;0;1;1;0;1;1;0;1
1;1;0;1;0;1;0;0;0;1;1;0;1;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;0;1;0;1;0;0;0;0;1;1;1;0;0;1;1;0;1;1;0;1;0;1;0;1;0;1;1;1;1;0;0;1;0;0;1;0;1;1;0;0;0;1;0;0;0;0;1;1;1;0;0;1;1;0;0;0;0;1;1;1;1;0;1;0;0;0;0;1;1;1;1
0;0;1;0;1;0;1;0;1;1;0;0;1;0;1;1;1;0;1;1;1;1;1;0;1;0;0;1;0;0;1;0;0;1;1;0;1;1;0;0;1;1;0;0;0;1;1;1;1;1;1;1;0;0;0;1;1;1;1;1;1;0;1;1;0;0;0;1;0;1;0;1;1;0;1;0;0;1;1;0;1;0;1;1;0;0;1;0;1;0;1;1;0;0;1;1;0;0;1;0
1;0;0;0;0;0;0;1;0;1;1;0;1;0;1;0;0;0;1;1;0;1;0;1;0;1;0;1;1;1;0;1;1;1;0;1;1;1;0;1;1;0;1;1;1;1;0;1;1;1;0;0;0;0;1;0;1;1;1;0;1;1;0;0;0;0;0;1;1;1;1;1;1;0;0;1;0;1;1;1;1;1;1;0;1;0;0;0;1;1;0;0;0;0;0;0;1;0;0;1
1;0;0;0;0;0;1;1;0;1;0;1;1;0;0;1;1;1;0;0;0;1;1;0;1;0;1;0;0;0;0;1;0;1;1;1;1;1;1;1;0;1;0;1;1;1;0;0;1;0;0;1;0;0;1;0;1;1;1;1;1;0;1;1;0;1;1;0;1;1;0;0;1;1;0;0;1;1;0;0;0;0;0;1;0;1;1;0;1;1;0;0;0;0;1;0;1;1;0;1
1;0;0;1;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;1;0;0;1;0;0;0;1;0;0;1;0;1;0;0;1;0;1;0;0;0;0;1;1;1;1;1;0;0;1;1;1;1;1;0;0;0;1;0;1;0;0;0;1;0;0;0;1;1;1;1;1;0;1;0;1;0;0;0;0;0;0;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;0;0;0
1;1;1;0;1;0;0;0;1;0;0;1;1;0;0;0;1;0;1;0;0;1;1;0;0;0;0;0;1;0;1;1;1;0;1;0;1;0;0;0;0;0;0;1;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;1;1;1;0;0;0;0;1;1;0;1;1;1;0;1;0;0;1;1;1;0;0;1;0;1;1;0;1;0;1;0;0;0;0;0;0;0;1;1;0;1
0;0;0;0;0;1;1;1;0;0;1;1;0;1;1;1;0;1;0;0;1;0;0;1;1;0;0;1;1;0;0;0;0;1;0;1;0;1;1;1;1;0;1;0;0;1;0;0;1;1;1;0;0;1;0;1;1;1;0;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;1;1;0;0;1;0;1;0;0;1;1;0;1;1;1;0;1;1;1;1;1;0;0
1;0;1;1;0;1;1;0;0;1;1;1;0;1;1;0;0;1;0;0;0;1;1;0;1;1;0;1;1;1;0;1;0;1;1;0;1;0;0;1;1;1;0;1;1;1;1;1;0;0;0;1;0;1;1;0;1;1;0;1;0;1;1;0;0;1;0;0;1;1;1;0;0;0;1;1;0;1;0;0;0;1;1;1;1;1;0;0;0;1;0;0;1;0;1;0;0;1;0;0
1;0;1;0;0;0;1;0;0;0;0;1;1;0;1;1;0;0;1;0;0;1;1;0;0;0;1;1;0;0;0;0;1;0;0;0;0;1;0;1;0;0;1;1;1;0;0;0;1;0;1;0;0;1;0;1;1;0;1;1;1;1;0;1;0;0;0;1;1;0;1;1;0;1;1;1;1;0;0;0;0;0;1;1;0;0;0;1;0;1;0;1;0;0;0;1;1;0;0;0
0;0;1;0;1;1;0;0;0;1;1;1;0;1;0;0;1;1;0;1;1;1;0;0;1;0;0;1;0;0;1;1;0;1;0;1;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;1;1;1;1;1;1;1;1;1;0;0;1;0;0;0;0;0;1;0;1;1;1;1;0;1;0;1;1;1;0;1;0;0;1;1;1;0;0;1;1;1;0;0;0;1;0
1;1;0;1;1;1;1;1;0;1;0;0;1;0;0;0;0;0;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;1;0;0;0;1;0;0;0;0;0;1;1;0;1;0;1;1;0;0;0;0;0;1;1;0;0;1;0;1;0;1;1;1;1;1;1;0;1;1;0;0;0;1;1;1;0;1;1;1;1;1;1;1;0;1;0;0;0;0;0;1;0;0
1;0;0;0;1;0;0;1;0;0;0;1;1;1;1;1;1;1;0;0;0;0;0;0;1;1;0;1;0;0;1;0;0;1;0;0;0;1;0;1;1;0;0;0;0;0;1;0;0;0;0;1;0;0;1;0;0;0;1;1;1;0;1;0;0;1;1;1;1;0;1;0;0;0;0;0;0;0;1;0;0;1;0;1;0;1;0;0;0;0;0;0;1;0;0;0;1;0;1;1
1;0;1;0;0;1;1;0;1;0;1;0;1;1;0;0;1;0;1;1;1;1;0;1;0;0;1;0;0;0;1;0;0;0;1;1;1;0;0;1;0;1;0;0;1;1;0;1;0;0;1;1;0;1;0;1;0;1;0;0;1;1;0;1;1;1;1;1;0;0;1;0;1;0;0;1;1;0;0;0;1;1;1;1;1;0;1;0;0;1;1;1;1;1;0;1;0;0;0;1
1;1;0;0;0;0;1;1;0;0;0;0;1;0;1;1;0;0;0;1;1;0;0;0;1;0;1;1;1;0;1;1;0;1;0;0;1;1;0;0;1;1;1;1;1;1;1;1;1;1;0;1;0;0;0;0;0;1;0;1;1;0;0;0;1;0;0;0;1;1;1;0;0;1;0;1;0;0;0;0;1;0;0;0;1;0;0;1;0;0;0;0;1;0;1;0;0;0;1;0
1;1;1;1;1;0;0;0;0;1;0;1;0;1;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;1;1;0;0;1;0;1;0;0;0;1;0;1;0;0;0;1;0;0;0;0;1;1;0;0;1;0;0;0;1;0;0;0;1;1;0;0;1;1;1;1;0;1;1;0;1;0;0;1;1;1;0;0;1;0;0;1;1;0;1;0;1;1;0;0;0;1
0;1;0;1;1;0;1;0;0;1;1;1;1;0;0;0;1;1;0;1;0;0;0;1;1;1;1;0;1;0;1;1;0;0;1;1;0;0;0;1;1;1;0;0;1;1;1;0;1;0;0;0;0;1;1;1;1;0;0;0;0;1;0;1;1;1;0;1;1;1;0;0;0;1;0;0;1;0;1;1;1;0;1;0;1;1;0;1;1;0;1;1;0;1;1;1;0;1;0;0
1;0;0;1;1;1;1;0;0;1;1;1;1;0;1;0;0;0;0;0;1;0;1;0;0;0;0;0;0;1;0;0;0;0;1;1;1;1;0;1;1;0;1;1;1;1;0;0;0;1;1;0;1;0;1;0;1;0;1;1;0;1;1;0;1;0;1;0;0;0;0;1;0;1;0;0;0;1;1;0;1;0;0;0;0;1;1;1;1;1;0;0;1;1;1;0;0;0;1;0
1;0;0;1;0;0;0;0;1;1;1;1;0;1;1;1;1;1;0;1;1;0;1;0;1;1;1;1;0;0;0;0;0;1;1;0;0;0;0;0;0;1;1;1;1;0;0;0;0;1;1;0;1;1;1;1;0;1;1;1;1;1;0;1;1;0;1;0;0;0;1;1;0;0;1;1;0;0;0;1;0;1;0;0;0;0;0;1;0;0;1;1;0;0;0;1;1;0;0;0
0;0;0;0;0;1;1;0;0;1;1;1;0;1;0;0;1;1;0;1;1;1;0;1;1;1;1;0;0;1;0;1;0;0;1;1;1;0;1;0;1;1;0;0;0;1;0;1;1;1;0;1;0;0;0;0;1;0;0;0;1;1;1;1;0;0;0;1;0;1;1;1;0;0;0;1;1;0;1;0;0;1;0;1;0;0;0;0;0;1;0;1;0;1;1;1;0;0;0;0
1;0;1;0;0;0;0;1;0;0;1;1;1;1;0;1;1;1;1;0;1;1;1;1;0;1;0;0;1;0;0;1;0;0;1;0;0;1;0;0;0;1;1;1;1;0;1;0;1;0;0;1;0;1;1;0;0;1;1;0;0;1;0;1;0;0;1;0;0;1;1;1;0;0;1;1;1;1;1;1;1;0;1;0;1;0;1;1;0;1;0;0;0;1;1;0;1;0;0;0
0;1;1;0;1;1;0;1;1;1;0;0;0;0;0;1;1;1;1;1;0;0;1;0;1;1;1;1;0;0;1;1;0;0;1;1;1;1;0;0;1;0;1;1;0;1;1;0;1;0;1;1;1;1;1;1;0;0;1;0;0;0;1;0;1;1;1;0;1;0;0;0;1;0;0;0;0;1;1;0;0;1;0;1;0;1;1;1;0;1;1;1;0;1;0;1;0;1;1;1
0;1;0;0;1;0;0;0;1;0;1;0;0;0;1;0;0;0;1;1;1;1;1;1;1;1;0;0;1;0;1;0;0;0;1;0;0;1;1;0;0;1;0;1;1;0;1;1;0;0;0;0;1;0;1;1;1;1;1;0;0;0;0;0;0;1;0;1;0;0;0;0;1;1;1;1;1;1;0;0;0;1;1;1;1;1;1;1;0;1;1;0;1;0;1;1;0;1;1;1
0;0;1;0;0;1;1;1;1;1;0;1;1;0;1;0;0;1;1;1;1;1;0;1;1;1;0;0;0;0;0;1;0;1;0;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;1;1;0;1;0;1;1;1;1;1;1;1;0;1;0;1;1;0;0;1;1;0;1;0;0;0;0;1;1;0;1;0;1;0;0;1;0;0;1;1;0;1;0;1;0;1;0;0;1;1
0;0;0;1;0;0;0;0;1;1;1;1;1;1;0;0;1;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;0;1;0;1;1;0;1;1;1;0;0;1;0;0;0;0;1;0;1;1;0;1;1;0;1;0;1;1;0;0;1;0;0;1;0;0;0;1;0;0;0;0;1;1;0;1;0;0;0;1;0;1;0;0;0;0;0;1;1;0;1;0;0;0;0;1;0;0
1;0;0;1;1;1;1;1;1;1;0;1;0;1;1;1;1;1;1;1;0;0;0;1;0;0;1;1;1;1;1;1;0;0;0;0;0;1;0;0;1;1;0;0;0;1;1;1;1;1;0;1;1;1;0;1;1;0;0;1;1;1;0;0;0;1;0;0;0;1;0;1;1;0;0;0;0;1;1;0;0;1;1;0;0;1;0;1;1;0;0;1;1;0;1;0;0;1;0;0
1;1;1;1;1;1;0;0;1;0;1;0;1;0;1;1;1;1;1;1;0;0;1;1;0;1;1;1;0;0;0;0;0;0;1;0;1;0;0;1;1;1;0;0;1;0;1;0;1;1;1;1;1;0;0;1;0;1;0;0;1;1;0;0;1;1;1;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;1;1;0;1;0;1;1;0;1;1;0
0;0;1;0;0;1;0;1;1;0;1;1;0;1;0;1;1;1;1;0;0;0;1;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;0;0;1;0;1;0;1;0;0;1;0;0;1;1;1;0;0;1;1;1;0;0;0;1;0;1;1;0;0;0;1;0;1;0;1;0;0;0;1;1;1;1;0;1;0;0;1;1;0;1;1;1;0;0;0;0;0;0;0;1;0
1;1;1;0;1;0;0;0;0;1;0;0;0;0;1;0;1;1;1;1;1;0;0;1;0;0;0;0;0;1;0;1;1;0;1;1;0;1;0;1;0;0;1;0;0;0;1;1;1;0;0;0;1;0;1;0;1;1;1;1;0;1;1;1;1;0;1;1;1;1;0;0;0;1;1;0;1;0;0;1;1;0;0;0;0;1;1;1;0;1;0;0;1;1;0;1;0;1;0;1
1;1;1;0;0;0;1;1;0;1;1;1;1;0;0;1;1;1;1;0;0;1;1;0;0;1;1;0;1;1;0;1;0;1;0;1;1;0;1;1;0;0;1;0;0;1;0;1;1;1;1;1;1;1;0;1;0;0;0;1;0;0;1;1;1;0;0;1;0;1;1;1;0;1;0;1;1;0;0;0;0;0;1;1;0;1;0;1;1;1;1;1;1;0;1;1;0;1;0;1
1;0;1;0;1;1;0;0;0;0;1;1;0;1;1;1;1;0;1;1;1;1;1;0;0;0;1;0;0;0;1;1;1;0;1;0;1;1;0;1;0;0;1;1;0;0;1;0;1;0;1;0;0;0;0;1;0;1;0;0;1;1;0;1;1;0;1;0;0;0;0;0;1;0;0;0;1;0;1;0;0;1;1;1;1;1;1;1;1;0;0;0;1;0;0;0;1;0;0;0
0;0;1;0;0;0;0;1;0;0;0;1;0;1;0;1;0;0;0;1;1;0;0;0;1;1;1;0;0;0;1;1;0;0;0;0;1;1;1;1;0;1;0;0;1;0;0;1;1;1;0;0;0;0;0;0;1;1;0;1;1;0;0;1;1;0;0;0;1;0;1;1;1;1;0;0;0;1;0;1;1;1;1;1;1;0;0;1;1;1;0;0;1;0;1;0;0;0;0;0
0;1;0;1;1;1;0;1;0;0;1;0;1;0;0;1;1;0;1;1;1;0;0;1;1;1;0;0;1;1;1;1;1;0;1;1;0;0;0;1;1;0;0;1;1;0;0;0;1;1;0;1;0;1;1;1;0;1;0;1;0;1;0;1;1;1;0;1;1;0;1;0;1;1;1;0;1;0;1;0;1;0;1;1;1;1;1;0;0;1;0;0;0;1;1;0;1;1;1;1
0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;0;1;1;1;1;0;0;1;1;0;0;1;1;0;0;1;1;0;0;1;1;1;0;0;0;0;1;1;1;1;1;1;1;1;0;1;1;1;0;0;1;1;1;0;1;1;0;0;1;1;1;0;1;1;1;1;1;1;0;1;0;1;0;1;1;1;0;1;0;0;0;1;1;1;0;1;1;1;1;0;1;0;0;1
0;0;1;1;1;0;0;1;0;0;1;0;0;0;1;1;0;1;0;1;0;0;0;0;0;1;1;0;1;0;1;0;1;0;0;0;1;0;1;1;1;0;1;1;0;0;1;0;1;1;0;1;0;1;1;1;0;1;0;1;0;1;0;0;0;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;1;1;1;0;1;0;1;0;1;0;0;0;1;1;1;1;0;0
1;0;1;1;0;1;1;1;1;1;0;0;0;0;1;1;0;0;0;1;1;1;1;0;1;0;0;1;0;0;1;1;1;0;0;1;1;0;0;0;1;1;1;0;0;0;1;0;0;0;0;0;1;1;1;0;0;1;0;1;0;1;1;0;0;0;0;1;0;0;1;1;1;0;0;1;1;1;1;1;1;0;0;1;0;0;0;1;1;0;0;0;0;1;0;1;1;1;1;1
1;1;1;0;0;0;1;1;1;0;1;0;0;1;1;0;0;1;0;1;1;1;0;0;0;1;0;1;0;1;0;0;0;1;1;1;0;1;1;1;1;0;1;0;1;1;1;0;0;1;0;1;0;1;1;1;1;0;0;1;0;1;0;1;0;0;1;1;1;1;0;1;1;1;1;0;0;1;1;0;0;0;1;0;1;1;1;0;0;1;0;1;0;0;0;1;1;0;1;0
0;0;1;1;1;1;0;0;1;1;0;0;1;0;0;0;0;1;0;1;1;0;0;0;0;1;0;1;0;0;0;1;0;1;1;1;1;1;0;1;1;0;1;0;1;1;0;1;1;0;0;1;1;0;1;0;1;1;0;0;1;1;1;0;0;0;1;1;0;0;1;1;0;0;0;1;1;0;1;1;1;0;0;1;0;1;1;0;0;1;0;1;0;0;0;1;0;1;1;0
0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;0;1;0;1;1;1;1;1;0;1;0;1;1;1;0;1;1;0;0;1;1;0;0;0;1;1;0;1;1;0;0;1;1;1;1;0;0;1;1;1;1;0;0;0;1;1;0;1;1;1;1;1;1;0;1;0;0;0;0;0;0;1;1;1;1;1;0;1;0;1;0;1;1;1;0;1;0;1;1;1;0;0;1;1
1;0;0;1;0;1;1;0;0;1;1;1;0;0;0;0;0;1;0;0;0;1;0;1;0;1;1;1;0;1;0;0;1;1;0;1;0;0;1;1;1;0;1;1;1;0;1;1;0;0;0;0;1;1;0;1;1;0;1;0;1;1;1;1;1;0;0;1;1;0;1;0;1;1;0;0;0;0;1;1;1;0;0;0;0;1;1;0;0;0;1;1;0;0;0;0;0;1;1;1
0;1;1;0;1;0;0;0;1;0;1;0;1;1;0;0;1;1;0;0;0;1;1;1;1;0;0;0;1;1;0;1;1;1;0;1;1;1;0;1;1;1;1;0;1;0;1;1;1;0;0;1;0;0;0;0;1;0;0;0;0;1;1;0;1;0;1;1;1;1;1;1;1;0;1;1;0;0;0;1;0;1;1;1;1;0;1;1;1;0;0;1;0;1;0;0;1;1;1;1
0;1;1;1;0;1;0;0;1;0;1;1;1;1;1;1;1;1;1;0;1;0;1;0;1;0;0;0;1;0;1;0;1;0;1;0;0;0;1;1;0;0;1;0;0;0;1;1;0;1;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;1;1;0;0;0;0;1;1;1;1;1;0;0;1;0;1;0;1;1;0;0;0;1;0;0;1;1;0;1;0;1;0;1;0;0
1;1;0;1;0;1;1;1;1;1;0;0;1;1;0;1;0;1;0;0;0;1;0;1;1;0;0;0;1;0;0;0;0;1;1;1;0;0;1;1;0;1;1;1;1;1;1;0;1;1;0;0;1;0;1;0;0;1;1;0;1;0;1;0;0;1;0;0;0;1;1;0;0;0;0;0;0;1;0;0;0;0;1;0;0;1;1;1;0;0;1;1;1;1;0;1;0;1;1;1
1;0;0;1;0;0;0;0;0;0;0;1;1;0;1;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;0;1;0;0;1;1;0;0;0;0;0;1;1;1;1;1;0;0;1;1;0;0;1;0;1;0;0;0;1;1;1;0;1;1;0;0;1;1;1;0;1;1;0;0;0;1;1;1;1;0;0;1;0;1;1;0;0;0;0;1;1;0;1;0;1;1;1;0;1
1;1;1;0;1;1;1;0;1;1;1;0;0;1;0;0;1;1;1;1;0;1;1;1;0;1;1;1;1;1;0;1;1;1;0;1;0;0;1;1;1;0;1;1;1;0;0;1;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;0;1;0;0;1;0;0;0;0;0;1;0;1;0;1;0;0;1;1;1;1;1;1;0;1;1;1;0;1;0;1;1;1;0;1;0;0
1;0;0;1;0;1;0;0;0;1;1;0;1;0;1;1;1;0;1;0;0;1;1;1;0;1;0;1;0;0;0;1;0;1;1;1;1;1;0;1;1;0;0;0;0;0;0;0;1;0;1;1;1;1;1;0;0;0;1;0;0;1;0;0;0;0;0;0;1;0;0;1;0;0;1;0;0;1;0;1;1;0;1;0;0;0;0;0;1;0;0;1;0;1;0;1;1;1;1;0
1;0;1;0;0;0;1;1;1;1;1;0;0;1;0;0;0;0;1;0;0;1;0;1;0;0;1;0;1;0;1;1;0;1;1;0;1;1;0;0;0;0;1;0;1;0;0;1;0;0;1;1;0;1;1;0;1;0;0;1;1;1;0;1;1;1;1;1;0;0;0;1;1;0;1;1;1;0;1;0;1;1;0;1;0;1;0;1;0;0;0;0;1;1;1;1;1;1;1;0
0;0;1;1;1;0;1;0;1;0;0;1;1;0;1;1;0;0;0;1;1;1;1;1;1;1;0;0;1;1;0;1;1;0;1;1;1;0;1;0;0;0;0;0;0;0;1;0;0;0;1;1;0;0;1;1;0;1;0;0;1;0;1;1;0;1;1;0;0;0;0;1;1;0;0;0;1;1;1;0;1;1;0;0;1;0;1;0;0;1;1;1;0;1;0;1;0;1;0;0
0;1;0;0;1;0;0;0;1;1;0;0;0;0;1;0;1;1;1;0;1;1;1;1;1;0;1;0;1;1;0;0;1;0;0;0;0;0;1;0;0;1;0;0;1;0;1;0;1;0;1;1;1;1;1;0;0;1;1;0;0;1;1;0;0;0;0;1;0;1;1;0;1;1;1;1;0;0;0;0;0;1;1;0;1;0;0;1;1;1;0;1;1;1;1;1;0;1;1;0
1;0;1;0;0;1;1;0;0;0;1;0;0;0;0;1;1;1;1;0;1;1;0;0;1;0;1;0;0;0;0;1;0;0;0;0;0;1;0;1;0;1;1;1;0;0;1;1;0;1;1;1;1;1;1;1;1;0;0;1;0;1;1;1;0;0;0;0;0;0;0;1;0;1;1;0;1;0;0;0;0;0;0;0;1;1;0;0;0;0;1;1;0;1;1;0;1;1;0;1
1;1;1;0;0;0;0;0;1;1;0;0;0;1;0;1;0;0;1;0;0;0;1;0;0;0;1;1;0;0;0;0;1;1;1;0;1;0;0;1;1;1;0;1;1;1;1;0;0;1;0;1;0;1;0;0;1;1;1;0;1;1;1;1;0;0;1;0;0;1;0;1;1;1;1;0;1;1;1;0;1;1;1;0;0;0;0;0;1;1;0;1;1;0;1;1;0;0;0;1
1;0;0;1;1;1;0;0;0;1;1;1;0;0;1;0;1;0;1;1;0;0;0;0;0;0;1;0;0;0;0;1;0;1;1;1;0;1;0;1;1;1;1;1;0;1;1;1;1;0;1;1;0;1;1;1;1;0;1;1;0;1;0;1;1;0;1;0;0;0;0;1;1;0;1;0;0;1;1;0;1;1;0;1;0;1;1;0;0;0;1;0;1;0;1;0;1;1;1;0
0;0;1;1;1;1;0;1;0;0;1;0;0;0;1;0;1;1;0;0;1;1;0;0;1;0;1;0;1;1;0;1;1;0;1;1;0;0;0;0;0;0;0;1;1;1;0;1;0;1;0;1;0;1;0;1;1;1;0;1;0;1;0;0;0;1;0;1;0;1;0;1;1;1;0;1;0;0;1;1;1;1;0;0;1;1;1;1;1;1;0;0;1;1;1;0;1;0;1;1
0;0;0;0;1;0;0;0;0;0;1;1;0;1;0;1;1;1;0;0;1;0;1;0;0;1;0;1;0;0;0;0;0;1;0;1;1;1;1;1;1;1;0;1;0;1;1;1;1;0;0;1;0;0;1;1;0;0;1;0;0;0;1;0;1;0;0;0;1;0;0;1;1;0;1;1;1;1;0;0;0;0;1;0;1;1;0;0;1;1;1;0;0;0;1;0;1;1;0;0
1;0;0;1;1;0;1;1;0;1;1;0;0;0;0;0;1;1;1;0;0;1;0;1;0;1;0;0;1;1;0;0;0;1;1;0;0;0;1;0;1;0;1;1;1;0;0;1;0;0;0;1;0;0;1;1;0;1;0;0;1;1;1;0;0;0;0;1;0;1;0;1;0;1;1;1;1;0;1;0;1;1;0;0;0;0;0;1;1;0;0;0;0;0;1;0;0;0;1;1
1;0;1;0;1;0;1;0;1;1;0;1;1;0;1;0;0;0;0;1;1;1;1;1;0;0;0;1;0;1;1;1;1;1;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;0;0;0;0;0;1;0;0;0;1;1;0;1;1;0;0;0;1;1;0;0;0;0;1;0;0;1;0;1;0;0;1;0;0;0;1;1;1;1;1;1;1
1;1;0;0;1;0;1;0;1;0;0;1;1;0;1;1;1;0;0;1;0;1;0;0;1;0;0;1;1;0;1;1;1;0;0;1;0;0;1;0;0;1;0;1;0;1;0;1;1;1;0;0;0;1;0;1;0;1;0;0;0;0;0;1;0;1;1;0;1;1;1;0;0;1;1;0;0;1;0;1;1;1;0;1;1;1;1;1;1;1;0;0;0;1;1;0;0;1;0;0
1;1;0;1;0;0;1;0;1;0;1;1;1;1;1;1;0;0;0;0;0;0;0;1;0;0;1;0;0;0;0;1;0;0;0;0;0;1;0;1;0;0;1;1;0;1;1;1;0;1;0;1;0;0;1;0;0;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;1;1;0;0;1;1;1;1;0;1;1;0;0;0;0;0;1;1;0;0;0;1;0;1;1;0;1;0
0;1;0;1;1;0;1;0;0;0;0;1;0;0;0;1;1;1;1;0;1;0;1;1;1;0;1;0;1;0;0;0;1;0;1;1;0;0;1;1;0;0;1;0;1;1;0;1;0;1;1;1;1;0;1;0;0;0;0;0;1;0;0;1;0;1;0;0;0;1;1;1;1;1;1;0;1;0;1;0;1;1;1;0;0;1;0;0;0;0;1;1;0;1;0;1;1;1;0;0
0;1;1;1;0;0;0;1;1;1;0;1;1;1;0;0;1;0;0;1;0;1;1;0;1;0;1;0;1;1;0;1;1;0;0;0;0;1;0;0;1;0;1;0;1;0;1;1;0;0;0;0;1;0;1;0;0;1;0;1;0;1;1;1;1;0;1;0;0;1;1;0;1;0;0;1;0;1;1;0;0;1;0;1;1;0;0;0;0;1;0;0;1;1;1;0;0;0;0;1
0;0;0;0;1;1;1;1;1;1;0;1;0;1;0;0;0;1;0;1;1;0;1;0;0;0;1;1;1;0;1;1;1;1;1;0;1;0;0;0;0;0;1;0;1;0;0;0;1;1;0;1;0;1;1;0;0;1;0;0;0;1;1;1;0;1;1;1;1;1;0;0;0;0;1;0;0;1;0;0;0;1;1;0;1;0;0;0;1;0;0;1;0;1;1;0;1;0;0;1
1;0;1;1;1;1;1;1;1;1;0;0;0;1;1;0;1;0;1;1;0;0;0;0;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;1;0;1;1;1;1;1;0;0;1;0;1;0;0;0;1;0;1;0;1;0;1;0;1;1;0;1;1;0;0;0;1;1;0;0;0;0;1;1;1;1;1;1;1;1;0;0;1;1;1;0;0;0;1;0;1;0;0;1;0;0
1;0;0;0;1;0;1;1;0;0;1;0;1;1;1;0;0;1;1;0;0;1;1;0;1;0;1;0;0;1;0;1;1;1;1;0;1;0;0;1;1;1;1;1;1;0;1;0;1;0;0;1;1;0;0;0;1;0;1;0;0;1;0;0;0;1;1;0;1;0;0;0;0;0;0;1;0;1;0;1;0;0;1;1;0;0;0;0;0;1;0;0;1;0;0;1;0;1;1;1
0;1;1;0;0;1;0;1;1;1;1;1;1;0;0;0;0;1;0;0;0;1;1;0;0;0;0;0;1;0;1;1;1;0;1;0;1;0;1;0;0;1;0;0;0;0;0;1;0;1;0;0;0;0;0;1;1;0;1;1;1;0;1;0;1;1;1;1;0;1;0;0;0;1;1;0;0;0;1;1;0;0;1;0;1;0;0;1;0;0;0;1;1;0;1;0;1;0;1;1
1;1;0;0;0;1;0;0;1;0;1;1;1;1;0;1;1;0;0;0;1;1;1;1;0;1;0;0;1;0;0;1;0;0;0;1;1;1;1;0;1;0;0;0;1;0;1;1;0;1;0;0;1;0;1;0;1;1;0;1;1;1;1;1;1;1;1;0;0;0;1;0;1;1;1;1;1;1;0;1;0;0;0;0;1;1;0;0;0;1;0;1;1;1;0;0;1;0;0;1
1;1;1;1;1;1;1;0;1;0;0;1;0;1;1;1;1;0;1;0;1;1;1;1;0;1;1;1;1;1;0;0;0;1;0;0;1;0;0;1;0;0;1;1;1;1;0;1;1;1;1;1;1;0;0;0;1;1;0;0;0;1;0;0;1;1;1;1;0;1;0;1;1;1;0;0;0;1;1;0;1;0;0;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;1;1
1;1;1;0;1;1;0;0;1;1;1;1;0;0;0;1;1;0;1;0;0;1;1;1;1;0;1;1;0;1;0;1;1;0;0;1;0;0;0;1;0;0;0;1;0;1;1;0;0;1;1;1;0;0;0;0;0;0;0;1;0;0;1;0;0;0;1;1;0;0;1;1;0;1;0;0;1;1;1;0;1;0;1;1;1;0;1;0;0;0;1;1;1;0;1;0;1;0;1;1
1;0;1;0;0;0;0;1;1;0;1;1;0;1;0;0;1;0;0;0;0;1;0;1;0;1;0;0;1;1;1;0;1;0;0;0;0;0;0;1;0;0;1;1;1;0;0;0;1;1;1;1;1;1;0;0;0;0;0;1;0;1;1;0;0;1;1;0;1;1;0;1;1;0;1;0;0;0;0;1;0;1;1;1;0;1;1;0;0;0;0;0;0;0;1;1;0;0;0;0
1;1;0;1;0;0;0;0;0;1;0;1;1;1;1;1;0;1;1;1;0;0;0;0;1;1;0;0;1;1;0;0;0;1;0;0;1;1;0;0;1;1;1;0;1;0;1;1;1;0;1;0;1;1;1;0;0;0;1;1;0;0;0;1;1;0;1;0;1;1;0;0;1;0;0;1;1;0;1;1;0;1;1;1;0;1;0;0;0;0;0;1;0;0;1;1;0;1;0;0
1;0;1;1;1;1;0;1;0;1;0;0;0;1;1;0;0;1;0;1;0;0;1;0;1;0;1;1;0;0;0;1;0;1;0;0;1;1;0;1;0;0;1;1;0;1;0;0;1;0;0;0;0;0;0;1;0;0;1;1;1;0;0;0;1;1;1;1;0;1;1;1;1;1;1;0;0;1;1;0;1;1;1;0;0;1;1;1;1;0;1;1;1;1;1;0;0;1;1;1
0;0;1;0;1;1;0;1;1;1;1;1;1;0;0;0;1;0;0;0;0;1;0;1;1;1;1;0;0;0;0;1;1;0;1;1;0;0;0;0;1;0;1;0;0;0;1;0;1;0;1;0;0;0;1;0;1;0;0;1;0;1;0;1;0;0;0;0;0;0;0;0;1;1;1;0;0;1;1;0;0;0;0;0;1;0;1;1;0;0;1;0;0;1;0;0;0;0;0;1
1;1;0;1;0;1;0;1;1;1;1;0;0;0;0;1;1;0;1;0;0;1;1;0;0;0;0;1;1;1;1;0;1;1;0;0;1;1;1;1;0;1;1;1;0;1;0;1;1;1;0;0;0;1;1;0;0;0;0;1;1;1;0;1;1;1;1;1;1;0;1;1;0;0;1;1;1;0;0;0;0;0;1;1;0;0;1;0;0;1;0;0;0;1;0;1;0;1;0;1
0;1;1;1;0;1;1;1;0;0;1;1;0;1;1;1;0;0;0;0;1;1;0;1;1;1;0;1;1;0;0;0;0;1;0;1;0;0;1;1;1;1;1;0;0;0;0;0;1;1;1;1;0;0;0;0;0;1;1;1;1;1;1;0;0;0;1;0;1;0;1;0;0;1;0;0;0;1;1;0;1;0;0;1;0;1;0;0;1;0;0;1;1;1;1;1;0;1;0;0

View File

@ -7,7 +7,8 @@ public abstract class Agent {
protected int x;
protected int y;
protected Color color;
protected ArrayList<Agent> agents;
boolean deathMarker=false;
protected Agent(int x, int y, Color color) {
this.x = x;
this.y = y;
@ -30,11 +31,21 @@ public abstract class Agent {
return dist<radius;
}
public int getDistance(Agent animal) {
int diffX = this.x-animal.x;
int diffY = this.y-animal.y;
int dist = (int) Math.floor(Math.sqrt(diffX*diffX+diffY*diffY));
return dist;
}
// Does whatever the agent does during a step
// then returns a boolean
// if false, agent dies at end of turn
// see step function in Simulator
public abstract boolean liveTurn(ArrayList<Agent> neighbors, Simulator world);
public abstract int getAgentType();
public void toggleDeathMarker() {
deathMarker=true;
}
}

View File

@ -13,6 +13,7 @@ public class Sheep extends Agent {
int hunger;
Random rand;
Sheep(int x,int y){
//first we call the constructor of the superClass(Animal)
//with the values we want.
@ -30,13 +31,17 @@ public class Sheep extends Agent {
* as you wish
*/
public boolean liveTurn(ArrayList<Agent> neighbors, Simulator world) {
if(deathMarker) {
return false;
}
if(world.getCell(x, y)==1) {
world.setCell(x, y, 0);
hunger-=5;
} else {
hunger++;
}
this.moveRandom();
return hunger>10;
return hunger<30;
}
private void moveRandom() {
@ -54,6 +59,8 @@ public class Sheep extends Agent {
y-=1;
}
}
public int getAgentType() {
return 1;
}
}

View File

@ -1,6 +1,6 @@
package backend;
import java.util.ArrayList;
import java.util.Random;
import windowInterface.MyInterface;
//import backend.Rules;
@ -27,10 +27,9 @@ public class Simulator extends Thread {
private boolean stopFlag;
private boolean pauseFlag;
private boolean loopingBorder;
private boolean clickActionFlag;
private int clickActionFlag;
private int loopDelay = 150;
private ArrayList<Integer> ruleSurviveCriteria= new ArrayList<Integer>();
private ArrayList<Integer> ruleSurviveCriteria= new ArrayList<Integer>();//array lists used to compute the Rules
private ArrayList<Integer> ruleBirthCriteria=new ArrayList<Integer>() ;
//Rules rule = new Rules();
//TODO : add missing attribute(s)
@ -40,7 +39,7 @@ public class Simulator extends Thread {
stopFlag=false;
pauseFlag=false;
loopingBorder=false;
clickActionFlag=false;
clickActionFlag=0;
cells = new ArrayList<ArrayList<Cell>>();
newCells = new ArrayList<ArrayList<Cell>>();
@ -50,7 +49,7 @@ public class Simulator extends Thread {
//TODO : add missing attribute initialization
ruleSurviveCriteria.add(2);//initializing system with conway rule
ruleSurviveCriteria.add(2);//initializing system with Conway rule
ruleSurviveCriteria.add(3);
ruleBirthCriteria.add(3);
//initialize grid with dead cells
@ -141,46 +140,36 @@ public class Simulator extends Thread {
}
public int getAliveNeighbors(int x, int y, int radius) {
//to compensate for the cell itself being alive or not
int aliveNeighbors = -1;
if(getCell(x,y) == 0) {
aliveNeighbors++;
}
//for each neighbor
for(int i = x-radius; i <= x+radius; i++) {
for(int j = y-radius; j <= y+radius; j++) {
if(i!=-1 && i!=getWidth() && j!=-1 && j!=getHeight()) { //if neighbor is not outside the map
if(getCell(i,j) == 1) { //if alive, add 1 to counter
aliveNeighbors++;
}
}
else if(loopingBorder==true && (i==-1 || i==getWidth() || j==-1 || j==getHeight() )) { //if looping borders enabled and neighbor outside map
int I=i;
int J=j;
if(I==-1) {
I=getWidth()-1;
}
else if(I==getWidth()) {
I=0;
}
if(J==-1) {
J=getHeight()-1;
}
else if(J==getHeight()) {
J=0;
}
if(getCell(I,J) == 1) { //if alive, add 1 to counter
}if(getCell(I,J) == 1) { //if alive, add 1 to counter
aliveNeighbors++;
}
}
}
}
@ -196,18 +185,20 @@ public class Simulator extends Thread {
// only modify if sure of what you do
// to modify agent behavior, see liveTurn method
// in agent classes
ArrayList<Integer> arrayDeadAgent=new ArrayList<Integer>();
for(Agent agent : agents) {
ArrayList<Agent> neighbors =
this.getNeighboringAnimals(
agent.getX(),
agent.getY(),
ANIMAL_AREA_RADIUS);
if(!agent.liveTurn(
neighbors,
this)) {
agents.remove(agent);
ArrayList<Agent> neighbors = this.getNeighboringAnimals(agent.getX(), agent.getY(), ANIMAL_AREA_RADIUS);
if(!agent.liveTurn(neighbors,this)) {
//agents.remove(agent);
arrayDeadAgent.add(agents.indexOf(agent));//if an agent doesn't fulfill its condition to live it will be listed as dead before being removed
}
}
for(Integer i : arrayDeadAgent) {//removing agent from agents taking into account the change in index
agents.remove(i.intValue()-arrayDeadAgent.indexOf(i));//since the size of the array lowers at each iteration
}
//then evolution of the field
// TODO : apply game rule to all cells of the field
@ -275,18 +266,32 @@ public class Simulator extends Thread {
*/
public void clickCell(int x, int y) {
//TODO : complete method
//if clickActionFlag = true then create an agent
//else if flag = false then change value of cell
if(clickActionFlag) {
//if clickActionFlag = 0 then get the position
//else if flag = 1 then change value of cell
//else if flag=2 then set a sheep
//else if flag=3 then set a wolf
switch (clickActionFlag) {
case 0 :
System.out.print(x );
System.out.println(y);
}else {
System.out.println(getAliveNeighbors(x, y, LIFE_AREA_RADIUS)); //print nb of neighbours
break;
case 1 :
if(getCell(x, y)==0) {
setCell(x, y, 1);
}else {setCell(x, y, 0);}
break;
case 2 :
Sheep Shaun=new Sheep(x,y);
agents.add(Shaun);
//System.out.println(agents);
break;
case 3 :
Wolf agrou=new Wolf(x,y);
agents.add(agrou);
break;
default:
break;
}
}
/**
@ -301,7 +306,7 @@ public class Simulator extends Thread {
return status;
}
public int getNewCell(int x, int y) {
public int getNewCell(int x, int y) {//getCell for the new array of cells for the next step
//TODO : complete method with proper return
int status = newCells.get(x).get(y).getAlive();
//int status = newCells.get(x).get(y);
@ -343,7 +348,7 @@ public class Simulator extends Thread {
public void setCell(int x, int y, int status) {
cells.get(x).get(y).setAlive(status);
}
public void setNewCell(int x, int y, int status) {
public void setNewCell(int x, int y, int status) {//same but for the new cells array
newCells.get(x).get(y).setAlive(status);
}
@ -354,7 +359,22 @@ public class Simulator extends Thread {
*/
public ArrayList<String> getSaveState() {
//TODO : complete method with proper return
return null;
//We need to create an array of strings
//each string should be the sum of all int transformed to strings in each Arrays of int
ArrayList<String> arrayLines=new ArrayList<String>();
for(int x=0;x<getWidth();x++) {//create an array of Strings where each line is the sum of the values of all the cells in the x row separated by a semicolon
String sumElementToLine="";
for(int y=0;y<getHeight();y++) {
sumElementToLine+=(Integer.toString(getCell(y, x)));//create each line by computing all the cells and concatenate them into a single string
if(y<getHeight()-1) {
sumElementToLine+=";";
}
}
arrayLines.add(sumElementToLine);
//System.out.println(sumElementToLine.length());
}
//System.out.println(arrayLines);
return arrayLines;
}
/**
*
@ -398,6 +418,18 @@ public class Simulator extends Thread {
*/
public void generateRandom(float chanceOfLife) {
//TODO : complete method
Random ran= new Random();
for (int x=0;x<getWidth();x++){
for (int y=0;y<getHeight();y++) {
if (ran.nextFloat()<=chanceOfLife) {// since the ran.nextFloat is uniformly distributed we can obtain a grid with each cell having as a probability to live chanceOfLife
setCell(x, y, 1);
}else {
setCell(x, y, 0);
}
}
}
/*
* Advice :
* as you should probably have a separate class
@ -434,9 +466,25 @@ public class Simulator extends Thread {
// }
}
public void toggleClickAction() {
public void toggleClickAction() {//make clickActionFlag do an endless loop when called
//TODO : complete method
clickActionFlag = !clickActionFlag;
switch (clickActionFlag) {
case 0:
clickActionFlag++;
break;
case 1:
clickActionFlag++;
break;
case 2:
clickActionFlag++;
break;
case 3:
clickActionFlag=0;
break;
default:
break;
}
}
/**
@ -449,11 +497,27 @@ public class Simulator extends Thread {
*/
public ArrayList<String> getRule() {
//TODO : complete method with proper return
return null;
ArrayList<String> arrayline=new ArrayList<String>();
String lineOne="";
for(int i=0;i<ruleSurviveCriteria.size();i++) {//create an array of Strings where each line is the sum of the values of surviveCriteria of the in the x row separated by a semicolon
lineOne+=Integer.toString(ruleSurviveCriteria.get(i));
if(i<ruleSurviveCriteria.size()-1) {
lineOne+=";";
}
}
arrayline.add(lineOne);
String lineTwo="";
for(int j=0;j<ruleBirthCriteria.size();j++) {//create an array of Strings where each line is the sum of the values of birthCriteria of the in the x row separated by a semicolon
lineTwo+=Integer.toString(ruleBirthCriteria.get(j));
if(j<ruleBirthCriteria.size()-1) {
lineTwo+=";";
}
}
arrayline.add(lineTwo);
return arrayline;
}
public void loadRule(ArrayList<String> lines) {
public void loadRule(ArrayList<String> lines) {//opposite of getRule
if(lines.size()<=0) {
System.out.println("empty rule file");
return;
@ -480,29 +544,61 @@ public class Simulator extends Thread {
}
public ArrayList<String> getAgentsSave() {
//TODO : Same idea as the other save method, but for agents
return null;
ArrayList<String> arrayLines=new ArrayList<String>();
String sumAgentToLine="";
for(Agent agent :agents) {
sumAgentToLine+=agent.getX()+",";
sumAgentToLine+=agent.getY()+",";
sumAgentToLine+=agent.getAgentType();
if (agents.indexOf(agent)<agents.size()-1);{
sumAgentToLine+=";";
}
}
arrayLines.add(sumAgentToLine);
//System.out.println(sumElementToLine.length());
//System.out.println(arrayLines);
return arrayLines;
}
public void loadAgents(ArrayList<String> stringArray) {
public void loadAgents(ArrayList<String> lines) {
//TODO : Same idea as other load methods, but for agent list
if(stringArray.size()<=0) {
System.out.println("empty agents file");
if(lines.size()<=0) {
return;
}
String firstLine = lines.get(0);
String[] firstLineElements = firstLine.split(";");
if(firstLineElements.length<=0) {
return;
}
//TODO : remove previous rule (=emptying lists)
for(int j =0; j<lines.size();j++) {
String line = lines.get(j);
String[] lineElements = line.split(";");
for(int i=0; i<lineElements.length;i++) {
String[] elements = lineElements[i].split(",");
int x = Integer.parseInt(elements[0]);
int y = Integer.parseInt(elements[1]);
if (elements.length>2) {
int typeAgent = Integer.parseInt(elements[2]);
switch (typeAgent) {
case 1 :
Sheep Shaun=new Sheep(x,y);//adds a sheep for type 1
agents.add(Shaun);
//System.out.println(agents);
break;
case 2 :
Wolf agrou=new Wolf(x,y);//adds a Wolf for type 2
agents.add(agrou);
break;
default:
break;
}
}
else {
Sheep Shaun=new Sheep(x,y);// adds Sheep if the save doesn't specify the type of the Agent
agents.add(Shaun);
}
for(int x=0; x<stringArray.size();x++) {
String agentsLine = stringArray.get(x);
String[] agentsElements = agentsLine.split(";");
int[] agentsValues = new int[3];
for(int i=0; i<agentsElements.length;i++) {
agentsValues[i]= Integer.parseInt(agentsElements[i]);
}
if(agentsValues[2]==1) {
agents.add(new Sheep(agentsValues[0], agentsValues[1]));
}
}
}
@ -514,7 +610,18 @@ public class Simulator extends Thread {
public String clickActionName() {
// TODO : initially return "sheep" or "cell"
// depending on clickActionFlag
return "";
switch (clickActionFlag) {//returns a string depending pn the value pf clickActionFlag
case 0:
return "position";
case 1:
return "cell";
case 2:
return "sheep";
case 3:
return "wolf";
default:
return "";
}
}
}

92
src/backend/Wolf.java Normal file
View File

@ -0,0 +1,92 @@
package backend;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Random;
// example of basic animal.
// do not hesitate to make it more complex
//not very peculiar agent
//this class creates wolves that kill the agents that are of the Sheep subclass
//the wolves objects are moving towards any agent, making their behavior as a pack and going towards Sheep object to eat them
public class Wolf extends Agent {
int hunger;
Random rand;
Wolf(int x,int y){
//first we call the constructor of the superClass(Animal)
//with the values we want.
// here we decide that a Wolf is initially white using this constructor
super(x,y,Color.red);
// we give our Wolf a hunger value of zero at birth
hunger = 0;
//we initialize the random number generator we will use to move randomly
rand = new Random();
}
/**
* action of the animal
* it can interact with the cells or with other animals
* as you wish
*/
public boolean liveTurn(ArrayList<Agent> neighbors, Simulator world) {
ArrayList<Agent> inAreaAgents=new ArrayList<Agent>();
for(Agent agent : world.getAnimals()) {
if (this.getDistance(agent)<=1) {
agent.toggleDeathMarker();//if a wolf is near a sheep(radius of 1) then the sheep will die the following liveTurn
hunger-=50;
}
else if (agent.isInArea(agent.getX(), agent.getY(), 5)) {//look for agents in area and add them to the array list inAreaAgents
inAreaAgents.add(agent);
}
}//gets the agent with the smallest distance with this wolf
if (inAreaAgents.size()>0) {
Agent smallestDistanceAgent=inAreaAgents.get(0);
for(Agent agentNear:inAreaAgents) {
if(this.getDistance(agentNear)<this.getDistance(smallestDistanceAgent)) {
smallestDistanceAgent=agentNear;
}
}
int smallX=smallestDistanceAgent.getX();
int smallY=smallestDistanceAgent.getY();
//decrease the distance between this wolf and the target
if((x-smallX)>0) {
x-=1;
}else if ((x-smallX)<0) {
x+=1;
}
if((y-smallY)>0) {
y-=1;
}else if ((y-smallY)<0) {
y+=1;
}
}else {
this.moveRandom();
}
return hunger<50;
}
private void moveRandom() {
int direction = rand.nextInt(4);
if(direction == 0) {
x+=1;
}
if(direction == 1) {
y+=1;
}
if(direction == 2) {
x-=1;
}
if(direction == 3) {
y-=1;
}
}
public int getAgentType() {
return 2;
}
}

View File

@ -13,6 +13,7 @@ import javax.swing.event.ChangeListener;
import backend.Simulator;
import javax.imageio.ImageReader;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
@ -23,6 +24,7 @@ import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.awt.event.ActionEvent;
public class MyInterface extends JFrame {
@ -154,6 +156,14 @@ public class MyInterface extends JFrame {
generateRandomBoard();
}
});
/**panelRight.add(btnLoadImage);
JButton btnLoadImage = new JButton("Load Image");
btnLoadImage.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
clicLoadImage;
}
});*/
panelRight.add(btnRandGen);
@ -320,13 +330,33 @@ public class MyInterface extends JFrame {
this.repaint();
}
}
/**public void clicLoadImage() {
String fileName=SelectFile();
//ArrayList<String> stringArray = new ArrayList<String>();
if (fileName.length()>0) {
try {
ImageReader fileContent = new ImageReader(new FileReader(fileName));
String line = fileContent.readLine();
while (line != null) {
stringArray.add(line);
line = fileContent.readLine();
}
fileContent.close();
} catch (Exception e) {
e.printStackTrace();
}
mySimu.loadAgents(stringArray);
this.repaint();
}
}*/
public void clicSaveToFileButton() {
String fileName=SelectFile();
if (fileName.length()>0) {
ArrayList<String> content = mySimu.getSaveState();
writeFile(fileName, (String[]) content.toArray());
String[] strArr = Arrays.copyOf(content.toArray(), content.toArray().length, String[].class);
writeFile(fileName, strArr);
}
}
@ -334,7 +364,8 @@ public class MyInterface extends JFrame {
String fileName=SelectFile();
if (fileName.length()>0) {
ArrayList<String> content = mySimu.getRule();
writeFile(fileName, (String[]) content.toArray());
String[] strArr = Arrays.copyOf(content.toArray(), content.toArray().length, String[].class);
writeFile(fileName, strArr);
}
}
@ -342,7 +373,8 @@ public class MyInterface extends JFrame {
String fileName=SelectFile();
if (fileName.length()>0) {
ArrayList<String> content = mySimu.getAgentsSave();
writeFile(fileName, (String[]) content.toArray());
String[] strArr = Arrays.copyOf(content.toArray(), content.toArray().length, String[].class);
writeFile(fileName, strArr);
}
}