xboard-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XBoard-devel] gtk version status


From: h.g. muller
Subject: Re: [XBoard-devel] gtk version status
Date: Tue, 19 Jan 2010 07:57:48 +0100


As far as promoting goes how should we implement this? I remember there
was some discussion about this. A popup with just graphics sounds good,
perhaps it should appear as soon as a pawn reaches the 7th row?

A popup to select pieces occurs on 3 occasions in XBoard:
1) promotion menu
2) Edit Postion
3) Piece Drop

(3) is now deprecated, as the pieces in drop games can be drawn from the
holdings displyed next to the board. In two variants, where promotion can
only take place to a captured piece (Great Shatranj and SuperChess)
the holdings are also displayed, especially for the purpose of promoting.
(They are not drop games.) The promoton procedure is modified there,
to not make a popup appear, but wait until you click a piece in the holdings.

I think (1) and (2) are sufficiently similar that they should be unified.
In both cases they do produce a popup from which you can select a piece.
It is just that what s on the menu that might be different. Originally this
was a meaningful difference, as both menus where static. But now they
have to be dynamic anyway, as different variants need different pieces
on the menu, both for setting up the position and promotion.

The Edit Position popup offers some pseudo-choices, to set side-to-move,
clear the board, or 'promote' a piece, i.e. convert a piece already on the
board to a representation that indicates it is really a promoted Pawn
for crazyhouse. The latter shuld be considered just a kludge to not having
to have all these promoted forms on the menu, i.e. to keep the menu
static and yet manageable, and could be dropped. For selecting stm,
clicking the clocks is a faster alternative, and it could also be dropped.
(I guess this was implemented only later.)

So what is needed for the popup is an optional button to clear the board,
plus a list of pieces to choose from, which depends on the occasion.
I would be in favor of a pictorial representation, kind of a mini chess board,
where people click the piece they want. This avoids having to print piece
names, which simplifies things, as the same piece is often known in
different varints under different names, or WinBoard uses the same
representation for a different piece (e.g. the shogi Silver General uses
the same bitmap as the Xiangqi Adviser). The back-end should set up
size and content of popup. E.g. in normal Chess it could print a 4x1
'board' as promotion popup with QRBN of the appropriate color. In
suicide it would be 5x1, with KQRBN. In gothic it would be 6x1 (or 3x2)
with QCARBN. The Edit-Position popup for normal could be 6x2 if
we want to display both colors, (as in WinBoard), or 3x2 if we only
want to display one (as in XBoard), and there would be a button for
'Empty Square'. Of course we could include an Empty Square amongst
the clickable pictograms too (which would actually simplify the code,
as internally Empty Square is treated as just another piece), but
for two-color popups that creates a nasty problem of how to lay it out,
unless you include it in duplicate.

Another question I have is about playing by using the keyboard: I can
think of two modes that would be nice to implement:

A) using the arrow keys and enter to select a piece and place it somewhere

B) just start typing coordinates to enter moves. I had something in mind
like the text search in firefox, that is you start typing and a bar at
the bottom pops up with a text input field.

Well, this is already how it works in WinBoard, so we should certainly keep
it. (A) currently works only in the JAWS version: the arrows move a 'cursor'
over the board by highlighting a square (always starting on a1 when you give
the board focus), and using the space bar to select a piece (equivalent to
a left mouse click, so de-selecting it when it was already selected).
(B) works also in the normal version, in non-ICS modes: typing into the
board  pops up the move move- type-in dialog (similar to the XBoard ICS
input box). When you type a move there, it performs it (if parseable and legal),
when you type a number != 0 it goes to that move in the game (like you
clicked it in the Move History window), where the 0 exception is needed
to allow for 00 and 000 typing of castling moves. And in Edit Position mode,
you can even type a FEN there to set up the position. In ICS mode,
typing is diverted to the ICS input box (part of the ICS console window
in WinBoard), as the ICS can take care of parsing and accepting moves,
and it is coneivable that you would like to type other stuff, such as tell or
match commands.

What do you think?

Are there other features that needs a rewrite? How about a tabbed
preference dialog, so that we don't need difference windows for
different options?

I am not sure what you men by  "preference dialog". Is that something
to replace the current Options menu tree? A difference between the
Option menu in WinBoard and XBoard is that WinBoard has a separate
sub-menu (a dialog actually, Options -> General...) for setting the simple
checkbox type items that in XBoard are in the Options menu itself.
(I guess the Options menu would have grown too big there; in XBoard
it hardly fits the screen already.) This is a bit of an inconvenence, though.
So I think it would indeed be an improvement if the Options menu would
immediately summon up a tabbed window, where the leading tab
would show the Options->General dialog, so that people can immediately
tick and untick the simple options they want. The dialogs for
Options -> Board..., Sounds..., Fonts..., Save Game..., Load Game...,
Game List..., Time Control..., Adjudications..., Global Settings..., ICS...,
could all go to different tabs.

Not sure about the Engine #N Settings, though. As the engine determines
what is in here, it can sometimes be unweildly large (try Glaurung 2.2, or
Toga2, for instance), and 2D scrolls would be very inconvenient.
So perhaps it is better to keep a separate dialog for that, which already
pops up in a size mathing its contents.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]