1# DreamChess 2 3[![Build status](https://travis-ci.org/dreamchess/dreamchess.svg?branch=master)](https://travis-ci.org/dreamchess/dreamchess) 4[![Build status](https://ci.appveyor.com/api/projects/status/9c30h9u3p9bywpf0/branch/master?svg=true)](https://ci.appveyor.com/project/waltervn/dreamchess/branch/master) 5 6## About 7 8DreamChess is an open source chess game. It comes with its own 9engine called Dreamer. 10 11Both DreamChess and Dreamer are compatible with the 12xboard/Winboard chess engine communication protocol. This means that 13DreamChess can be used with other xboard-compatible chess engines such as 14[crafty](http://www.craftychess.com/) and [GNU Chess](https://www.gnu.org/software/chess/). 15Similarly, the Dreamer chess engine can 16be used with other xboard-compatible user interfaces such as [XBoard/WinBoard](https://www.gnu.org/software/xboard/). 17 18DreamChess currently supports Windows, macOS and Linux. It is licensed under the [GPLv3](https://www.gnu.org/licenses/gpl.html). 19 20## Building 21 22The following dependencies are required for building DreamChess: [CMake](https://cmake.org/), [bison](https://www.gnu.org/software/bison/), [flex](https://github.com/westes/flex), [SDL 2.0](https://www.libsdl.org/), [SDL_image 2.0](https://www.libsdl.org/projects/SDL_image/), [SDL_mixer 2.0](https://www.libsdl.org/projects/SDL_mixer/), [Expat](https://libexpat.github.io/) and [GLEW](http://glew.sourceforge.net/). 23 24On Ubuntu this translates to the following package list: gcc, cmake, bison, flex, libsdl2-dev, libsdl2-image-dev, libsdl2-mixer-dev, libexpat1-dev and libglew-dev. 25 26## Controls 27 28DreamChess can be controlled with the mouse and/or the keyboard. You can 29select menu items or chess pieces either by pointing the mouse and left-clicking, or by using the arrow keys and pressing Enter. 30 31The board view can be rotated freely by holding down the middle mouse button and moving the mouse. When using the keyboard, hold down the left Ctrl key 32and press the arrow keys. 33 34The in-game menu can be opened by right-clicking the mouse, or by pressing 35the Esc key. 36 37Additionally, there are several keyboard shortcuts you may like to use: 38 39| Button | Action | 40| --------------- | -------------------------------------- | 41| 'P' Key | View previous move in game history | 42| 'N' Key | View next move in game history | 43| 'R' Key | Retract move (when possible) | 44| Alt+Enter / F11 | Toggle fullscreen mode | 45| Ctrl+F | Toggle FPS counter (title screen only) | 46 47## Acknowledgments 48 49Special thanks go out to the following people: 50 51- François Dominic Laramée - for his excellent [article](https://www.gamedev.net/articles/programming/artificial-intelligence/chess-programming-part-i-getting-started-r1014/) on chess programming 52- Bob Hyatt - for his many useful Usenet posts over the years 53- Dan Potter - for making KallistiOS 54