Double-Jeopardy works in questions
This commit is contained in:
parent
15e18fb270
commit
324423371f
18
game.py
18
game.py
|
@ -151,13 +151,13 @@ class SeopardyGame(QtGui.QWidget):
|
||||||
wasAnswered = (answers is not None and answers.is_answered())
|
wasAnswered = (answers is not None and answers.is_answered())
|
||||||
|
|
||||||
question = self.questions.get_question(section, number)
|
question = self.questions.get_question(section, number)
|
||||||
|
dj = None
|
||||||
if not wasAnswered and question["Double-Jeopardy"]:
|
if not wasAnswered and question["Double-Jeopardy"]:
|
||||||
print("maunz")
|
|
||||||
|
|
||||||
dwin = DoubleJeopardyWindow(self.players, number*100, self.currentPlayer, parent=self)
|
dwin = DoubleJeopardyWindow(self.players, number*100, self.currentPlayer, parent=self)
|
||||||
dwin.exec_()
|
dwin.exec_()
|
||||||
|
dj = (dwin.get_player(), dwin.get_chosen_points())
|
||||||
|
|
||||||
qwin = QuestionWindow(self.players, section, number, question, answers, self)
|
qwin = QuestionWindow(self.players, section, number, question, answers, dj, self)
|
||||||
qwin.showFullScreen()
|
qwin.showFullScreen()
|
||||||
qwin.exec_()
|
qwin.exec_()
|
||||||
|
|
||||||
|
@ -177,13 +177,21 @@ class SeopardyGame(QtGui.QWidget):
|
||||||
self._restyle_button(section, number, answers)
|
self._restyle_button(section, number, answers)
|
||||||
|
|
||||||
def _set_player_points(self, answers, rollback=False):
|
def _set_player_points(self, answers, rollback=False):
|
||||||
for player, correct in answers.get_tries():
|
for i, (player, correct) in enumerate(answers.get_tries()):
|
||||||
prefix = 1
|
prefix = 1
|
||||||
if rollback:
|
if rollback:
|
||||||
prefix *= -1
|
prefix *= -1
|
||||||
if not correct:
|
if not correct:
|
||||||
prefix *= -1
|
prefix *= -1
|
||||||
player.add_points(answers.points()*prefix)
|
|
||||||
|
points = 0
|
||||||
|
print(i, answers.get_dj_points())
|
||||||
|
if i == 0 and answers.get_dj_points() is not None:
|
||||||
|
points = answers.get_dj_points()
|
||||||
|
else:
|
||||||
|
points = answers.points()
|
||||||
|
|
||||||
|
player.add_points(prefix*points)
|
||||||
|
|
||||||
def _restyle_button(self, sec, qno, answers):
|
def _restyle_button(self, sec, qno, answers):
|
||||||
|
|
||||||
|
|
|
@ -38,13 +38,17 @@ class GameState(object):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class QuestionAnswers(object):
|
class QuestionAnswers(object):
|
||||||
def __init__(self, section, qnumber):
|
def __init__(self, section, qnumber, dj_points=None):
|
||||||
self.section = section
|
self.section = section
|
||||||
self.qnumber = qnumber
|
self.qnumber = qnumber
|
||||||
self.nobody_answered = False
|
self.nobody_answered = False
|
||||||
|
self.dj_points = dj_points
|
||||||
|
|
||||||
self.tries = []
|
self.tries = []
|
||||||
|
|
||||||
|
def set_dj_points(self, points):
|
||||||
|
self.dj_points = points
|
||||||
|
|
||||||
def add_try(self, player, correct):
|
def add_try(self, player, correct):
|
||||||
self.tries.append((player, correct))
|
self.tries.append((player, correct))
|
||||||
|
|
||||||
|
@ -57,6 +61,9 @@ class QuestionAnswers(object):
|
||||||
def points(self):
|
def points(self):
|
||||||
return self.qnumber*100
|
return self.qnumber*100
|
||||||
|
|
||||||
|
def get_dj_points(self):
|
||||||
|
return self.dj_points
|
||||||
|
|
||||||
def nobody_knew(self):
|
def nobody_knew(self):
|
||||||
self.nobody_answered = True
|
self.nobody_answered = True
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ from gamestate import QuestionAnswers
|
||||||
from player import Player, ButtonEvent, nobodyColor
|
from player import Player, ButtonEvent, nobodyColor
|
||||||
|
|
||||||
class QuestionWindow(QtGui.QDialog):
|
class QuestionWindow(QtGui.QDialog):
|
||||||
def __init__(self, players, section, qnumber, question, answers=None, parent=None):
|
def __init__(self, players, section, qnumber, question, answers=None, dj=None, parent=None):
|
||||||
super(QuestionWindow, self).__init__(parent)
|
super(QuestionWindow, self).__init__(parent)
|
||||||
|
|
||||||
self.players = players
|
self.players = players
|
||||||
|
@ -18,6 +18,12 @@ class QuestionWindow(QtGui.QDialog):
|
||||||
else:
|
else:
|
||||||
self.answers = QuestionAnswers(self.section, self.qnumber)
|
self.answers = QuestionAnswers(self.section, self.qnumber)
|
||||||
|
|
||||||
|
self.dj = dj
|
||||||
|
if self.dj and not self.answers.is_answered():
|
||||||
|
self.answers.set_dj_points(self.dj[1])
|
||||||
|
playerNo = self.players.index(self.dj[0])+1
|
||||||
|
QtCore.QCoreApplication.postEvent(self, ButtonEvent(playerNo))
|
||||||
|
|
||||||
self._setupGui()
|
self._setupGui()
|
||||||
self.setWindowTitle("Seopardy - %s - %d" % (section, qnumber*100))
|
self.setWindowTitle("Seopardy - %s - %d" % (section, qnumber*100))
|
||||||
self._inWindow = False
|
self._inWindow = False
|
||||||
|
|
Loading…
Reference in New Issue