

Who's that Pokemon
"Guess That Pokémon - Shock Edition" is an immersive game that merges Pokémon trivia with a physical twist—if you guess incorrectly, you receive a mild electric shock! Using an Arduino connected to a Python script, this project creates a unique, interactive experience that combines digital gaming with real-world physical feedback. The game features custom graphics, dynamic sound effects, and engaging challenges designed to test both your Pokémon knowledge and your nerve.

Key Features
- Real-Time Interaction: The game dynamically fetches Pokémon data and images from the web, presenting a new challenge with every round. Players never know which character will come up next.
- Physical Feedback Loop: Wrong guesses trigger a mild electric shock through a TENS unit, creating a blend of digital and physical gameplay that intensifies the stakes.
- Audio and Visual Immersion: The game features custom sound effects for correct and incorrect answers, background music, and animated visuals to create an engaging and immersive experience.
- Silhouette Challenge: Players must identify a Pokémon based on its silhouette before the complete image is revealed, adding an extra layer of challenge.
- Timer-Based Gameplay: Each round is timed, pushing players to make quick decisions while under pressure.

Technical Details
- Arduino Integration: Utilizes Python's serial library to communicate with the Arduino, which activates the TENS unit for delivering mild shocks.
- Dynamic Graphics: Built with Pygame for rendering custom game interfaces, animations, and smooth transitions between states.
- Web Scraping: BeautifulSoup and Requests libraries are used to pull real-time Pokémon data and images from online sources.
- Image Processing: Uses OpenCV and PIL to convert Pokémon images into silhouettes, creating the iconic guessing challenge.
- Custom Sounds: Includes personalized sound effects and background music to enhance the gameplay experience.
Technologies Used
Programming Languages: Python
Libraries and Tools:
- Pygame: For game development and rendering interactive graphics
- Arduino: To handle physical interaction and deliver electric shocks
- BeautifulSoup & Requests: For web scraping and fetching real-time Pokémon data
- PIL & OpenCV: For manipulating images and creating silhouette challenges
Challenges Overcome
- Stable Serial Communication: Achieving reliable communication between the Python script and the Arduino for real-time feedback was a significant technical feat.
- Silhouette Generation: Developed an effective method to transform Pokémon images into distinct silhouettes using image processing techniques.
- Balanced Game Design: Ensured that the game remained fun yet challenging, with engaging visuals, audio feedback, and a balanced difficulty curve.

