python石头剪刀布 人vs人 1~500代表“石头” ;501~1000代表“剪刀” ;1001 ~ 1500代表“布” 三局两胜,每局两人全部输入以后,print两人的出牌情况和胜负;三局完以后,最终输出获胜者; 输出每次对决的手势和对决结果; 对最终的胜负概率进行统计和输出;
时间: 2024-03-03 17:47:46 浏览: 21
好的,这是一个有趣的问题,我可以帮您解答。下面是我的代码实现,您可以参考:
```python
import random
def get_gesture(num):
if num <= 500:
return "石头"
elif num <= 1000:
return "剪刀"
else:
return "布"
def judge(player1, player2):
if player1 == player2:
return "平局"
elif (player1 == "石头" and player2 == "剪刀") or (player1 == "剪刀" and player2 == "布") or (player1 == "布" and player2 == "石头"):
return "玩家1胜利"
else:
return "玩家2胜利"
win_count = {"玩家1": 0, "玩家2": 0}
for i in range(3):
print("第{}局开始:".format(i+1))
p1 = int(input("玩家1,请输入您的手势(1-500代表石头,501-1000代表剪刀,1001-1500代表布):"))
while p1 < 1 or p1 > 1500:
p1 = int(input("请输入正确的数字(1-500代表石头,501-1000代表剪刀,1001-1500代表布):"))
p2 = int(input("玩家2,请输入您的手势(1-500代表石头,501-1000代表剪刀,1001-1500代表布):"))
while p2 < 1 or p2 > 1500:
p2 = int(input("请输入正确的数字(1-500代表石头,501-1000代表剪刀,1001-1500代表布):"))
gesture1 = get_gesture(p1)
gesture2 = get_gesture(p2)
print("玩家1出了{},玩家2出了{}。".format(gesture1, gesture2))
result = judge(gesture1, gesture2)
print("结果是:{}。".format(result))
if result == "玩家1胜利":
win_count["玩家1"] += 1
elif result == "玩家2胜利":
win_count["玩家2"] += 1
if win_count["玩家1"] > win_count["玩家2"]:
print("恭喜玩家1,您赢得了比赛!")
elif win_count["玩家1"] < win_count["玩家2"]:
print("恭喜玩家2,您赢得了比赛!")
else:
print("本次比赛平局!")
win_rate = win_count["玩家1"] / 3
print("最终胜率为:{:.2%}".format(win_rate))
```
这段代码实现了石头剪刀布游戏。首先,我们定义了一个函数 `get_gesture(num)`,用于将数字转换成手势。然后,我们定义了一个函数 `judge(player1, player2)`,用于判断两个玩家出的手势之间的胜负关系。接着,我们使用一个 `for` 循环来实现三局两胜的比赛规则。在每一局中,我们通过 `input()` 函数来获取两个玩家出的手势,然后调用 `judge()` 函数来判断胜负,并更新胜利的玩家计数器。最后,我们根据计数器的结果来输出最终的胜利者,并计算和输出最终的胜率。