Advertisement
Guest User

egd

a guest
Jul 20th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.54 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, playersNo):
  12.         self.playersNo = playersNo
  13.         self.entries = self.loadQuestions(fileName)
  14.         print('Witamy w grze')
  15.  
  16.     def loadQuestions(self,fileName):
  17.         entries = []
  18.         try:
  19.             with open(fileName, 'r') as file:
  20.                 data = file.readlines()
  21.         except IOError:
  22.           print ('Nie można otworzyc pliku')
  23.           sys.exit(1)
  24.        
  25.         for i in range(0, len(data), 4):
  26.             q = data[i].rstrip()
  27.             a = data[i + 1].rstrip().split(';')
  28.             c = data[i + 2].rstrip()
  29.             entries.append(Question(q, a, c))
  30.  
  31.         return entries
  32.        
  33.     def askQuestion(self, question, answers):
  34.         print(question)
  35.         #random.shuffle(answers)
  36.         self.printAnswers(answers)
  37.  
  38.         print('Twoja odpowiedź to (wpisz literę):')
  39.         self.userAnswer = input()
  40.        
  41.     def printAnswers(self, answers):
  42.         for i in range(len(answers)):
  43.             print('{}) {}'.format(chr(i + 97), answers[i]))
  44.  
  45.     def getCorrectLetter(self, answers, correct):
  46.         return chr(answers.index(correct) + 97)
  47.        
  48.     def printScore(self):
  49.         questionCount = len(self.entries)
  50.         header =[]
  51.         pointsTable=[]
  52.         print('Koniec gry!')
  53.         print('')
  54.  
  55.         for i in range(self.playersNo):
  56.             newHeader = ('| Gracz {} '.format(i+1))
  57.             header.append(newHeader)
  58.         print('Numer pytania',''.join(header))
  59.  
  60.  
  61.         for question in range(questionCount):
  62.             results = ''
  63.             for player in range(self.playersNo):
  64.                 results += ' {:^8} '.format(self.points[player][question])
  65.             print(' {:^13} '.format(question+1) + results)
  66.  
  67.  
  68.     def start(self):
  69.         self.points={}
  70.         for i in range(self.playersNo):
  71.             self.points[i] = []
  72.             for entry in self.entries:
  73.                 self.askQuestion(entry.question, entry.answers)
  74.                 correctLetter = self.getCorrectLetter(entry.answers, entry.correct)
  75.                 if correctLetter == self.userAnswer:
  76.                     self.points[i].append(1)
  77.                 else:
  78.                     self.points[i].append(0)
  79.                
  80.                 print('')
  81.  
  82. file = sys.argv[1]
  83. players = int(sys.argv[2])
  84. game = Quiz(file, players)
  85. game.start()
  86. game.printScore()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement