Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Reinforcement-learning AI for the dice game BANK: train it in your browser, then play against it. Python version too.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Teach an AI to play the push-your-luck dice game BANK, right in your browser, then play against it. The repo also has the full Python reinforcement-learning version for longer training runs.
▶ Open the live trainer · works on phone and laptop, no install
src/, run from main.py.Browser trainer: one plain HTML/CSS/JavaScript file on GitHub Pages. Python version: NumPy, pandas and Matplotlib/Seaborn.
The repo has two halves that can be used independently: a self-contained browser trainer
(index.html, no install, no backend) and the full Python training stack
under src/ driven by main.py.
BANK is a strategic dice game for 2+ players:
bank_ai_project/
├── src/
│ ├── game_engine.py # Core game simulation
│ ├── agents.py # AI agent implementations
│ ├── training.py # Training loop and utilities
│ ├── evaluation.py # Agent evaluation and analysis
│ └── play_human.py # Interactive human vs AI mode
├── models/ # Saved trained models
├── logs/ # Training logs and metrics
├── main.py # Main entry point
└── requirements.txt # Python dependencies
# Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Train with default parameters
python main.py train
# Train with custom parameters
python main.py train --episodes 100000 --learning-rate 0.01 --epsilon 0.2
# Train against different opponents
python main.py train --opponents random threshold self
# Evaluate against various opponents
python main.py evaluate --model models/best_agent.pkl --games 1000
# Detailed analysis with visualizations
python main.py evaluate --model models/best_agent.pkl --analyze
# Interactive human vs AI mode
python main.py play --model models/best_agent.pkl
Training:
--episodes: Number of training episodes (default: 50000)--learning-rate: Q-learning alpha parameter (default: 0.1)--discount: Discount factor gamma (default: 0.95)--epsilon: Initial exploration rate (default: 0.3)--epsilon-decay: Epsilon decay rate (default: 0.9995)--epsilon-min: Minimum epsilon value (default: 0.01)--opponents: Opponent types to train against (default: random threshold)--num-rounds: Rounds per game (default: 10)--num-players: Number of players (default: 4)--save-interval: Episodes between saves (default: 1000)Evaluation:
--model: Path to trained model file--games: Number of evaluation games (default: 1000)--analyze: Generate detailed analytics and visualizations--verbose: Print game-by-game detailsPlay:
--model: Path to trained model file--num-rounds: Rounds per game (default: 10)--opponents: Number of AI opponents (default: 3)The agent observes:
Track when opponents typically bank and use this information to make better decisions.
Compare learned strategy against mathematically optimal expected value baseline.
# Train for 10,000 episodes and save
python main.py train --episodes 10000 --save-interval 500
# Evaluate the trained agent
python main.py evaluate --model models/agent_episode_10000.pkl --games 1000
# Play against the AI
python main.py play --model models/agent_episode_10000.pkl
# Train with self-play and curriculum learning
python main.py train --episodes 50000 --opponents self --epsilon 0.5 --epsilon-decay 0.9998
# Train for tournament play (more players)
python main.py train --num-players 6 --num-rounds 15 --episodes 30000
A well-trained agent should:
Agent not learning:
Agent too conservative:
Agent too aggressive:
MIT License - feel free to use and modify for your projects!
Contributions welcome! Please open an issue or PR for: