编写python石头剪刀布程序,运行10000次对决情况,统计出牌的组合,以及胜负的概率; 输出每次对决的手势和对决结果; 对最终的胜负概率进行统计和输出;
时间: 2024-03-02 12:53:47 浏览: 109
好的,这是一个简单的石头剪刀布程序的代码实现,可以满足您的需求。
```python
import random
# 定义手势
GESTURES = {0: '石头', 1: '剪刀', 2: '布'}
# 定义胜利规则
RULES = {(0, 1): 1, (1, 2): 1, (2, 0): 1, (1, 0): -1, (2, 1): -1, (0, 2): -1}
def play_game():
player1 = random.randint(0, 2) # 玩家1出拳
player2 = random.randint(0, 2) # 玩家2出拳
result = RULES.get((player1, player2), 0) # 获取游戏结果
return player1, player2, result
def play_multiple_games(num_games):
game_results = []
gesture_combinations = {gesture: {gesture2: 0 for gesture2 in GESTURES.values()} for gesture in GESTURES.values()}
for i in range(num_games):
player1_gesture, player2_gesture, result = play_game()
game_results.append(result) # 记录游戏结果
gesture_combinations[GESTURES[player1_gesture]][GESTURES[player2_gesture]] += 1 # 记录每个手势的出现次数
print(f"玩家1出拳:{GESTURES[player1_gesture]},玩家2出拳:{GESTURES[player2_gesture]},结果:{result}")
return game_results, gesture_combinations
if __name__ == '__main__':
num_games = 10000
game_results, gesture_combinations = play_multiple_games(num_games)
win_rate = round(game_results.count(1) / num_games, 2)
print(f"\n出现次数:{gesture_combinations}")
print(f"胜率:{win_rate}")
```
这个程序会运行10000次石头剪刀布游戏,记录每次游戏的结果和出现的手势,最终输出每个手势出现的次数和胜率。
阅读全文