Skip to content

krummi/ChessEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

###
### Ziggy - v0.7
###

Description
===========

Yet another chess engine. Created with a *little* help and inspiration from other chess engines
such as CPW, Mediocre, TSCP, Glaurung, Stockfish, Fruit, and inspirations and guides from people
like Fritz Reul (Loop) and Ed Schröder (Rebel).

To be done
==========
    # C++'d - I guess. :(
    ! Search extensions.
    ! Fix memory issues.
    ! Deterministic mode.
    ! Some actual parsing of UCI's options.
    # Better transposition entries.
    # Better transposition table (with generations, clusters of entries, etc)
    # Only generate 'good captures' in quiescence.
    # Dynamic R value in Null-Moves.
    ! Killer moves
    ? Contempt factor
    # Endgame tablebases.
    ! Evaluation. :(

Usage instructions
==================

UCI mode:
    java -jar ziggy.jar

Benchmark mode:
    java -jar ziggy.jar <bench> <type=perft | depth | suite> <file=suite/fen file>
                        [time=time for each position (s)] [depth=fixed depth for each position]

Both modes:
    In both UCI and benchmark mode there are a number of settings which can be adjusted
    as requested.

    Setting                           Default  Description
    --------------------------------- -------- -----------------------------------------------------
    mc=<on | off>                     on       Turns Multi-Cut (MC) on or off.
        mc_cutoffs=int                3        Sets MCs C param.
        mc_expand=int                 10       Sets MCs E param.
        mc_reduction=int              2        Sets MCs R param.
        mc_piece=<on | off>           off      Turns MCs piece-check on or off.
        mc_reorder=<on | off>         off      Turns MCs reordering of cut nodes on or off.
        mc_usetrans=<on | off>        off      Will use the transposition table with MC.
        mc_apply=<cut | trans | or>   trans    Where to apply MC:
                                               - cut:   At expected cut nodes.
                                               - trans: When a shallower search indicates fail-high.
                                               - or:    If either condition holds.

    nm=<on | off>                     on       Turns NMs pruning on or off.
        nm_reduction=int              2        Sets NMs R param.

    lmr=<on | off>                    on       Turns LMR on or off.
        lmr_fdm=int                   4        Sets the no. of full depth moves in LMR.

    asp=int                           50       Sets the size of the aspiration window.

Examples:
    java -jar ziggy.jar bench type=suite file=wac.txt time=10
    -- Will run the test-suite Win At Chess, with a time constraints of 10 seconds per position.

    java -jar ziggy.jar bench type=suite file=wac.txt depth=7
    -- Same, but with a fixed depth of 7 instead of time constraints.

    java -jar ziggy.jar bench type=suite file=wac.txt depth=7 lmr=off nm=off mc=off
    -- Same, but without LMR, NM- and MC pruning.

About

Yet another chess engine.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages