1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/usr/bin/env python3
masks = []
def gen(x, y, z, dx, dy, dz):
if dx == 0 and dy == 0 and dz == 0: return
if x + 4 * dx > 4 or y + 4 * dy > 4 or z + 4 * dz > 4: return
n = 0
for i in range(4):
n |= 1 << (16 * y + 4 * x + z)
x, y, z = x + dx, y + dy, z + dz
masks.append(n)
for x in range(4):
for y in range(4):
for z in range(4):
for dx in range(2):
for dy in range(2):
for dz in range(2):
gen(x, y, z, dx, dy, dz)
masks.sort()
print("static u64 winmasks[{}] = {{".format(len(masks)))
for i in range((len(masks) + 3) // 4):
print("\t" + " ".join(hex(n) + "ULL," for n in masks[4*i:4*i+4]))
print("};")
|