Here is where I plan to Blog Emacspeak tricks and introduce new features as I implement them.

Saturday, February 11, 2006

Playing SuDoKu Using Auditory Feedback

Emacspeak speech-enables SuDoKu implemented by sudoku.el.
Speech-enabling games is an effective means of discovering what
additions one needs to make to an auditory interface for
working effectively in an eyes-free environment --- this was
aptly demonstrated a few years ago by identifying interesting
conversational gestures by speech-enabling the game of
Tetris --- see Conversational
Gestures For The Audio Desktop from Assets 1998.

Advicing Interactive Commands

As with speech-enabling any Emacs module,
emacspeak-sudokuadvices all interactive
commands to produce spoken feedback.
In addition to speaking the cell moved to, all navigation
commands produce an auditory icon that is a function of whether
the cell value is mutable --- original values cannot be changed
and this is indicated with a distinctive icon.

Additional Interactive Commands

Playing SuDoKu effectively requires one to build a good mental
image of the state of the board as well as the ability to
effectively query the game for currently active constraints. The
eye's ability to quickly move around the board and perceive row,
column and sub-square constraints needs to be compensated for in
an eyes-free environment. As an example, it is too difficult to
build the necessary mental model by just listening to the board
spoken aloud, or by listening to idnividual cells by navigating
to them.

Here are the set of additional interactive commands that
needed to be added in order to be able to play the game
effectively.

r

Speak current row.

c

Speak current column

s

Speak current sub-square.

R

Speak number of remaining cells in current row.

C

Speak number of remaining cells in current column.

S

Speak number of remaining cells in current sub-square.

d

Move to the sub-square below the current sub-square.

u

Move to the sub-square above the current sub-square.

n

Move to the next sub-square.

p

Move to the previous sub-square.

a

Move to the beginning of current row.

e

Move to the end of the current row.

t

Move to the top of the current column.

b

Move to the bottom of the current column.

,

Speaks information about the overall distribution of
numbers on the board.

d --- Conveys how many instances of each digit
have been filled in.

s --- Conveys number of remaining cells in each
sub-square.

r --- Conveys number of remaining cells in each
row.

c --- Conveys number of remaining cells in each
column.

/

Speaks number of remaining cells in the current board.

.

Speaks value in current cell.

Notes on how invormation is spoken:

Numbers are spoken in groups of 3 to achieve effective
intonation.

When navigating by sub-squares, point always moves
to the top left corner of the sub-square.

Additional commands bound to M-r,
M-c and M-s erase the current row,
column or sub-square respectively. These commands would probably
be convenient to have independent of whether one is using visual
output.

Effectiveness Of The Resulting Interface

With the above interface in place, the simpler levels of the
game are a breeze, levels difficult and evil
are sufficiently challenging to be fun.