Commit Graph

69 Commits

Author SHA1 Message Date
daniel156161 6643eb35af fix: resolve duel roots and recover legacy snake data
- Resolve selected moves and enemy replies on the same simulated turn.
- Add an Apex candidate hook and bump the Prism snake to version 1.1.0.
- Rebuild benchmark states from normalized turn data when snapshots are empty.
- Synthesize missing game snake identities during legacy database migration.
- Add regression coverage for duel timing and partial legacy schemas.
2026-08-01 19:11:32 +02:00
daniel156161 c646392b84 fix: preserve gameplay data and correct duel evaluation
- Preserve snake customizations across database migrations and merges.
- Lazily load optional storage backends for SQLite maintenance scripts.
- Match Apex territory and nearest-food tie-breaking semantics.
- Resolve duel occupancy after simultaneous movement and food growth.
- Recompute simulated head-to-head danger after body growth.
- Add regression coverage and declare the aiofiles dependency.
2026-08-01 18:16:04 +02:00
daniel156161 4f022d3d01 feat(snake): optimize duels and persist customizations
Build and Push Docker Container / build-and-push (push) Successful in 7m29s
- Add deadline-aware iterative duel search with bitboards and tuple bodies.

- Reuse transposition bounds and move-order hints across search depths.

- Persist snake colors, heads, and tails in SQLite and PostgreSQL.

- Restore customization metadata when hydrating dashboard replays.

