Commit Graph

121 Commits

Author SHA1 Message Date
Savanni D'Gerinel 744511a552 Set up test code that loads the games database 2023-07-25 22:49:43 -04:00
Savanni D'Gerinel c8d21d0e25 Make it possible to share a gametree across the API 2023-07-25 21:08:22 -04:00
Savanni D'Gerinel 1b9a8eee67 Rename new_game to home 2023-07-24 19:43:22 -04:00
Savanni D'Gerinel 4b30bf288a Make GameResult parsing slightly more flexible 2023-07-21 10:47:30 -04:00
Savanni D'Gerinel 90b0f830e0 Start building an interface to the database 2023-07-20 00:55:24 -04:00
Savanni D'Gerinel ba814fd899 Add example games for tests 2023-07-20 00:16:18 -04:00
savanni d9531c69ad Create a configuration system for the Kifu (#46)
This is a nice, typesafe configuration system.

Co-authored-by: Savanni D'Gerinel <savanni@luminescent-dreams.com>
Reviewed-on: savanni/tools#46
2023-07-20 03:57:19 +00:00
Savanni D'Gerinel b15658dd0c Clean up warnings 2023-06-16 09:03:17 -04:00
Savanni D'Gerinel 9266387833 Communicate name and rank from the UI to the core 2023-06-15 22:20:59 -04:00
Savanni D'Gerinel ebb7062041 Go back to creating a new game 2023-06-15 00:09:50 -04:00
Savanni D'Gerinel d0db274110 Create a launch screen that shows player name and rank 2023-06-14 23:49:03 -04:00
Savanni D'Gerinel 32ed1a2464 Add a rule for starting the screenplay 2023-06-14 23:48:09 -04:00
Savanni D'Gerinel 6456389eef Apply performance tracing to various functions 2023-06-14 23:47:12 -04:00
Savanni D'Gerinel ef045117be Start on the NewGame page 2023-05-26 00:16:40 -04:00
Savanni D'Gerinel 6f6579b7a7 Try caching the background 2023-05-25 13:09:39 +00:00
Savanni D'Gerinel a779220173 Remove dead code 2023-05-16 10:21:57 -04:00
Savanni D'Gerinel 343969a898 Render stones on the board 2023-05-16 10:07:52 -04:00
Savanni D'Gerinel 6c87d23537 Start making the UI state really send messages to and recieve response from the core 2023-05-15 23:59:41 -04:00
Savanni D'Gerinel 140ad0f22c Render ghost stones 2023-05-15 22:20:40 -04:00
Savanni D'Gerinel 6c4226ec66 Render the Go board with star points 2023-05-13 22:16:24 -04:00
Savanni D'Gerinel b86a618b34 Adjust the Makefile dependency calculations 2023-05-13 14:22:26 -04:00
Savanni D'Gerinel 297e7f70c4 Rearrange the entire kifu directory tree 2023-05-13 14:02:24 -04:00
Savanni D'Gerinel 68cec8bc12 Add an updated icon 2023-05-13 12:47:09 -04:00
Savanni D'Gerinel ef396f3bfb Code review cleanups 2023-05-13 12:29:57 -04:00
Savanni D'Gerinel 1e65219401 Start setting up the basic board 2023-05-13 12:09:59 -04:00
Savanni D'Gerinel 0b0bd1e14b Create the GoBoard custom element
There's nothing in it, but it's still present
2023-05-11 10:32:48 -04:00
Savanni D'Gerinel b321c03297 Set up type-safe call and response 2023-05-11 09:39:31 -04:00
Savanni D'Gerinel c87ab6da7f Switch to a new main entry 2023-05-10 09:42:02 -04:00
Savanni D'Gerinel ab97f266bb Set up a Javascript workspace 2023-05-10 09:41:39 -04:00
Savanni D'Gerinel fdbde131e8 Try linking together the wasm ffi and the pwa 2023-05-09 09:58:38 -04:00
Savanni D'Gerinel 9a6da002e2 Set up a working build environment 2023-05-07 13:13:20 -04:00
Savanni D'Gerinel 60b0f1b736 This is a working version of kifu-pwa 2023-05-07 12:31:48 -04:00
Savanni D'Gerinel 0dd7344a09 Typeshare the data types to typescript 2023-05-07 12:30:33 -04:00
Savanni D'Gerinel 904a866de0 Experiments with creating a wasm binding for kifu-core 2023-05-07 11:05:43 -04:00
Savanni D'Gerinel 17050ed4d6 Demo wasm build. First ever PWA app. 2023-05-07 11:02:57 -04:00
Savanni D'Gerinel 97c52de2cf Set up a demo wasm build 2023-05-07 11:02:57 -04:00
Savanni D'Gerinel fee2e598d3 Remove a debug print 2023-05-03 22:34:10 -04:00
Savanni D'Gerinel 889c3cec94 Don't share liberties with the UI
I'm currently not able to calculate them, so I've set them back to None
2023-05-03 22:28:37 -04:00
Savanni D'Gerinel 06157604b9 Implemented self_capture and ko rules 2023-05-03 22:22:22 -04:00
Savanni D'Gerinel d68e088500 Implement the self-capture rule 2023-05-03 20:49:20 -04:00
Savanni D'Gerinel 27d87fcd02 Eliminate the explicit grid 2023-05-03 20:42:03 -04:00
Savanni D'Gerinel edcf20cc25 Set up makefiles for the Kifu app 2023-05-03 20:29:49 -04:00
Savanni D'Gerinel 78af31f6f9 Overhaul the board representation
Groups become more first-class objects, where the grid becomes useful for quick lookups of values.
2023-04-28 01:21:23 -04:00
Savanni D'Gerinel 52e27318fe Add code to try to handle removing captured stones from the board 2023-04-27 21:53:54 -04:00
Savanni D'Gerinel e746190a4a Add coordinates to the board printout 2023-04-27 19:13:06 -04:00
Savanni D'Gerinel 300704297f Add a renderable field for liberties 2023-04-27 18:56:59 -04:00
Savanni D'Gerinel 3cd39af060 Clean up the liberty sharing test 2023-04-14 09:06:41 -04:00
Savanni D'Gerinel 037484e7b4 Count liberties 2023-04-13 22:38:35 -04:00
Savanni D'Gerinel 6d51ae8479 Add tests 2023-04-13 19:43:40 -04:00
Savanni D'Gerinel 4590bc6688 Adjust margins and the size of the stones 2023-04-06 23:26:46 -04:00
Savanni D'Gerinel 26db170c79 Do some cleanups and allow the cursor to move off the board 2023-04-06 22:29:15 -04:00
Savanni D'Gerinel 59a8f252da Optimize board updates 2023-04-06 22:13:09 -04:00
Savanni D'Gerinel 8df649d6cd Place stones on the board 2023-04-06 21:52:39 -04:00
Savanni D'Gerinel 481226e8c6 Detect mouse clicks on the board 2023-04-05 09:48:33 -04:00
Savanni D'Gerinel b64eda7efd Don't render ghost stones on unplayable or filled spaces 2023-04-05 09:25:08 -04:00
Savanni D'Gerinel 553d3f8496 Rename Goban to Board and create the IntersectionElement 2023-04-05 09:13:50 -04:00
Savanni D'Gerinel a8a9c49f02 Fixes resource compilation problems
Adds glib_build_tools crate, and adds glib (which provides glib-compile-*) to kifu-gtk.
2023-04-04 12:25:22 -04:00
Savanni D'Gerinel 829b300ca0 Remove the test app. Never needed it. 2023-04-04 01:07:20 -04:00
Savanni D'Gerinel e32f103dd4 Build with crate2nix 2023-04-04 01:03:08 -04:00
Savanni D'Gerinel 35850b60b3 Add a wood texture background 2023-03-30 22:38:48 -04:00
Savanni D'Gerinel b236ee54ab Render a ghost stone over the current cursor location 2023-03-30 22:38:40 -04:00
Savanni D'Gerinel c2e7399e55 Add the playing field to the main app 2023-03-25 09:24:36 -04:00
Savanni D'Gerinel d430fd82e6 Draw the goban 2023-03-25 09:00:56 -04:00
Savanni D'Gerinel 62a178e168 Restrict view model screenplay functions behind the screenplay feature 2023-03-24 10:24:46 -04:00
Savanni D'Gerinel cbae0f47fc Add a placeholder for the goban itself 2023-03-24 10:14:01 -04:00
Savanni D'Gerinel b8493b7fe7 Write an initial Playing Field 2023-03-24 09:59:04 -04:00
savanni ea02e614dd Render the chat element (#34)
Closes:

- [Render the chat](https://www.pivotaltracker.com/story/show/184743852)

Co-authored-by: Savanni D'Gerinel <savanni@luminescent-dreams.com>
Reviewed-on: savanni/tools#34
2023-03-23 03:11:56 +00:00
Savanni D'Gerinel 68096ec743 Add a basic rendering for a player card 2023-03-22 10:59:44 -04:00
Savanni D'Gerinel db80f47e8b Add the current player color to the playing field view model 2023-03-21 10:00:46 -04:00
Savanni D'Gerinel f31f622d6f Make the connection between the core and the gtk app
Set up the core run loop and the GTK loop. To make this work, I'm taking direct control of the Tokio runtime.

Since the GTK thread wants to be the main one, it's easier to manually spawn the runtime handlers and to spawn new tasks to handle communication with the core. I added a basic struct to own the runtime, the core, and communication between the core and GTK
2023-03-21 10:00:11 -04:00
Savanni D'Gerinel da6cf800ec Initial app designs 2023-03-18 23:32:43 -04:00