# 入机猜拳 import random class Player: def __init__(self): self.dict_gesture = {0: '剪刀', 1: '石头', 2: '布'} def gesture(self, num): return self.dict_gesture[num] class AIPlayer(Player): play_data = [] # 存储玩家猜拳手势(类属性) def ai_gesture(self): while True: computer = random.randint(0, 2) if len(self.play_data) >= 4: # 获取玩家出拳的最大概率 max_prob = max(self.play_data, key=self.play_data.count) if max_prob == '剪刀': return '石头' elif max_prob == '石头': return '布' else: return '剪刀' else: return self.dict_gesture[computer] class Game(Player): def game_judge(self): player_num = int(input("请输入(0剪刀、1石头、2布:)")) # 玩家输入的手势 player = self.gesture(player_num) AIPlayer().play_data.append(player) ai_player = AIPlayer().ai_gesture() if (player == '剪刀' and ai_player == '布') or \ (player == '石头' and ai_player == '剪刀') or \ (player == '布' and ai_player == '石头'): print(f"电脑出的手势是{ai_player},恭喜,你赢了!") elif (player == '剪刀' and ai_player == '剪刀') or \ (player == '石头' and ai_player == '石头') or \ (player == '布' and ai_player == '布'): print(f"电脑出的手势是{ai_player},打成平局了!") else: print(f"电脑出的手势是{ai_player},你输了,再接再厉!") def main(self): self.game_judge() while True: option = input("是否继续:y/n\n") if option == 'y': self.game_judge() else: break # 程序入口 if __name__ == "__main__": game = Game() game.main()