Я делаю игру в шашки / шашки на python, и у меня проблема в том, что я не могу найти решение для онлайн при создании фигур.Мой код выглядит следующим образом:
from tkinter import *
board = []
white_pieces = []
black_pieces = []
class GUI(Frame):
def __init__(self, master = None):
self.game_board()
def game_board(self):
for y in range(8):
for x in range(8):
board.append(Button(root, width = 4, height = 2, bg = "#000000" if (x % 2 == 0 and y % 2 != 0) or (y % 2 == 0 and x % 2 != 0) else "#FFFFFF", state = DISABLED))
board[-1].grid(row = y + 1, column = x + 1, sticky = N+E+S+W)
root.rowconfigure(x+1, weight = 1)
root.columnconfigure(y+1, weight = 1)
for i in range(8):
Label(root, bg = "#C9C9C9", text = i+1).grid(row = 0, column = i+1, sticky = N+E+S+W)
root.rowconfigure(i, weight = 1)
for i in range(8):
Label(root, width = 2, bg = "#C9C9C9", text = chr(i+97).title()).grid(row = i+1, column = 0, sticky = N+E+S+W)
root.columnconfigure(i, weight = 1)
class piece(PhotoImage):
def __init__(self, position, master = None):
self.name = "white.png"
self.position = position
if __name__ == "__main__":
root = Tk()
root.title("Draughts")
window = GUI(root)
black = PhotoImage("black.png")
white = PhotoImage("white.png")
for i in range(24):
if ((i % 8) % 2 == 0 and (i // 8) % 2 != 0) or ((i % 8) % 2 != 0 and (i // 8) % 2 == 0):
black_pieces.append(piece([i // 8, i % 8],black))
board[i].config(image = black_pieces[-1], state = NORMAL)
else:
i += 40
if ((i % 8) % 2 == 0 and (i // 8) % 2 != 0) or ((i % 8) % 2 != 0 and (i // 8) % 2 == 0):
white_pieces.append(piece([i // 8, i % 8],black))
board[i].config(image = white_pieces[-1], state = NORMAL)
root.mainloop()
Я пытаюсь использовать PhotoImage
в качестве субъекта класса (не уверен, правильно ли это сформулировать), но это не работает.Я не знаю, является ли то, что я пытаюсь, правильным способом, но я хочу создать «Кусочки» на площадях, в которых они мне нужны для шашек.Если я поменяю image = black_pieces[-1]
на bg = "green"
в строке: board[i].config(image = black_pieces[-1], state = NORMAL)
, то правильные квадраты получат зеленый фон, поэтому проблема заключается в изображениях (у меня есть png изображения черных и белых шашек, сохраненные в том жекаталог с именем black.png и white.png).Любая помощь будет принята с благодарностью.