摇滚,纸,剪刀Python 2游戏统计

时间:2016-06-17 07:07:30

标签: python python-2.7

我是Python的初学者,试图用Python 2创建一个RPS游戏。我相信我有自己的基本游戏和规则编码,但是因为我浏览了不同的RPS python代码帖我混淆了自己并且没有知道如何继续使用我已经拥有的def风格并满足我的要求。

我不知道如何跟踪有多少"手势"已经发生在每场比赛中(因为我需要计算最后每场比赛的平均手势数)。

我还需要实现编码,这将允许我跟踪并呈现最终统计数据:玩家/计算机获胜,玩家/计算机获胜的百分比以及"手势的平均数量" (用户输入)每场比赛以确定胜利者。

请注意我自己花了很多时间(我自己教)并且我不是简单地寻求"简单的答案"但我很沮丧,足以独立寻求帮助。

非常感谢任何帮助!

这是我目前的代码:

import random

def Welcome(Name):
    print "Welcome " + Name
    print "We're going to play rock, paper, scissors."

def ChoiceSelection(PlayerChoice,ComputerChoice):
    print "You chose: " + PlayerChoice
    print "The computer chose: " + ComputerChoice

def GameRules(PlayerChoice,ComputerChoice,Name):
    if PlayerChoice == ComputerChoice:
        print "Draw, nobody wins."

    if PlayerChoice == "Rock" and ComputerChoice == "Scissors":
        print Name + " wins!"
    elif PlayerChoice == "Paper" and ComputerChoice == "Rock":
        print Name + " wins!"
    elif PlayerChoice == "Scissors" and ComputerChoice == "Paper":
        print Name + " wins!"

    if ComputerChoice == "Rock" and PlayerChoice == "Scissors":
        print "The computer wins!"
    elif ComputerChoice == "Paper" and PlayerChoice == "Rock":
        print "The computer wins!"
    elif ComputerChoice == "Scissors" and PlayerChoice == "Paper":
        print "The computer wins!"


def main():

    while True:

        Name = raw_input("Player Name: ")

        Welcome(Name)

        print "Please make your selection: Rock, Paper, or Scissors"
        print "Remember, your choices are case sensitive!"

        PlayerChoice = raw_input("Your selection: ")
        ComputerChoice = random.choice(["Rock","Paper","Scissors"])

        ChoiceSelection(PlayerChoice,ComputerChoice)
        GameRules(PlayerChoice,ComputerChoice,Name)

main()

1 个答案:

答案 0 :(得分:0)

  1. 您将需要至少一个或多个数据结构/变量来保存该数据。考虑到你的代码是如何构造的,似乎可以很容易地在main()上创建它们并保存在那里(也就是说,你甚至不需要将em传递给其他函数)。用于保存数据的数据结构(如果有),我会留给您。
  2. 由于现在某些东西需要记住main()上的赢/输/抽奖比率,看起来你需要一些方法让main真正找出发生的事情。一轮,以便它可以保存在某些上以供日后使用。就像现在一样,main只询问另一个函数来打印发生了什么,而不是告诉他们发生了什么,所以你可能需要改变你的辅助函数中的一些东西。
  3. 某些情况下,您可能需要一个与GameRules类似检查的功能return ROUND_RESULT ROUND_RESULTGameRules是您可能想用来表示是否有&#34;胜利& #34;,&#34;输掉&#34;或者&#34;画&#34;。一旦你有了这个, try { String myMUCName = "TestGroup"; String myMUCService = "conference.(my local ip)"; String myMUCfullName = myMUCName + "@" + myMUCService; String userName = "Test5"; MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(connection); MultiUserChat muc = manager.getMultiUserChat(myMUCfullName); muc.create(userName); Log.d(LOCAL_TAG, "createGroupChat -- Group CEATED Successfully "); Form form = muc.getConfigurationForm(); Form submitForm = form.createAnswerForm(); List<FormField> fields = form.getFields(); Log.d(LOCAL_TAG, "createGroupChat -- fields.size(): "+fields.size()); for (int i = 0; i < fields.size(); i++) { FormField field = (FormField) fields.get(i); if (!FormField.Type.hidden.equals(field.getType()) && field.getVariable() != null) { submitForm.setDefaultAnswer(field.getVariable()); } } List owners = new ArrayList(); owners.add(userName); //Own user owners.add("Test7"); //Another user submitForm.setAnswer("muc#roomconfig_roomowners", owners); submitForm.setAnswer("muc#roomconfig_publicroom", true); submitForm.setAnswer("muc#roomconfig_persistentroom", true); muc.sendConfigurationForm(new Form(DataForm.Type.submit)); //muc.sendConfigurationForm(submitForm); Log.d(LOCAL_TAG, "createGroupChat -- Sent Configuration"); muc.join(TestGroup); Log.d(LOCAL_TAG, "createGroupChat -- Group Joined Successfully -- owners.size(): "+owners.size()); 变得有点多余,所以你可能想要通过调用这个新函数来清理它。