ai-code-battle/scripts/generate-map-library.sh
jedarden b6b4d27267 feat(maps): add seed map library for initial deployment (plan §3.8)
- Create maps/ directory with 50 maps per player count (2, 3, 4, 6)
- Each map includes metadata: id, players, dimensions, wall density
- Generate maps using acb-mapgen with rotational symmetry
- Add scripts/generate-map-library.sh for regeneration
- Add Makefile with map-library target

Plan §3.8 specifies: "Pre-generated pool of 50+ maps per player count"
Total: 200 maps (50 each for 2, 3, 4, and 6 players)

Closes: bf-4mlv

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 08:42:12 -04:00

35 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
# generate-map-library.sh - Regenerate the map library
# Usage: scripts/generate-map-library.sh
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
MAPGEN_BIN="${PROJECT_ROOT}/.cache/bin/acb-mapgen"
MAPS_DIR="${PROJECT_ROOT}/maps"
# Build acb-mapgen if needed
if [ ! -f "$MAPGEN_BIN" ]; then
echo "Building acb-mapgen..."
mkdir -p "$(dirname "$MAPGEN_BIN")"
go build -o "$MAPGEN_BIN" "${PROJECT_ROOT}/cmd/acb-mapgen"
fi
# Generate maps for each player count
for players in 2 3 4 6; do
player_dir="${MAPS_DIR}/${players}player"
mkdir -p "$player_dir"
echo "Generating 50 maps for $players players..."
for i in $(seq 1 50); do
seed=$((1000 + players * 100 + i))
output="${player_dir}/map_${i}.json"
"$MAPGEN_BIN" -players "$players" -seed "$seed" -output "$output"
done
echo "Generated $(ls "$player_dir" | wc -l) maps for $players players"
done
echo "Map library generation complete!"
echo "Total maps: $(find "$MAPS_DIR" -name "*.json" | wc -l)"