install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/ai-opponent" ~/.claude/skills/majiayu000-claude-skill-registry-ai-opponent && rm -rf "$T"
manifest:
skills/data/ai-opponent/SKILL.mdsource content
AI Opponent Implementation
Help implement or tune AI opponent logic per the game design.
AI Strategy (from design doc)
func chooseAcceleration(racer: Player, track: Track, opponents: [Player]) -> GridVector { var bestScore = Int.min var bestAccel = GridVector(0, 0) for acceleration in allAccelerations { let newPos = racer.position + racer.velocity + acceleration let newVel = racer.velocity + acceleration if wouldCrash(from: racer.position, to: newPos, track: track) { score = -1000 } else { score = progressTowardFinish(newPos, track.finishLine) score -= distanceToTrackCenter(newPos, track) * 0.1 score -= speed(newVel) * 0.05 // Prefer control } if score > bestScore { bestScore = score bestAccel = acceleration } } return bestAccel }
Difficulty Levels
| Level | Behavior |
|---|---|
| Easy | Random valid moves, avoids crashes |
| Medium | Greedy progress toward finish |
| Hard | Looks 2-3 moves ahead, blocks opponents |
Implementation Tasks
- Basic AI: Avoid crashes, prefer forward progress
- Path scoring: Evaluate each of 9 options
- Lookahead: Simulate N turns ahead (Hard mode)
- Opponent awareness: Block or avoid collisions
- Track awareness: Prefer center of track
Testing
- AI should never choose crash moves when safe options exist
- Easy AI should lose to competent player
- Hard AI should provide challenge