|
Joust
- A Two-Person, Perfect Combinatorial Game
Get
the Joust Source
Get
the GAMESMAN Source
Authors:
Isaac
"Bug-Slayer" Greenbride [University of California
at Berkeley]
Dave "Codewarrior" Le [University of
California at Berkeley]
GAMESMAN
Author:
Professor
Dan Garcia [University of California at Berkeley]
---------------------------------------------------------------------
About
Joust
Joust
is an addon module for GAMESMAN, a finite, two-person,
perfect-information game generator. It was was coded
completely in ANSI C and was developed on the UNIX platform.
An XWindow version of GAMESMAN is available, implemented
in ANSI C and Tcl/Tk. An XWindow version of Joust may
be available in the future. Joust was developed in conjunction
with with several
other addon modules by other students under the
direction of Professor Dan Garcia.
About
GAMESMAN:
Game-independent
Automatic Move/Position-Tree Exhaustive-Search,
Manipulation And Navigation
GAMESMAN
is what you could call a "puzzle-solving game engine."
The purpose of GAMESMAN, and for developing Joust on
GAMESMAN, is to visually teach players how to play by
actually "solving" a game and instructing
players on the best possible moves in every situation.
GAMESMAN was written and developed by Professor Dan
Garcia of the University of California at Berkeley.
Information on development and analysis of GAMESMAN
can be found at GAMESMAN
main page.
How
To Play "Real Joust"
The
game of Joust is quite similar to the board game Amazons.
In Joust, two players control a single knight chess
piece that are placed anywhere within a 5x5 to 12x12
chess board. Players take turn moving their pieces on
the board in knight fashion (L-shaped movement). After
a player's piece has been moved, the square that the
piece was originally located is now considered "burned."
No piece may occupy that square again for the remainder
of the game. Pieces may not move to squares that they
cannot reach in via knight movement, are occupied by
another piece, or are burned. The player who cannot
move any longer is the losing player (and thus the opponent
is the winner). More information on the mechanics of
play can be found on Gerry
Quinn's Mathematical Game Page.
How
to Play GAMESMAN Joust
Concession
Due to the complexity of Joust, a decision was made
when implementing GAMESMAN Joust to limit the board
size to below 5x5 in order to keep the GAMESMAN evaluator
intact as well as ensure that game solving would finish
before the end of time.
Additions
While we were forced to limit the game's board size,
we siezed the opportunity to add a variety of fun new
options that reinvent the game itself, as well as offer
new challenges to solve. New features beyond the original
Joust specification include:
- The
option to choose to play (move) as a King, Queen,
Bishop, and Rook, as well as a Knight.
- The
ability to burn a square other than your previous
square (which we will refer to as "grenading").
Grenading is based on one of two options: Piece-type
burning (burn a square relative to your position based
on the movement of the piece that you choose to burn
as) and Arbitrary burning (burn any location on the
board that is unoccupied/unburned).
- The
option to choose when to grenade: relative to your
position before you move or relative to your position
after you move.
- The
option of playing on non-square boards (such as 3x4).
Playing
Joust
On
starting Joust, you will be presented with the GAMESMAN,
which is identical in all implemented game modules.
From
here you can choose to enter the Debug Menu of the game.
The Debug Menu was key to eliminating bugs encountered
throughout the game, but can also be used to play a
two human player game.
From
the game's main menu, you can set the various options
of the game before the game begins. Choose your movement
type and grenade type...
...as
well as your method of burning.
Once
all necessary options are set, GAMESMAN will begin solving
the game based upon the options you selected. The amount
of time required to evaluate the game depends on the
system on which the game is being solved on, as well
as the options that were selected. Choosing options
that allow players vastly more options in movement and
burning. Choosing a queen, a piece with superior mobility,
gives far more complex options than choosing a king,
who is limited to the squares around him. Or choosing
to burn only your previous square limits yourself to
one potential burn while choosing arbitrary burns, which
would give virtually the entire board for potential
burns, multiplies your options.
 |
After
the game has finished solving, you are given the text
interface for the game. Players are represented as X
and O on the board. Players input moves by inputting
two two-digit numbers, the first being the location
of the square that you wish to move to and the second
being the location of the square you wish to burn based
on the legend on the left. If you are playing with grenading,
your burn input will affect your grenade location and
your previous square burn will occur automatically.
If you are not playing with grenades, your burn input
will be limited to your previous square.
 |
Now,
the beauty of GAMESMAN. You can choose to play normally
by figuring out potential move and burn locations yourself
or by instructing GAMESMAN to tell you all your valid
moves. However, you can also choose to have GAMESMAN
tell you all "Safe Moves," moves that, if
chosen, will ensure that you won't lose the game. This
key behind GAMESMAN allows you to easily analyze your
move, as well as the game in general, to pick out advantageous
positions and develop a general strategy for playing
the game.
---------------------------------------------------------------------
Links
Download
Text-Version of the Joust Module
Download
GAMESMAN
Professor
Dan Garcia's Main GAMESMAN Site
Professor
Dan Garcia's Game Theory Research Site (with links
to other game modules)
Gerry
Quinn's Mathematical Game Site and Joust
Site
---------------------------------------------------------------------
Site and Images May Not Appear Properly on Netscape
Browsers
Page
Last Updated Thursday 2001-12-20 :: 1135 PST
|