Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Title: South Park Trivia
- # By : Josh Belmar
- # Date: 12/20/2018
- #To-DO:
- #
- # + Error handling on name input
- # +
- # + Score board. Upon exit command, file write is successfull, the first time its correct, and subquential excecutions bury the list in a sea of qutoes
- # +
- #IDEAS-
- # + On 'hint', increment one letter per x amount of seconds, beat the clock // Multithread
- # + When hint is utilized, only grant half points
- # +
- import csv
- import time
- import re
- import random
- import subprocess
- import sys
- import os
- import math
- FILE_NAME = ("/code/SouthParkData/All-seasons.csv")
- SPEAKER = ""
- SEASON = ""
- EPISODE = ""
- LINE = ""
- SCORE = 0
- PLAYER = input('Enter player name>>').lower().strip()
- if bool(PLAYER) == False:
- PLAYER = input('Enter player name>>').lower().strip()
- #Player object assignments
- player = Player()
- player.name = PLAYER
- player.score = [SCORE]
- class Player():
- name = PLAYER
- score = SCORE
- def dictRep():
- dict = {'name':player.name, 'score':player.score}
- return str(dict)
- def scoreboard(player.name, player.score):
- with open('score', 'r+') as file:
- SCOREBOARD = file.read()
- if player.name in SCOREBOARD.keys():
- SCOREBOARD[player.name].append(player.score)
- else:
- SCOREBOARD.update(player.name:player.score)
- file.write(SCOREBOARD)
- def search_parameters():
- SPEAKER = input("Character Selection>>").strip()
- SEASON = input("Season Selection>>").strip()
- EPISODE = input("Episode selection>>").strip()
- return SPEAKER,SEASON,EPISODE
- def trivia_question_selector():
- with open(FILE_NAME, 'r') as file:
- reader = csv.DictReader(file, fieldnames=['season', 'episode', 'speaker', 'line'])
- trivia_question = random.choice(list(reader))
- return trivia_question
- #Not used anymore, keeping for future
- def search_lines():
- SPEAKER, SEASON, EPISODE = search_parameters()
- with open(FILE_NAME, 'r') as file:
- reader = csv.DictReader(file, fieldnames=['season', 'episode', 'speaker', 'line'])
- lines = {SPEAKER:[]}
- time.sleep(5)
- for row in reader:
- if row['speaker'] == SPEAKER and row['season'] == SEASON and row['episode'] == EPISODE:
- lines[SPEAKER].append(row['line'])
- return lines
- def hint(SPEAKER,player.score, player.name):
- print("The first letter in the characters name is: " + SPEAKER[0])
- answer = input('>>>').strip()
- check_input(answer, SPEAKER, player.score, player.name)
- #while timer != False: Decrease displayed time by 1 second and show a new character every 5. Show random index of string.
- def check_input(answer,SPEAKER, player.score,player.name):
- while bool(answer) == True and answer.isspace() != True:
- if answer.lower() == "hint":
- answer = hint(SPEAKER, player.score, player.name)
- check_input(answer, SPEAKER, player.score,player.name)
- elif answer.lower() == 'next':
- print("New question....")
- subprocess.call('clear')
- main(player.name,player.score)
- elif answer.lower() == SPEAKER.lower():
- print("\nCorrect ! " + SPEAKER + "! That bastard! + 10 points\n")
- player.score = player.score + 10
- main(player.name,player.score)
- elif answer.lower() == "reset":
- subprocess.call('clear')
- SCORE = 0
- main(PLAYER,SCORE)
- elif answer.lower() == "exit":
- scoreboard(player.name, players.score)
- exec('quit()')
- elif answer.lower() == "diag":
- result =diag_Prompt()
- print(result)
- answer = input(">>>")
- #elif bool(answer.isspace()) == True o:
- # answer = input('>>>').strip()
- # check_input(answer, SPEAKER, SCORE)
- elif answer.lower() != SPEAKER.lower():
- print("Wrong ! What a dildo ! " + SPEAKER + " said that ! Minus 10 points !\n")
- player.score = player.score - 10
- main(player.name, player.score)
- if bool(answer) == False or answer.isspace() == True:
- answer = input(">+>").strip()
- check_input(answer, SPEAKER, player.score,player.name)
- return player.name, player.score
- def diag_Prompt():
- code = input("Testing Prompt>")
- return exec(code)
- def main(player.name, player.score):
- while True:
- trivia_question = trivia_question_selector()
- SPEAKER = re.sub(r'\W', ' ', trivia_question['speaker'])
- LINE = re.sub(r'\W', ' ', trivia_question['line'])
- SEASON = re.sub(r'\W', ' ', trivia_question['season'])
- EPISODE = re.sub(r'\W', ' ', trivia_question['episode'])
- print('Score is '+ str(player.score))
- print('In season ' + SEASON + ' episode ' + EPISODE + ', which character said: ' + LINE + '?')
- print('-'*25)
- print("\nHaving a hard time ? Wanna get high? Try 'hint' or 'reset' ")
- test = input('???')
- exec(test)
- answer = input(">>>")
- PLAYER, SCORE = check_input(answer, SPEAKER, player.score,player.name)
- print('Welcome to South Park Trivia !')
- print('------------------------------')
- print(' By: Josh Belmar 12/20/2018')
- print('\n\n\n')
- main(player.name,player.score)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement