如何将连接函数结果给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 
+0

是的,我知道,但问题有点复杂。我在哪里以及如何称此课程?在主要功能的原因,我得到了复赛功能,将从头开始游戏。那么我如何将主要功能的分数与这个类连接起来呢,我真的很想知道。尽管谢谢你的回复 – user2390606 2014-10-27 12:42:40