52 Commits

Author SHA1 Message Date
f1962503b8 Include a serde feature in the shared crate 2024-03-23 13:36:28 +01:00
3d93bf0fda Deny moves without any equal sign 2023-03-28 10:43:29 +02:00
6215fef385 Add missing early return 2023-03-28 10:29:11 +02:00
1311897416 Tweak precedence handling in the parser 2023-03-25 18:15:54 +01:00
55848c5b36 Fix tests 2023-03-25 13:54:25 +01:00
12f39ef275 Complete the hand of a player who has joined after the start of the game 2023-03-25 12:58:58 +01:00
0288254f75 Test if an expression is placeable in an existing board 2023-03-25 12:58:08 +01:00
ac7c9b30de Detect unique chains 2023-03-23 17:18:59 +01:00
915949fb98 Sync the player sooner when the move is validated 2023-03-23 11:33:10 +01:00
63fb8de947 Add a limit to the leaderboard size 2023-03-22 21:16:45 +01:00
274661171b Drastically reduce the Docker image size to 1.56MB 2023-03-22 16:56:17 +01:00
8199cffdf1 Keep signs when evaluating the expr tree 2023-03-21 20:20:56 +01:00
83a48440b4 Change default server bridge with an env variable 2023-03-21 10:27:58 +01:00
5a8d4676f7 Handle TileTake messages 2023-03-21 10:22:03 +01:00
5f92bdde4e End a game when everyone has skipped their turn 2023-03-20 19:03:26 +01:00
429fed7893 Add a leaderboard with Redis 2023-03-17 11:55:45 +01:00
abf902c80e Create a Docker image based on Alpine for board-server 2023-03-17 10:54:17 +01:00
1fc4e10c39 Sync scores between players 2023-03-13 16:49:44 +01:00
2fb71a3969 Fix Rust image in test pipeline 2023-03-10 10:55:30 +01:00
25bd6cc69d Use Cargo's sparse protocol 2023-03-10 10:44:53 +01:00
126d5026cd Sync tile placements for all players 2023-03-10 10:33:36 +01:00
4fbe817f71 Reduce default board size 2023-03-10 10:32:32 +01:00
9ab405e020 Update to Rust 1.68 2023-03-10 10:32:17 +01:00
60e4713f7f Send the complete board when joining a room 2023-03-07 11:49:20 +01:00
091aa81e70 Fix Clippy lints 2023-03-07 10:33:52 +01:00
b49d7b7995 Evaluate in place expressions
This solution gives similar performance results than the tree based one,
mostly because of the intermediate vectors.
2023-03-05 15:14:42 +01:00
ceefe1776d Actually read the remote url input 2023-03-03 20:34:09 +01:00
d6d5207040 Include a sample service file 2023-03-02 21:36:18 +01:00
2e862bdf58 Try several operator counts 2023-03-02 21:35:32 +01:00
0051069428 Fix ignored result 2023-02-28 10:46:04 +01:00
1472e9f6d8 Draft generation of valid AI movements 2023-02-26 14:06:28 +01:00
1c37b72b55 Add missing dependencies 2023-02-25 14:27:00 +01:00
095bc8509c Integrate a remote playtesting front-end 2023-02-25 14:24:41 +01:00
3accb03ae5 Fix Clippy lint 2023-02-25 14:14:04 +01:00
3d42bce413 Delay player hand creation at the beginning of the game 2023-02-24 18:33:15 +01:00
ec6542aa52 Allow joining an existing room and validating tile placement 2023-02-23 21:00:00 +01:00
f1564ca6e3 Allow RngDeck to be passed between threads 2023-02-23 20:30:13 +01:00
a757241b5d Inline variables in format! strings 2023-02-21 11:44:09 +01:00
7357062f92 Add new messages 2023-02-21 11:42:14 +01:00
7c8330465f Allow clients to create new rooms to play 2023-02-19 18:03:01 +01:00
831a5003c3 Add initial server implementation
This adventure is going to be epic, be ready.
2023-02-16 20:02:46 +01:00
8943d1d898 Randomize the deck of tiles 2023-02-12 21:01:38 +01:00
ea6572dca2 Add a way to detect chains 2023-02-10 21:08:52 +01:00
0b2fa63941 Add additional helper functions to test if the tiles are aligned or not 2023-02-10 21:08:52 +01:00
7fd8d54b34 Separate the width and height of the grid 2023-02-10 21:08:26 +01:00
2920e6614f Make the is_contiguous check more robust and readable 2023-02-10 20:35:53 +01:00
e67a28d110 Refactor with a Position2d struct 2023-02-10 20:32:56 +01:00
2b4ef27f92 Share Cargo cache between CI steps 2023-02-08 19:16:20 +01:00
92e98f5479 Add Drone CI 2023-02-08 18:58:43 +01:00
016ca31815 Use the constant for the board size 2023-02-01 11:52:37 +01:00