✨ Four in a row win
This commit is contained in:
@ -27,8 +27,8 @@ def drawImage(channel):
|
||||
pieceStarty = (border+gridBorder)+math.floor(placeGridSize[1]/2)-math.floor(placeSize/2)
|
||||
|
||||
|
||||
background = Image.new("RGBA", (w,h),backgroundColor)
|
||||
d = ImageDraw.Draw(background)
|
||||
background = Image.new("RGB", (w,h),backgroundColor)
|
||||
d = ImageDraw.Draw(background,"RGBA")
|
||||
|
||||
# This whole part was the easiest way to make a rectangle with rounded corners and an outline
|
||||
# - Corners:
|
||||
@ -62,4 +62,52 @@ def drawImage(channel):
|
||||
|
||||
d.ellipse([(startx,starty),(startx+placeSize,starty+placeSize)],fill=pieceColor,outline=(0,0,0),width=outlineSize)
|
||||
|
||||
if data["4 in a row games"][channel]["winner"] != 0:
|
||||
coordinates = data["4 in a row games"][channel]["win coordinates"]
|
||||
startx = border + placeGridSize[0]*coordinates[1] + gridBorder
|
||||
starty = border + placeGridSize[1]*coordinates[0] + gridBorder
|
||||
a = (placeGridSize[0]*4-gridBorder-border)**2
|
||||
b = (placeGridSize[1]*4-gridBorder-border)**2
|
||||
diagonalLength = (math.sqrt(a+b))/placeGridSize[0]
|
||||
diagonalAngle = math.degrees(math.atan(placeGridSize[1]/placeGridSize[0]))
|
||||
|
||||
if data["4 in a row games"][channel]["win direction"] == "h":
|
||||
winBar = Image.new("RGBA",(placeGridSize[0]*4,placeGridSize[1]),(0,0,0,0))
|
||||
winD = ImageDraw.Draw(winBar)
|
||||
winD.ellipse([(0,0),(placeGridSize[0],placeGridSize[1])],fill=(128,128,180,255))
|
||||
winD.ellipse([((placeGridSize[0]*3),0),(placeGridSize[0]*4,placeGridSize[1])],fill=(128,128,180,255))
|
||||
winD.rectangle([(int(placeGridSize[0]*0.5),0),(int(placeGridSize[0]*3.5),placeGridSize[1])],fill=(128,128,180,255))
|
||||
|
||||
elif data["4 in a row games"][channel]["win direction"] == "v":
|
||||
winBar = Image.new("RGBA",(placeGridSize[0],placeGridSize[1]*4),(0,0,0,0))
|
||||
winD = ImageDraw.Draw(winBar)
|
||||
winD.ellipse([(0,0),(placeGridSize[0],placeGridSize[1])],fill=(128,128,180,255))
|
||||
winD.ellipse([(0,(placeGridSize[1]*3)),(placeGridSize[0],placeGridSize[1]*4)],fill=(128,128,180,255))
|
||||
winD.rectangle([0,(int(placeGridSize[1]*0.5)),(placeGridSize[0],int(placeGridSize[1]*3.5))],fill=(128,128,180,255))
|
||||
|
||||
elif data["4 in a row games"][channel]["win direction"] == "r":
|
||||
winBar = Image.new("RGBA",(int(placeGridSize[0]*diagonalLength),placeGridSize[1]),(0,0,0,0))
|
||||
winD = ImageDraw.Draw(winBar)
|
||||
winD.ellipse([(0,0),(placeGridSize[0],placeGridSize[1])],fill=(128,128,180,255))
|
||||
winD.ellipse([((placeGridSize[0]*(diagonalLength-1)),0),(placeGridSize[0]*diagonalLength,placeGridSize[1])],fill=(128,128,180,255))
|
||||
winD.rectangle([(int(placeGridSize[0]*0.5),0),(int(placeGridSize[0]*(diagonalLength-0.5)),placeGridSize[1])],fill=(128,128,180,255))
|
||||
winBar = winBar.rotate(-diagonalAngle,expand=1)
|
||||
startx -= border
|
||||
starty -= gridBorder + border
|
||||
|
||||
elif data["4 in a row games"][channel]["win direction"] == "l":
|
||||
winBar = Image.new("RGBA",(int(placeGridSize[0]*diagonalLength),placeGridSize[1]),(0,0,0,0))
|
||||
winD = ImageDraw.Draw(winBar)
|
||||
winD.ellipse([(0,0),(placeGridSize[0],placeGridSize[1])],fill=(128,128,180,255))
|
||||
winD.ellipse([((placeGridSize[0]*(diagonalLength-1)),0),(placeGridSize[0]*diagonalLength,placeGridSize[1])],fill=(128,128,180,255))
|
||||
winD.rectangle([(int(placeGridSize[0]*0.5),0),(int(placeGridSize[0]*(diagonalLength-0.5)),placeGridSize[1])],fill=(128,128,180,255))
|
||||
winBar = winBar.rotate(diagonalAngle,expand=1)
|
||||
startx -= placeGridSize[0]*3 + border
|
||||
starty -= gridBorder + border
|
||||
|
||||
|
||||
mask = winBar.copy().convert("1")
|
||||
winBar.putalpha(mask)
|
||||
background.paste(winBar,(startx,starty),winBar)
|
||||
|
||||
background.save("resources/games/4InARowBoards/board"+channel+".png")
|
||||
|
Reference in New Issue
Block a user