logo
0
0
Login
添加道具删除、增加人数显示

黑杰克21点 - 多人对战版

一个基于Web的黑杰克21点卡牌游戏,支持单机AI对战和实时多人联机对战。

🎮 游戏特色

  • 多种游戏模式:单机对战AI、多人联机对战
  • 道具系统:丰富的装备和消耗品,增加策略性
  • 爱心生命系统:可选择1-10颗爱心,增加游戏深度
  • 实时同步:基于Socket.io的实时多人游戏
  • 手绘风格UI:独特的视觉设计和动画效果
  • 快捷键支持:Z键要牌,X键过牌,B键打开背包

🛠️ 技术栈

  • 后端:Node.js + Express + Socket.io
  • 前端:原生HTML5 + CSS3 + JavaScript
  • 样式:手绘风格CSS,自定义字体
  • 实时通信:WebSocket (Socket.io)

📁 项目结构

blackjack/ ├── 📄 package.json # 项目配置和依赖 ├── 📄 server.js # 主服务器文件 ├── 📄 game.html # 单机版游戏页面 ├── 📄 yarn.lock # 依赖锁定文件 ├── 📄 .gitignore # Git忽略文件 ├── 📄 .mignore # 其他忽略文件 ├── 📄 .cnb.yml # 构建配置 ├── 📁 public/ # 前端静态资源目录 │ ├── 📄 index.html # 主游戏页面(支持单机+联机) │ ├── 📄 main.css # 主样式文件 │ ├── 📄 main.js # 单机游戏逻辑 │ ├── 📄 pvp.js # 联机对战逻辑 │ ├── 📄 itemDB.js # 游戏物品数据库 │ ├── 📄 tabManager.js # 标签页管理器 │ ├── 📁 endless # 无尽模式!!! │ └── 📁 room/ # 房间管理页面 │ └── 📄 index.html # 房间列表页面 ├── 📁 .git/ # Git版本控制 └── 📁 .catpaw/ # CatPaw IDE配置 └── 📁 rules/ └── 📄 valetzx-rule.md # 项目规则

🚀 快速开始

环境要求

  • Node.js 14.0+
  • npm 或 yarn

安装依赖

# 使用 npm npm install # 或使用 yarn yarn install

启动服务

# 开发模式 npm run dev # 或 yarn dev # 生产模式 npm start # 或 yarn start

服务器将在 http://localhost:3000 启动

🎯 游戏玩法

基本规则

  • 目标是让手牌点数尽可能接近但不超过21点
  • 超过21点即为"爆牌",直接判负
  • 可以选择"要牌"或"过牌"
  • 双方都选择"过牌"后进行结算

道具系统

装备类道具

  • ⚔️ 刺刀:输掉的人额外-1分(双方生效)
  • 🛡️ 木盾:免受本次扣分惩罚(仅对自己)
  • ⛺ 营地:最大点数上限变为24(双方生效)
  • ❤️ 心之容器:若对手爆牌,可恢复1点血

消耗类道具

  • 🔃 交换:交换双方最后一张牌
  • ↩️ 撤回:丢弃你的最后一张牌
  • 🗑️ 删除:删除自己随机的一个手牌
  • 🪓 手斧:破坏对方一件装备
  • 🌟 观星:偷看牌堆底部的牌
  • 📖 禁书:随机抽指定点数的牌
  • 🔄 重置:重置双方的底牌

合成系统

  • 在合成台中放入3个物品可合成新道具
  • 合成有一定概率获得稀有道具

🏠 房间系统

创建/加入房间

  1. 访问主页选择"联机对战"
  2. 输入4位房间号
  3. 等待对手加入(最多2人)
  4. 游戏自动开始

房间列表

  • 访问 /room 查看所有活跃房间
  • 显示房间状态、玩家数量等信息

🎮 控制方式

鼠标操作

  • 点击按钮进行游戏操作
  • 右键点击道具进行操作
  • 拖拽道具到装备栏或合成台

快捷键

  • Z:要牌
  • X:过牌
  • B:打开/关闭背包
  • ESC:关闭弹窗

🎨 界面特色

  • 手绘风格:独特的UI设计
  • 自定义鼠标:动态鼠标指针效果
  • 动画效果:流畅的过渡和反馈动画
  • 响应式设计:支持移动设备
  • 爱心动画:伤害和恢复的视觉反馈

🔧 开发说明

代码结构

  • server.js:处理Socket.io连接、房间管理、游戏逻辑
  • main.js:单机游戏逻辑、AI对手
  • pvp.js:联机对战逻辑、实时同步
  • itemDB.js:共享的物品数据库
  • main.css:统一的样式系统

API接口

  • /:主游戏页面
  • /room:房间列表页面
  • Socket.io事件:
    • join_room:加入房间
    • action:游戏操作(要牌/过牌)
    • inv_update:背包更新
    • use_item:使用道具
    • craft_req:合成请求

📝 更新日志

v1.0.0

  • 实现基础黑杰克游戏
  • 添加道具系统
  • 支持单机和联机模式
  • 完成房间管理系统
  • 优化UI/UX体验

🤝 贡献

欢迎提交Issue和Pull Request来改进游戏!

📄 许可证

ISC License