Python编写程序1~500代表“石头” ;501~1000代表“剪刀” ;1001 ~ 1500代表“布” 三局两胜,每局两人全部输入以后,print两人的出牌情况和胜负;三局完以后,最终输出获胜者; 输出每次对决的手势和对决结果; 对最终的胜负概率进行统计和输出;
时间: 2024-03-03 13:47:07 浏览: 51
Python 石头剪刀布-判断胜负
5星 · 资源好评率100%
好的,这个问题看起来是关于编写一个猜拳游戏的程序。下面是我的实现,希望能够帮到你。
```python
import random
# 定义手势
rock = range(1, 501)
scissors = range(501, 1001)
paper = range(1001, 1501)
# 定义胜负关系
win_map = {rock: scissors, scissors: paper, paper: rock}
# 玩家出拳
def player_gesture():
while True:
try:
gesture = int(input("请出拳(1~500代表石头,501~1000代表剪刀,1001~1500代表布): "))
if gesture not in range(1, 1501):
print("请输入有效的手势数字!")
continue
return gesture
except ValueError:
print("请输入有效的手势数字!")
# 电脑出拳
def computer_gesture():
return random.choice([rock, scissors, paper])
# 判断胜负
def judge(player_gesture, computer_gesture):
if player_gesture in win_map[computer_gesture]:
return "你输了!"
elif computer_gesture in win_map[player_gesture]:
return "你赢了!"
else:
return "平局!"
# 进行一次对决
def play():
player_gesture_1 = player_gesture()
player_gesture_2 = player_gesture()
computer_gesture_1 = computer_gesture()
computer_gesture_2 = computer_gesture()
result_1 = judge(player_gesture_1, computer_gesture_1)
result_2 = judge(player_gesture_2, computer_gesture_2)
print(f"你出了 {player_gesture_1},电脑出了 {computer_gesture_1},{result_1}")
print(f"你出了 {player_gesture_2},电脑出了 {computer_gesture_2},{result_2}")
return result_1, result_2
# 进行一局比赛
def game():
win_count = [0, 0]
while win_count[0] < 2 and win_count[1] < 2:
result_1, result_2 = play()
if "赢了" in result_1:
win_count[0] += 1
elif "输了" in result_1:
win_count[1] += 1
if "赢了" in result_2:
win_count[0] += 1
elif "输了" in result_2:
win_count[1] += 1
if win_count[0] > win_count[1]:
print("你赢了这局比赛!")
return 1
else:
print("你输了这局比赛!")
return 0
# 进行多局比赛
def main():
win_count = 0
game_count = int(input("请输入要进行的游戏局数:"))
for i in range(game_count):
print(f"第{i+1}局比赛开始!")
win_count += game()
print(f"你赢了 {win_count} 局比赛,胜率为 {win_count / game_count:.2%}。")
if __name__ == '__main__':
main()
```
这个程序的核心思路是先定义好手势和胜负关系,然后编写玩家出拳、电脑出拳和判断胜负的函数。接着,我们编写 play 函数来进行一次对决,然后再编写 game 函数来进行一局比赛,最后编写 main 函数来进行多局比赛,并输出最终的胜负情况和胜率。
阅读全文