Skip to content

Latest commit

 

History

History
109 lines (82 loc) · 3.32 KB

File metadata and controls

109 lines (82 loc) · 3.32 KB

迷宫寻宝 - 多人在线游戏

一款使用 Java Socket 通信的多人在线迷宫寻宝游戏。

Java MIT

功能特点

  • 🎮 实时多人游戏 - 支持多名玩家同时在线竞技
  • 🗺️ 动态迷宫 - 随机生成的迷宫地图,每次游戏体验不同
  • 💎 宝藏收集 - 收集金色宝藏获得积分,积分 1-10 分随机
  • 🏆 排行榜 - 实时显示所有玩家得分
  • 👥 玩家可见 - 在各自地图上可以看见其他玩家的位置
  • 🎯 冲突竞争 - 多人同时争夺宝藏,先到先得

快速开始

1. 编译游戏

./compile.sh

2. 运行游戏

./run.sh                    # 启动 1 个玩家
./run.sh Player1 Player2    # 启动 2 个玩家
./run.sh P1 P2 P3           # 启动 3 个玩家

游戏会自动启动服务器和客户端。

3. 操作说明

  • W / ↑ - 向上移动
  • A / ← - 向左移动
  • S / ↓ - 向下移动
  • D / → - 向右移动

游戏规则

  • 迷宫由道路 (#)、墙壁 (.) 和宝藏 ($) 组成
  • 墙壁无法通过,道路和宝藏可以通行
  • 当玩家走到宝藏位置时,自动收集宝藏
  • 宝藏被收集后,所有玩家的地图都会更新(宝藏消失)
  • 其他玩家的位置会实时显示在地图上
  • 游戏结束后,得分最高的玩家获胜

系统架构

┌─────────────────┐           ┌─────────────────┐
│   TrackerServer │◄─────────►│   MazeGUI       │
│   (服务器)       │  Socket   │   (玩家客户端)   │
│                 │           │                 │
│ - 生成迷宫       │           │ - 显示界面       │
│ - 记录状态       │           │ - 处理输入       │
│ - 广播玩家位置    │           │ - 收集宝藏       │
└─────────────────┘           └─────────────────┘

项目结构

maze-game/
├── com/maze/
│   ├── common/           # 通用类
│   │   └── MazeMessage.java   # 消息格式定义
│   ├── tracker/          # 服务器端
│   │   └── TrackerServer.java # 追踪服务器
│   ├── player/           # 玩家客户端
│   │   └── PlayerClient.java  # 玩家客户端
│   └── gui/              # 图形界面
│       └── MazeGUI.java       # Swing 界面
├── compile.sh            # 编译脚本
├── run.sh                # 运行脚本
└── README.md

技术实现

  • Java Socket - 客户端与服务器之间的通信
  • Swing - 图形用户界面
  • HashMap - 存储玩家位置和分数
  • ConcurrentHashMap - 线程安全的服务器端数据存储

配置文件

Tracker 服务器参数

参数 说明 默认值
--port 服务器端口 50051
--width 迷宫宽度 20
--height 迷宫高度 20

玩家客户端参数

参数 说明 默认值
--host 服务器地址 localhost
--port 服务器端口 50051
--name 玩家名称 随机

License

MIT License