选择石头布剪子蜥蜴史波克石头0-111-1布10-1-11剪子-1101-1蜥蜴-11-101史波克1-11-10 class Participant: def init(self, name): self.name = name self.points = 0 self.choice = ""
def choose(self): self.choice = input("{name}, select rock, paper, scissor, lizard or spock: ".format(name=self.name)) print("{name} selects {choice}".format(name=self.name, choice=self.choice)) def toNumericalChoice(self): switcher = { "rock": 0, "paper": 1, "scissor": 2, "lizard": 3, "spock": 4 } return switcher[self.choice] def incrementPoint(self): self.points += 1
class GameRound: def init(self, p1, p2): self.rules = [ [0, -1, 1, 1, -1], [1, 0, -1, -1, 1], [-1, 1, 0, 1, -1], [-1, 1, -1, 0, 1], [1, -1, 1, -1, 0] ]
p1.choose() p2.choose() result = self.compareChoices(p1, p2) print("Round resulted in a {result}".format(result=self.getResultAsString(result))) if result > 0: p1.incrementPoint() elif result < 0: p2.incrementPoint() def awardPoints(self): print("implement") def compareChoices(self, p1, p2): return self.rules[p1.toNumericalChoice()][p2.toNumericalChoice()] def getResultAsString(self, result): res = { 0: "draw", 1: "win", -1: "loss" } return res[result]
class Game: def init(self): self.endGame = False self.participant = Participant("Spock") self.secondParticipant = Participant("Kirk")
def start(self): while not self.endGame: GameRound(self.participant, self.secondParticipant) self.checkEndCondition() def checkEndCondition(self): answer = input("Continue game y/n: ") if answer == 'y': GameRound(self.participant, self.secondParticipant) self.checkEndCondition() else: print("Game ended, {p1name} has {p1points}, and {p2name} has {p2points}".format(p1name=self.participant.name, p1points=self.participant.points, p2name=self.secondParticipant.name, p2points=self.secondParticipant.points)) self.determineWinner() self.endGame = True def determineWinner(self): resultString = "It's a Draw" if self.participant.points > self.secondParticipant.points: resultString = "Winner is {name}".format(name=self.participant.name) elif self.participant.points < self.secondParticipant.points: resultString = "Winner is {name}".format(name=self.secondParticipant.name) print(resultString)
game = Game() game.start()
本文作者:a
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!