From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * Atlas

an early chess program written in 1967 by Alex Bell at Atlas Computer Laboratory, Chilton. It was basically a resurrected, cleaned up Algol version of Bell's and Barricelli's old program from the early 60s to test evolutionary theories, which had an evaluation function based purely on mobility - at that time the first fully legal chess program to run in England [2], and likely also the base of Barricelli's WCCC 1974 entry Freedom.

Atlas, running on an ICL Atlas computer [3], looked three plies ahead with alpha-beta, and would accept almost any captures in that depth with weighting on swaps of the more powerful pieces, i.e. it would always swap a queen for a queen. If no captures were present it prepared to castle or mini-maximised its mobility. A slight modification prevented it from moving its queen in the first 5 moves [4]. Atlas played a few sparring games against Lancaster [5], John Scott's program, then dubbed "Scott" [6], and largely suffered from horizon effect.

Move Generation

A description of Atlas' move generation techniques along with a mate-in-two solver is given with Algol source code listing in Games Playing with Computers, 3.1 Chess [7]. Atlas uses two distinct 8x8 boards [1:65] and piece lists [O:16] for white and black man with identical piece coding, passing the boards per reference as 'mymanin' or 'opponents' dependent on side to move. Pre-calculated rook and bishop tables contain one vector of direction increments, i.e. east (+1), west (-1), north (+8), and south (-8) for rooks, and further for each square a vector of ray-direction terminal destination squares. The embedded routine 'rookorbishopmove' in scope of the outer move generation routine loops over all four directions, gets increment and terminal target square from the rook or bishop table, and iterates the destination along the ray. Inside the ray-loop it tests whether the target is occupied by an own man, to terminate the ray-loop, otherwise it stores the move, and then tests to break after a capture or even an illegal king capture with an extra exit 'cutoff'.

procedure rookorbishopmove(rookorbishop);
  integer array rookorbishop;
    for j := 0 step 1 until 3 do
      k := rookorbishop[j]; k is increment:
      l := rookorbishop[4 * square + j]; l is terminal square
      for i := square + k step k until l do 
        if mymanin[i] ≠ 0 then goto newdirection;
        c := c+1;
        moves[c] := i;
        if opponents[i] ≠ 0 then 
          if opponents[i] = 6 then goto cutoff else goto newdirection
  end of rookorbishopmove;


In the early 70s, Atlas evolved to Master in collaboration with Peter Kent, and later with John Birmingham and chess expert John Waldron, while Alex Bell finally left Chilton.


See also


External Links

Chess Program


Calypso (mythology) from Wikipedia


Up one Level