This commit is contained in:
Hannes
2026-07-20 20:51:09 +02:00
parent fe9072221b
commit 4503f99135
7 changed files with 677 additions and 86 deletions
+140 -52
View File
@@ -316,10 +316,10 @@ class coord:
def make_next_board():
next_board = [
[0, 0, 0, 0],
[1, 1, 1, 1],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 1, 0, 0],
[1, 1, 1, 0],
]
return next_board
@@ -384,42 +384,109 @@ lime = color("#5fdf5f")
colors = [
black,
cyan,
blue,
orange,
yellow,
green,
purple,
red
green,
red,
blue,
orange
]
colors2 = [
black,
color("#0086f3"),
color("#3d4fdc"),
color("#fdab01"),
color("#abcb04"),
color("#02bdcd"),
color("#d20f63"),
color("#fe4b0f"),
]
I=1
O=2
T=3
S=4
Z=5
J=6
L=7
colors2 = colors
# colors2 = [
# black,
# color("#0086f3"),
# color("#3d4fdc"),
# color("#fdab01"),
# color("#abcb04"),
# color("#02bdcd"),
# color("#d20f63"),Z
# color("#fe4b0f"),
# ]
text_bg = black
next_board = make_next_board()
# next_board = make_next_board()
next_board = [
[0, 0, T, 0],
[0, T, T, T],
[0, 0, 0, 0],
[0, 0, 0, 0],
]
nb1 = coord(88, 104, 128, 128)
next_board1 = make_next_board()
# next_board1 = make_next_board()
next_board1 = [
[0, 0, 0, L],
[0, L, L, L],
[0, 0, 0, 0],
[0, 0, 0, 0],
]
nb2 = coord(1064, 104, 128, 128)
board_height, board_width, board = make_board(len(colors))
board_height, board_width, _ = make_board(len(colors))
board = [
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,J,J,0],
[0,0,0,0,0,0,0,J,0,0],
[0,0,0,0,0,0,0,J,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,I,0,0,0,0,0,0,0],
[O,O,I,I,I,0,0,0,0,0],
[O,O,I,I,I,L,L,0,L,0],
[O,O,I,I,I,I,L,0,L,0]
]
b1 = coord(304, 40, 320, 640)
board2_height, board2_width, board2 = make_board(len(colors2))
board2_height, board2_width, _ = make_board(len(colors2))
board2 = [
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,Z,0,0,0,0,0,0],
[0,0,Z,Z,0,0,0,0,0,0],
[0,0,Z,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[O,O,0,0,0,O,O,J,J,J],
[O,O,0,O,O,O,O,Z,Z,J],
[J,0,S,S,Z,Z,I,I,I,I],
[S,Z,Z,T,I,J,J,Z,Z,0],
[S,S,Z,Z,I,J,0,0,Z,Z]
]
b2 = coord(656, 40, 320, 640)
score0 = make_score()
# score0 = make_score()
score0 = 299
score1 = 298
s1 = coord(84, 332, 136, 32)
sn1 = coord(74, 368, 156, 20)
score1 = make_score()
# score1 = make_score()
s2 = coord(1060, 332, 136, 32)
sn2 = coord(1050, 368, 156, 20)
@@ -443,7 +510,28 @@ img = Image.new("RGB", (width, height))
pixels = img.load()
menu = 1
menu = 0
menu_active0 = [1,0,0,0]
menu_active1 = [0,1,0,0]
menu_active2 = [1,0]
def menu_get (side, i) -> tuple[int, int, int] | color | None:
if side == "left":
if menu_active0[i] == 0:
return white.get()
else:
return red.get()
elif side == "right":
if menu_active1[i] == 0:
return white.get()
else:
return red.get()
elif side == "middle":
if menu_active2[i] == 0:
return white
else:
return yellow
for y in range(height):
for x in range(width):
@@ -460,9 +548,9 @@ for y in range(height):
ys = yd >> 3
if x > mm0.x+3 and y>mm0.y+3 and xd<mm0.width-4 and yd<mm0.height-4:
if xs <ys*2 and xs<((mm0.width-8 >> 3)-ys)<<1 and xs >2:
pixels[x, y] = (255,255,255)
pixels[x, y] = menu_get ("middle", 0).get()
elif (xs == ys*2 or xs==((mm0.width-8 >> 3)-ys)<<1) and xs >2 and xs <14:
pixels[x, y] = (32,32,32)
pixels[x, y] = menu_get("middle", 0).shiftr(3)
else:
pixels[x, y] = black.get()
else:
@@ -476,30 +564,30 @@ for y in range(height):
if x > mm1.x+3 and y>mm1.y+3 and xd<mm1.width-8 and yd<mm1.height-8:
# vert/horizontal
if xs == 2 and ys < 10 and ys > 4: # left
pixels[x, y] = white.get()
pixels[x, y] = menu_get("middle", 1).get()
elif xs == 11 and ys < 8 and ys > 4: # right
pixels[x, y] = white.get()
pixels[x, y] = menu_get("middle", 1).get()
elif ys == 2 and xs < 10 and xs > 4: # top
pixels[x, y] = white.get()
pixels[x, y] = menu_get("middle", 1).get()
elif ys == 12 and xs < 10 and xs > 4: # bot
pixels[x, y] = white.get()
pixels[x, y] = menu_get("middle", 1).get()
# Orthogonal
elif xs+ys == 7 and xs >1 and ys >1: # top left
pixels[x, y] = white.get()
pixels[x, y] = menu_get("middle", 1).get()
elif xs+ys == 21 and xs >8 and ys >9: # bot right
pixels[x, y] = white.get()
pixels[x, y] = menu_get("middle", 1).get()
elif ys-xs == 7 and xs < 6 and ys > 8: # bot left
pixels[x, y] = white.get()
pixels[x, y] = menu_get("middle", 1).get()
elif xs-ys == 7 and xs > 8 and ys < 5: # top right
pixels[x, y] = white.get()
pixels[x, y] = menu_get("middle", 1).get()
# Arrow Head
elif xs-ys == 4 and xs > 8 and xs < 12: # left
pixels[x, y] = white.get()
pixels[x, y] = menu_get("middle", 1).get()
elif xs+ys == 18 and xs > 10 and xs <14: # right
pixels[x, y] = white.get()
pixels[x, y] = menu_get("middle", 1).get()
# Aliasing
elif (xs==ys==11) or (xs==ys==3) or (xs==11 and ys==3) or (xs==3 and ys==11):
pixels[x, y] = (32,32,32)
pixels[x, y] = menu_get("middle", 1).shiftr(3)
else:
pixels[x, y] = black.get()
else:
@@ -590,33 +678,33 @@ for y in range(height):
yd = y-lm0.y
xs = xd-34
if xd < (24) and a_p[yd>>2][xd>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("left", 0)
elif xd > (33) and a_1[yd>>2][xs>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("left", 0)
elif x >= lm1.x and x < (lm1.x + lm1.width) and y >= lm1.y and y < (lm1.y + lm1.height):
xd = x-lm1.x
yd = y-lm1.y
xs = xd-34
if xd < (24) and a_p[yd>>2][xd>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("left", 1)
elif xd > (33) and a_2[yd>>2][xs>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("left", 1)
elif x >= lm2.x and x < (lm2.x + lm2.width) and y >= lm2.y and y < (lm2.y + lm2.height):
xd = x-lm2.x
yd = y-lm2.y
xs = xd-28
if xd < (24) and a_s[yd>>2][xd>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("left", 2)
elif xd > (27) and a_w[yd>>2][xs>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("left", 2)
elif x >= lm3.x and x < (lm3.x + lm3.width) and y >= lm3.y and y < (lm3.y + lm3.height):
xd = x-lm3.x
yd = y-lm3.y
xs = xd-28
if xd < (24) and a_h[yd>>2][xd>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("left", 3)
elif xd > (27) and a_w[yd>>2][xs>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("left", 3)
####################### Right Board
### Board
elif x>=b2.x and x<b2.x+b2.width and y>=b2.y and y<b2.y+b2.height:
@@ -702,33 +790,33 @@ for y in range(height):
yd = y-rm0.y
xs = xd-34
if xd < (24) and a_p[yd>>2][xd>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("right", 0)
elif xd > (33) and a_1[yd>>2][xs>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("right", 0)
elif x >= rm1.x and x < (rm1.x + rm1.width) and y >= rm1.y and y < (rm1.y + rm1.height):
xd = x-rm1.x
yd = y-rm1.y
xs = xd-34
if xd < (24) and a_p[yd>>2][xd>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("right", 1)
elif xd > (33) and a_2[yd>>2][xs>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("right", 1)
elif x >= rm2.x and x < (rm2.x + rm2.width) and y >= rm2.y and y < (rm2.y + rm2.height):
xd = x-rm2.x
yd = y-rm2.y
xs = xd-28
if xd < (24) and a_s[yd>>2][xd>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("right", 2)
elif xd > (27) and a_w[yd>>2][xs>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("right", 2)
elif x >= rm3.x and x < (rm3.x + rm3.width) and y >= rm3.y and y < (rm3.y + rm3.height):
xd = x-rm3.x
yd = y-rm3.y
xs = xd-28
if xd < (24) and a_h[yd>>2][xd>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("right", 3)
elif xd > (27) and a_w[yd>>2][xs>>2]:
pixels[x, y] = white.get()
pixels[x, y] = menu_get("right", 3)
img.save("output/alpha.png")
img.show()