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: