import pygame import sys # --- Initialize --- pygame.init() WIDTH, HEIGHT = 640, 640 ROWS, COLS = 8, 8 SQUARE_SIZE = WIDTH // COLS WIN = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Simple Chess") # --- Colors --- WHITE = (245, 245, 245) BLACK = (100, 100, 100) BLUE = (0, 0, 255) GRAY = (128, 128, 128) # --- Load Piece Images --- pieces = {} piece_types = ['bp', 'br', 'bn', 'bb', 'bq', 'bk', 'wp', 'wr', 'wn', 'wb', 'wq', 'wk'] for piece in piece_types: image = pygame.image.load(f'images/{piece}.png') # e.g., images/wp.png pieces[piece] = pygame.transform.scale(image, (SQUARE_SIZE, SQUARE_SIZE)) # --- Board Setup --- board = [ ["br", "bn", "bb", "bq", "bk", "bb", "bn", "br"], ["bp"] * 8, [""] * 8, [""] * 8, [""] * 8, [""] * 8, ["wp"] * 8, ["wr", "wn", "wb", "wq", "wk", "wb", "wn", "wr"] ] selected = None def draw_board(): for row in range(ROWS): for col in range(COLS): color = WHITE if (row + col) % 2 == 0 else GRAY pygame.draw.rect(WIN, color, (col * SQUARE_SIZE, row * SQUARE_SIZE, SQUARE_SIZE, SQUARE_SIZE)) piece = board[row][col] if piece: WIN.blit(pieces[piece], (col * SQUARE_SIZE, row * SQUARE_SIZE)) def get_square(pos): x, y = pos return y // SQUARE_SIZE, x // SQUARE_SIZE def main(): global selected clock = pygame.time.Clock() running = True while running: clock.tick(60) draw_board() pygame.display.flip() for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.MOUSEBUTTONDOWN: row, col = get_square(pygame.mouse.get_pos()) if selected: # Move piece sel_row, sel_col = selected board[row][col] = board[sel_row][sel_col] board[sel_row][sel_col] = "" selected = None else: if board[row][col] != "": selected = (row, col) pygame.quit() sys.exit() if __name__ == "__main__": main()