Commit graph

200 commits

Author SHA1 Message Date
Andy2
f4a11d2be5 ignore commit turn request when player has 0 tiles. This catches,
awkwardly, the case in a networked game where a player runs out of
tiles in his turn but the server hasn't responded yet to kill the
game.  It remains the player's turn and he can make lots of 0-point
moves while waiting.  (Making it the next player's turn would be the
right thing to do if that player were always on a different device.)
2011-07-12 07:13:21 -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
Eric House
67a3349919 Don't move arrow on pen-up if pen-down was in a different cell. 2011-03-29 18:13:38 -07:00
Andy2
d9bb5197d4 Add two new menus to be available only when in trade mode. Hide and
show them and another group depending on whether trading at the time.
To make that work, replace the individual calls made to dis/enable
toolbar buttons with a single jin call that takes a struct full of
booleans and make that struct available in BoardActivity where menus
are hidden/shown.  Remove the individual calls from the jin interface.
2011-03-10 18:13:56 -08:00
Andy2
aa88503cfb have board_canHint() return false when trade in progress. 2011-03-08 07:40:38 -08:00
Andy2
828bd9aa4c fire user error rather than committing turn when trade attempted
without any tiles selected.
2011-03-07 06:28:43 -08:00
Andy2
d98a3fe232 when peeking is disabled (the default on android), don't allow
swapping to view of the current player's board if the current player
is remote -- because then won't be able to swap back to own view until
it's your turn.  Fixes annoyance in multi-device game on Android.
2011-01-21 21:32:52 -08:00
Andy2
cd5dedfa67 add compile-time flag to disable selection of tiles in tray (other
than as part of an exchange) and to remove feature where tapping empty
cell moves selected tile there.  This is to address user confusion on
Android, and I'll ask for testing before putting this in the main
branch.  This leaves only place-arrow-then-tap as an alternative to
drag-and-drop, and may annoy people.  Worth trying: disable only the
automatic selection of another tile after the selected one is dropped.
2011-01-12 19:00:48 -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
dd3bd1f661 don't show hint buttons until there are tiles assigned 2010-11-06 21:31:53 -07:00
Andy2
5b33df4e25 modify model_getTile to take NULL for out parms where the result is
often ignored, then pass NULL instead of the address of variables
called 'ignore'.  Should be no behavior change.
2010-10-29 19:52:15 -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
5b3e41f4e9 fix bug: allow switch *to* player whose turn it is even if allowPeek
is off (typically because it was turned off after game was loaded and
while non-turn player's tiles are visible)
2010-07-17 07:11:46 -07:00
Andy2
639feb8965 nuke extra line -- change I forgot to save 2010-07-17 06:23:14 -07:00
Andy2
5b8cf716b3 add pref controlling whether can switch to look at tray of user whose
turn it isn't
2010-07-17 06:21:24 -07:00
Andy2
a99e8142b0 Merge branch 'android_branch' into toolbar
Conflicts:
	xwords4/android/XWords4/jni/Android.mk
	xwords4/android/XWords4/jni/xwjni.c
	xwords4/android/XWords4/res/values/strings.xml
	xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java
	xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/XwJNI.java
2010-07-16 06:32:32 -07:00
Andy2
a76cdac0c5 don't put up mini window when have penned-down on a draggable tile. 2010-07-13 06:26:55 -07:00
Andy2
21d705c6e7 make wrap code for popping tile up above cursor hotspot (or finger)
conditionally compiled.  I probably want it off on Android now that I
have crosshairs.
2010-07-12 19:11:24 -07:00
Andy2
0957c95c8e write and read dummy values to/from stream when KEYBOARD_NAV isn't
defined so that the versions are compatible.  This will let existing
saved games be read if I turn this off on Android.
2010-07-12 18:49:36 -07:00
Andy2
de32e514ab cherry-pick three revisions from toolbar branch (d1c7d4097c, f848473c1a and 6484a2fb9b) and manually fix conflicts. 2010-07-12 18:48:03 -07:00
Andy2
fd9464b909 first cut at crosshairs: drawing in focus color the entire column and
row that's currently being touched/dragged through.  Meant to aid
users of capacitive touch screens in figuring out what cell they're
on.
2010-07-12 06:39:46 -07:00
Andy2
8172e38cef write and read dummy values to/from stream when KEYBOARD_NAV isn't
defined so that the versions are compatible.  This will let existing
saved games be read if I turn this off on Android.
2010-07-09 18:21:05 -07:00
Andy2
6b9b97231a fix to compile with KEYBOARD_NAV undefined 2010-07-09 06:49:32 -07:00
Andy2
40323b03d2 board_canFlip -> board_visTileCount 2010-07-08 06:38:51 -07:00
Andy2
ac6dc400ce add board_canHint 2010-07-07 18:47:02 -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
5f92491ca3 add and implement board_canTogglePending 2010-07-03 11:38:37 -07:00
Andy2
f77cf0e23d add board_redoReplacedTiles and model_redoPendingTiles. The latter
works as long as no blanks are involved.  And new state isn't being
saved so will be lost unless format changed.
2010-07-02 18:52:55 -07:00
Andy2
491cfe7616 add board_canShuffle and implement 2010-07-01 18:55:49 -07:00
Andy2
43c34aa466 add board_canFlip and model_canFlip -- which seem to work though
there's no test that when a single tile is on the board it's not in
the middle.  Sue me.
2010-06-30 20:25:34 -07:00
Andy2
0c852981e7 make zoomBy param passed to board_zoom give distance rather than just
direction.
2010-06-27 13:12:30 -07:00
eehouse
f514717428 Change board_zoom to indicate direction only of zoom, not number of
cols.  When figuring internal dimensions zoom out as needed to meet
maxSize value.  This fixes problem where rotating a zoomed portrait
board to landscape leaves cells bigger than they can be made by
zooming, but then the desired zoom has been changed and stored and so
on return to portrait cells are smaller/less zoomed.  Need to see if I
can live with that.
2010-06-05 03:40:23 +00:00
eehouse
a80d874e9d change api for board_zoom and change callers. No effect on java and
no behavior change.
2010-06-05 03:39:06 +00:00
eehouse
9af9df884b use same logic to decide to zoom and to report whether can zoom next
time.  Fixes bug preventing + button from greying out when fully
zoomed in.
2010-06-05 03:38:49 +00:00
eehouse
1f246d20a3 oops. Fix assertion by not stopping dragging unless it's been
started.
2010-06-04 03:47:56 +00:00
eehouse
57013a9267 stop dragging before putting up miniwindow. This allows to drag
finger off of bonus hint just displayed without scrolling the screen.
2010-06-04 03:47:46 +00:00
eehouse
628f8d9cf3 don't zoom in if doing so will make cells larger than the limit passed
in.
2010-06-03 04:57:11 +00:00
eehouse
4f16eee1b6 pass maxCellSize into board_setPos, and use it as limit in calculating
whether any further zooming is possible.
2010-06-02 04:58:32 +00:00
ehouse
71110a195d for some reason on wince coords are passed to coordToCell() that are
above/left of the board firing an assertion.  return false to indicate
not on board but don't assert.
2010-04-24 03:51:39 +00:00
eehouse
166c1ac779 make coordToCell() more inclusive to match pointOnSomething(), otherwise
the latter says a point is on the board and the former can't assign it
a row.
2010-04-23 09:35:15 +00:00
eehouse
a07cdd8513 limit depth of zoom further 2010-04-17 04:16:17 +00:00
eehouse
da2cfa5934 changes (commited earlier but now somehow missing) putting
scroll-related fields into a struct so vertical and horizontal can be
handled by the same code; add to board_zoom out params indicating
whether further zooming is possible.
2010-04-15 02:15:50 +00:00
eehouse
339fc5a9e6 don't zoom down below two cells so we can still drag-scroll 2010-04-08 04:15:33 +00:00
eehouse
41b29c9ba3 distribute extra pixels evenly, with extras one each at the beginning
of the arrays.
2010-04-08 04:15:25 +00:00
eehouse
d01a30d1be adjust yOffset same as x so we zoom in toward center; reduce xOffset
when zoom out makes it too big.
2010-04-08 04:15:16 +00:00
eehouse
5922d8c96a fix coordToCell to return false when cell off board -- to fix bug
where blank tiles were drawn on top of tray area when scrolled down
there.
2010-04-08 04:14:42 +00:00
eehouse
b1ed0200cc stretch rows to fill space given by platform: they don't have to be square. 2010-04-08 04:14:22 +00:00
eehouse
d263b47a56 lots of changes, still rough, to allow zooming in and out on board.
Includes ability to scroll horizontally by dragging.  Board init API
changes to specify board width and max height instead of cell
dimensions, so now board owns task of picking cell size.  If the
number of cells does not evenly divide into a board dimension then the
extra pixels are distributed among some columns/rows in a way that
still allows bitblit-based scroll implementations (though horizontal
scrolling at this point always does an invalAll()).  Not yet tested
with overlapping tray.  And still need to allow rows to be taller than
cols are wide if platform code has given the space.  Stream format
changes with this checkin.
2010-04-08 04:14:14 +00:00
eehouse
8b84bdf56e Once user has rejected a bad word, don't ask about any later ones as
the whole turn's being rejected.  Should be merged to trunk.
2010-02-24 04:29:00 +00:00
eehouse
37646c20f3 accomodate null objects 2010-02-09 14:42:07 +00:00