# tortoise-hare **Repository Path**: light-touch-technology/tortoise-hare ## Basic Information - **Project Name**: tortoise-hare - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 40 - **Created**: 2025-11-28 - **Last Updated**: 2025-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 龟兔赛跑 (Tortoise and Hare Race) 这是一个使用Java多线程实现的经典寓言故事模拟程序,支持多个参赛者和增强的视觉效果。 ## 技术栈 - JDK 17 - Maven ## 🆕 增强版特性 - ✅ **Runnable接口**:所有线程使用Runnable方式实现 - ✅ **多参赛者支持**:支持多个乌龟和兔子同时比赛 - ✅ **随机睡觉机制**:兔子在比赛中有随机的睡觉行为 - ✅ **美化输出效果**:使用Unicode字符和emoji美化显示 - ✅ **清晰赛况显示**:命令行输出整齐,不混乱 - ✅ **线程安全**:使用原子类确保并发安全 ## 运行方式 ### 🚀 方法1:使用增强版运行脚本(推荐) ```bash run_enhanced.bat ``` 提供多个版本选择: - 增强版(多参赛者,兔子随机睡觉,带清屏效果) - 简化版(多参赛者,兔子随机睡觉,无清屏效果) - 原始版本 ### 方法2:使用Maven ```bash mvn clean compile exec:java -Dexec.mainClass="com.example.tortoisehare.EnhancedTortoiseHareRaceSimple" ``` ### 方法3:手动编译运行增强版 ```bash # 编译增强版 javac -d target/classes src/main/java/com/example/tortoisehare/EnhancedTortoiseHareRaceSimple.java # 运行增强版 java -cp target/classes com.example.tortoisehare.EnhancedTortoiseHareRaceSimple ``` ### 方法4:运行原始版本 ```bash # 编译 javac -d target/classes src/main/java/com/example/tortoisehare/TortoiseHareRace.java # 运行 java -cp target/classes com.example.tortoisehare.TortoiseHareRace ``` ## 程序输出格式 ### 增强版输出示例: ``` 🏁 🐢🐇 龟兔赛跑大赛开始!🐇🐢 🏁 🎯 终点距离: 100 步 📊 参赛者: 2只乌龟 🐢🐢 vs 2只兔子 🐇🐇 ====================================================================== 🐢🐇 龟兔赛跑实时赛况 - 第 15 次更新 🐇🐢 ====================================================================== 乌龟1🐢 45步 [████████████████▶░░░░░] 🏃(比赛中) 乌龟2🐢 42步 [███████████████▶░░░░░░] 🏃(比赛中) 兔子1🐇 78步 [██████████████████████▶] 🏃(比赛中) 兔子2🐇 65步 [████████████████████▶░░] 😴(睡觉中) 🎊🎊🎊 比赛结束!获胜者: 兔子1🐇 🎊🎊🎊 📊 最终排名: ---------------------------------------- 🥇 1. 兔子1🐇 - 位置: 100/100 🥈 2. 兔子2🐇 - 位置: 99/100 🥉 3. 乌龟1🐢 - 位置: 51/100 4. 乌龟2🐢 - 位置: 49/100 ``` ### 原始版输出格式: ``` T: 10 [-----> ] H: 30 [-----------> ] ``` ## 代码结构 ### 增强版文件: - `EnhancedTortoiseHareRace.java`: 增强版主程序(带清屏效果) - `EnhancedTortoiseHareRaceSimple.java`: 增强版简化程序(无清屏效果) ### 原始版文件: - `TortoiseHareRace.java`: 原始版主程序 - `TortoiseHareRaceSimple.java`: 原始版简化程序 ## 设计说明 ### 增强版设计: 1. **Racer抽象类**:定义参赛者基本行为 2. **TortoiseRacer类**:乌龟参赛者实现 3. **HareRacer类**:兔子参赛者实现(包含随机睡觉逻辑) 4. **DisplayRunnable类**:显示线程实现 5. **线程安全**:使用AtomicBoolean和AtomicInteger确保并发安全 ### 原始版设计: 程序使用三个线程: 1. 乌龟线程:以稳定较慢速度前进 2. 兔子线程:以较快速度前进,但偶尔会休息 3. 输出线程:定期显示当前比赛状态 ## 特色功能 ### 🎲 随机性设计 - 乌龟速度:200-300ms随机间隔 - 兔子跳跃:1-3步随机距离 - 兔子睡觉:500-1500ms随机时间 - 睡觉触发:30%概率在3-7步后触发 ### 🎨 视觉效果 - 使用Unicode字符:█、▶、░创建美观进度条 - Emoji图标:🐢🐇🏁🏆🥇🥈🥉增强视觉效果 - 清晰的状态标识:🏃(比赛中)、😴(睡觉中) ### 🏆 排名系统 - 自动排序显示最终排名 - 奖牌图标显示前三名 - 详细的最终位置信息