A zombie-themed grid-based puzzle game built with Pygame where players must identify and flag all zombies while avoiding humans.
Navigate through a grid filled with characters and use audio cues to find hidden zombies. Flag all zombies without flagging any humans to win! Be careful not to stand on a zombie for too long, or it's game over.
- Grid-based gameplay: 10x24 grid with 50+ characters
- Audio proximity system: Sound cues indicate how close you are to zombies
- Strategic flagging: Mark zombies while avoiding innocent humans
- Multiple screens: Start menu, gameplay, victory, and game over screens
- Visual feedback: Character sprites and flagging indicators
- Python 3.x
- Pygame library
- Clone or download this repository
- Install Pygame:
pip install pygame- Ensure all required asset files are in the
assets/directory:background.png- Start screen backgroundByteBounce.ttf- Game fontmodal_down_trans.png- Player spritemodal1.png,modal2.png,modal3.png,modal4.png- Character spritesaudio_safe.wav- Safe distance soundaudio_close.wav- Close proximity soundaudio_danger.wav- Danger soundaudio_gameover.wav- Game over sound
- Run the game:
python main.py-
Controls:
- WASD or Arrow Keys: Move the player
- F: Flag/unflag the current tile
- R: Restart (on game over/victory screens)
- H: Return to home screen
- Q: Quit game
-
Objective:
- Find and flag all 10 zombies hidden in the grid
- Use audio cues to gauge proximity to zombies
- Avoid flagging humans (game over!)
- Don't stand on a zombie for too long (game over!)
-
Audio Cues:
- Different sounds play based on your distance to the nearest zombie
- Use these cues strategically to locate zombies
- Start Screen: Main menu with start and exit options
- Playing: Active gameplay with grid navigation
- Victory: All zombies successfully flagged
- Game Over: Failed by flagging a human or standing on a zombie
.
├── main.py # Entry point
├── game.py # Main game loop and state management
├── helper.py # Helper classes (Image, Text, Button)
├── player.py # Player movement and grid system
├── zombie.py # Zombie and NPC management
├── screens/
│ ├── start.py # Start screen
│ ├── play_board.py # Main gameplay screen
│ ├── game_over.py # Game over screen
│ └── victory.py # Victory screen
└── assets/ # Game assets (images, fonts, audio)
- Audio and distance-finding algorithm generated using AI
- Grid drawing generated using AI
- The game spawns 10 zombies randomly across the grid
- 50 NPCs (humans) are also randomly placed
- Player always starts at position (0, 0)
- Standing on a zombie for 37 frames (~0.6 seconds at 60 FPS) results in game over
This is an educational project. Please ensure you have appropriate rights to any assets used.