You've learned printing, variables, strings, math, input, decisions, loops, lists, dictionaries, and functions. That's everything you need to build real programs!
These capstone projects mix all those skills together. Each one starts with helpful code already written â your job is to finish it. Read the brief, switch to the Practice tab, and bring each program to life. đ
đēī¸ Your project briefs
đ¯ Project 1: Number Guessing Game
The computer picks a secret number. The player keeps guessing, and the program says "too high" or "too low" until they get it. Uses: random, while, if, input.
đ§ Project 2: Quiz Game
Ask a few questions, keep score, and show the final result. Uses: input, if, variables, f-strings.
đĸ Project 3: FizzBuzz
The famous coding challenge! Print 1â20, but say "Fizz" for multiples of 3, "Buzz" for multiples of 5, and "FizzBuzz" for both. Uses: for, %, if/elif.
â Project 4: Rock, Paper, Scissors
Play against the computer's random choice and find out who wins. Uses: random, input, if.
đ Project 5: Password Strength Checker
Check whether a password is long enough and strong. Uses: input, len, if, functions.
đĒ Challenge yourself
Once a project works, make it better! Add more questions, more rounds, nicer messages, or new rules. That's exactly how real programmers learn.
đŽ Build Time!
These projects are interactive â press âļ Run and play. Finish the TODOs to make each one work, then peek at the solution if you get stuck.
đ¯
Project 1: Number Guessing Game
Project
The secret number is ready. Finish the if/elif/else so the game tells the player "too high", "too low", or "correct". Press âļ Run and play!
import random
secret = random.randint(1, 20)
print("I'm thinking of a number from 1 to 20!")
while True:
guess = int(input("Your guess: "))
if guess == secret:
print("đ Correct! You got it!")
break
elif guess < secret:
print("Too low! Try higher. âŦī¸")
else:
print("Too high! Try lower. âŦī¸")
đ§
Project 2: Quiz Game
Project
Add one more question to the quiz, and make sure score goes up for each correct answer. Run it and test your knowledge!
score = 0
a1 = input("What color is the sky on a clear day? ")
if a1.lower() == "blue":
score += 1
print("Correct! â ")
else:
print("The answer was blue.")
a2 = input("How many legs does a spider have? ")
if a2 == "8":
score += 1
print("Correct! â ")
else:
print("The answer was 8.")
a3 = input("What is 6 times 7? ")
if a3 == "42":
score += 1
print("Correct! â ")
else:
print("The answer was 42.")
print(f"Your final score: {score}")
đĸ
Project 3: FizzBuzz
Classic Challenge
Print 1 to 20. For multiples of 3 print Fizz, for multiples of 5 print Buzz, for multiples of both print FizzBuzz, otherwise print the number. Tip: check both (15, 30...) first! Press â Check to verify.
for n in range(1, 21):
if n % 3 == 0 and n % 5 == 0:
print("FizzBuzz")
elif n % 3 == 0:
print("Fizz")
elif n % 5 == 0:
print("Buzz")
else:
print(n)
â
Project 4: Rock, Paper, Scissors
Project
The computer's random move is ready. Finish the logic that decides the winner. Type rock, paper, or scissors when it asks!
import random
moves = ["rock", "paper", "scissors"]
computer = random.choice(moves)
you = input("rock, paper, or scissors? ").lower()
print(f"Computer chose: {computer}")
if you == computer:
print("It's a tie! đ¤")
elif (you == "rock" and computer == "scissors") or \
(you == "paper" and computer == "rock") or \
(you == "scissors" and computer == "paper"):
print("You win! đ")
else:
print("Computer wins! đ¤")
đ
Project 5: Password Strength Checker
Project
Finish the check function so it returns "Strong" when a password is at least 8 characters long, otherwise "Too short". Then test it with your own ideas.
def check(password):
if len(password) >= 8:
return "Strong đĒ"
else:
return "Too short đŦ"
pw = input("Choose a password: ")
print(check(pw))
đ
Project 6: Free Build â Your Idea!
Open-Ended
You're a programmer now â build whatever you want! A story generator, a dice roller, a tip calculator, a times-table printer... The blank canvas is yours. đ¨
đī¸ More Projects â Keep Building!
The best way to learn is to build something you actually want to play with. Each project below uses everything from the whole course. Press âļ Run, answer the pop-ups, and when it works, change the rules and make it yours.
đ¤
Project 7: Word Scramble
Medium
The computer scrambles a secret word and the player guesses it. Write it yourself: pick a random word from a list, shuffle its letters with random.sample, then loop until the player guesses right (give up after 3 tries).
import random
words = ["python", "banana", "rocket", "puzzle"]
secret = random.choice(words)
scrambled = "".join(random.sample(secret, len(secret)))
print("Unscramble this word:", scrambled)
tries = 3
while tries > 0:
guess = input("Your guess: ").lower()
if guess == secret:
print("đ Correct!")
break
tries -= 1
print(f"Nope! {tries} tries left.")
else:
print("The word was", secret)
đ˛
Project 8: Dice Duel
Medium
You and the computer each roll two dice for 3 rounds. Print each round's rolls, keep both totals, and announce the overall winner at the end.
import random
you = 0
computer = 0
for game_round in range(1, 4):
my_roll = random.randint(1, 6) + random.randint(1, 6)
pc_roll = random.randint(1, 6) + random.randint(1, 6)
you += my_roll
computer += pc_roll
print(f"Round {game_round}: you {my_roll} - computer {pc_roll}")
print(f"Final: you {you} - computer {computer}")
if you > computer:
print("đ You win!")
elif computer > you:
print("đ¤ Computer wins!")
else:
print("đ¤ A tie!")
â
Project 9: To-Do List Manager
Tricky
Build a mini app with a menu that loops: 1 add a task, 2 show all tasks numbered, 3 remove a task by its number, 4 quit. Store everything in a list.
todo = []
while True:
print("\n1) add 2) show 3) remove 4) quit")
choice = input("Choose: ")
if choice == "1":
todo.append(input("New task: "))
print("Added!")
elif choice == "2":
if not todo:
print("Nothing to do. đ")
for i, task in enumerate(todo, start=1):
print(f"{i}. {task}")
elif choice == "3":
number = int(input("Remove which number? "))
if 1 <= number <= len(todo):
print("Removed", todo.pop(number - 1))
else:
print("No such task.")
elif choice == "4":
print("Bye! đ")
break
else:
print("Pick 1, 2, 3 or 4.")
âī¸
Project 10: Times Table Trainer
Tricky
Ask 5 random multiplication questions (numbers 2â12). Count the correct answers, and at the end print the score plus a message: 5/5 is đ perfect, 3â4 is good, less is keep practicing.
import random
score = 0
for q in range(5):
a = random.randint(2, 12)
b = random.randint(2, 12)
answer = int(input(f"What is {a} x {b}? "))
if answer == a * b:
print("Correct! â ")
score += 1
else:
print(f"Nope, it was {a * b}")
print(f"Score: {score}/5")
if score == 5:
print("đ Perfect!")
elif score >= 3:
print("Good job! đ")
else:
print("Keep practicing! đĒ")
đĻ
Project 11: Cash Machine
Boss
Store a balance and a 4-digit PIN. Ask for the PIN (3 attempts), then loop a menu: check balance, deposit, withdraw (refuse if there is not enough money), quit. Show every amount with 2 decimals.
Build the biggest thing you have made so far: a text adventure with rooms, a quiz with categories, a pet simulator, a shop. Rules: use at least one list, one dictionary, one loop and two functions. Take your time â real projects take more than one sitting. đ