The first actual Python program I want to show
Tags: learning, python, cs101
Published: 2022-04-06 03:05:35

This is my final excersise from (Much appreciated) codecademy's CS101, a terminal game that applies a trivia in spanish, it creates a player and returns a score.

```
#create the trivia questions

import csv
from unicodedata import category
with open('D:/UX/01_Python_course/20220323_trivia_thor/preguntas_trivia.csv') as csv_file:
    csv_read = csv.reader(csv_file, delimiter= ',')
    trivia_list = list(csv_read)

marathon_list = []

def list_clean(list, new_list):
    for item in range(0, len(list)):
        list_to_work = trivia_list[item]
        check = 0 
        for i in range(0, len(list_to_work)):
            if list_to_work[i] != "":
                check += 1
            else:
                continue
        if check != 0: new_list.append(list[item])

list_clean(trivia_list, marathon_list)
#print(marathon_list)

#Here lives the right answer generator
import csv
from unicodedata import category
with open('D:/UX/01_Python_course/20220323_trivia_thor/preguntas_trivia.csv') as csv_file:
    csv_read = csv.reader(csv_file, delimiter= ',')
    trivia_list = list(csv_read)

correct_answers = dict()
for item in range(1, len(trivia_list)):
    correct_answers[str(trivia_list[item][0])] = str(trivia_list[item][-1])

#create a file that uses a class
class Scout:

    def __init__(self, name, age, achievements):
        self.name = name
        self.age = age
        self.achievements = achievements
        self.game_score = 0
    
    def __repr__(self) -> str: return "{name} es un caminante de Thor, tiene {age} años y su progresión actual es {achievement}".format(name = self.name, age = self.age, achievement = self.achievements)

    def update_score(self, attained_score):
        self.game_score = attained_score
        print('Muy bien {name_player}, tu puntaje de {score} se añadirá, gracias por participar!'.format(name_player = self.name, score = self.game_score))
#welcome

print("Bienvenido a la trivia de Thor, hoy conoceremos tu avance y nos dirás qué te parece el juego.\
    Ingresa tu nombre, quedará en minúsculas para efectos prácticos!")
nombre = input()
print("Hola " + nombre.lower())

#request age
edad = ""
status = False
print('ingresa tu edad en números!')

while status == False:
    ingresar_edad = input()
    try:
        if type(int(ingresar_edad)) == int:
            status = True 
    except:
        print("Tratemos de nuevo")
    finally:
            continue
print("Tu edad es " + str(ingresar_edad) + " años")

edad = ingresar_edad

print("De acuerdo, cuál es tu última progresión?")
achievements = {"a" : "Busqueda", "b": "encuentro", "c" : "desafio", "d" : "IDO"}

for key, value in achievements.items():
    print(key + " " + value)

#puede irse_ print(str(achievements.items()) + " \elige por favor una letra")
print("elige por favor una letra")

achievement = input()

if achievement in achievements.keys():
    achievements[achievement]
else :
    print("intentemos de nuevo")
    achievement = input()

achievement = achievements[achievement]

player = Scout(nombre, edad, achievement)
print(player)

#Aqui comienza el juego en forma
print("De acuerdo, comencemos")

#Pose the question and match the right answer
initial_score = 0
def marathon(beginning_score):
    player_score = 0
    answer_options = ["a", "b", "c", "d"]
    question_count = 1
    for question in range(1,len(trivia_list)):
        print(trivia_list[question_count][0])
        def option_array():
            option_count = 1
            incise_count = 0
            for option in range(len(answer_options)):
                print(answer_options[incise_count] + "): " + trivia_list[question][option_count])
                option_count += 1
                incise_count += 1
        option_array()
        answer = input()
        if answer in answer_options == False:
            print("debe ser una de estas resputestas:")
            option_array()
        else:
            if answer.upper() == correct_answers[str(trivia_list[question_count][0])]:
                player_score += 1
                print('Muy bien, tu puntaje ahora es ' + str(player_score))
            else:
                print("Suerte en la siguiente pregunta!")
        question_count += 1
    print("Bien, tu puntaje final es " + str(player_score))
    beginning_score = player_score
    return beginning_score

marathon(initial_score)
print(initial_score)

print(player.update_score(initial_score))

```