This program can be done 1 of 2 ways...
The way that you can finish it
The way that you'll still be programming it 10 years from now
Take your time, but make sure to just complete the BARE MINIMUM and then add features and fun things!
Flintheart Glomgold is at it again. He’s launched a hostile takeover of Duckburg using hired goons, crooked tech, and reckless chaos — all to finally defeat Scrooge McDuck and claim the title of Richest Duck in the World.
Scrooge must fight his way through Glomgold’s mercenaries, survive escalating battles, and face Glomgold himself in a final showdown. If Scrooge falls… Duckburg falls with him.
You will design a turn-based combat game where:
The player controls Scrooge McDuck whilst he fights a boss
Each battle occurs in turns
On each turn, the player chooses an action
Enemies respond with their own actions
The game ends when:
Scrooge defeats all enemies OR
Scrooge’s health reaches 0
Deals damage to the enemy
Uses a damage calculation function
Restores health
Cannot exceed max health
Limited uses OR costs gold
Reduces damage taken on enemy’s next attack
Here are some examples of functions you can write for this. Don't feel like you need to. I just want to give you ideas to help you along!!!
Purpose: Determines how much damage Scrooge deals when he attacks.
Uses Scrooge’s attack power
Adds randomness so attacks vary
Returns one integer value
Used during the player’s attack turn
Purpose: Restores Scrooge’s health when the player chooses to heal.
Increases health by a fixed or random amount
Ensures health does not exceed max health
Returns the new health value
Does not print anything (logic only)
Purpose: Activates Scrooge’s defensive stance for the next enemy attack.
Signals that damage should be reduced
Does not deal damage
Returns a value representing defense status (e.g., True)
Used to modify enemy damage calculation
Purpose: Checks whether Scrooge can continue fighting.
Evaluates current health
Returns True if health > 0
Returns False if health ≤ 0
Used to control game and battle loops
Example behaviors:
Attack normally
Strong attack
Taunt (story flavor, no effect)
Enemy action must be chosen using:
random.randint() or
conditional logic based on health
Hint: Just use random.randint and if statements to choose random events!
Here are some examples of functions you can write for this. Don't feel like you need to. I just want to give you ideas to help you along!!! There are a lot more, but again, it's just for ideas!
Purpose: Determines how much damage the enemy deals when it attacks.
Uses the enemy’s attack power
Adds randomness so attacks are unpredictable
Returns one integer value
Used during the enemy’s attack turn
Purpose: Decides what action the enemy will take this turn.
Uses current enemy health
May include randomness
Possible actions:
Attack
Strong attack
Defend / taunt
Returns one value representing the chosen action
Keeps AI decision logic out of the main loop
Once your core DuckTales battle game is fully working, you may choose to add one or more optional systems to make your game deeper, more strategic, and more like a real video game. These extensions are not required, but they allow you to show off stronger logic, better planning, and more creative design choices.
Each system adds new decision-making for the player and gives Scrooge more ways to outsmart Glomgold — just like in the show.
What it represents: Scrooge doesn't just go to the boss. He has to fight his way through multiple enemies to get to him!
This is tough, since you need an enemy list where each enemy has health and attack!! Don't overcomplicate it!!! Use parallel lists or lists of lists!!
What it represents: A powerful, story-driven ability that Scrooge can use in critical moments instead of a normal attack.
Example:
“Cane Whirlwind” is a high-damage special attack using Scrooge’s cane
Can only be used a limited number of times per battle or per game
Forces the player to decide when it’s worth using
Encourages planning instead of button-mashing attacks
What it represents: Scrooge’s stamina and focus during battle — even the richest duck can’t fight forever.
Attacking or using special moves costs energy
Energy slowly regenerates over time
Running out of energy limits available actions
Adds strategy: attack now or conserve strength?
What it represents: Scrooge’s greatest weapon — his wealth.
Attacking or using special moves costs energy
Energy slowly regenerates over time
Running out of energy limits available actions
Adds strategy: attack now or conserve strength?