Age | Commit message (Collapse) | Author |
|
|
|
The tile counting code wasn't properly tracking challenged phonies.
Also, it could get off right at the beginning. I think I didn't see this
before because I was testing with an unusual game that started
off with a pass and a bingo.
|
|
My end-game management was working fine for the case
I had been trying most...unknown racks and blind exchanges.
But I forgot to prevent regular exchanges from depleting the
overall tile counts. And I didn't realize that this code might
be called with a clipped history, due to the way that the
computer players can clone game boards for simulations.
I think this fixes all of the problems I introduced, while keeping
the endgame tile counts correct in the unknown racks case.
|
|
|
|
|
|
Also, fix a typo and remove dead code.
|
|
If you're entering games with unknown racks, Quackle can
get confused about which player has how many tiles in the
end game. This is because the racks may have been set to
have less than 7 tiles, and some of the tiles "in the bag" may
actually belong on another player's rack. Fixed this by...
* Adding a mechanism which tracks the actual count of
tiles in the bag and on the rack in GamePosition. This
count is independent of what's actually on the rack.
* If the game is about to end because the bag and rack
are empty, check to see if the rack *should* have been
empty. If not, pull tiles from another player's rack.
This code might fail for games of more than two players.
* If the game should be ending because the bag and
rack are empty, but the rack isn't actually empty, then
dump the files to another player's rack. Once again,
this code doesn't take into account >2 players.
|
|
|
|
When the message box that says you made a play which uses tiles
not on your rack comes up, it now has a third option...switch to
player with unknown tiles. So, you'll get this message box at
most once per player if you choose that option.
|
|
|
|
|
|
Generate Python, Lua and Go bindings through SWIG
|
|
Found a crash where you enter "ex 4" twice,
and it would crash. This led me to look up
how this was implemented, and it wasn't
very robust. It also didn't save properly in
the GCG. So I created a new move type
which I called a BlindExchange and implemented
it throughout the system.
|
|
A checkbox in the preferences dialog now allows
you to configure Quackle so that plays with illegal
words which are left unchallenged score zero.
Obviously, off by default. But useful for entering
games as part of the Marty Gabriel/Scott Garner
world record scoring attempt. This is apparently
what the Guinness folks are looking for.
|
|
Also resets the focus back to the input field when
you press Shift+Enter.
|
|
A few character encoding things that had still been
missed, and preliminary support for
#character-encoding in GCG files.
|
|
|
|
|
|
|
|
|
|
Okay...I think this fixes all file streams to be UTF-8 except
for GCGs, which require less trivial effort.
|
|
|
|
Search for the static libraries in their relative paths instead of
symlinking into the build directory.
|
|
|
|
Use ${SRCDIR} directive to set library path as the current directory
|
|
`go` tool can help build packages by recognizing `.swig` and `.swigcxx`
extensions. It invokes the `swig` command internally while building the
package.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bindings and add Python test file.
|
|
|
|
|
|
Add Turkish alphabet and lexicon
|
|
project.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I had reserved the last spot for "Add new theme/alphabet", but
then abandoned that feature for v1. But forgot to rip out the
code handling it.
Bump version number to 1.0.1.
|
|
* Windows installer now set up to use MSVC redistributables, not
MinGW ones.
* The Board popup's "Edit..." button should be disabled when the
popup is empty (i.e., the only choice is to add one, which is
in the popup).
|
|
|
|
|
|
Windows build uncovered a bad assumption about QTextStream
supporting atEnd(), and the stream needed to be explicitly set to
UTF-8.
|
|
|
|
|