- Cover duel deadlines, cache reuse, schema storage, and replay output.
2026-08-01 17:19:35 +02:00
daniel156161 c704fbc742 feat: add Prism snake and gameplay database lifecycle
Build and Push Docker Container / build-and-push (push) Successful in 8m3s
- Add bitboard-accelerated Prism and versioned Supreme snake implementations.
- Add database-backed move benchmarks and focused strategy tests.
- Normalize gameplay storage while preserving replay compatibility.
- Add deterministic game quality scoring and replay retention tiers.
- Add backup-first SQLite cleanup, verification, and replacement tooling.
- Add safe compact-plus-delta database merging with conflict detection.
- Extend SQLite and PostgreSQL schemas for replay and quality metadata.
- Add PostgreSQL development service and pytest import configuration.
- Update gameplay documentation and the quart_common submodule revision.
2026-08-01 16:21:02 +02:00
daniel156161 f6e19e18e6 speed up loading and saving to redis that the move request are getting a answer when switching workers, strip data that neats to get recomuted every turn
Build and Push Docker Container / build-and-push (push) Successful in 4m49s
2026-04-07 12:13:11 +02:00
daniel156161 f0d62a6049 add new Snake with the Name ApexBattleSnake
Build and Push Docker Container / build-and-push (push) Successful in 4m41s
2026-04-07 10:46:45 +02:00
daniel156161 3da10189b7 move snake config read functions into battlesnake template and use TemplateSnake as default Version of Snakes
Build and Push Docker Container / build-and-push (push) Failing after 13m9s
2026-04-06 19:24:45 +02:00
daniel156161 43c7720480 fix circular import errors so the server and start again 2026-04-06 04:30:02 +02:00
daniel156161 30eb17bb83 reuse the code from quart_common.web.env to import env_bool and env_int into all classes that are useing this functions 2026-04-06 03:33:22 +02:00
daniel156161 b9b02cf273 fix UltimateBattleSnake version in snake registry 2026-04-05 16:48:45 +02:00
daniel156161 efe15dd8e7 update UltimateBattleSnake to 4.5.0 2026-04-05 15:19:53 +02:00
daniel156161 3cb3517892 update snakes with new code
Build and Push Docker Container / build-and-push (push) Successful in 1m21s
2026-04-05 12:20:10 +02:00
daniel156161 00d55b5419 update UltimateBattleSnake to 4.2.0
Build and Push Docker Container / build-and-push (push) Successful in 1m12s
2026-04-05 03:05:46 +02:00
daniel156161 643f4b468e add snake from claude code
Build and Push Docker Container / build-and-push (push) Successful in 1m36s
2026-04-05 02:52:44 +02:00
daniel156161 066a93f755 move RLBootstrapDataset into a own class with its own test file 2026-04-05 00:54:15 +02:00
daniel156161 79f23b8be6 Update Best Battle Snake Logic
Build and Push Docker Container / build-and-push (push) Successful in 1m21s
2026-04-04 20:50:01 +02:00
daniel156161 bbdc8b288a create better future planning into BestBattleSnake 2026-04-04 12:00:02 +02:00
daniel156161 316870ef7a add enemy cut off trap check 2026-04-04 09:55:58 +02:00
daniel156161 9e826afa5f add Training for AI and AI Model and allow to collect rl data from BestBattleSnake
Build and Push Docker Container / build-and-push (push) Successful in 1m36s
2026-04-03 23:19:09 +02:00
daniel156161 8f938ce3fe Update BestBattleSnake Version to 2.6.0
Build and Push Docker Container / build-and-push (push) Failing after 23s
2026-04-03 21:40:31 +02:00
daniel156161 dfcdbae85b add better enemy constrictor projection 2026-04-03 21:39:08 +02:00
daniel156161 fb579e5fbc add customisable timeout buffer with env variable 2026-04-03 21:23:18 +02:00
daniel156161 8f6bc3cfdd add timeout budget when exeaded use quick save move before timeout 2026-04-03 21:17:08 +02:00
daniel156161 f124ce6f96 head hunt only when my snake is bigger and into dual mode 2026-04-03 20:57:33 +02:00
daniel156161 6ab0161b49 add types to function args 2026-04-03 20:44:03 +02:00
daniel156161 d7bd89eae9 add python doc strings 2026-04-03 20:21:12 +02:00
daniel156161 eace1872d7 move snake builder into __init__ of snakes file and use it into server class 2026-04-03 20:11:46 +02:00
daniel156161 0a3db6ba57 add versions to snakes and read it in server class 2026-04-03 19:57:55 +02:00
daniel156161 013ac98821 implement royale game mode and tighten spaces in duel mode 2026-04-03 19:26:56 +02:00
daniel156161 a885b624f9 add new BestBattleSnake 2026-04-03 10:29:48 +02:00
daniel156161 e068fb8614 add function when not eat food to remove snake tail 2024-05-08 23:45:07 +02:00
daniel156161 ef4dca447f fix error where my snake got not found in avoid_get_eaten_by_other_snakes 2024-04-18 23:56:49 +02:00
daniel156161 f98430462b use new game board functions 2024-04-18 22:21:57 +02:00
daniel156161 87690177a5 make find_safe_positions function be useable for more posisions 2024-04-18 19:52:19 +02:00
daniel156161 5796ce0a6e add function to calculate where the new snake body is with or with no tail based on the move that is taken 2024-04-18 17:14:49 +02:00
daniel156161 5ce12d70c1 remove pos where other snake head is to not go into a dead end or use the pos where the snake head could be to find new food 2024-04-17 15:17:09 +02:00
daniel156161 950351b407 add code to not get eaten when head is by food 2024-04-17 15:15:25 +02:00
daniel156161 d4b54d48b9 when both posisions are not save keep them in safe posisions - remove other useless MasterSnake 2024-04-17 13:35:42 +02:00
daniel156161 034b0e361a save direction to kill the snake use the correct kill direction in overwrite_eat_the_other_snake can end in a draw when both heads are by the food 2024-04-17 12:22:54 +02:00
daniel156161 a57536b7cb remove functions that are in the TemplateSnake now and at to do if eating the food would kill the snake 2024-04-17 11:54:24 +02:00
daniel156161 a606ae6f94 add template code for a smart random snake 2024-04-17 11:53:21 +02:00
daniel156161 b364c6454e optimise game type constrictor to fill up most of the game board 2024-04-17 11:15:06 +02:00
daniel156161 b9a0bca4c6 remove not used function is_food_nearby 2024-04-17 10:54:18 +02:00
daniel156161 ea36d60b4d change code to not have a big choose_move function and add todos to try fix some problems in game 2024-04-17 09:33:35 +02:00
daniel156161 0fe4e6ac83 fix a error where self.safe_positions[0] can't be accest 2024-04-17 08:19:32 +02:00
daniel156161 93b2c8ba99 cleanup the code a bit more to use the self params 2024-04-16 21:47:40 +02:00
daniel156161 f6db5cb96a fix error in eat_the_snake_overwrite when more moves are posible 2024-04-16 00:52:18 +02:00
daniel156161 0eecbb774b store game turn in history file and add safe_positions output to ensure_escape_route calculation 2024-04-15 23:56:03 +02:00
daniel156161 9e0a919233 fix not used code for flood_fill_count 2024-04-15 23:44:47 +02:00
daniel156161 6d9df32076 add more debug outputs and use all the self.args when neaded in a specific function, make own variable to only store other snakes 2024-04-15 23:16:15 +02:00