|
11| 0
|
[项目] 人类VS喵星人猜拳小游戏(mediapipe) |
|
本帖最后由 gada888 于 2025-12-16 17:54 编辑 AI都来陪你玩猜拳啦! 最近我用 Python 做了个小玩意儿——一个人机互动猜拳小游戏! 不需要鼠标键盘,只要打开摄像头,对着它比个手势, 电脑就能认出你出的拳,还会立刻和你 PK 一局。 技术亮点大揭秘:
这个小游戏超级轻量又好玩, 既能学学手势识别的小知识,还能随手来两局放松一下。 要不,你也来和 AI 猜一把拳? 这个是这colab环境调试的,但是不建议初学者用 ![]() 你可以这python环境直接打开。首先安装python最新版。注意添加路径到系统环境。然后打开我给你的hand.py文件。用右键点击 ![]() 打开后,找run ![]() 然后选run module ![]() 耐心等一会 ![]() 游戏界面出来了。 ![]() 这是一段Python 代码,它结合了 计算机视觉 (OpenCV + MediaPipe) 和 图形用户界面 (Tkinter),实现了一个互动式的“石头剪刀布”游戏。 代码逻辑分析
def __init__(self, root): """初始化游戏类,设置窗口、模型和变量""" self.root =root self.root.title("✨ 萌萌哒AI猜拳大作战✨") self.root.geometry("1000x700") self.root.configure(bg="#FFF0F5") # 设置窗口背景色:淡紫红 (LavenderBlush) # --- 初始化 MediaPipe 手部识别模型 --- self.mp_hands =mp.solutions.hands self.hands = self.mp_hands.Hands( static_image_mode=False, # False表示处理视频流,True表示处理静态图片 max_num_hands=1, # 仅检测一只手 min_detection_confidence=0.7, # 检测置信度阈值 min_tracking_confidence=0.5 # 追踪置信度阈值 ) self.mp_drawing= mp.solutions.drawing_utils self.mp_drawing_styles= mp.solutions.drawing_styles ============ # --- 游戏状态变量--- self.is_playing= False # 是否正在进行倒计时对决 self.countdown_start_time= 0 # 倒计时开始的时间戳 self.countdown_duration= 3 # 倒计时时长(秒) self.game_result= "" # 游戏结果文本 self.player_gesture= "未知" # 玩家当前手势 self.computer_gesture= "等待" # 电脑出的手势 self.scores = {"player":0, "computer": 0} # 记分板 # --- 资源映射 (Emoji 代表手势) --- self.gesture_emojis= { "Rock":"✊", "Paper":"✋", "Scissors":"✌️", "Unknown":"❓", "Wait":" [code]import cv2 import mediapipe as mp import tkinter as tk from tkinter import font from PIL import Image, ImageTk import random import time import math class CuteRPSGame: def __init__(self, root): """初始化游戏类,设置窗口、模型和变量""" self.root = root self.root.title("✨ 萌萌哒AI猜拳大作战 ✨") self.root.geometry("1000x700") self.root.configure(bg="#FFF0F5") # 设置窗口背景色:淡紫红 (LavenderBlush) # --- 初始化 MediaPipe 手部识别模型 --- self.mp_hands = mp.solutions.hands self.hands = self.mp_hands.Hands( static_image_mode=False, # False表示处理视频流,True表示处理静态图片 max_num_hands=1, # 仅检测一只手 min_detection_confidence=0.7, # 检测置信度阈值 min_tracking_confidence=0.5 # 追踪置信度阈值 ) self.mp_drawing = mp.solutions.drawing_utils self.mp_drawing_styles = mp.solutions.drawing_styles # --- 初始化摄像头 --- # 0 通常代表系统默认的摄像头 self.cap = cv2.VideoCapture(0) # --- 游戏状态变量 --- self.is_playing = False # 是否正在进行倒计时对决 self.countdown_start_time = 0 # 倒计时开始的时间戳 self.countdown_duration = 3 # 倒计时时长(秒) self.game_result = "" # 游戏结果文本 self.player_gesture = "未知" # 玩家当前手势 self.computer_gesture = "等待" # 电脑出的手势 self.scores = {"player": 0, "computer": 0} # 记分板 # --- 资源映射 (Emoji 代表手势) --- self.gesture_emojis = { "Rock": "✊", "Paper": "✋", "Scissors": "✌️", "Unknown": "❓", "Wait": " |
4.27 KB, 下载次数: 0
沪公网安备31011502402448© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed