如何将连接函数结果给Python中的类2.7
问题描述:
所以这是我制作的Rock Scissors Paper的快速代码。它工作正常,它写得很简单,与我所见过的其他代码相关(我认为),但是我在保持比分方面存在问题。从算法上讲,我需要将比分保存在一个类中,在循环Play - Results - 最后一场比赛的比分 - Rematch之外,并且要做到这一点,我必须以某种方式将Score最后一场比赛与Score类连接起来,以便连接每场比赛。如何将连接函数结果给Python中的类2.7
我的代码是波纹管:
import random
def main():
pick_list = ["Rock","Paper","Scissors"]
player_pick = str(raw_input("Rock, Scissors, Paper! Make your Pick! "))
pc_pick = random.choice(pick_list)
if player_pick not in pick_list:
print "Oops, looks like you didn't pick correctly. Try again!"
main()
else:
print "Your pick was " + player_pick
print "My pick was " + pc_pick
results(pc_pick,player_pick)
table_score(results,pc_pick,player_pick)
Score(pc_pick, player_pick)
rematch()
def results(pc_pick,player_pick):
if pc_pick == player_pick:
print "It's a tie!"
elif pc_pick == "Rock" and player_pick == "Paper":
print "You win!"
return "Victory"
elif pc_pick == "Rock" and player_pick == "Scissors":
print "Sorry, I win"
return "Loss"
elif pc_pick == "Scissors" and player_pick == "Rock":
print "You win!"
return "Victory"
elif pc_pick == "Scissors" and player_pick == "Paper":
print "Sorry, I win"
return "Loss"
elif pc_pick == "Paper" and player_pick == "Scissors":
print "You win!"
return "Victory"
elif pc_pick == "Paper" and player_pick == "Rock":
print "Sorry, I win"
return "Loss"
def rematch():
challenge = str(raw_input('Wanna go again? [Y/n]'))
positive_answers =['Y','y', 'yes','Yes']
negative_answers = ['N','n','No','no']
if challenge in positive_answers:
main()
elif challenge in negative_answers:
print "Goodbye!"
raw_input("Press any key to exit")
else:
print "Sorry I didn't get that, try again"
rematch()
def table_score(results, pc_pick, player_pick):
pc_score = 0
player_score = 0
if results(pc_pick, player_pick) == "Victory":
player_score += 1
elif results(pc_pick,player_pick) == "Loss":
pc_score += 1
else:
player_score += 0
pc_score += 0
print "Player:" + str(player_score)
print "Pc:" + str(pc_score)
class Score():
pass
main()
的事情是,因为我的复赛的功能,我需要保持“节能”的比分地方外循环。我知道这是一个愚蠢的事情,但我只是被卡住了。由于
答
好了,到目前为止,我已经设法与此代码来解决这个问题:
import random
def main():
pick_list = ["Rock","Paper","Scissors"]
player_pick = str(raw_input("Rock, Scissors, Paper! Make your Pick! "))
pc_pick = random.choice(pick_list)
if player_pick not in pick_list:
print "Oops, looks like you didn't pick correctly. Try again!"
main()
else:
print "Your pick was " + player_pick
print "My pick was " + pc_pick
results(pc_pick,player_pick)
table_score(results,pc_pick,player_pick)
print "The score so far is... You: ",Score.player_score ,"Me", Score.pc_score
rematch()
def results(pc_pick,player_pick):
if pc_pick == player_pick:
print "It's a tie!"
elif pc_pick == "Rock" and player_pick == "Paper":
print "You win!"
return "Victory"
elif pc_pick == "Rock" and player_pick == "Scissors":
print "Sorry, I win"
return "Loss"
elif pc_pick == "Scissors" and player_pick == "Rock":
print "You win!"
return "Victory"
elif pc_pick == "Scissors" and player_pick == "Paper":
print "Sorry, I win"
return "Loss"
elif pc_pick == "Paper" and player_pick == "Scissors":
print "You win!"
return "Victory"
elif pc_pick == "Paper" and player_pick == "Rock":
print "Sorry, I win"
return "Loss"
def rematch():
challenge = str(raw_input('Wanna go again? [Y/n]'))
positive_answers =['Y','y', 'yes','Yes']
negative_answers = ['N','n','No','no']
if challenge in positive_answers:
main()
elif challenge in negative_answers:
print "Goodbye!"
raw_input("Press any key to exit")
else:
print "Sorry I didn't get that, try again"
rematch()
def table_score(results, pc_pick, player_pick):
pc_score = 0
player_score = 0
if results(pc_pick, player_pick) == "Victory":
Score.player_score += 1
elif results(pc_pick,player_pick) == "Loss":
Score.pc_score += 1
else:
Score.player_score += 0
Score.pc_score += 0
print "Player:" + str(player_score)
print "Pc:" + str(pc_score)
class Score:
def __init__(self):
self.pc_score = 0
self.player_score = 0
Score = Score()
main()
我唯一的问题是,输出给我3次“这是一个平局”输出(如果是平局),两次“我赢”“你赢”输出......我还不知道为什么。
答
你需要的东西是这样的:
class Score(object):
pc_score = 0
player_score = 0
def update_score(self, pc_score, player_score):
self.pc_score += pc_score
self.player_score += player_score
是的,我知道,但问题有点复杂。我在哪里以及如何称此课程?在主要功能的原因,我得到了复赛功能,将从头开始游戏。那么我如何将主要功能的分数与这个类连接起来呢,我真的很想知道。尽管谢谢你的回复 – user2390606 2014-10-27 12:42:40