Claude-skill-registry ai-opponent

Implement or tune AI opponent behavior

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.md
source 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

LevelBehavior
EasyRandom valid moves, avoids crashes
MediumGreedy progress toward finish
HardLooks 2-3 moves ahead, blocks opponents

Implementation Tasks

  1. Basic AI: Avoid crashes, prefer forward progress
  2. Path scoring: Evaluate each of 9 options
  3. Lookahead: Simulate N turns ahead (Hard mode)
  4. Opponent awareness: Block or avoid collisions
  5. 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