GithubHelp home page GithubHelp logo

dratini's Introduction

Title

It does minimax search with alpha-beta pruning together with some other optimizations such as magic-move generation, null-move optimization and quiescence search. The board representation is based on bitboards. The engine isn't that good yet, although it's not easy to defeat it (: It's ELO lies around 1800.

Other engines and chess programming resources

  1. Chessprogramming Wiki.
  2. Tom Kerrigan's Simple Chess Program Source Code
  3. Stockfish

TO-DO List

  • Speed statistics
  • More efficient bug-free transposition table
  • Unit tests
  • Self-play script
  • New board move making and validity checking
  • Testing new board representation
  • Move generation
  • Testing move generation
  • Better Move ordering
  • Many more things I forgot to write...
  • ...
  • New Search optimizations
  • Getting Dratini's UCI protocol to work with xboard
  • Detailed analysis with pseudocode of other engines' search functions (Rodent III, Ethereal and Halogen)
  • Using cutechess to make Dratini vs. Dratini matches
  • Creating dir with docs and parallelized cutechess tournaments
  • Understand profiling and try to use it if it makes sense
  • Programming bench
  • Be able to play against Sungorus
  • Clone Sungorus eval function for benchmarking
  • Be able to benchmark in server
  • Test move picker
  • Speed up board class
  • Implement simpler (copied) search function
  • Implement move making and move validity checking benchmark
  • Implement perft and compare old versus new board functions versus Sungorus
  • Implement SEE Benchmark and improve SEE function speed
  • Implement changes in search function and test against previous version
  • Integrate NNUE code (only FEN probing) and test against previous version
  • Finish AVX2 implementation and try to use AVX512
  • Clean up unused code and macros

What does Dratini mean?

dratini's People

Contributors

obalcells avatar

Watchers

 avatar  avatar

dratini's Issues

Snapshot loading triggers infinite loop

When a snapshot is loaded, it causes an infinite loop in main.cpp.
The program can't parse input after loading a game snapshot.

engine> Error at parsing input, try again

The following snapshot snapshots/error-e1g1.snapshot triggers the error:
0
63
0
0 3
0 1
0 2
0 4
0 5
6 6
6 6
1 1
0 0
0 0
0 0
6 6
0 0
0 0
0 2
0 0
6 6
6 6
6 6
6 6
6 6
0 1
6 6
6 6
6 6
6 6
6 6
0 0
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
6 6
1 0
1 0
1 0
1 0
1 0
1 0
1 0
1 0
1 3
1 1
1 2
1 4
1 5
1 2
6 6
1 3

Castling flag not disabled

Castling flag for individual towers 1, 2, 8, 16 isn't being disabled when the tower gets eaten or moves. A castling move is generated even when the tower isn't in the right position, so when move is taken back an additional tower is created, which triggers the assert(state_now.same(state_before)).

Assertion error in win compilation?

Hello Oscar,

When compiling Dratini for windows and let it start from cmd it will always crash after its first move,
with the error message below (also I see no thinking output except the final ove BTW)

Assertion failed: go_struct->param_name == MOVETIME, file src/uci.cpp, line 79

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

I have to mention that I also need to insert includes of <assert.h> in three files,
in board/move and uci.cpp, to make it compile at all.

Do you have any idea what the problem might be? Oh, not to forget this was for revision 69.

Guenther

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.