Commit Graph

81 Commits

Author SHA1 Message Date
Marco 212a54612c Implement moves by tapping the squares
This adds an option to dragging-and-dropping which is slightly hard on
smaller screens.

Fix promotions when tapping and fix handling of subsequently tapping two pieces of your color

Cancel tap if a drag is started (tapped square will not stay red in case a drag is started)

Change url strategy back to the hashtag thing

Change version

Fix bug that would not allow a piece move if you tried to take an opponents piece.

Fix the coloring of the last move after an invalid move was played.

Upgrading deps
2024-01-17 20:58:13 +01:00
Marco cb8e98ef81 Fix building of web and linux app at the same time 2023-12-27 15:57:01 +01:00
Marco cdc0144e39 Fix routing again 2023-12-27 15:46:15 +01:00
Marco 289ec6db26 Fix turnColor handling 2023-12-25 18:08:21 +01:00
Marco ba947ae5e4 Fix routing and move handling 2023-12-25 17:50:58 +01:00
Marco 17ac437f5b Pop promotion dialog with context.pop() 2023-12-25 02:07:03 +01:00
Marco 7a51e71767 Make passphrase entry a dialog instead of a page.
Additionally, we set some groundwork for storing the game data (lobby
id, player id, passphrase) in permanent storage in order to reconnect
with it later.
2023-12-23 16:44:23 +01:00
Marco 8f4cd2266f Handle board status message
This is another step to allow reconnecting after connection loss or
browser closing.

When the game is left with the X button on the bottom right, we will
close the websocket connection, to let the server know, that we are
gone.

The server still has issues that prevent this from working flawlessly.

Remove unused import
2023-12-09 20:48:36 +01:00
Marco 130a2dae79 Make ChessSquare a stateful widget. 2023-09-04 21:52:40 +02:00
Marco 01dcc74cfc Refactor chess square and prepare display of square in check. 2023-09-04 21:39:51 +02:00
Marco f45ec47285 Fix green flicker of squares on invalid move 2023-08-25 12:28:58 +02:00
Marco b9d574f2ab Fix 1-pixel lines between squares
In window widths or heigths that are not divisible by 8, the chess board
would contain lines between the squares (since the contraints of the
chess board rows would contain non-integer constraints).

With this commit, we calculate margins manually, in order to constrict
the chess board to widths and heights that are divisible by 8.
2023-08-22 04:24:30 +02:00
Marco 7c5439a635 Display last played move.
We now color the squares of the last move. This makes the state of the
board clearer and shows whose turn it is.
2023-08-19 03:45:03 +02:00
Marco 80fe378241 Remove unused function. 2023-08-15 00:47:08 +02:00
Marco 43d8d77abc Fix the current position in ChessPositionManager, now that we rely on position instead of detecting en passant ourselves. 2023-08-15 00:39:10 +02:00
Marco c213d9b1f3 Use position to build board
Now the client considers the position sent by the server to build the
position on the board.
2023-08-14 17:04:25 +02:00
Marco f2a4893b6f Do not convert short piece name to lower case. 2023-08-12 11:43:51 +02:00
Marco 105b6e7565 Fix two bugs
1. Fix the bug that made black move first in a new game when the old
   game was ended during blacks turn.
2. Fix bug that offered the promotion dialog to the player when a pawn
   was moved on the last rank from any square

Also, a late initializer error was fixed because the wrong move variable
was used when a pawn reached the last rank.
2023-07-11 22:29:55 +02:00
Marco da986c8d9b Make passphrase selectable. 2023-07-06 15:01:27 +02:00
Marco 4b8624f82b Fix bug that did not change the move color when a promotion was received. 2023-07-06 00:12:03 +02:00
Marco 95fba78d0c Change behavior of promotion dialog. 2023-07-06 00:06:03 +02:00
Marco fea24c8274 Make castling work. 2023-07-05 21:16:01 +02:00
Marco c3d747a60e Fix position. 2023-07-03 20:05:14 +02:00
Marco 9ce188ae32 dart fix 2023-07-03 19:55:44 +02:00
Marco a5befed62c Make promotions work. 2023-07-03 19:41:12 +02:00
Marco 0f27fc6b4e Remove unused import. 2023-07-01 09:31:48 +02:00
Marco 3bec7a84d8 Lay foundation for promotions. 2023-07-01 09:29:43 +02:00
Marco 52540ec96c A lot of changes again?!? 2023-06-30 01:49:18 +02:00
Marco 43fca47dae Changes you see? To many to name them. And a splash screen for flutter web of course. 2023-06-28 12:37:59 +02:00
Marco e27f1c7c22 Change the point in time when the board gets cleared. 2023-06-09 13:19:03 +02:00
Marco d55c7bbe1a Fix resetting the board in case a new game is started. 2023-06-08 20:23:00 +02:00
Marco 0627a627d8 Send new websocket message type for sending a move. 2023-06-08 17:14:50 +02:00
Marco 6e5d84364d Various changes. 2023-06-08 17:10:48 +02:00
Marco 605743c0d2 Introduce api types and some changes. 2023-06-02 23:28:40 +02:00
Marco b0d6f4002c Change connection handling (Use playerID from registering to connect via websocket. 2023-05-28 17:44:22 +02:00
Marco 299b77d249 Resolve problems in files. 2023-05-28 14:56:01 +02:00
Marco 9492644ac9 Introduce changes in API (register game first, then ws connection). 2023-05-28 14:54:46 +02:00
Marco cf12bc08c4 Add helper functions and fix the bug that replayed the move sent from the server. 2023-01-30 23:40:46 +01:00
Marco 8572aa73e6 Add ChessPosition that will handle position. 2023-01-30 22:39:13 +01:00
Marco 122731ac50 Remove html depencencies and alway connecto to remote server. 2023-01-29 21:09:18 +01:00
Marco c7810d4e7e Remove /# from URL when using the web app 2022-12-28 20:27:38 +01:00
Marco 330aeed476 Make ChessAppRouter a class. 2022-12-25 20:30:42 +01:00
Marco d1ba004ebb Restructure app. Change design. 2022-12-25 20:18:50 +01:00
Marco 4626084abd Do some more restructuring. ChessApp is now the app. ChessGame is the widget that contains the game and board. 2022-12-25 19:57:47 +01:00
Marco 80a24bafd6 Add GoRouter and do a lot of renaming. 2022-12-25 16:16:23 +01:00
Marco bff46e6f3d Fix that only allows the correct pieces to be allowed to move. 2022-12-22 00:36:30 +01:00
Marco 0356268b32 Only show turn indicator and server output when in debug mode. 2022-12-22 00:00:35 +01:00
Marco 0b7c3897e5 1. Remove leading counter from move message,
2. Only allow color to move when it's their turn.
2022-12-21 23:14:53 +01:00
Marco aaaf40bb2b Remove a redundant call to ChessBloc that caused the position to be renewed twice.
Fix a index error (Column started with 0 while rows started with 1).
2022-12-18 23:43:06 +01:00
Marco c9a93dd167 Connect to localhost if in debug mode. 2022-12-18 23:06:55 +01:00