Advertisement
Guest User

Untitled

a guest
Dec 24th, 2018
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.82 KB | None | 0 0
  1. # Title: South Park Trivia
  2. # By : Josh Belmar
  3. # Date: 12/20/2018
  4.  
  5. #To-DO:  
  6. #  
  7. #   + Error handling on name input
  8. #   +
  9. #   + 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
  10. #   +
  11.  
  12. #IDEAS-
  13. #  + On 'hint', increment one letter per x amount of seconds, beat the clock // Multithread
  14. #  + When hint is utilized, only grant half points
  15. #  +
  16.  
  17.  
  18.  
  19. import csv
  20. import time
  21. import re
  22. import random
  23. import subprocess
  24. import sys
  25. import os
  26. import math
  27.  
  28. FILE_NAME = ("/code/SouthParkData/All-seasons.csv")
  29. SPEAKER = ""
  30. SEASON = ""
  31. EPISODE = ""
  32. LINE = ""
  33. SCORE = 0
  34. PLAYER = input('Enter player name>>').lower().strip()
  35.  
  36. if bool(PLAYER) == False:
  37.     PLAYER = input('Enter player name>>').lower().strip()
  38.  
  39. #Player object assignments
  40. player = Player()
  41. player.name = PLAYER
  42. player.score = [SCORE]
  43.  
  44. class Player():
  45.     name = PLAYER
  46.     score = SCORE
  47.  
  48.     def dictRep():
  49.         dict = {'name':player.name, 'score':player.score}
  50.         return str(dict)
  51.  
  52.  
  53.  
  54. def scoreboard(player.name, player.score):
  55.    
  56.     with open('score', 'r+') as file:
  57.         SCOREBOARD = file.read()
  58.         if player.name in SCOREBOARD.keys():
  59.             SCOREBOARD[player.name].append(player.score)
  60.         else:
  61.             SCOREBOARD.update(player.name:player.score)
  62.         file.write(SCOREBOARD)
  63.  
  64.  
  65.    
  66.  
  67.  
  68.    
  69.  
  70. def search_parameters():
  71.     SPEAKER = input("Character Selection>>").strip()
  72.     SEASON = input("Season Selection>>").strip()
  73.     EPISODE = input("Episode selection>>").strip()
  74.     return SPEAKER,SEASON,EPISODE
  75.  
  76.  
  77. def trivia_question_selector():
  78.     with open(FILE_NAME, 'r') as file:
  79.         reader = csv.DictReader(file, fieldnames=['season', 'episode', 'speaker', 'line'])
  80.         trivia_question = random.choice(list(reader))
  81.         return trivia_question
  82.  
  83. #Not used anymore, keeping for future
  84. def search_lines():
  85.     SPEAKER, SEASON, EPISODE = search_parameters() 
  86.     with open(FILE_NAME, 'r') as file:
  87.         reader = csv.DictReader(file, fieldnames=['season', 'episode', 'speaker', 'line'])
  88.         lines = {SPEAKER:[]}
  89.         time.sleep(5)
  90.         for row in reader:
  91.             if row['speaker']  == SPEAKER and row['season'] == SEASON and row['episode'] == EPISODE:
  92.                 lines[SPEAKER].append(row['line'])
  93.     return lines
  94.  
  95. def hint(SPEAKER,player.score, player.name):
  96.     print("The first letter in the characters name is: " + SPEAKER[0])
  97.     answer = input('>>>').strip()
  98.     check_input(answer, SPEAKER, player.score, player.name)
  99.    
  100.     #while timer != False: Decrease displayed time by 1 second and show a new character every 5. Show random index of string.
  101.    
  102. def check_input(answer,SPEAKER, player.score,player.name):
  103.     while bool(answer) == True and answer.isspace() != True:
  104.         if answer.lower() == "hint":
  105.             answer = hint(SPEAKER, player.score, player.name)
  106.             check_input(answer, SPEAKER, player.score,player.name)
  107.         elif answer.lower() == 'next':
  108.             print("New question....")
  109.             subprocess.call('clear')
  110.             main(player.name,player.score)
  111.         elif answer.lower() == SPEAKER.lower():
  112.             print("\nCorrect ! " + SPEAKER + "! That bastard! + 10 points\n")
  113.             player.score = player.score + 10
  114.             main(player.name,player.score)
  115.         elif answer.lower() == "reset":
  116.             subprocess.call('clear')
  117.             SCORE = 0
  118.             main(PLAYER,SCORE)
  119.         elif answer.lower() == "exit":
  120.             scoreboard(player.name, players.score)
  121.             exec('quit()')
  122.         elif answer.lower() == "diag":
  123.             result =diag_Prompt()
  124.             print(result)
  125.             answer = input(">>>")
  126.  
  127.         #elif bool(answer.isspace()) == True o:
  128.         #   answer = input('>>>').strip()
  129.         #   check_input(answer, SPEAKER, SCORE)
  130.  
  131.         elif answer.lower() != SPEAKER.lower():
  132.             print("Wrong ! What a dildo ! " +  SPEAKER + " said that ! Minus 10 points !\n")
  133.             player.score = player.score - 10
  134.             main(player.name, player.score)
  135.     if bool(answer) == False or answer.isspace() == True:
  136.         answer = input(">+>").strip()
  137.         check_input(answer, SPEAKER, player.score,player.name)
  138.     return player.name, player.score
  139.  
  140. def diag_Prompt():
  141.     code = input("Testing Prompt>")
  142.     return exec(code)
  143.  
  144.  
  145. def main(player.name, player.score):
  146.     while True:
  147.         trivia_question = trivia_question_selector()
  148.         SPEAKER = re.sub(r'\W', ' ', trivia_question['speaker'])
  149.         LINE = re.sub(r'\W', ' ', trivia_question['line'])
  150.  
  151.         SEASON = re.sub(r'\W', ' ', trivia_question['season'])
  152.         EPISODE = re.sub(r'\W', ' ',  trivia_question['episode'])
  153.  
  154.         print('Score is '+ str(player.score))
  155.         print('In season ' + SEASON + ' episode ' + EPISODE + ', which character said: ' + LINE + '?')
  156.         print('-'*25)
  157.         print("\nHaving a hard time ? Wanna get high? Try 'hint' or 'reset' ")
  158.         test = input('???')
  159.         exec(test)
  160.         answer = input(">>>")
  161.         PLAYER, SCORE = check_input(answer, SPEAKER, player.score,player.name)
  162.        
  163.  
  164. print('Welcome to South Park Trivia !')
  165. print('------------------------------')
  166. print('   By: Josh Belmar 12/20/2018')
  167. print('\n\n\n')
  168.  
  169.  
  170. main(player.name,player.score)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement