# Function not called procedural_abstraction but will take multiple parameters and
# break the problem into separate pieces

# class of games
class games:
    # default init method that takes 4 parameters
    def __init__(self,name,release_date,type):
        # like javascript's "this". will inherit the values of parameters when they are called as arguments
        self.name = name
        self.release_date = release_date
        self.type = type
    # function to print out information   
    def information(self):
        print('A game I play is ' + self.name + '. It was released in ' + str(self.release_date) + '. It is a ' + self.type + ' game.')

# call the class and pass in parameters as arguments
minecraft = games('Minecraft', 2011, '3D Sandbox')
valorant = games('Valorant', 2020, 'FPS')
fortnite = games('Fortnite', 2017, 'Battle Royale')
apexLegends = games('Apex Legends', 2019, 'Battle Royale')
# use information function to print out information
valorant.information()
minecraft.information()
fortnite.information()
apexLegends.information()



A game I play is Valorant. It was released in 2020. It is a FPS game.
A game I play is Minecraft. It was released in 2011. It is a 3D Sandbox game.
A game I play is Fortnite. It was released in 2017. It is a Battle Royale game.
A game I play is Apex Legends. It was released in 2019. It is a Battle Royale game.
# function called summing machine that takes first number and second number as a parameter
def summing_machine(first_number, second_number):
    # return the sum of the parameters and exit the function
    return first_number + second_number

# create a variable that passes 7 and 5 into the summing machine function and print it
sum = summing_machine(7,5)
print(sum)
12