PAWNY

 

Introduction

Pawny is UCI chess engine with estimated strength FM (FIDE Ranks Classification).

The program supports limited console mode interface for debugging purposes.

For more information on commands supported, see readme.txt located in the .zip package.

Occasionally, Pawny is playing at FICS using the account handle “PawnyX”.

 

Downloads

 

pawny_0.3.1.zip

 

Windows, Linux, Source.

 

Version History

 

 

 

Technical Info

Board rep. and move generation

                        The board is represented as (16*16) array, filled with piece codes.

                        Piece Lists are represented as array of linked lists.

 

Search techniques used:

-          Iterative deepening

-          Alpha-Beta PVS + aspiration (1/5 PAWN)

-          Internal Iterative Deepening

-          Adaptive Null Move Pruning

-          Futility Pruning (including Ext. F.P. and Razoring)

-          Delta Pruning at Quiescence Search, based on SEE  results (1 PAWN value margin)

-          Late Move Reductions (4 Full depth and Reduction of 1 ply)

-          Killer and History Heuristics

-          Transposition Table (1 table/4 entry bucket)

-          Extensions:

·          Check Extension (1 ply)

·          Single Reply to Check Extension (1 ply)

·          Mate Threat Extension (1/2  ply)

·          Queen Prom. Extension (1/2 ply)

·          Pawn Push Extension (1/2 ply)

·          Fractional Depth Representation (*4)

 

Evaluation:

At this time, the evaluation function is still simplistic. It evaluates material, psq tables for each piece. Basic terms in pawn structure are in place – doubled, hanging, passed, backward pawns.

Piece evaluation takes into account factors that are valid game phase independently. Game phase evaluation includes just a couple of things:

Opening evaluation with basic info for piece development, Midgame evaluation – mobility, center control.  Both in combination with king safety.

Rook and Knights material imbalance calculations. Endgame evaluation – Distance and support for passed pawns.

Static exchange evaluation – for presumably bad captures only.

 

Missing Features, Known Bugs and To-Do List

So far it has been tested mostly with ChessBase and BabasChess interfaces. It works under Arena with the remark that output is liable to further changes and improvements.

Further work to be done on transposition table, pawn hash table improvement, e.t.c.

More sophisticated time control would be nice as well. For now is used just a simple time control management that only excludes new iteration if there is not enough time for it –

also a record in the to-do list. There are some known bugs, related to mate handling and mate search (and '#x' displaying) – further work on correcting them trough the TT.

 

Contact

For any impressions, remarks, deprecations, feel free to email me at:  pawnychess@gmail.com

 

 

 

Website counter