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)
- print('Koniec gry!\n')
- playersHeader = ''
- for i in range(self.playersNo):
- playersHeader += ' Gracz {} |'.format(i + 1)
- header = 'Numer pytania |' + playersHeader
- print(header)
- print('-' * len(header))
- for question in range(questionCount):
- results = ''
- for player in range(self.playersNo):
- results += ' {:^7} |'.format(self.points[player][question])
- print(' {:^12} |'.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]
- if len(sys.argv) == 3:
- if 1 <= int(sys.argv[2]) <= 3:
- players = int(sys.argv[2])
- elif int(sys.argv[2]) < 1:
- print ('Minimlna liczba graczy to 1')
- sys.exit(1)
- elif int(sys.argv[2]) > 3:
- print ('Maksymalna liczba graczy to 3')
- sys.exit(1)
- else:
- players = 1
- game = Quiz(file, players)
- game.start()
- game.printScore()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement