Write a simple chess game in python code.

Write a simple chess game in python code.



To create a simple chess game in Python, you can follow these steps:


Define a class for the chess board. This class should have a method to initialize the board and a method to display the board.


Define a class for the chess pieces. This class should have attributes to store the position and color of each piece, as well as methods to move the pieces and check if a move is valid.


Create a function to handle player input. This function should prompt the player for a move and validate the input to make sure it is in the correct format and that the move is legal.


Create a main game loop that alternates between player turns and checks for the end of the game. The game should end when one player captures the opponent's king or when there is a draw.


Here is an example of how this code might look:


class ChessBoard:

  def __init__(self):

    # Initialize the board

    self.board = [['R', 'N', 'B', 'Q', 'K', 'B', 'N', 'R'],

                  ['P', 'P', 'P', 'P', 'P', 'P', 'P', 'P'],

                  ['', '', '', '', '', '', '', ''],

                  ['', '', '', '', '', '', '', ''],

                  ['', '', '', '', '', '', '', ''],

                  ['', '', '', '', '', '', '', ''],

                  ['p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'],

                  ['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r']]


  def display(self):

    # Display the board

    for row in self.board:

      print(' '.join(row))


class ChessPiece:

  def __init__(self, position, color):

    self.position = position

    self.color = color


  def move(self, new_position):

    # Update the piece's position if the move is valid

    if self.is_valid_move(new_position):

      self.position = new_position


  def is_valid_move(self, new_position):

    # Check if the new position is on the board and does not

    # contain a piece of the same color

    row, col = new_position

    if row < 0 or row > 7 or col < 0 or col > 7:

      return False

    if self.board[row][col] != '' and self.board[row][col].color == self.color:

      return False

    return True


def get_player_move():

  # Prompt the player for a move and validate it

  move = input('Enter your move: ')

  if not is_valid_move_format(move):

    print('Invalid move format')

    return get_player_move()

  if not is_valid_move(move):

    print('Invalid move')

    return get_player_move()

  return move


def is_valid_move_format(move):

  # Check if the move is in the correct format

  # (e.g. "e2e4")

  if len(move) != 4:

    return False




Comments