[萌新求助!] 关于猜拳游戏
如何设定游戏规则???让程序明白 石头大于剪刀,剪刀大于布,然而布又要大于石头呢???
如果我写的代码不够好,请求大佬们指点改进!!! 请把代码贴出来 本帖最后由 昨非 于 2020-9-24 10:47 编辑
print('------------石头剪刀布------------')
import random
secret = random.randint(1,3)
#answer = secret#这行没用
if secret == 1:
answer ="剪刀"
elif secret ==2:
answer = "石头"
else:
answer = "布"
temp = input("请输入你要放出的手势(石头、剪刀或布):")
#player = str(temp) #这行也多余,input的返回内容本例就是字符串
if answer == temp:
print("我出的是:",answer,"平局啦")
else: #不同时
if answer=="剪刀":
if temp == "石头":
print("我出了剪刀,你赢了")
else:
print("我出了剪刀,你输了")
elif answer =="石头":
if temp == "布":
print("我出了石头,你赢了")
else:
print("我出了石头,你输了")
else:
if temp == "剪刀":
print("我出了布,你赢了")
else:
print("我出了布,你输了")
列个表格,一个个比就完了{:10_277:} 昨非 发表于 2020-9-24 10:42
actually you can optimize it. too many if else statements here Seawolf 发表于 2020-9-24 10:52
actually you can optimize it. too many if else statements here
Of course. For example? 昨非 发表于 2020-9-24 10:42
是我想多了呀{:10_277:} 轩少不冷 发表于 2020-9-24 10:55
是我想多了呀
楼上那位说可以简化的,你看看他怎么说 昨非 发表于 2020-9-24 10:53
Of course. For example?
1. put rock, scissor and paper into a list in order
2. then compare the index of random input and user input 本帖最后由 sunrise085 于 2020-9-24 11:00 编辑
昨非 发表于 2020-9-24 10:22
请把代码贴出来
这是三个比较,你的方法也可以,若是十个或是百个进行比较,那你的写法就有点太长了。。。
import random
secret = random.randint(1,3)
answer=['','剪刀','石头','布']
player=input('请输入你要放出的手势(剪刀,石头,布):')
if answer==player:
print("我出的也是%s,平局啦!"%player)
elif abs(secret-answer.index(player))==2:#这里用最大最小的差值,只有这两个比较相反,其他的正常比较即可
if secret>answer.index(player):
print("你真棒,我出的是%s,我输了。"%answer)
else:
print("噢耶,我出的是%s,你输了。"%answer)
elif secret>answer.index(player):
print("噢耶,我出的是%s,你输了。"%answer)
else:
print("你真棒,我出的是%s,我输了。"%answer) sunrise085 发表于 2020-9-24 10:59
这是三个比较,你的方法也可以,若是十个或是百个进行比较,那你的写法就有点太长了。。。
有道理,这个索引比较学到了,谢谢 sunrise085 发表于 2020-9-24 10:59
这是三个比较,你的方法也可以,若是十个或是百个进行比较,那你的写法就有点太长了。。。
不愧是大佬级别{:10_254:} Seawolf 发表于 2020-9-24 10:57
1. put rock, scissor and paper into a list in order
2. then compare the index of random input an ...
thanks! 轩少不冷 发表于 2020-9-24 11:05
不愧是大佬级别
还可以更简单,用异或
import random
secret = random.randint(1,3)
answer=['','剪刀','石头','布']
player=input('请输入你要放出的手势(剪刀,石头,布):')
flag=False
if abs(secret-answer.index(player))==2:
flag=True
if answer==player:
print("我出的也是%s,平局啦!"%player)
elif (secret>answer.index(player)) != flag:#这里是逻辑异或运算
print("噢耶,我出的是%s,你输了。"%answer)
else:
print("你真棒,我出的是%s,我输了。"%answer)
页:
[1]