Commit Graph

243 Commits

Author SHA1 Message Date
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 d74c9ebcad Add the nix flake for the cyberpunk splash screen 2023-04-13 23:14:28 +00:00
Savanni D'Gerinel ad6b006e1c Parse the countdown parameter 2023-04-13 23:14:28 +00:00
Savanni D'Gerinel 70b34f41b5 Start handling command line parameters 2023-04-13 23:14:28 +00:00
Savanni D'Gerinel 78acebbf06 Extract state management and add play and pause 2023-04-13 23:14:28 +00:00
Savanni D'Gerinel dad38590f4 Set up keyboard handling 2023-04-13 23:14:28 +00:00
Savanni D'Gerinel 0d6cd2a247 Add screen resize support and animation timeout 2023-04-13 23:14:28 +00:00
Savanni D'Gerinel a2eec878a2 Add a slash meter 2023-04-13 23:14:28 +00:00
Savanni D'Gerinel d8ac8fba01 Count down the clock 2023-04-13 23:14:28 +00:00
Savanni D'Gerinel ea5c8cdb78 Add the clock and some extra lines 2023-04-13 23:14:28 +00:00
Savanni D'Gerinel d1b257e631 Clean up the asymetric cutout line 2023-04-13 23:14:28 +00:00
Savanni D'Gerinel 268acb615f Start building a rendering for a cyberpunk-style splash screen 2023-04-13 23:14:28 +00: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 0240132153 Switch to the rustup toolchain specification for Rust 2023-04-04 01:02:24 -04:00
Savanni D'Gerinel cb16d73342 Switch to using rustup to pin the rust toolchain 2023-03-30 22:52:59 -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 f23d7e9d7e Add some documentation 2023-03-22 09:31:10 -04:00
Savanni D'Gerinel 44171393ef Create the screenplay library
This is a library that helps out with visualizing GTK scenes
2023-03-22 09:31:10 -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
Savanni D'Gerinel 92393875dc Update the flake 2023-03-18 20:15:55 -04:00