https://github.com/aggie-coding-club/selection-chess
https://github.com/aggie-coding-club/selection-chess
cpp learning-oriented
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/aggie-coding-club/selection-chess
- Owner: aggie-coding-club
- Created: 2020-09-15T16:37:05.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-08-30T17:51:15.000Z (almost 4 years ago)
- Last Synced: 2024-12-28T16:45:06.037Z (over 1 year ago)
- Topics: cpp, learning-oriented
- Language: C++
- Homepage:
- Size: 99.6 MB
- Stars: 1
- Watchers: 6
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Selection Chess GUI and the Hippocrene Engine
Selection chess is a variant of chess where players can dynamically rearrange selections of tiles during their turn. The Hippocrene Engine is an engine that shares source code with the GUI, and is an engine which can generate moves. The GUI allows engines to play eachother or humans, and uses established conventions so other engines can be plugged in if compatible.
## Contribution
This is currently a learners project for the Aggie Coding Club, so we are not looking for outside help at this time. This is more intended to be something we can work on to build cool algorithms in our spare time. This is subject to change in the future, whether it be anything from abandonment to fully open-sourcing.
### Getting Started
We have a [document on how to get started](
https://docs.google.com/document/d/1t32vdaahksmd2ImCNaXNv0qEbKwnHjy0MOYP9bsr5Sg/edit?usp=sharing). It will be updated as the project progresses.
### How to Compile
We use [SCons](https://www.scons.org/). Once you have SCons properly installed on your machine, you can compile both the GUI and engine by running `scons` inside of the project folder.
Running `scons -c` will cleanup.
To compile with debug outputs enabled, run `scons debug=1`
If you have multiple compilers you want to use, compile with `scons compiler="[compiler]"`. Otherwise, the default in scons.config will be used.
If you want to compile without the Boost library, use the `noboost=1` flag. Note that this will disable dependent features of the code.
## Standards
Two space indentation. [The One True Brace Style](https://en.wikipedia.org/wiki/Indentation_style#Variant:_1TBS_(OTBS)) is used for bracing, as shown below:
```cpp
void foo(std::string bar, int baz) {
if (m_qux) {
std::cout << "hello world " << baz << std::endl;
} else {
std::cout << bar << std::endl;
}
}
```
Notice that braces are required even for one line `if` or other control statements. One exception to this is control blocks with no implementation, such as:
```cpp
size_t i;
while (i = 0; foo(i); i++); // get lowest value for which foo returns false
return i;
```
### Naming Conventions
We use `.cpp`, `.hpp`, and `.h` in this project. Specifically, `.hpp` implies that it is a header file with implementation, whereas every `.h` corresponds to a matching `.cpp`. Source code files are named in lower_snake_case.
Parameters of a function start with an underscore `_`, and members of a class start with `m_`. Constants use UPPER_SNAKE_CASE. Classes, structs, enums, functions, and methods use UpperCamelCase. Variables use lowerCamelCase.