
 Autor, Copyright:
Zbigniew Lisiecki,
zbyszek.evot.org,
June 2003, GNU Public Licence: copy, change and use but
don't sell and leave this message.
 History:
kółko i krzyżyk means in polish circle (white) and cross (black).
 How to play:
Begin with File.New Game. Put your pieces (black)
to get five in one line.
File.Save is switched off in an Internet version (no write allowed).
 Edit Menu:
With Edit you can put white or black on the board,
or delete them with Edit.empty.
Then chose Edit.Play to start computer to play.
"<" is same as "Take back", and ">" is "Move forward".
 Options Menu:
Evaluate computes the statical value of the current game situation.
In the playing algorithm it is used to calculate the leaves of a
positions tree.
Accounted for shows fields take into account while current computing
TTab on/off switchs off or on the transposition table. Transposition
table is used to store already computed positions for next use.
show TTab % displays the percentage of transpositions used more than
once. It currently shows that TTab has little influence.
show presorted % displays the number of computed positions as a
percentage of all possible positions accounted for. This limiting
is due to presorting.
show depth % displays how many positions has been computed at each
depth 1...7
hqueue debug prints on stdout how a hash queue used for TTab is working.
compute debug prints out the work of a main computing loop
newmoves debug prints out the work of a routine calculating new moves
m3/4 debug prints the work of routines finding 3, or 4 pieces in line.
 Parameters:
max width is the maximal number of possible moves that enter into
computation on each search tree branch.
max depth is the maximal number of plys of a search tree.
mmax depth is max depth in the case of 3 pieces in line.
debug depth limits lila output to this number of plys.
shown depth limits debug output to this number of plys.
max ram is maximal RAM used for transposition table.
hash size: Transpostion table is constructed with a hash queue. Hash
size is the number of queue heads.
alpha and beta are initial values for the main algorothm, which is
a AlphaBetaSearch.
add3 is a paramter added when 3 in line are found.
 Sources:
Sources consist of a GUI in ox.java,
main computation machine in game.java
and a hash queue in hqueue.java. A simple alphabetasearch
from a chess computing is used. First we test if there are already
five in one line and for certain conditions with four and three
in line which imply an immediate answere. Then new moves are
calculated from a countur about a current position.
Evaluate() calculates the number of all possible fives.
Sources:
ox.java
game.java
hqueue.java
ox.php

