#!/usr/bin/env python # -*- coding: utf-8 -*- from QuizObject import * from Player import * from ResponseBuzzer import * #Hold all quizObjects quizObjects = [] #Create questions for the quiz quizObjects.append(QuizObject("What is the capital of Ontario?","Toronto")) quizObjects.append(QuizObject("What is the capital of Canada?","Ottawa")) quizObjects.append(QuizObject("What is the capital of British Colombia?","Victoria")) quizObjects.append(QuizObject("What month does Pi day land in?","March")) #Create players --- assume 2 player1 = Player(raw_input("Enter Player 1 name (key is a): ")) player2 = Player(raw_input("Enter Player 2 name (Key is l): ")) playerX = Player(raw_input("Enter Player 3 name (key is x): ")) #Keep track of players for scoring purposes players = [] players.append(player1) players.append(player2) players.append(playerX) #Create a response buzzer and assign keys (possibly later GPIO inputs) to players myResponseBuzzer = ResponseBuzzer() myResponseBuzzer.add_player(player1,"a") myResponseBuzzer.add_player(player2,"l") myResponseBuzzer.add_player(playerX,"x") for qobj in quizObjects: activePlayer = myResponseBuzzer.get_active_player() print "It's " + activePlayer.get_name() + "'s turn." response = raw_input(qobj.ask_question() + " ") if qobj.verify_answer(response): activePlayer.increment_score() print "You answered correctly" else: print "You did not answer correctly" print "Your score is " + str(activePlayer.display_info()) #Wait before asking the next question raw_input("Press enter to continue...") #Print blank lines print "" print "" print "" print "************ Final Scores ************" print player1.get_name() + " " + player1.display_info() print player2.get_name() + " " + player2.display_info() print playerX.get_name() + " " + playerX.display_info() #Determine the winner max_score_player = players[0] for plyr in players: if plyr.get_score() > max_score_player.get_score(): max_score_player = plyr tied_players = [] #Possibility of two players with the same highest score, tie-game for plyr in players: if plyr.get_score() == max_score_player.get_score(): tied_players.append(plyr) if len(tied_players) > 1: name_str = "" for plyr in tied_players: name_str += plyr.get_name() + ", " print name_str + " have tie-won the game" else: print max_score_player.get_name() + " has won the game!"