overactive

FsSA

Jul 18th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.75 KB | None | 0 0
  1. import random
  2.  
  3. class Question():
  4.     def __init__(self, q, a, c):
  5.         self.question = q
  6.         self.answers = a
  7.         self.correct = c
  8.  
  9. class Quiz():
  10.     def __init__(self, entries):
  11.         self.entries = entries
  12.         self.points = 0
  13.         print('Witamy w grze')
  14.        
  15.     def askQuestion(self, question, answers):
  16.         print(question)
  17.         random.shuffle(answers)
  18.         self.printAnswers(answers)
  19.  
  20.         print('Twoja odpowiedź to: (wpisz literę)')
  21.         self.userAnswer = input()
  22.        
  23.     def printAnswers(self, answers):
  24.         for i in range(len(answers)):
  25.             print('%s)' %(chr(i + 97)), answers[i])
  26.  
  27.     def getCorrect(self, answers, correct):
  28.         correctIndex = answers.index(correct)
  29.         correctLetter = chr(correctIndex + 97)
  30.         return correctLetter
  31.        
  32.     def countPoints(self, letter):
  33.         if letter == self.userAnswer:
  34.             self.points += 1
  35.    
  36.     def printPoints(self):
  37.         print('Koniec gry!')
  38.         print('Zdobyłeś:')
  39.         print(self.points)
  40.  
  41.     def start(self):
  42.         for entry in self.entries:
  43.             self.askQuestion(entry.question, entry.answers)
  44.             correctLetter = self.getCorrect(entry.answers, entry.correct)
  45.             self.countPoints(correctLetter)
  46.             print('')
  47.  
  48. def loadQuestions(fileName):
  49.     entries = []
  50.  
  51.     with open(fileName, 'r') as file:
  52.         data = file.readlines()
  53.        
  54.         for i in range(0, len(data), 4):
  55.             q = data[i].rstrip()
  56.             a = data[i + 1].rstrip().split(';')
  57.             c = data[i + 2].rstrip()
  58.             entries.append(Question(q, a, c))
  59.    
  60.     return entries
  61.  
  62. game = Quiz(loadQuestions('quiz.txt'))
  63. game.start()
  64. game.printPoints()
Advertisement
Add Comment
Please, Sign In to add comment