Carl Worth [Fri, 24 Apr 2020 21:27:24 +0000 (14:27 -0700)]
Add a new dvonn_board_cell_owned_by function
The compiler was warning that we were comparing enums of two different
types. That's true—we are, but that's because the values for
dvonn_cell_t are declared by reference to dvonn_player_t values.
Anyway, rather than cluttering up the code with lots of casts to
silence this warning, here we add a new function that takes care of
that cast, leading to more readable code.
Carl Worth [Fri, 24 Apr 2020 19:08:18 +0000 (12:08 -0700)]
Fix compilation by putting libraries late on the command line
Again, I don't know what changed in the compilation toolchain, but
apparently to get compilation to work now, we need to put libraries we
depend on after the object files that depend on them.
Carl Worth [Thu, 5 Mar 2009 18:03:13 +0000 (10:03 -0800)]
Eliminate stacks disconnected from red DVONN pieces
At this point, the game is actually playable for the first time.
There's still very little actual UI here, (no indication of who
the current player is, no buttons for passing, starting a new
game, etc.). But with two people who know how to right-click
and have out-of-band communication to say when its the
opponent's turn, it's possible to play now.
Carl Worth [Thu, 5 Mar 2009 16:50:59 +0000 (08:50 -0800)]
Enforce legal moves
All the checks for legal moves are now enforced, (including not
even selecting a piece if it is surrounded). Basically all that's
missing now is elimination of disconnected pieces, (and the
ability to pass when there is no available move).
Carl Worth [Thu, 5 Mar 2009 09:46:55 +0000 (01:46 -0800)]
Add visual indication for non-red stacks containing a red piece
Also, don't bother displaying the stack-height number until
the stack has at least two pieces in it.
The game is really close to being possible to play manually,
(without the computer enforcing the rules), except that it's
not yet possible to eliminate the disconnected pieces.
Carl Worth [Thu, 5 Mar 2009 09:06:58 +0000 (01:06 -0800)]
Add visual indication of selected stack
There's already logic for selecting only stacks that belong to the
current player, and changing the current player after each move---
just no logic for doing anything with the move yet.
Carl Worth [Thu, 5 Mar 2009 09:03:05 +0000 (01:03 -0800)]
Implement placement phase of game
It's getting *close* to playable now. We still need visual
indications for the following: stack height, red piece in
stack, selected stack, and most recently moved stack. We
also need logic for legal moves as well as for removing
disconnected pieces after a move. But that's not really
that much code.
Carl Worth [Thu, 5 Mar 2009 08:41:22 +0000 (00:41 -0800)]
Remove vestiges of loa in favor of dvonn
A very minimal shell of this program began as copy-and-paste from
my loa game (of the same license). Finish fixing any remaining
leftovers from that copy-and-paste.
Carl Worth [Thu, 5 Mar 2009 08:33:54 +0000 (00:33 -0800)]
Add simplistic button-press handling
Right now this is just toggling a white ring on and off at
each location. The significant bit here is that the calculations
between board-index positions and screen coordinates are now
correct. Thanks to Keith Packard for helping me think through
some of the math here.