https://github.com/martian58/chessgame
Chess Game with python.
https://github.com/martian58/chessgame
chess chess-wit-python python-chess text-based-chess
Last synced: 6 months ago
JSON representation
Chess Game with python.
- Host: GitHub
- URL: https://github.com/martian58/chessgame
- Owner: martian58
- Created: 2023-12-03T18:11:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-12T21:16:40.000Z (over 1 year ago)
- Last Synced: 2024-11-09T00:14:32.573Z (7 months ago)
- Topics: chess, chess-wit-python, python-chess, text-based-chess
- Language: Python
- Homepage:
- Size: 9.77 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### ChessGame
#### 1. Overview:
- **Code Name:** ChessGame
- **Purpose:** Implements a two-player command-line chess game in Python.#### 2. Class and Methods:
- **Class:** `ChessGame`
- **Methods:**
- `__init__(self)`: Initializes the chess game with an 8x8 chessboard and sets initial player and game state.
- `create_board(self)`: Creates the initial 8x8 chessboard with piece positions.
- `display_board(self)`: Displays the current state of the chessboard.
- `make_move(self, move)`: Processes a player's move and updates the board.
- `is_valid_move(self, start_col, start_row, end_col, end_row)`: Validates if a move adheres to chess rules.
- Various methods for validating moves of different chess pieces.
- `no_obstacles(self, start_row, start_col, end_row, end_col)`: Checks if there are obstacles between two positions.
- `get_king_position(self, player)`: Retrieves the position of the king for the specified player.
- `is_check(self, player)`: Checks if the player's king is in check.
- `is_checkmate(self, player)`: Determines if the player is in checkmate.
- `play_game(self)`: Initiates the game loop, allowing players to make moves until checkmate.#### 3. Execution:
- The game is initiated by creating an instance of `ChessGame` and calling the `play_game` method.
- Players take turns entering moves in standard chess notation (e.g., 'e2 e4').
- The game continues until one player achieves checkmate, and the winner is announced.#### 4. Check and Checkmate:
- The code includes methods (`is_check` and `is_checkmate`) to determine if a player's king is in check or checkmate.#### 5. Conclusion:
- The code successfully implements a basic two-player chess game with command-line interaction.
- It provides a foundation for further improvements, such as code readability and additional features.#### 6. Recommendations for Improvement:
- Add comments for better code readability.
- Refactor to eliminate code duplication, particularly in the checkmate detection block.
- Implement input validation to ensure moves are in the correct format.
- Consider breaking down the code into smaller, more focused methods for improved modularity.#### 7. Usage:
- Execute the code to start the chess game.
- Follow the prompts to enter moves in standard chess notation.