Advertisement
Guest User

sdfsa

a guest
Jul 20th, 2018
70
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, fileName):
  12.         self.entries = self.loadQuestions(fileName)
  13.         print('Witamy w grze')
  14.  
  15.     def loadQuestions(self,fileName):
  16.         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.             entries.append(Question(q, a, c))
  29.  
  30.         return entries
  31.        
  32.     def askQuestion(self, question, answers):
  33.         print(question)
  34.         random.shuffle(answers)
  35.         self.printAnswers(answers)
  36.  
  37.         print('Twoja odpowiedź to (wpisz literę):')
  38.         self.userAnswer = input()
  39.        
  40.     def printAnswers(self, answers):
  41.         for i in range(len(answers)):
  42.             print('{}) {}'.format(chr(i + 97), answers[i]))
  43.  
  44.     def getCorrectLetter(self, answers, correct):
  45.         return chr(answers.index(correct) + 97)
  46.        
  47.     def printScore(self):
  48.         print('Koniec gry!')
  49.         print('')
  50.        
  51.         print('Łączna suma zdobytych punktów:')
  52.         print(sum(self.points))
  53.        
  54.         print('Tabela wyników:')
  55.         header = 'Numer pytania |zdobyte punkty|'
  56.         print(header)
  57.         print('-' * len(header))
  58.         for i in range(len(self.points)):
  59.             print('{:^13d} |{:^14d}|'.format((i + 1), self.points[i]))
  60.         print('-' * len(header))
  61.    
  62.     def start(self):
  63.         self.points=[]
  64.         for entry in self.entries:
  65.             self.askQuestion(entry.question, entry.answers)
  66.             correctLetter = self.getCorrectLetter(entry.answers, entry.correct)
  67.             if correctLetter == self.userAnswer:
  68.                 self.points.append(1)
  69.             else:
  70.                 self.points.append(0)
  71.            
  72.             print('')
  73.  
  74. file = sys.argv[1]
  75. game = Quiz(file)
  76. game.start()
  77. game.printScore()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement