xwen99 / starfish

中国象棋引擎 | A Chinese cheese engine written in C++, final project of Spring 2019 Artificial Intelligence at Tongji Univ.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

⭐starfish

Introduction

A Chinese cheese engine written in C++, final project of Spring 2019 Artificial Intelligence at Tongji Univ.

Starfish is featured by its high-efficiency best move searching algorithm. We let the AI figure out the gaming dark magic during deep adversial searching, rather than providing much prior knowledge with it(Because none of us is good at playing Chinese cheese :)).

Module Organization

  • ucci.h/ucci.cpp

    • UCCI communication module
  • tools.h

    • Basic tool functions
  • book.h/book.cpp

    • Opening book processing module
  • buffer.h

    • A fixed opening book extracted from BOOK.DAT in eleeye
  • position.h/position.cpp

    • Move generating module
  • movesort.h

    • Move sorting module
  • search.h/search.cpp

    • best move searching module

Compiler Environment

MSVC 16.1.0

Play with It

Protocol

We support a simplified version of Universal Chinese Chess Protocol(UCCI), a text-based communication protocol between a chess interface and a chess engine.

The supported instructions are:

  1. ucci
  2. isready
  3. position {fen | startpos} [moves < follow-up list>]
  4. go time <milliseconds>
  5. quit

Please refer to http://www.xqbase.com/protocol/cchess_ucci.htm for details.

For Human

starfish-debug.exe provides a simple graphical interface, have fun playing with it.

For Silicon-Based Organism

You may have more common languages with starfish-release.exe.

Why Starfish?

To pay tribute to our predecessors who developed xxfishes...

Since there are already stockfish, sunfish and moonfish, why not starfish?

haixing

Reference

About

中国象棋引擎 | A Chinese cheese engine written in C++, final project of Spring 2019 Artificial Intelligence at Tongji Univ.

License:GNU Lesser General Public License v2.1


Languages

Language:C 92.6%Language:C++ 7.4%