Hack 1

Idea for a simulation: a platformer game that uses real physics to account for the movement of the character. Uses arrow keys for control and implements friction, gravity, and restitution forces/constants. An advantage of this simulation is that it lets us model real-life physical interactions with precision. I think a computer-generated simulation would be better in this case because it can be used for much more complex models/masses and tested multiple times.

Hack 2

questions_number = 6
answers_correct = 0
questions = [
    "True or False: Simulations will always have the same result. \n A: True, \n B: False",
    "True or False: A simulation has results that are more accurate than an experiment \n A: True, \n B: False",
    "True or False: A simulation can model real world events that are not practical for experiments \n A: True, \n B: False",
    "Which one of these is FALSE regarding simulations \n A: Reduces Costs, \n B: Is safer than real life experiments, \n C: More Efficient, \n D: More accurate than real life experiments",
    "Which of the following scenarios would be the LEAST beneficial to have as a simulation \n A: A retail company wants to identify the item which sold the most on their website, \n B: A restaurant wants to determine if the use of robots will increase efficiency, \n C: An insurance company wants to study the impact of rain on car accidents, \n D: A sports car company wants to study design changes to their new bike design ",
    "Which of the following is better to do as a simulation than as a calculation \n A: Keeping score at a basketball game, \n B: Keeping track of how many games a person has won, \n C: Determining the average grade for a group of tests, \n D: Studying the impact of carbon emissions on the environment"
]
question_answers = [
    "B",
    "B",
    "A",
    "D",
    "A",
    "D"
]

print("Welcome to the Simulations Quiz!")

def ask_question (question, answer):
    print("\n", question)
    user_answer = input(question)
    print("You said: ", user_answer)

    if user_answer == answer:
        print("Correct!")
        global answers_correct
        answers_correct = answers_correct + 1
    else:
        print("You are incorrect")
    
for num in range(questions_number):
    ask_question(questions[num], question_answers[num])

print("You scored: ", answers_correct, "/6")
Welcome to the Simulations Quiz!

 True or False: Simulations will always have the same result. 
 A: True, 
 B: False
You said:  B
Correct!

 True or False: A simulation has results that are more accurate than an experiment 
 A: True, 
 B: False
You said:  B
Correct!

 True or False: A simulation can model real world events that are not practical for experiments 
 A: True, 
 B: False
You said:  A
Correct!

 Which one of these is FALSE regarding simulations 
 A: Reduces Costs, 
 B: Is safer than real life experiments, 
 C: More Efficient, 
 D: More accurate than real life experiments
You said:  D
Correct!

 Which of the following scenarios would be the LEAST beneficial to have as a simulation 
 A: A retail company wants to identify the item which sold the most on their website, 
 B: A restaurant wants to determine if the use of robots will increase efficiency, 
 C: An insurance company wants to study the impact of rain on car accidents, 
 D: A sports car company wants to study design changes to their new bike design 
You said:  A
Correct!

 Which of the following is better to do as a simulation than as a calculation 
 A: Keeping score at a basketball game, 
 B: Keeping track of how many games a person has won, 
 C: Determining the average grade for a group of tests, 
 D: Studying the impact of carbon emissions on the environment
You said:  D
Correct!
You scored:  6 /6

Hack 3

The rolling dice example is a simulation because the number is programatically generated and no dice is truly rolled. The builtin pseudorandom number generator uses the computer's current precise time to generate a number between 0 and 1. This number is then multiplied/shifted by a constant to account for the range. This allows the "dice" to be rolled multiple times. An advantage of this simulation is that many trials (millions-billions) can be simulated and analytics can be performed immediately rather than physically gathering data and then performing statistics on it. An experiment would not be better in this situation because of the aforementioned advantages that the computer simulation provides.

Hack 4

import random

trials = 100000
sides = int(input("how many sides do you want the dice to have? "))

rolls = {}
for _ in range(trials):
    roll = str(random.randint(1, sides))
    if roll in rolls.keys():
        rolls[roll] += 1
    else:
        rolls[roll] = 1

for (roll, weight) in rolls.items():
    print("chance of rolling", roll.rjust(len(str(sides))) + ": " + str(weight) + "/" + str(trials))
chance of rolling  8: 6682/100000
chance of rolling 14: 6810/100000
chance of rolling  7: 6697/100000
chance of rolling  4: 6706/100000
chance of rolling 10: 6650/100000
chance of rolling  2: 6608/100000
chance of rolling  1: 6721/100000
chance of rolling 15: 6541/100000
chance of rolling 11: 6651/100000
chance of rolling 12: 6624/100000
chance of rolling  5: 6557/100000
chance of rolling  9: 6683/100000
chance of rolling  3: 6679/100000
chance of rolling 13: 6777/100000
chance of rolling  6: 6614/100000

Extra Credit

I implemented the platformer game described in Hack #1. It is implemented in JavaScript and uses real physics to determine the position of the character. Here's the link to the code and website