Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import sys
- class Question():
- def __init__(self, q, a, c):
- self.question = q
- self.answers = a
- self.correct = c
- class Quiz():
- def __init__(self, fileName, playersNo):
- self.playersNo = playersNo
- self.entries = self.loadQuestions(fileName)
- print('Witamy w grze')
- def loadQuestions(self,fileName):
- entries = []
- try:
- with open(fileName, 'r') as file:
- data = file.readlines()
- except IOError:
- print ('Nie można otworzyc pliku')
- sys.exit(1)
- for i in range(0, len(data), 4):
- q = data[i].rstrip()
- a = data[i + 1].rstrip().split(';')
- c = data[i + 2].rstrip()
- entries.append(Question(q, a, c))
- return entries
- def askQuestion(self, question, answers):
- print(question)
- #random.shuffle(answers)
- self.printAnswers(answers)
- print('Twoja odpowiedź to (wpisz literę):')
- self.userAnswer = input()
- def printAnswers(self, answers):
- for i in range(len(answers)):
- print('{}) {}'.format(chr(i + 97), answers[i]))
- def getCorrectLetter(self, answers, correct):
- return chr(answers.index(correct) + 97)
- def printScore(self):
- questionCount = len(self.entries)
- header =[]
- pointsTable=[]
- print('Koniec gry!')
- print('')
- for i in range(self.playersNo):
- newHeader = ('| Gracz {} '.format(i+1))
- header.append(newHeader)
- print('Numer pytania',''.join(header))
- for question in range(questionCount):
- results = ''
- for player in range(self.playersNo):
- results += ' {:^8} '.format(self.points[player][question])
- print(' {:^13} '.format(question+1) + results)
- def start(self):
- self.points={}
- for i in range(self.playersNo):
- self.points[i] = []
- for entry in self.entries:
- self.askQuestion(entry.question, entry.answers)
- correctLetter = self.getCorrectLetter(entry.answers, entry.correct)
- if correctLetter == self.userAnswer:
- self.points[i].append(1)
- else:
- self.points[i].append(0)
- print('')
- file = sys.argv[1]
- players = int(sys.argv[2])
- game = Quiz(file, players)
- game.start()
- game.printScore()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement