开源软件名称:2048-cpp
开源软件地址:https://gitee.com/mirrors/2048-cpp
开源软件介绍:
2048.cpp
Terminal version of the game "2048" written in C++.
Featured on GitHub's Twitter and Facebook pages! SetupThe game and code is made to run natively on the GNU/Linux and MacOS platforms, but cross-platform compatibility for Windows has been added too. Requirements- C++11 compiler (e.g.
g++ , clang++ , pgc++ , icpc , etc.) - Virtually any platform including:
- Linux
- MacOS
- Windows (via Cygwin or Windows Subsystem for Linux)
- CMake or Meson
Installation- Open your terminal in your preferred directory and clone this project:
git clone https://github.com/plibither8/2048.cpp - Enter the project directory:
For both CMake and Meson, the default C++ compiler on your system will be used.If you wish to manually select a C++ compiler, optionally add CXX=clang++ cmake or CXX=clang++ meson etc. Building with CMake- Build the executable and run tests
- Install the program (optional)
- Run the program and play the game!
2048 # run `build/2048` if game is not installed OR Building with Meson- Generate build configuration
- Build the executable and run tests
- Install the program (optional)
meson configure build --prefix=$HOME/.localmeson install -C build - Run the program and play the game!
2048 # run `build/2048` if game is not installed ContributingFirst of all, thank you for contributing ! A few things to note: If you have found a bug, or have a feature that you'd like implemented, raise an issue. If you have proposed a pull request, make sure that you run clang-format on the source code (both, .cpp and .hpp ) files if you've made changes there. In your local repository, run git update-index --skip-worktree ./data/*.txt to ensure that changes to the data files are not tracked by git, and thus are not staged.
ThanksI deeply appreciate the help of the following people: - Michael Hirsch
- cleaned up the code,
- organised the header files in a better way for a more efficient build,
- added the AppVeyor CI,
- added the Meson build system and, fixed CMake and added install feature.
- Aiman Ismail added support for Vim keybinding.
- Patrik Huber fixed a typo in the Readme.
- zestze changed
cstdlib rand to C++ random int generator. - Pascal J. Bourguignon added support for ANSI arrow keys.
- Jean-Michaël Celerier added
CMakeLists.txt file. - comwrg made the duration in the statistics and highscores human-readable, wrapping seconds to minutes and hours.
- Christian Bundy replaced the ugly -, + and | with box-drawing characters.
- Tor E Hagemann fixed issue #10, causing unwanted character
1 to be printed. - farazxameer implemented feature to save a game state and continue from a saved game state, refined game logic.
- drodil implemented checks to ascertain existence of data files, fixed issue #12
- Aviskar KC added arrow keys to game instructions.
- Peter Squicciarini fixed readme instructions.
- Mark Fischer, Jr. fixed a typo.
- Hugo Brandão completely reorganised the existing project structure and updated the build method to enfore CMake.
- Alton Alvarez fixed a typo.
- cawvyoct made the source code much, much easier to read: removed most magic numbers, replacing them with variables to ease maintenance. Implemented
clang-format . - Cong edited the
Game class constructor. - Tien Do added the 'exit' option in the main menu, updated the
CMakeLists.txt file and made Color enum to a scoped enum. - ScorrMorr made many methods
const s. - tangmengqiu fixed an error-causing instruction step in the readme.
MaintainersNotes[GameBoard].getTile(2,0) refers to the 0th tile (or column) in 2nd row as in this case, x = 0 and y = 2. The specific tile is denoted the by '@' symbol in the following gameboard:
Note: row and column indexing starts at 0.
┌──────┬──────┬──────┬──────┐│ │ │ │ │├──────┼──────┼──────┼──────┤│ │ │ │ │├──────┼──────┼──────┼──────┤│ @ │ │ │ │├──────┼──────┼──────┼──────┤│ │ │ │ │└──────┴──────┴──────┴──────┘ To-Do
LicenseCopyright (c) Mihir Chaturvedi. All rights reserved. Licensed under the MIT License. |
请发表评论