Skip to content

Latest commit

 

History

History
41 lines (34 loc) · 3.25 KB

README.rdoc

File metadata and controls

41 lines (34 loc) · 3.25 KB

This is the Chess app that won first prize back in 2005 for the OBEA Computer Programming Contest by Arwid (Arvydas) Bancewicz at age 17.

Extracted from javadoc.

  • algorithms/

    • MiniMax

      serves as the foundation of chess programs. It is a strategy that minimizes the maximum risk for a player, going through all of the branches in the move tree and evaluating the board position.
    • AlfaBeta

      is a refined minimax strategy that identifies unfavorable branches in the move tree and removes them early, thus speeding up the search process. This technique is called "alfa-beta pruning".
    • NegaScout

      is a variation of the "alfa-beta pruning" technique.
    • PrincipalVariation

      is a variation of alpha-beta search where all nodes outside the principal variation are searched with a minimal window beta = alpha + 1. The idea is that with perfect move ordering all moves outside the principal variation will be worse than the principal variation.
    • MoveAlgorithm (SuperClass)

      is the super class for the search algorithms. It consists of all the required utilities defining a playable chess game, such as: move definitions, composing moves from move definitions, applying board position circumstances to the move definition (eg. a piece cannot move to put it's king in check), composing lists of possible moves, and board evaluations based on piece and position costs.
  • core/

  • gui/

  • media/

  • network/

  • online/

  • properties/

Copyright © 2005 Arwid (Arvydas) Bancewicz

GNU GENERAL PUBLIC LICENSE Version 2, June 1991.

See source/chess/GNULicence.txt for details.