Advertisement
Guest User

dsfsdf

a guest
Jul 20th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.21 KB | None | 0 0
  1. import random
  2. import sys
  3.  
  4. class Question():
  5.     def __init__(self, q, a, c):
  6.         self.question = q
  7.         self.answers = a
  8.         self.correct = c
  9.  
  10. class Quiz():
  11.     def __init__(self, entries):
  12.         self.entries = entries
  13.         print('Witamy w grze')
  14.  
  15.     def loadQuestions(self,fileName):
  16.         self.entries = []
  17.         try:
  18.             with open(fileName, 'r') as file:
  19.                 data = file.readlines()
  20.         except IOError:
  21.           print ('Nie można otworzyc pliku')
  22.           sys.exit(1)
  23.        
  24.         for i in range(0, len(data), 4):
  25.             q = data[i].rstrip()
  26.             a = data[i + 1].rstrip().split(';')
  27.             c = data[i + 2].rstrip()
  28.             self.entries.append(Question(q, a, c))
  29.        
  30.     def askQuestion(self, question, answers):
  31.         print(question)
  32.         random.shuffle(answers)
  33.         self.printAnswers(answers)
  34.  
  35.         print('Twoja odpowiedź to (wpisz literę):')
  36.         self.userAnswer = input()
  37.        
  38.     def printAnswers(self, answers):
  39.         for i in range(len(answers)):
  40.             print('{}) {}'.format(chr(i + 97), answers[i]))
  41.  
  42.     def getCorrectLetter(self, answers, correct):
  43.         return chr(answers.index(correct) + 97)
  44.        
  45.     def printScore(self):
  46.         print('Koniec gry!')
  47.         print('')
  48.        
  49.         print('Łączna suma zdobytych punktów:')
  50.         print(sum(self.points))
  51.        
  52.         print('Tabela wyników:')
  53.         header = 'Numer pytania |zdobyte punkty|'
  54.         print(header)
  55.         print('-' * len(header))
  56.         for i in range(len(self.points)):
  57.             print('{:^13d} |{:^14d}|'.format((i + 1), self.points[i]))
  58.         print('-' * len(header))
  59.    
  60.     def start(self):
  61.         self.points=[]
  62.         self.loadQuestions(file)
  63.         for entry in self.entries:
  64.             self.askQuestion(entry.question, entry.answers)
  65.             correctLetter = self.getCorrectLetter(entry.answers, entry.correct)
  66.             if correctLetter == self.userAnswer:
  67.                 self.points.append(1)
  68.             else:
  69.                 self.points.append(0)
  70.            
  71.             print('')
  72.  
  73. file = sys.argv[1]
  74. game = Quiz(file)
  75. game.start()
  76. game.printScore()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement