logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

xshogi - Xt/Athena user interface for gnushogi

Authors

       Original authors of XBoard:  Chris Sears and Dan Sears.

       Enhancements for XBoard (Version 2.0):  Tim Mann.

       Conversion to XShogi (Version 1.1):  Matthias Mutz.

       Current maintainer: Mike Vanier.

Command Buttons And Keys

Quit    Quits xshogi.  Q or q is a keyboard equivalent.

       Reset   Resets xshogi to the beginning of a shogi game.  It also deselects any game or position files.

       FlipView
               inverts the view of the shogi board.

       Hint    displays a move hint from gnushogi.

       LoadGame
               plays  a  game  from  a record file.  If no file is specified a popup dialog asks for a filename.
               Game files are found in the directory named  by  the  SHOGIDIR  environment  variable.   If  this
               variable is not declared then the current directory is used unless the file name starts with a /.
               G  or g is a keyboard equivalent.  The game file parser will accept almost any file that contains
               moves in algebraic notation.  If the first line begins with `#', it is assumed to be a title  and
               is displayed.  Text enclosed in parentheses or square brackets is assumed to be commentary and is
               displayed in a pop-up window.  Any other text in the file is ignored.

       LoadPosition
               sets  up  a  position  from  a  position file.  If no file is specified a popup dialog asks for a
               filename.  Position files are found in the directory named by the SHOGIDIR environment  variable.
               If  this  variable is not declared then the current directory is used unless the file name starts
               with a /.  Position files must be in the format that the Save Position command writes.

       SaveGame
               saves a game to a record file.  If no file is specified a popup dialog asks for a  filename.   If
               the  filename  exists,  the  user is asked whether the current game record is be appended to this
               file or if the file should be replaced.  Game files are saved  in  the  directory  named  by  the
               SHOGIDIR  environment  variable.   If this variable is not declared then the current directory is
               used unless the file name starts with a /.  Game files are human-readable, and can also  be  read
               back by the Load Game command. Furthermore, they are accepted as gnushogi text bookfiles.

       SavePosition
               saves a position to a position file.  If no file is specified a popup dialog asks for a filename.
               Position  files  are  saved in the directory named by the SHOGIDIR environment variable.  If this
               variable is not declared then the current directory is used unless the file name starts with a /.
               Position files are human-readable, and can also be read back by the Load Position command.

       MachineWhite
               forces gnushogi to play white.

       MachineBlack
               forces gnushogi to play black.

       ForceMoves
               forces a series of moves.  That is, gnushogi stops playing and xshogi allows you  to  make  moves
               for both white and black.

       TwoMachines
               plays a game between two computer programs.

       Forward moves forward through a series of remembered moves.  F or f is a keyboard equivalent.

       Backward
               moves  backward  through  a series of remembered moves.  As a side effect, puts xshogi into Force
               Moves mode.  B or b is a keyboard equivalent.

       Pause   pauses the clocks or (in Load Game mode) pauses the game being  loaded.   Press  Pause  again  to
               continue.  P or p is a keyboard equivalent.

       EditPosition
               lets  you  set up an arbitrary board position.  Use mouse button 1 to drag pieces to new squares,
               or to delete a piece by dragging it off the board or dragging an empty square on top of  it.   To
               drop  a  new piece on a square, press mouse button 2 or 3 over the square.  This brings up a menu
               of black pieces (button 2) or white pieces (button 3).  Additional menu choices let you empty the
               square or clear the board.  You can set the side to play next by clicking on the Black  or  White
               indicator at the top of the screen.

       Challenge
               allows  you  to make a two display game between two human players.  Enter the display you want to
               connect to. If you are allowed to connect, a new  board  is  displayed  at  the  remote  display.
               Challenge mode can only be stopped by pressing "quit".

       SelectLevel
               allows  you  to  reset  the clocks for both players.  Enter the number of moves and the number of
               minutes in which the moves should be done.

       MoveNOW
               force computer to stop thinking and to make the current best move.

       Iconify I, i, C or c iconifies xshogi.

Description

xshogi provides an X11/Xt/Athena Widgets user interface for gnushogi.  With xshogi you can play gnushogi,
       set  up  arbitrary positions, force variations, or watch xshogi manage a game between two shogi programs.
       Furthermore, it can be used as an interface between two players on different displays.

       xshogi can also be used as a shogi board to play out games.  It will read through a game file or allow  a
       player  to  play  through  a  variation manually (force mode).  This is useful for keeping track of email
       postal games or browsing games off the net.

       After starting xshogi, you can make moves by pressing mouse button 1 while the cursor is  over  a  square
       with  your  piece  on it and dragging the mouse to another square.  If the move is illegal, gnushogi will
       not allow it.  xshogi will then retract the move.

Limitations

       If you press the Pause button during gnushogi's turn, xshogi will stop  the  clocks,  but  gnushogi  will
       still make a move.

       After  a  mate or draw when playing against gnushogi, if you back up with the Backward button, the clocks
       are reset (because gnushogi has exited and must be restarted).

       Some xshogi functions may not work with versions of gnushogi earlier than 1.1, patchlevel 02.

       The game parser recognizes only algebraic notation.

Name

       xshogi - Xt/Athena user interface for gnushogi

Options

       The following command line options also correspond to X resources that you can set in your .Xdefaults  or
       .Xresources file.

       standardXtoptionsxshogi accepts standard Xt options like -display, -geometry, -iconic, -bg etc.

       -tcor-timeControlminutes[:seconds]
               Amount  of  time  for  a  set of moves determined by movesPerSession.  If this number of moves is
               played within the time control period, xshogi resets the time clocks.  Default: 5 minutes.

       -mpsor-movesPerSessionmoves
               Number of moves in a time control period.  Default: 40 moves.

       -stor-searchTimeminutes[:seconds]
               Tell gnushogi to spend at most the given amount of time searching for each of its moves.  Without
               this option, gnushogi chooses its search time based on the number of moves  and  amount  of  time
               remaining until the next time control.  Setting this option also sets -clockMode to False.

       -sdor-searchDepthnumber
               Tell  gnushogi to look ahead at most the given number of moves when searching for a move to make.
               Without this option, gnushogi chooses its search depth based on the number of moves and amount of
               time remaining until the next time control.  Setting this option also sets -clockMode to False.

       -clockor-clockMode(True|False)
               Determines whether or not to use the clock.  If clockMode is False, the clock does not  run,  but
               the side that is to play next is still highlighted.

       -tdor-timeDelayseconds
               Time  delay  between  moves  during "Load Game".  This doesn't have to be round numbers.  Try -td
               0.4.  Default: 1 second.

       -nspor-noShogiProgram(True|False)
               If this option is True, xshogi acts as a passive shogiboard; it does not try  to  start  a  shogi
               program,  not  even to check whether moves made in Force mode are legal.  It also sets -clockMode
               to False.  Default: False.

       -fspor-firstShogiProgramprogram
               Name of first shogi program.   In  matches  between  two  machines,  this  program  plays  white.
               Default: "gnushogi".

       -sspor-secondShogiProgramprogram
               Name  of  second  shogi  program, if needed.  In matches between two machines, this program plays
               black; otherwise it is not started.  Default: "gnushogi".

       -fhor-firstHosthost
               Name of host the first shogi program plays on.  Default: "localhost".

       -shor-secondHosthost
               Name of host the second shogi program plays on.  Default: "localhost".

       -rshor-remoteShellshell_name
               Some systems do not use rsh as the remote shell.  This option allows a user to  name  the  remote
               shell command.  This should be done in the resource file.

       -mmor-matchMode(False|Init|Position|Opening)
               Automatically  run  a game between firstShogiProgram and secondShogiProgram.  If matchMode is set
               to Init, xshogi will start the game with the initial shogi position.   If  matchMode  is  set  to
               Position,  xshogi  will  start  the  game  with  the  position  specified by the loadPositionFile
               resource.  If matchMode is set to Opening, xshogi will play out the opening  moves  specified  by
               the  -loadGameFile  resource.   If the -saveGameFile resource is set, a move record for the match
               will be saved in the specified file.  Default: "False".

       -lgfor-loadGameFilefile
               Name of file to read a game record from.  Game files are found in  the  directory  named  by  the
               SHOGIDIR environment variable.  If this variable is not set, the current directory is used unless
               the file name starts with a /.-lpfor-loadPositionFilefile
               Name  of  file  to read a game position from.  Position files are found in the directory named by
               the SHOGIDIR environment variable.  If this variable is not set, the current  directory  is  used
               unless the file name starts with a /.-sgfor-saveGameFilefile
               Name  of  file  to  save  a  game  record to.  Game files are saved in the directory named by the
               SHOGIDIR environment variable.  If this variable is not set, the current directory is used unless
               the file name starts with a /.-spfor-savePositionFilefile
               Name of file to save a game position to.  Position files are saved in the directory named by  the
               SHOGIDIR environment variable.  If this variable is not set, the current directory is used unless
               the file name starts with a /.-coordsor-showCoords(True|False)
               If  this  option is True, xshogi displays algebraic coordinates along the board's left and bottom
               edges.  The default is False.  The coordFont resource specifies what font to use.

       -monoor-monoMode(True|False)
               Monochrome mode.  You shouldn't have to specify monochrome.  xshogi will  determine  if  this  is
               necessary.

       -pcor-pieceColorcolor
               Color specification for pieces suitable for XParseColor().  Default: #FFFFD7.

       -scor-squareColorcolor
               Same for squares.  Default: #EBDFB0.

       -wpsor-westernPieceSet(True|False)
               Choose the Western style piece set.

       -npbor-normalPawnBitmapfile-nnbor-normalKnightBitmapfile-nbbor-normalBishopBitmapfile-nrbor-normalRookBitmapfile-nkbor-normalKingBitmapfile
               Names of the bitmap files for the bitmap piece icons.

       -rpbor-reversePawnBitmapfile-rnbor-reverseKnightBitmapfile-rbbor-reverseBishopBitmapfile-rrbor-reverseRookBitmapfile-rkbor-reverseKingBitmapfile
               Names of the bitmap files for the outline piece icons.

       -debugor-debugMode(True|False)
               Turns on debugging printout.

Resources

initString
               The  actual  string  that is sent to initialize the shogi program can be set from .Xdefaults.  It
               can't be  set  from  the  command  line  because  of  syntax  problems.   The  default  value  is
               "new\nbeep\nrandom\neasy\n".   The  "new"  and  "beep" commands are required.  You can remove the
               "random" command if you like; including it  causes  gnushogi  to  randomize  its  move  selection
               slightly  so  that it doesn't play the same moves in every game.  Even without "random", gnushogi
               randomizes its choice of moves from its opening book.  You can also remove "easy"  if  you  like;
               including  it  toggles easy mode off, causing gnushogi to think on your time.  That is, if "easy"
               is included in the initString, gnushogi thinks on your time; if not, it  does  not.   (Yes,  this
               does  seem backwards, doesn't it.)  You can also try adding other commands to the initString; see
               the gnushogi documentation for details.

       blackStringandwhiteString
               These resources control what is sent when  the  Machine  Black  and  Machine  White  buttons  are
               selected.  This is mostly for compatibility with obsolete versions of gnushogi.

       Alternate  bitmaps  for  piece icons can be specified either by choosing one of the built-in sets or with
       the file name resources described above.  There are three built-in sets of piece bitmaps available, large
       (the default), medium, or small.  It is easiest to select the set you prefer in the .Xdefaults file:

       XShogi*boardSize:   Medium

       The font used for button labels and comments can be changed in the .Xdefaults  file.   You  may  want  to
       choose a smaller font if you are using the small pieces:

       XShogi*font:    helvetica_oblique12

       The font used for coordinates (when the showCoords option is True) can be set similarly:

       XShogi*coordFont:    helvetica_10

       If you are using a grayscale monitor, try setting the colors to:

       XShogi*pieceColor:     gray100
       XShogi*squareColor:    gray60

Rules

       Shogi is a Japanese board game played by two  players.   The  object  of  the  game  is  to  capture  the
       opponent's  King.   Shogi  is  played  on  a  nine-by-nine board. The vertical rows are called files, the
       horizontal ones ranks or just rows. Each player has twenty pieces:  one  King,  two  Gold  Generals,  two
       Silver  Generals, two kNights, two Lances, one Rook, one Bishop and nine Pawns.  The player moving up the
       board and making the first move is referred to as black and his opponent white, although  in  Shogi  sets
       all  pieces  have the same colour. They are differentiated only in direction: pieces pointing away from a
       player are his. The pieces lie flat on the board and have their Japanese name written on them.

   MovesKing    one step in any direction per move

       GoldGeneral
               one step per move any way except diagonally backward (as a king but not diagonally backward)

       SilverGeneral
               one step per move forwards or diagonally (as a king but not sideways or vertically backward)

       Knight  one step to left or right, and two steps forward (the  only  piece  which  may  jump  over  other
               pieces)

       Rook    moves vertically or horizontally any distance

       Bishop  moves diagonally any distance

       Lance   moves forward any distance

       Pawn    one step forward

   Promotion
       The  three  rows  furthest  away from a player are called the promotion zone. Apart from the King and the
       Gold, any piece can be promoted to a more powerful piece when it makes a move completely or partly in the
       promotion zone. So, when a piece moves into, out of or fully inside the promotion zone it may be promoted
       upon completion of its move. Promotion is optional, provided that the piece still can make a  legal  move
       in case it is not promoted: if a Pawn or a Lance move to the last row, or a Knight moves to either of the
       last  two rows, it must be promoted. In Shogi sets promoting a piece is done by turning this piece upside
       down. Its promoted name is written on its other side.

       Apart from the King and the Gold General all pieces can promote.  After  promotion  their  moves  are  as
       follows:

       +       Promoted Silver, promoted kNight, promoted Lance and promoted Pawn all move as a Gold.

       +       The  promoted  Rook  in  addition  to  the  moves of the unpromoted Rook can move one step in the
               diagonal directions. It either moves like a Rook or like a King.

       +       The promoted Bishop in addition to  the  moves  of  the  unpromoted  Bishop  can  move  one  step
               horizontally or vertically. It either moves like a Bishop or like a King.

   Capturinganddroppingpieces
       When  one  piece moves onto the same square as an opponent's piece, the opponent's piece is captured. All
       pieces capture in the same way that they move. Captured pieces become part of the capturer's force. In  a
       later  move,  instead  of moving a piece on the board, a player may put a piece that he has captured from
       his opponent back onto the board, in an empty square.  This is called dropping a piece. Pieces are always
       dropped unpromoted: if a promoted piece is captured, it reverts to its unpromoted rank.   Pieces  may  be
       dropped on any empty square on the board with only three restrictions:

       1)      After  dropping  a  piece it must be able to make a legal move. This applies to Pawns, Knights or
               Lances. They may not be dropped onto a square from which they will never be able to move.

       2)      Attacking the King by dropping a Pawn on the square in front of him is not allowed  if  the  King
               cannot  prevent  being  captured on the following move.  To use the Chess expression: checkmating
               the King with a Pawn drop is prohibited.

       3)      A pawn may only be dropped on a file (vertical row) if there is no other unpromoted pawn  of  the
               same player on that file.

   Draws
       The  game  of  Shogi  has  very  few draws (roughly 1 percent), mainly because of the possibility to drop
       pieces. Draws cannot be offered and can arise from two situations:

       1)      A position (including the  pieces  in  hand)  occurs  4  times  with  the  same  player  to  move
               ("Sennichite").  However,  if  this  is caused by consecutive checks (direct attacks on the King,
               threatening to capture it on the next move) by one side, the player giving these checks loses the
               game.

       2)      Both players have moved their King into the the promotion zone (or they cannot be prevented to do
               so) and the Kings cannot be checkmated. In that case the players may decide to count their pieces
               where the King does not count, the Rook and Bishop count as 5 points, and all other pieces as one
               point. Promotion is disregarded. If both players have at least 24  points  the  game  is  a  draw
               ("Jishogi"). If a player has less, he loses the game.

       Of  course,  a  player  can  refuse  to  count pieces when he still has mating chances or chances to gain
       material which would affect the outcome of the counting. There is no strict rule about what to do if this
       is not the case, but nonetheless a player refuses to count up (e.g.  because  he  does  not  have  enough
       points  for  a draw). It has been generally accepted that in such a case the game ends and the pieces are
       counted after one player has managed to get all his pieces protected in the promotion zone.

See Also

gnushogi(6)

Synopsis

xshogi[options]

See Also