From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * MyChess

MyChess II [1]

David Kittinger's first chess program, developed in 1979 initially for the 8-Bit Z80 CPU written in assembly language to run under CP/M. It had its quite successful debut at the ACM 1979 and the PCW-MCC 1979 some days later, and further played the MCC 1980 and the WCCC 1980 supported by book-author John Urwin, and the ACM 1980 and ACM 1981.

In 1981 Kittinger was hired by Peter Auge, and MyChess was ported to Novag's dedicated chess computers [2], a tiny Fairchild F8 based program for Novag Micro Chess, a smaller 6502 based program for the Super Sensor IV, and the Z80 program for Savant and the Robot Adversary.



from History and Anatomy of MYCHESS by David Kittinger [3]:

MYCHESS uses an iterative Type A search,  with alpha-beta pruning as well as the killer and capture heuristics. It will predict its opponents best move, and start, analyzing replies while the opponent is still thinking. One extra ply is examined before backing up from a best variation if the side to move can have anything captured. 
The desirability of a possible position is "scored " on the basis of material strength, using a "swap off" evaluator to resolve situations where something is under attack. If a decision can not be made using this score, then a secondary positional score is generated, which takes into account such features as pawn structure, piece placement, and mobility. When a possible position is found which is better than the current best variation, it is saved in the ply table ; otherwise it is discarded. 

Move Generation

MyChess focused on speed and had completely independent move generation for white and black. As mentioned by its author, one of the funny things about MyChess is that it originally had two 16 byte arrays as piece-list, but fixed by the index, so that it could only promote a pawn to a captured piece [4]. Continuation from History and Anatomy of MYCHESS:

Moves are generated serially and only as necessary, to save time. The possible moves from a position are examined in the following order:

  1. Best variation from previous iteration
  2. Winning or even captures
  3. Castle moves
  4. En passant captures
  5. Killer moves
  6. Two best regular moves from ply one
  7. Losing capture moves (sacrifices)
  8. Other moves

Pawn promotions are handled by the capture routines or regular pawn move routine, depending on whether the capture is made while promoting. Regular moves are generated piece by piece, starting with the king's rook pawn and ending with the king.

Further Developments

MyChess was further ported to the 6502 and compatible CPUs to run on a Commodore 64 and Commodore 128 and market as MyChess II by Beyond Software[5] , and also to the 16-Bit 8086, released by Software Toolworks in 1984 for the IBM PC and MS-DOS operating system [6], forerunner of Chessmaster 2000. The 6502 version was apparently also the base for Novag's Constellation and Super Constellation.

See also


Forum Posts

External Links


Up one level