Welcome to the Advanced Algorithm Game! This is a strategic evasion game where you must navigate your player piece across a chessboard while avoiding enemy pieces controlled by advanced algorithms. This project utilizes the alpha-beta pruning algorithm for AI decision-making.
- Dynamic Difficulty Levels: Easy, Medium, and Hard modes.
- Special Abilities: Use abilities like Freeze, Push, Double Move, and Obstacle Shift to outsmart your enemies.
- AI-Controlled Enemies: Chess pieces with directional and diagonal movement patterns.
- Moving Train: A train obstacle that adds an extra layer of challenge.
-
Clone the repository:
git clone https://github.com/RoslanVasilew/AdvancedAlgorithmGame.git cd AdvancedAlgorithmGame -
Install Pygame:
pip install pygame
-
Download Assets: Ensure you have the following assets in the
Assetsdirectory:mighty-force.pngice-cube.pngearth-spit.pngkangaroo.pngram.svgwarlord-helmet.svgcrown.pngsteam-locomotive.png
-
Run the game:
python chess_evasion_game.py
Navigate your player piece from the top row to the bottom row of the chessboard while avoiding enemy pieces and obstacles.
- Movement: Use
W,A,S,Dkeys to move Up, Left, Down, and Right respectively. Diagonal movements can be made withQ,E,Z,Ckeys. - Abilities: Abilities are triggered using their respective keys (
R,T,Y,U). You can also click on the ability buttons at the bottom of the screen.
- Freeze (R): Freezes enemy pieces within a 2-block radius for 2 turns.
- Push (T): Pushes enemy pieces away from the player.
- Double Move (Y): Allows the player to move twice in one turn.
- Obstacle Shift (U): Respawns the obstacles on the board.
- Easy: Fewer enemies and no train.
- Medium: More enemies and the train obstacle.
- Hard: Maximum enemies and the train obstacle, with added dynamic obstacles.
chess_evasion_game.py: Main game file containing all classes and game logic.Assets/: Directory containing all game assets (images and icons).
- Player: Handles player movement and abilities.
- ChessPiece: Represents enemy chess pieces with movement logic.
- Obstacle: Represents static obstacles on the board.
- Train: Represents a moving train obstacle on the board.
Contributions are welcome! Please fork the repository and create a pull request with your changes. Ensure your code adheres to the project's coding standards.
- Pygame for the game development library.
- Contributors for their help in development.
Enjoy the game!