xref: /plan9/sys/src/games/5s.c (revision 68412abfd32cf2b40bc99e2a1363ebd4a35a4480)
1*68412abfSDavid du Colombier #include "xs.h"
2c4113d79SDavid du Colombier 
3*68412abfSDavid du Colombier int N = 5;
4c4113d79SDavid du Colombier 
5c4113d79SDavid du Colombier Piece pieces[]={
6c4113d79SDavid du Colombier 	{ 0, 1, 5,1,  { 0,0,  1,0,  1,0,  1,0,  1,0 }},
7c4113d79SDavid du Colombier 	{ 1, 1, 1,5,  { 0,0,  0,1,  0,1,  0,1,  0,1 }},
8c4113d79SDavid du Colombier 	{ 2, 1, 5,1,  { 0,0,  1,0,  1,0,  1,0,  1,0 }},
9c4113d79SDavid du Colombier 	{ 3, 1, 1,5,  { 0,0,  0,1,  0,1,  0,1,  0,1 }},
10c4113d79SDavid du Colombier 
11c4113d79SDavid du Colombier 	{ 0, 0, 4,2,  { 0,0,  1,0,  1,0,  1,0,  0,1 }},
12c4113d79SDavid du Colombier 	{ 1, 0, 2,4,  { 1,0,  0,1,  0,1,  0,1, -1,0 }},
13c4113d79SDavid du Colombier 	{ 2, 0, 4,2,  { 0,0,  0,1,  1,0,  1,0,  1,0 }},
14c4113d79SDavid du Colombier 	{ 3, 0, 2,4,  { 0,0,  1,0, -1,1,  0,1,  0,1 }},
15c4113d79SDavid du Colombier 
16c4113d79SDavid du Colombier 	{ 0, 2, 4,2,  { 0,0,  0,1,  1,-1, 1,0,  1,0 }},
17c4113d79SDavid du Colombier 	{ 1, 2, 2,4,  { 0,0,  1,0,  0,1,  0,1,  0,1 }},
18c4113d79SDavid du Colombier 	{ 2, 2, 4,2,  { 0,1,  1,0,  1,0,  1,0,  0,-1}},
19c4113d79SDavid du Colombier 	{ 3, 2, 2,4,  { 0,0,  0,1,  0,1,  0,1,  1,0 }},
20c4113d79SDavid du Colombier 
21c4113d79SDavid du Colombier 	{ 0, 7, 3,3,  { 0,0,  1,0,  1,0,  0,1,  0,1 }},
22c4113d79SDavid du Colombier 	{ 1, 7, 3,3,  { 0,2,  1,0,  1,0,  0,-1, 0,-1}},
23c4113d79SDavid du Colombier 	{ 2, 7, 3,3,  { 0,0,  0,1,  0,1,  1,0,  1,0 }},
24c4113d79SDavid du Colombier 	{ 3, 7, 3,3,  { 0,2,  0,-1, 0,-1, 1,0,  1,0 }},
25c4113d79SDavid du Colombier 
26c4113d79SDavid du Colombier 	{ 0, 3, 3,2,  { 0,0,  1,0,  1,0, -2,1,  1,0 }},
27c4113d79SDavid du Colombier 	{ 1, 3, 2,3,  { 0,0,  1,0, -1,1,  1,0,  0,1 }},
28c4113d79SDavid du Colombier 	{ 2, 3, 3,2,  { 1,0,  1,0, -2,1,  1,0,  1,0 }},
29c4113d79SDavid du Colombier 	{ 3, 3, 2,3,  { 0,0,  0,1,  1,0, -1,1,  1,0 }},
30c4113d79SDavid du Colombier 
31c4113d79SDavid du Colombier 	{ 0, 4, 3,2,  { 0,0,  1,0,  1,0, -1,1,  1,0 }},
32c4113d79SDavid du Colombier 	{ 1, 4, 2,3,  { 1,0, -1,1,  1,0, -1,1,  1,0 }},
33c4113d79SDavid du Colombier 	{ 2, 4, 3,2,  { 0,0,  1,0, -1,1,  1,0,  1,0 }},
34c4113d79SDavid du Colombier 	{ 3, 4, 2,3,  { 0,0,  1,0, -1,1,  1,0, -1,1 }},
35c4113d79SDavid du Colombier 
36c4113d79SDavid du Colombier 	{ 0, 7, 3,2,  { 0,0,  2,0, -2,1,  1,0,  1,0 }},
37c4113d79SDavid du Colombier 	{ 1, 7, 2,3,  { 0,0,  1,0, -1,1,  0,1,  1,0 }},
38c4113d79SDavid du Colombier 	{ 2, 7, 3,2,  { 0,0,  1,0,  1,0, -2,1,  2,0 }},
39c4113d79SDavid du Colombier 	{ 3, 7, 2,3,  { 0,0,  1,0,  0,1, -1,1,  1,0 }},
40c4113d79SDavid du Colombier 
41c4113d79SDavid du Colombier 	{ 0, 5, 3,3,  { 0,0,  1,0,  0,1,  1,0, -1,1 }},
42c4113d79SDavid du Colombier 	{ 1, 5, 3,3,  { 2,0, -2,1,  1,0,  1,0, -1,1 }},
43c4113d79SDavid du Colombier 	{ 2, 5, 3,3,  { 1,0, -1,1,  1,0,  0,1,  1,0 }},
44c4113d79SDavid du Colombier 	{ 3, 5, 3,3,  { 1,0, -1,1,  1,0,  1,0, -2,1 }},
45c4113d79SDavid du Colombier 
46c4113d79SDavid du Colombier 	{ 0, 6, 3,3,  { 1,0,  1,0, -2,1,  1,0,  0,1 }},
47c4113d79SDavid du Colombier 	{ 1, 6, 3,3,  { 1,0, -1,1,  1,0,  1,0,  0,1 }},
48c4113d79SDavid du Colombier 	{ 2, 6, 3,3,  { 1,0,  0,1,  1,0, -2,1,  1,0 }},
49c4113d79SDavid du Colombier 	{ 3, 6, 3,3,  { 0,0,  0,1,  1,0,  1,0, -1,1 }},
50c4113d79SDavid du Colombier 
51c4113d79SDavid du Colombier 	{ 0, 0, 4,2,  { 0,0,  1,0,  1,0,  1,0, -2,1 }},
52c4113d79SDavid du Colombier 	{ 1, 0, 2,4,  { 1,0, -1,1,  1,0,  0,1,  0,1 }},
53c4113d79SDavid du Colombier 	{ 2, 0, 4,2,  { 2,0, -2,1,  1,0,  1,0,  1,0 }},
54c4113d79SDavid du Colombier 	{ 3, 0, 2,4,  { 0,0,  0,1,  0,1,  1,0, -1,1 }},
55c4113d79SDavid du Colombier 
56c4113d79SDavid du Colombier 	{ 0, 2, 4,2,  { 0,0,  1,0,  1,0,  1,0, -1,1 }},
57c4113d79SDavid du Colombier 	{ 1, 2, 2,4,  { 1,0,  0,1, -1,1,  1,0,  0,1 }},
58c4113d79SDavid du Colombier 	{ 2, 2, 4,2,  { 1,0, -1,1,  1,0,  1,0,  1,0 }},
59c4113d79SDavid du Colombier 	{ 3, 2, 2,4,  { 0,0,  0,1,  1,0, -1,1,  0,1 }},
60c4113d79SDavid du Colombier 
61c4113d79SDavid du Colombier 	{ 0, 1, 3,3,  { 0,0,  1,0,  0,1,  1,0,  0,1 }},
62c4113d79SDavid du Colombier 	{ 1, 1, 3,3,  { 2,0, -1,1,  1,0, -2,1,  1,0 }},
63c4113d79SDavid du Colombier 	{ 2, 1, 3,3,  { 0,0,  0,1,  1,0,  0,1,  1,0 }},
64c4113d79SDavid du Colombier 	{ 3, 1, 3,3,  { 1,0,  1,0, -2,1,  1,0, -1,1 }},
65c4113d79SDavid du Colombier 
66c4113d79SDavid du Colombier 	{ 0, 3, 3,3,  { 0,0,  1,0,  1,0, -1,1,  0,1 }},
67c4113d79SDavid du Colombier 	{ 1, 3, 3,3,  { 2,0, -2,1,  1,0,  1,0,  0,1 }},
68c4113d79SDavid du Colombier 	{ 2, 3, 3,3,  { 1,0,  0,1, -1,1,  1,0,  1,0 }},
69c4113d79SDavid du Colombier 	{ 3, 3, 3,3,  { 0,0,  0,1,  1,0,  1,0, -2,1 }},
70c4113d79SDavid du Colombier 
71c4113d79SDavid du Colombier 	{ 0, 4, 3,3,  { 1,0, -1,1,  1,0,  1,0, -1,1 }},
72c4113d79SDavid du Colombier 	{ 1, 4, 3,3,  { 1,0, -1,1,  1,0,  1,0, -1,1 }},
73c4113d79SDavid du Colombier 	{ 2, 4, 3,3,  { 1,0, -1,1,  1,0,  1,0, -1,1 }},
74c4113d79SDavid du Colombier 	{ 3, 4, 3,3,  { 1,0, -1,1,  1,0,  1,0, -1,1 }},
75c4113d79SDavid du Colombier 
76c4113d79SDavid du Colombier 	{ 0, 8, 4,2,  { 0,0,  1,0,  0,1,  1,0,  1,0 }},
77c4113d79SDavid du Colombier 	{ 1, 8, 2,4,  { 1,0, -1,1,  1,0, -1,1,  0,1 }},
78c4113d79SDavid du Colombier 	{ 2, 8, 4,2,  { 0,0,  1,0,  1,0,  0,1,  1,0 }},
79c4113d79SDavid du Colombier 	{ 3, 8, 2,4,  { 1,0,  0,1, -1,1,  1,0, -1,1 }},
80c4113d79SDavid du Colombier 
81c4113d79SDavid du Colombier 	{ 0, 9, 4,2,  { 2,0,  1,0, -3,1,  1,0,  1,0 }},
82c4113d79SDavid du Colombier 	{ 1, 9, 2,4,  { 0,0,  0,1,  0,1,  1,0,  0,1 }},
83c4113d79SDavid du Colombier 	{ 2, 9, 4,2,  { 1,0,  1,0,  1,0, -3,1,  1,0 }},
84c4113d79SDavid du Colombier 	{ 3, 9, 2,4,  { 0,0,  0,1,  1,0,  0,1,  0,1 }},
85c4113d79SDavid du Colombier 
86c4113d79SDavid du Colombier 	{ 0, 5, 3,3,  { 0,0,  0,1,  1,0,  1,0,  0,1 }},
87c4113d79SDavid du Colombier 	{ 1, 5, 3,3,  { 1,0,  1,0, -1,1, -1,1,  1,0 }},
88c4113d79SDavid du Colombier 	{ 2, 5, 3,3,  { 0,0,  0,1,  1,0,  1,0,  0,1 }},
89c4113d79SDavid du Colombier 	{ 3, 5, 3,3,  { 1,0,  1,0, -1,1, -1,1,  1,0 }},
90c4113d79SDavid du Colombier 
91c4113d79SDavid du Colombier 	{ 0, 6, 3,3,  { 2,0, -2,1,  1,0,  1,0, -2,1 }},
92c4113d79SDavid du Colombier 	{ 1, 6, 3,3,  { 0,0,  1,0,  0,1,  0,1,  1,0 }},
93c4113d79SDavid du Colombier 	{ 2, 6, 3,3,  { 2,0, -2,1,  1,0,  1,0, -2,1 }},
94c4113d79SDavid du Colombier 	{ 3, 6, 3,3,  { 0,0,  1,0,  0,1,  0,1,  1,0 }},
95c4113d79SDavid du Colombier 
96c4113d79SDavid du Colombier };
97c4113d79SDavid du Colombier 
98*68412abfSDavid du Colombier int NP = nelem(pieces);
99*68412abfSDavid du Colombier 
100