To-Do list by Annabella Nketia-Achiampong
🧩 Syntax:
#Project by: Annabella Nketia-Achiampong
#Project name:To-Do list
import random
class ToDoList:
MENU_CHOICES = {
'1': 'Create a new task',
'2': 'See your existing tasks',
'3': 'Remove a completed task',
'4': 'Complete a random task',
'5': 'Exit'
}
GAME_CHOICES = {
'1': 'Number Guessing Game',
'2': 'Trivia Game'
}
def __init__(self):
self.tasks = []
def number_game(self):
print('Welcome to the number guessing game')
print("I'm thinking of a number from 1 to 100. Your goal is to guess it.")
print('-----------------------------------')
target_number = random.randint(1, 100)
attempts = 0
while True:
try:
user_guess = int(input('Enter your guess (from 1 to 100): '))
attempts += 1
if user_guess == target_number:
print(f'Congratulations! You guessed the number in {attempts} attempts.')
print("You have completed your game reward.\n")
return True
elif user_guess < target_number:
print('Too low! The number I am thinking of is higher than that.')
else:
print('Too high! The number I am thinking of is lower than that.')
except ValueError:
print('Invalid input! Please enter a valid number.')
def trivia_game(self):
country_trivia = [
{
'question': 'What is the capital of Australia?',
'options': ['Sydney', 'Melbourne', 'Canberra', 'Perth'],
'answer': 'Canberra'
},
{
'question': 'Which country is known as the Land of the Rising Sun?',
'options': ['China', 'Japan', 'South Korea', 'Thailand'],
'answer': 'Japan'
},
{
'question': 'Which country is home to the Eiffel Tower?',
'options': ['Germany', 'France', 'Italy', 'Spain'],
'answer': 'France'
},
{
'question': 'What is the chemical symbol for Helium?',
'options': ['K', 'He', 'H'],
'answer': 'He'
},
{
'question': 'What is the largest internal organ in the human body?',
'options': ['Liver', 'Skin', 'Large Intestines'],
'answer': 'Liver'
}
]
def ask_question(question_dict):
print(question_dict['question'])
random.shuffle(question_dict['options'])
for i, option in enumerate(question_dict['options'], start=1):
print(f"{i}. {option}")
while True:
try:
user_answer = int(input('Enter the number corresponding to your answer: '))
index = user_answer - 1
user_choice = question_dict['options'][index]
if user_choice == question_dict['answer']:
print('Correct!')
print("Congratulations! You have completed your game reward.\n")
return True
else:
print(f"Sorry, that's incorrect! The correct answer is {question_dict['answer']}.")
print("You have completed your game reward. Better luck next time.\n")
return False
except ValueError:
print('Invalid input! Please enter a valid option number.')
question = random.choice(country_trivia)
return ask_question(question)
def add_task(self):
task = input("Create a new task: ")
self.tasks.append(task)
print("Your task has been created.\n")
def view_tasks(self):
if self.tasks:
print("These are your current tasks:")
for index, task in enumerate(self.tasks, start=1):
print(f"{index}. {task}")
print()
else:
print("You have no tasks to complete.")
create_task = input("Would you like to create a new one? (yes/no): ")
if create_task.lower() == 'yes':
self.add_task()
elif create_task.lower() == 'no':
print("Goodbye!\n")
else:
print("Invalid input! Command canceled.\n")
def remove_task(self):
if self.tasks:
self.view_tasks()
while True:
try:
task_index = int(input("Enter the number of the task you would like to remove: ")) - 1
if 0 <= task_index < len(self.tasks):
removed_task = self.tasks.pop(task_index)
print(f"You have completed '{removed_task}' task.")
print("You have earned a game reward.\n")
self.choose_game()
break
else:
print("The task number you have entered cannot be found. Please try again.\n")
except ValueError:
print('Invalid input! Please enter a valid number.\n')
else:
create_new_task = input("No tasks. Would you like to create a new one? (yes/no): ")
if create_new_task.lower() == 'yes':
self.add_task()
elif create_new_task.lower() == 'no':
print("Goodbye!\n")
else:
print("Invalid input! Command canceled.\n")
def complete_random_task(self):
if self.tasks:
random_task = random.choice(self.tasks)
print(f"Your randomly chosen task is '{random_task}'.")
confirm = input("Do you want to complete this task? (yes/no): ")
if confirm.lower() == 'yes':
self.tasks.remove(random_task)
print("Congratulations! You have earned a game reward.\n")
self.choose_game()
else:
print("Task completion canceled.")
else:
print("No tasks to be completed.")
create_task = input("Would you like to create a new one? (yes/no): ")
if create_task.lower() == 'yes':
self.add_task()
elif create_task.lower() == 'no':
print("Goodbye!\n")
else:
print("Invalid input! Command canceled.\n")
def choose_game(self):
print("Which game would you like to play?")
for key, value in self.GAME_CHOICES.items():
print(f"{key}. {value}")
while True:
game_choice = input("Enter your choice (1-2): ")
if game_choice in self.GAME_CHOICES:
if game_choice == "1":
if self.number_game():
break
elif game_choice == "2":
if self.trivia_game():
break
else:
print("Invalid input! Please enter a valid game choice.\n")
def menu(self):
print("~~~ YOUR TO-DO LIST ~~~\n")
print("What would you like to do today?\n")
for key, value in self.MENU_CHOICES.items():
print(f"{key}. {value}")
def start(self):
while True:
self.menu()
choice = input("Enter your choice (1-5): ")
if choice == "1":
self.add_task()
elif choice == "2":
self.view_tasks()
elif choice == "3":
self.remove_task()
elif choice == "4":
self.complete_random_task()
elif choice == "5":
print("Goodbye!")
break
else:
print("Invalid choice! Please try again.\n")
todo_list = ToDoList()
todo_list.start()