来源:AI开发日志公众号专辑「Build Your Own X With AI」
原文链接:https://mp.weixin.qq.com/s?__biz=MzUxMjg3MjE2OA==&mid=2247485728&idx=1&sn=99f77bf19bece14ca65b0e3198d68eeb&chksm=f95c92a7ce2b1bb1d00a390ab0a917d2a37c92c25de954f35cadabb02ea981f740593b1f11e1#rd

,时长

01:03

P2P Board Games 🎮

一个基于点对点(P2P)连接的双人棋类游戏应用,支持五子棋和中国象棋。

功能特性 ✨

P2P 连接

:使用 MultipeerConnectivity 框架实现设备间直连,无需服务器

两款经典游戏

🔵 五子棋:15x15 棋盘,先连成五子者胜

♟️ 中国象棋:完整实现所有棋子移动规则

实时同步

:棋步在设备间实时同步

智能界面

胜利提示显示在顶部

Info 按钮可查看详细游戏状态

清晰的回合指示

应用截图 📸

连接界面

五子棋游戏

中国象棋游戏

象棋对弈

系统要求 📱

iOS 14.0+

Xcode 12.0+

两台 iOS 设备(iPhone/iPad)

设备需在同一局域网或蓝牙范围内

安装步骤 🛠️

克隆仓库:

git clone https://github.com/buld-your-own-x-with-ai/P2PGame.gitcd P2PGame

打开 Xcode 项目:

open P2P.xcodeproj

配置签名:

选择你的开发者账号

修改 Bundle Identifier

在两台设备上分别运行应用

使用说明 📖

建立连接

设备 A

:点击”创建房间”

设备 B

:点击”加入房间”

等待连接建立(状态会显示”已连接”)

五子棋

黑棋先行

点击棋盘交叉点落子

先连成五子(横、竖、斜)者获胜

支持重新开始游戏

中国象棋

红方先行

点击选中棋子,再点击目标位置移动

遵循标准中国象棋规则:

将/帅

:九宫格内移动,不可照面

士/仕

:九宫格内斜线移动

象/相

:田字移动,不可过河

:日字移动,可被蹩马脚

:直线移动

:直线移动,隔子吃子

兵/卒

:过河前只能前进,过河后可左右移动

界面功能

Info 按钮

:点击显示/隐藏详细游戏信息

状态栏

:显示当前玩家和回合信息

胜利提示

:游戏结束时顶部显示获胜方

项目结构 📁

P2P/

├── P2P/

│   ├── P2PApp.swift              # 应用入口

│   ├── ContentView.swift          # 主菜单界面

│   ├── P2PManager.swift           # P2P 连接管理

│   ├── SimpleFiveInRowView.swift  # 五子棋游戏界面

│   ├── SimpleChineseChessView.swift # 中国象棋游戏界面

│   └── Info.plist                 # 应用配置(网络权限)

└── README.md

技术实现 🔧

框架

:SwiftUI + MultipeerConnectivity

通信协议

:使用 Codable 协议序列化游戏数据

状态管理

:ObservableObject + @Published 属性

绘图

:Canvas API 绘制棋盘和棋子

网络权限配置

应用需要本地网络权限,已在 Info.plist 中配置:

NSLocalNetworkUsageDescription

:说明使用本地网络的原因

NSBonjourServices

:声明 Bonjour 服务类型

故障排除 🔍

无法发现设备:

确保两台设备在同一 Wi-Fi 网络

检查设备的网络权限设置

重启应用重试

连接中断:

检查网络稳定性

确保应用保持前台运行

棋子无法移动:

确认是否轮到你的回合

检查移动是否符合规则

贡献指南 🤝

欢迎提交 Issue 和 Pull Request!

许可证 📄

MIT License

Enjoy playing! 🎮

image-1

image-2

image-3

image-4

image-5