我试着写了最基本的RPS游戏是: 我有什么办法可以做到吗?
import random
while True:
AI=random.randint("rock","paper","scissors")
player=input("rock-paper-scissors:")
def x():
"rock">"scissors"==True
"paper">"rock"==True
"scissors">"paper"==True
if AI > player:
print(AI)
print("AI wins")
continue
else:
if AI < player:
print(AI)
print("player wins")
continue
首先,我想定义的值有意义的一些是比其他像“石头”>“剪刀”==True。我知道这是不对的,但我想知道正确的方法是什么。通过这样做,我希望对输入求值并返回结果。 其次,else语句返回一个无效语法错误,我不明白为什么。 我希望这能进一步澄清。 问题来源StackOverflow 地址:/questions/59466183/what-is-wrong-with-my-rock-paper-scissors-game-in-python-is-everything-wrong
import random
def result(num): if num == 1: ret = '石头' elif num == 2: ret = '剪刀' else: ret = '布' return ret
def games(nums): for i in range(nums): try: # 得到键盘内容 player_num = input('请输入 [ 1. 石头 2. 剪刀 3. 布] 退出请输入 exit ') # 如果键盘输入的是exit, 就直接跳出当前循环, 结束程序 if player_num == 'exit': break
# 判断用户输入的内容是不是字符串类型的 1 2 3 如果不是, 则主动抛出异常
if player_num not in ['1', '2', '3']:
raise 123
# 用于把数字和石头剪刀布对应起来, 待会下面输入就能够很好的字符串拼接
you = result(int(player_num))
# 把用户输入的内容转换成数字类型, 能够走到这里, 就代码player_num决定是字符串类型的 1 2 3
player_num = int(player_num)
except Exception:
print('输入有误, 请重新来过')
continue
# 电脑出拳
computer_num = random.randint(1, 3)
# 用于把数字和石头剪刀布对应起来, 待会下面电脑输入就能够很好的字符串拼接
computer = result(computer_num)
if (player_num == 1 and computer_num == 2) or (player_num == 2 and computer_num == 3) or (
player_num == 3 and computer_num == 1):
print('')
print('*' * 50)
print('你出的是%s' % you)
print('电脑出的是%s' % computer)
print('你赢了, 你向对方说, 不要跑, 决战到天亮!!')
print('*' * 50)
print('')
elif player_num == computer_num:
print('')
print('*' * 50)
print('你出的是%s' % you)
print('电脑出的是%s' % computer)
print('打平了')
print('*' * 50)
print('')
else:
print('')
print('*' * 50)
print('你出的是%s' % you)
print('电脑出的是%s' % computer)
print('你输了, 但是不要气馁, 再接再励!')
print('*' * 50)
print('')
if name == 'main': print("欢迎来到猜拳游戏*") nums = int(input('请问你想玩几盘: ')) print("游戏开始*") games(nums)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。