Age | Commit message (Collapse) | Author |
|
Also, while reading through this, found one bug where a vector
was being rearranged via erase/insert while an iterator was
still pointing to the element being erased.
|
|
This is a small update, mainly fixing the bugs found in version 37.
|
|
|
|
Specifically...
* Bogowin was only being used for English-like dictionaries.
I suppose the bogowin numbers might change a bit from
dictionary to dictionary, but I think it's quite plausible that
the numbers are similar for all dictionaries.
* This fixes bogowin always returning 100 or 0.
* Make the strategy code more fine-grained, so that if it
has some strategy files and not others, it will use what it
has. JKB recommended a long time ago that I add a generic
worths file to give the blank a high worth, but it wasn't being
used because most languages didn't also have a syn2 or
a superleaves. Now it will. Also, the vowel-consonant
balance computations don't use any strategy files at all,
but they were also being skipped if you didn't have every
single strategy file. Oops.
* The strategy computations would sometimes do
unexpected things if the leaves weren't alphabetized.
They now look at the alphabetized version of the leave.
* A couple more conversions to ranged-for loops.
|
|
32-bit build against VS 2015.
64-bit build against VS 2017.
|
|
Also, add a bit of parallelization, do a few other cleanups
on the yml and .pro files. And push C++14 flags everywhere
into the build system.
|
|
|
|
|
|
Now builds on Qt 5.9.1, and works on Mac, Windows, Linux.
|
|
Port quackle to Qt 5.5
|
|
OSPS update 36
|
|
http://www.pfs.org.pl/osps/Update36.php
As usual, no need to leave older versions available. This one mainly
deals with bugs from Update 35.
|
|
http://pfs.org.pl/info/update35.php
|
|
OSPS Update 33
|
|
|
|
Not perfect, but it now does a decent job of not corrupting GCGs when
it loads one where players have messed up tile counts/drawing in the
end-game. It also tries to annotate these for the player and in any
GCG file that's round-tripped.
Also, a lot of C++11-izing of ranged iterators.
|
|
This reverts part of commit bb2decabe18056b1aaaab29eebbc0f80e1f5e7ab.
|
|
|
|
|
|
|
|
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
|