#!/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 array 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("};")