eliaspc2/IRCM
It’s Raining Coins and Monsters (IRCM) - O objetivo é aplicar conceitos de programação orientada a objetos, gestão de eventos com Pygame e interação em tempo real num pequeno jogo arcade.
It’s Raining Coins and Monsters (IRCM)
Capstone Project – Programming MOOC 2025 (University of Helsinki, 10 ECTS)
Final project developed for the Introduction to Programming (5 ECTS, ~135h) and Advanced Course in Programming (5 ECTS, ~135h) modules. These MOOCs are internationally recognized, university-level courses delivered by the University of Helsinki.
Due to course restrictions, the entire game had to be implemented in a single Python file (main.py), and only the provided images (coin.png, monster.png, robot.png, door.png) could be used. These constraints highlight my ability to design, structure, and deliver a complete, functional project even under tight limitations.
Overview
- Engine: Pygame
- Window resolution: 640×420 @ 60 FPS
- States: Intro → Game → Game Over
- Platforms: Windows, macOS, Linux (Python 3.10+ recommended)
What this project demonstrates
- Self-contained code: all classes and logic in a single file, as required by the course.
- Object-Oriented Programming:
PlayerandDropclasses (for coins and enemies) with reusable logic and pixel-perfect collision detection via masks. - Game management: main loop handling events, updates, and rendering.
- Dynamic difficulty: increasing frequency and speed of enemies as the score grows.
- User feedback: real-time scoring, intro message, Game Over screen, and reset with F2.
This project shows how it is possible to deliver a complete, playable experience even under strict technical and pedagogical restrictions.
Gameplay
- Goal: catch coins, avoid monsters.
- Scoring: +1 per collected coin, −1 per missed coin.
- Game Over: collision with a monster.
Controls
- Move: A / ← (left), D / → (right)
- New game: F2
- Exit: Esc or close window
Requirements
- Python 3.10+ (3.12 OK)
- Pygame ≥ 2.5
- Mandatory assets in the same folder as
main.py:coin.png,monster.png,robot.png,door.png
Installation
python -m venv .venv
# Windows
.venv\\Scripts\\activate
# macOS/Linux
source .venv/bin/activate
pip install --upgrade pip
pip install pygameRun
python main.pyProject structure
.
└─ main.py # Single file with all logic, classes, and game loop
Value highlights
- Strict compliance with requirements: full project in a single file and only with provided assets.
- Best practices under constraints: clear classes, logical separation between player, coins, and enemies.
- Creativity under limitations: simple yet effective concept, playable and scalable.
- Professionalism: commented, organized code ready for future reuse in larger projects.
This game proves I can deliver concrete results even in constrained environments, focusing on clarity, functionality, and user experience.
Roadmap (future improvements)
- Levels with progressive difficulty
- Power-ups (extra lives, coin magnets)
- Custom graphics and sounds
- High score ranking
License and credits
- Code: André Câmara
- Course: Final project – Programming MOOC 2025 (University of Helsinki, 10 ECTS)
- Assets: provided images (
coin.png,monster.png,robot.png,door.png)
Quick start
pip install pygame- Place
coin.png,monster.png,robot.png, anddoor.pngin the same folder asmain.py python main.py- Have fun!
About me
I am a career-changer programmer, focused on Python and software development. This project was my final assignment in the Programming MOOC 2025 (University of Helsinki, 10 ECTS), showcasing my resilience, technical ability, and passion for clean, functional code.