fixed the colour that was extracted

This commit is contained in:
Karma Riuk 2025-01-30 11:45:47 +01:00
parent baa09135ee
commit 16d107e5ea
2 changed files with 12 additions and 9 deletions

View File

@ -4,7 +4,7 @@ from logic.pieces.knight import Knight
from logic.pieces.queen import Queen from logic.pieces.queen import Queen
from logic.pieces.rook import Rook from logic.pieces.rook import Rook
from logic.pieces.pawn import Pawn from logic.pieces.pawn import Pawn
from logic.pieces.piece import Piece from logic.pieces.piece import Colour, Piece
from logic.position import Position from logic.position import Position
from typing import Type from typing import Type
@ -55,9 +55,9 @@ class Board:
pos = Position(x, y) pos = Position(x, y)
piece = Board._piece_class_from_char(c) piece = Board._piece_class_from_char(c)
if c.isupper(): if c.isupper():
ret._white[pos] = piece(pos, Piece.WHITE) ret._white[pos] = piece(pos, Colour.WHITE)
else: else:
ret._black[pos] = piece(pos, Piece.BLACK) ret._black[pos] = piece(pos, Colour.BLACK)
x += 1 x += 1
continue continue
@ -70,9 +70,9 @@ class Board:
# -- Active colour # -- Active colour
if position[index] == "w": if position[index] == "w":
ret._turn = Piece.WHITE ret._turn = Colour.WHITE
elif position[index] == "b": elif position[index] == "b":
ret._turn = Piece.BLACK ret._turn = Colour.BLACK
else: else:
raise ValueError(f"The FEN position is malformed, the active colour should be either 'w' or 'b', but is '{position[index]}'") raise ValueError(f"The FEN position is malformed, the active colour should be either 'w' or 'b', but is '{position[index]}'")
index += 1 index += 1

View File

@ -30,21 +30,24 @@ class GUI(View):
for y in range(8): for y in range(8):
for x in range(8): for x in range(8):
colour = colours[(x + y) % 2] colour = colours[(x + y) % 2]
if self.state["selected_piece"] and Position(x, 7-y) in self.state["legal_moves"]: if self.state["selected_piece"]:
colour = "#ADD8E6" # Highlight legal moves possible_positions = [move.pos for move in self.state["legal_moves"]]
if Position(x, 7-y) in possible_positions:
colour = "#ADD8E6" # Highlight legal moves
self.canvas.create_rectangle( self.canvas.create_rectangle(
x * self.tile_size, x * self.tile_size,
y * self.tile_size, y * self.tile_size,
(x + 1) * self.tile_size, (x + 1) * self.tile_size,
(y + 1) * self.tile_size, (y + 1) * self.tile_size,
fill=colour fill=colour,
outline=colour,
) )
piece = self.board.piece_at(x, 7-y) piece = self.board.piece_at(x, 7-y)
if piece: if piece:
text_colour = "white" if piece.colour == Piece.WHITE else "black" text_colour = "white" if piece.colour == Colour.WHITE else "black"
self.canvas.create_text( self.canvas.create_text(
(x + 0.5) * self.tile_size, (x + 0.5) * self.tile_size,
(y + 0.5) * self.tile_size, (y + 0.5) * self.tile_size,