implement royale game mode and tighten spaces in duel mode
This commit is contained in:
@@ -31,6 +31,37 @@ default:
|
||||
run:
|
||||
"{{justfile_directory()}}/main.py"
|
||||
|
||||
run-snake port="8000" snake="BestBattleSnake":
|
||||
HOST="127.0.0.1" PORT="{{port}}" SNAKE="{{snake}}" DEBUG="false" DEBUG_SERVER="false" "{{justfile_directory()}}/main.py"
|
||||
|
||||
run-4-snakes base_port="9101" snake="BestBattleSnake":
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
pids=()
|
||||
for i in 0 1 2 3; do
|
||||
port="$(({{base_port}} + i))"
|
||||
echo "Starting snake on :$port"
|
||||
HOST="127.0.0.1" PORT="$port" SNAKE="{{snake}}" DEBUG="false" DEBUG_SERVER="false" "{{justfile_directory()}}/main.py" &
|
||||
pids[$i]="$!"
|
||||
done
|
||||
|
||||
cleanup() {
|
||||
for pid in "${pids[@]}"; do
|
||||
kill "$pid" 2>/dev/null || true
|
||||
done
|
||||
wait || true
|
||||
}
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
wait
|
||||
|
||||
bench-best-snake iterations="1000":
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
PYTHONPATH="{{justfile_directory()}}" python "{{justfile_directory()}}/tests/bench_best_battle_snake.py" --iterations "{{iterations}}"
|
||||
|
||||
build-battlesnake-cli:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
@@ -76,6 +107,57 @@ test-seed: build-battlesnake-cli
|
||||
BATTLESNAKE_CLI="{{justfile_directory()}}/{{BATTLESNAKE_CLI_BIN}}"
|
||||
"$BATTLESNAKE_CLI" play -W 11 -H 11 --name 'Python Starter Project' --url http://localhost:8000 -g solo --browser --seed 1713099635738952360
|
||||
|
||||
test-local-4 mode="standard" map="standard" base_port="9101" snake="BestBattleSnake" seed="1713099635738952360" browser="true": build-battlesnake-cli
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
BATTLESNAKE_CLI="{{justfile_directory()}}/{{BATTLESNAKE_CLI_BIN}}"
|
||||
LOG_DIR="{{justfile_directory()}}/.tools/snake-logs"
|
||||
mkdir -p "$LOG_DIR"
|
||||
|
||||
pids=()
|
||||
for i in 0 1 2 3; do
|
||||
port="$(({{base_port}} + i))"
|
||||
log_file="$LOG_DIR/snake-$((i+1)).log"
|
||||
echo "Starting snake-$((i+1)) on :$port (log: $log_file)"
|
||||
HOST="127.0.0.1" PORT="$port" SNAKE="{{snake}}" DEBUG="false" DEBUG_SERVER="false" "{{justfile_directory()}}/main.py" > >(tee "$log_file") 2>&1 &
|
||||
pids[$i]="$!"
|
||||
done
|
||||
|
||||
cleanup() {
|
||||
for pid in "${pids[@]}"; do
|
||||
kill "$pid" 2>/dev/null || true
|
||||
done
|
||||
wait || true
|
||||
}
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
for i in 0 1 2 3; do
|
||||
port="$(({{base_port}} + i))"
|
||||
for _ in $(seq 1 30); do
|
||||
if curl -fsS "http://127.0.0.1:$port" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 0.2
|
||||
done
|
||||
if ! curl -fsS "http://127.0.0.1:$port" >/dev/null 2>&1; then
|
||||
echo "Snake on :$port did not start correctly. Check logs in $LOG_DIR"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
BROWSER_FLAG=""
|
||||
if [ "{{browser}}" = "true" ]; then
|
||||
BROWSER_FLAG="--browser"
|
||||
fi
|
||||
|
||||
"$BATTLESNAKE_CLI" play -W 11 -H 11 \
|
||||
--name "Snake 1" --url "http://127.0.0.1:{{base_port}}" \
|
||||
--name "Snake 2" --url "http://127.0.0.1:$(({{base_port}} + 1))" \
|
||||
--name "Snake 3" --url "http://127.0.0.1:$(({{base_port}} + 2))" \
|
||||
--name "Snake 4" --url "http://127.0.0.1:$(({{base_port}} + 3))" \
|
||||
-g "{{mode}}" --map "{{map}}" --seed "{{seed}}" $BROWSER_FLAG
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Fataset helpers
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user