首页 > 解决方案 > Python:游戏没有运行

问题描述

我已经用 Python 编写了石头、剪纸、剪刀游戏的逻辑,但无法让它运行。它不会贯穿整个游戏,只会不断询问我的意见。我已经多次查看它,但看不到它可能卡在哪里。知道问题可能是什么吗?

代码如下:

import random

comp_wins = 0
player_wins = 0


def choose_option ():
  user_choice = input("choose rock, paper and scissors: ")
  if user_choice in ["rock","Rock"]:
    user_choice = "rock"
  elif user_choice in ["paper","Paper"]:
    user_choice = "paper"
  elif user_choice in ["scissors","Scissor"]:
    user_choice = "scissors"
  else:
      print ("error try again")
  return user_choice

def computer_option ():
    comp_choice = random.randint(1,3)
    if comp_choice ==1:
          comp_choice = "rock"
    elif comp_choice ==2:
          comp_choice = "paper" 
    elif comp_choice ==3:
        comp_choice = "scissors"
    return comp_choice

  
while True:
    print("")
    user_choice = choose_option ()
    comp_choice = computer_option ()
    print ("")

if user_choice ==["rock"]:
    if comp_choice == "rock":
        print("draw")

    elif comp_choice == "paper":
        print("computer wins")
        comp_wins += 1

    elif comp_choice == "scissors":
        print("user wins")
        player_wins += 1
        

elif user_choice == "paper":
    if comp_choice == "rock":
        print("user wins")
        player_wins += 1

    elif comp_choice == "paper":
        print("draw")

    elif comp_choice == "scissors":
        print("computer wins")
        comp_wins += 1

elif user_choice == "scissors":
    if comp_choice == "rock":
        print("computer wins")
        comp_wins += 1

    elif comp_choice == "paper":
        print("user wins")
        player_wins += 1

    elif comp_choice == "scissors":
        print("draw")

print("")
print("user_wins: " + str(player_wins)) 
print("comp_wins: " + str(comp_wins))
print("")

标签: python

解决方案


你的问题在这里

while True:
print("")
user_choice = choose_option ()
comp_choice = computer_option ()
print ("")

您永远不会退出,您应该在做出选择时放置退出条件或标志。此外,最好清理并使用具有主要功能的自顶向下结构来控制文件。


推荐阅读