Andy2
e4b952222a
unify two ways of saving words encountered during scoring, removing
...
one and changing the site that used it to use the other. Not visible
outside of common, but should make it easier to harvest a list of all
words for one move or the entire game.
2011-09-02 19:11:04 -07:00
Andy2
dfab747504
make server_do() take a new param to allow caller to call it until
...
there's nothing more to do (without the assumption it's driven from an
event queue.)
2011-08-16 19:28:59 -07:00
Eric House
febb640049
add name of remote player to notification that remote player moved.
...
And remove a few dead strings.
2011-07-15 18:13:55 -07:00
Andy2
42e7a113b9
tweak logging
2011-07-12 07:09:40 -07:00
Andy2
4b75174170
save stateAfterShow as part of serialized game state. Fixes problem
...
where games with more than two devices would hang because server.c
code was dropping messages that comms.c code thought were good and so
ACK'd preventing them from being sent again. They were being dropped
because the game was in the wrong state after displaying a move-made
dialog because the state it was to move to after doing that display
had not been saved.
2011-07-04 12:51:00 -07:00
eehouse@eehouse.org
484bb295d0
Merge branch 'android_branch' into android_invite
2011-06-06 22:08:49 -07:00
Andy2
1bc70f2c8f
google reports a crash in warnIllegalWord that only makes sense if I'm
...
passing a 0-length array of bad words. That in turn suggests a
screwup where a move's rejected for some reason other that a word not
being in the dictionary. This is all supposition, and all stuff
that'd be caught by asserts in a debug build, but: when there are no
bad words don't report them -- even if the move's rejected.
2011-06-06 20:33:10 -07:00
Andy2
a29f08616e
what I meant to check in.
2011-05-19 22:53:58 -07:00
Andy2
89911ecaa4
add server_getMissingPlayers to return a bitvector indicating players
...
not yet received on device. Meant to be included in summary. I'm not
happy with how much code it took to figure this. I don't know
server.c all that well any more.
2011-05-19 22:48:21 -07:00
Andy2
4e7570020f
remove mistaken (I think) assert
2011-04-20 22:13:44 -07:00
Andy2
002bb40a09
report counts/values using language rather than dictionary name. To
...
support that, pass lang name from java into jni.
2011-04-11 18:55:42 -07:00
Andy2
3b7b4802a9
add ability to specify, track and use separate dictionaries for each
...
player. Works for gtk client. Compiles for Android but there's no UI
yet to specify more than one dict. Management of dupicate dicts
without duplicating memory -- refcounting -- will be up to the
platforms.
2011-04-01 19:57:10 -07:00
Andy2
d2fda267e5
fix assertion failure that happened when I changed whether remote
...
scores were shown mid-game. If the value's not as expected just don't
show the score.
2011-02-18 17:43:01 -08:00
Andy2
c56f0b5cea
Save cached prev move explanation as part of stream so can be shown to
...
user when game is opened later. Fixes problem displaying empty
explanation on first open of game that was updated in the background.
2011-02-09 06:30:51 -08:00
Andy2
7d6e136ca3
fix comment
2011-01-19 06:21:31 -08:00
Andy2
f111b78714
switch from tracking robot intelligence as a per-game boolean
...
implemented (when not smart) as trying to match the human's score to a
per-robot value between 1 and 100 that gives the percentage of best
moves to store before picking randomly from among them. So a 1 means
save only the best move and always pick it; 100 means save all the
best moves (how many are saved is compile-time configurable) and pick
one of them. Because it's settable per-robot a smarter robot can be
played against a dumber one (though I may choose not to make it
settable per-robot on shipping versions.)
2011-01-10 06:44:28 -08:00
Andy2
4a12f7a96f
Revert "in attempt to work around non-random rand() in jni world, call back"
...
This reverts commit 99c92e779d
.
Conflicts:
xwords4/android/XWords4/jni/utilwrapper.c
2010-12-07 18:43:53 -08:00
Andy2
99c92e779d
in attempt to work around non-random rand() in jni world, call back
...
into the java world by making it a util_ctxt function. Do same on
linux to test. We'll see how it is -- and can back this commit out if
there's no improvement.
2010-12-02 19:02:36 -08:00
Andy2
3d70da5a8d
cleanup
2010-11-01 06:57:54 -07:00
Eric House
61b228f189
implement simple chat on top of current server-level protocol --
...
meaning it'll work on any tranport but relay doesn't know about it.
(If relay knew about it I could send a "shutting down for a minute"
message to every connected device, which would be cool. But this is
easier.) Written, BTW, enroute from Seattle with help from beer from
Chris in first class. :-)
2010-10-03 18:11:51 -07:00
Eric House
54611df679
nuke unused variable
2010-09-10 05:55:59 -07:00
Andy2
20312144dd
tons of changes, still rough, snapshoted here: a gtk device vs device
...
game works to completion with both signing up as guests (no -s) with
one local and one remote player (identical commandlines.) Not yet
tested: if any signs up as a host, reconnecting rather than
connecting, etc. This is just a snapshot.
2010-09-10 01:30:40 -07:00
Andy2
3dba8ba13b
Fix bug reported by user: if robot finishes a search but fails to find
...
a move it's still done with its turn and must trade or pass.
2010-08-24 18:38:12 -07:00
Andy2
992f45e1bf
new feature: previous move. Modify engine to traverse the set of all
...
possible moves in either order both within a cached subset and when
building cached subsets. Still a bit buggy (shows the same move twice
when moving backwards and reaches the top-scoring move) and not well
tested.
2010-07-07 05:27:57 -07:00
Andy2
80aa22b2d1
add common prefs field sortNewTiles and way to set on linux cmdline
2010-06-17 18:10:32 -07:00
Andy2
e0dd3701a0
Add model_sortTiles(); use it; fix some comments and const decls.
...
Sorting always happens now when tiles added; needs to be based on a
preference.
2010-06-17 06:43:16 -07:00
eehouse
f5ac51ae73
fix crash using older dict by using current stream version rather than
...
one from before gameSeconds was being preserved in the stream by
write_gi code. I fixed this on a branch a week ago as well, so look
for a merge glitch. Need now to confirm that I'm sending char lists
in initial connect message in the right (null-separated utf8) format.
2010-05-28 02:31:13 +00:00
eehouse
6d1c09e756
fix compile errors introduced by addition of const
2010-02-27 18:03:22 +00:00
eehouse
fc2e87e0c4
drop client connection when in the wrong state rather than asserting.
2010-02-11 13:29:28 +00:00
eehouse
41472c4984
assert have at least one remote player
2010-01-31 21:13:31 +00:00
ehouse
edde3e2fd5
cleanup
2009-09-26 14:33:52 +00:00
ehouse
a91fd28773
fix some warnings when building linux client without debugging but
...
with warnings as errors.
2009-09-20 21:51:29 +00:00
ehouse
e746e2bc5b
Fix assertion failures
2009-07-31 13:03:38 +00:00
ehouse
184a154c52
New feature, meant for testing relay, makes robot skip random number
...
of seconds within specified range before making a move. Working only
on gtk so far, and will probably never be used other than on linux
clients.
2009-07-09 12:43:51 +00:00
ehouse
669e423ca8
Use new dict API to get rid of XP_UCHAR4 type, replacing with const XP_UCHAR*.
2009-04-07 04:23:56 +00:00
ehouse
641ae18864
Use new dict api to support utf8 faces.
2009-04-05 19:20:22 +00:00
ehouse
926f5963a3
rename only: stream_putString to stream_catString.
2009-03-29 18:26:59 +00:00
ehouse
8d1289d3b7
Create type to hold array rather than passing array whose lenght is assumed.
2009-02-23 04:01:15 +00:00
ehouse
e32e231dd5
New stream version makes standalone and multi-device build formats the
...
same so new Wince can open files saved by current version. Tweaks to
build with relay and heartbeat turned on.
2009-01-03 23:54:25 +00:00
ehouse
ac5bbced8f
mark debug-only formals and wrap in #defines to fix compile-time
...
warnings of clean wince build.
2008-10-11 17:58:43 +00:00
ehouse
a26f6ad658
flag unusued param to fix compile error; move code used only in
...
multi-device games inside ifdefs.
2008-10-11 17:30:35 +00:00
ehouse
fd805791e4
Quiet over-enthusiastic logging of state transitions.
2008-07-18 09:06:09 +00:00
ehouse
f749fdd560
Remove all tabs. No code changes.
2008-05-31 03:26:16 +00:00
ehouse
f90b6d35e8
Fix to compile and run standalone
2008-01-19 16:04:48 +00:00
ehouse
b4f2df5eb5
Log unusual case.
2008-01-07 01:19:47 +00:00
ehouse
40f7295802
test for duplicate initial client message and if so drop it; add const keyword; add assertion in addr comparion in attempt to learn why duplicates are getting through.
2007-12-31 20:00:13 +00:00
ehouse
8668420dd0
Don't end game when player has no tiles left in tray but still
...
tentative tiles on board.
2007-12-14 13:25:40 +00:00
ehouse
7929865ad9
Comments only.
2007-12-05 06:31:30 +00:00
ehouse
f0e21dbd86
Fix bug showing remote/robot moves only on host to include client too.
2007-12-02 22:07:24 +00:00
ehouse
5457ea1b59
replace all __FUNCTION__ with __func__
2007-12-02 19:13:25 +00:00
ehouse
eeebeca542
substitute macro for common sizeof(x)/sizeof(x[0]) pattern; no generated code change
2007-05-26 14:03:07 +00:00
ehouse
13803e2596
When showing cell values, also show tile values if the don't-show tile values preference is set.
2007-04-06 01:41:16 +00:00
ehouse
aad182c2e3
turn stringFromStream into macro to aid logging for leak detection. Debug builds only effected.
2007-03-18 23:31:51 +00:00
ehouse
a0919dcc54
Fix bug: scoreboard doesn't reflect connected state until some other
...
event causes update. Fix by calling turnChangeListener any time turn
changes, including on initial set.
2007-02-27 02:48:51 +00:00
ehouse
7c8b7294cd
add const to a bunch of char* decls in APIs and variables; no code change
2007-02-03 17:54:20 +00:00
ehouse
130c0f5a92
Refactor to not return from middle of function. No behavior change.
2006-11-11 22:38:20 +00:00
ehouse
878acbc759
Fix opening games and messages saved by last shipping version on Palm
...
by checking version and loading new fields conditionally. (Not yet
tested for current wince version.)
2006-10-05 01:17:03 +00:00
ehouse
b3af1d4d2a
When a client registering n players with server, send the first n,
...
ignoring local flag which nwgamest doesn't set in client case. When
resetting, destroy any engine allocated: plugs new leak.
2006-09-23 15:15:57 +00:00
ehouse
4029120fc6
do a better job of rejecting messages that have strayed in from a
...
different game; strutils syntax changes.
2006-09-15 07:34:39 +00:00
ehouse
0339de1de6
Check state before accepting post-connection messages; and always set
...
state when completing connection process.
2006-09-10 18:58:10 +00:00
ehouse
6b527014c8
when logging state transitions, don't unless there's a change
2006-09-02 05:29:59 +00:00
ehouse
4daabf6fe5
Set -Wunused-parameter for those versions of gcc that support it, and
...
deal with the output by removing params where possible and elsewhere
by adding XP_UNUSED macro wrapping __attribute__((unused)). There
should be NO change in function in spite of the large number of files.
2006-08-16 13:44:44 +00:00
ehouse
abad0c7fd0
Get rid of hard-coded tile number limit in server_formatRemainingTiles
2006-05-23 01:52:20 +00:00
ehouse
778e68e4dd
Increase size of buffer used to accumulate letters for "tiles left"
...
dialog. French has 15 "E"s, and the old buffer size allowed an
overflow (crash) when at least 13 of any letter were left.
2006-05-21 01:54:48 +00:00
ehouse
ef6ebe6bac
Add, and use, stream_putString. Saves 500 bytes on win32.
2006-04-25 13:31:15 +00:00
ehouse
6b140d641b
fix b5 crasher: check for stream equivalence with the older version
...
now that current version's been upped. Rename old version to better
indicate when it was current.
2006-03-04 06:12:38 +00:00
ehouse
92485783af
update email address in header comments: no code change
2006-01-08 01:25:02 +00:00
ehouse
20c87b4c19
fix streaming so four devices can be in game.
2005-10-01 15:51:14 +00:00
ehouse
dc84bd22df
dict_tilesToString sig change
2005-07-08 03:02:31 +00:00
ehouse
4095acc327
casts to stop compiler warnings
2005-05-29 19:29:33 +00:00
ehouse
c9f60e758c
don't instantiate comms unless it'll be used. Internally it has no
...
idea it's not supposed to connect to relay otherwise.
2005-03-25 03:11:54 +00:00
ehouse
290cb0b9da
fix to build in standalone case
2005-03-20 19:43:00 +00:00
ehouse
19b0d88a69
remove gross connectRelay hack. There's now a wrapping protocol that
...
talks to the relay entirely inside comms.c.
2005-03-19 21:48:47 +00:00
ehouse
dd8f2f92c5
fix problems with clients in networked games making a move after the
...
game should end: check number of passes and that all players still
have tiles before running robot.
2005-03-15 15:18:58 +00:00
ehouse
71870695cc
HACK: server must ping relay or it can't be contacted
2005-03-06 17:51:18 +00:00
ehouse
2e9dd5f3ea
cleanup; add debugging info for state changes
2005-03-06 17:49:37 +00:00
ehouse
b77d8b8fbb
use dict_getShortName
2004-12-18 01:06:47 +00:00
ehouse
fbc2f86187
Don't use Palm APIs in common code!
2004-11-09 02:03:28 +00:00
ehouse
a4938db8fe
server_formatRemainingTiles and server_formatDictCounts
2004-11-06 02:46:08 +00:00
ehouse
80cc53eb11
fix endienness problem for game id
2004-09-30 13:43:07 +00:00
ehouse
8a4b9eed3a
remove dead code
2004-07-20 15:13:54 +00:00
ehouse
665ff7b4c4
make < 80 columns
2004-07-10 22:56:20 +00:00
ehouse
e320ae9617
output the right string
2004-07-10 14:17:07 +00:00
ehouse
d9efe4258b
cleanup for no hintlimit feature case
2004-06-27 04:35:42 +00:00
ehouse
173eba64e3
version now part of stream
2004-06-24 05:19:31 +00:00
ehouse
7914876294
Change engine to, when given a rect that's a subset of the board,
...
constrain the search for moves to those that involve filling only
tiles within the rect -- while still using the rest of the board as
context for the moves. Robot moves use the whole board.
2004-06-15 01:58:09 +00:00
ehouse
7437e6089a
move undoing-assign warning here
2004-05-15 16:05:14 +00:00
ehouse
b07b947c44
Allow deletion of picked tiles during face-up picking.
2004-05-14 08:57:38 +00:00
ehouse
791d371b90
guard server_do against reentrance
2004-02-18 04:28:32 +00:00
ehouse
68e2975472
fix compiler warning
2004-01-29 05:07:10 +00:00
ehouse
ca9eeed95b
Swedish dict has 0-count tiles that are available only for blanks.
...
Don't print these with counts/values.
2003-12-13 06:39:35 +00:00
ehouse
6e9e668035
fix compiler warning
2003-11-30 19:11:12 +00:00
ehouse
f69eb698b3
pass current tray into util_userPickTile, removing to-be-traded tiles
...
first.
2003-11-30 18:53:51 +00:00
ehouse
e1fd8fda5b
robots can be given picked tiles too
2003-11-19 04:49:30 +00:00
ehouse
6a30f1c7c1
Add vars to support turning on/off picking tiles
2003-11-19 04:06:32 +00:00
ehouse
8789ed9bc5
don't let pick robot tiles
2003-11-18 03:39:43 +00:00
ehouse
57295ffee8
when picking, deal with not having enough tiles
2003-11-16 19:25:53 +00:00
ehouse
f32c407d01
add option for user to pick tiles from pool.
2003-11-16 17:12:54 +00:00
ehouse
5776da0b93
first checkin
2003-11-01 05:35:29 +00:00