1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-2048-cpp

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

2048.cpp

Версия игры «2048» для терминала, написанная на C++.

:tada: Игра была представлена на страницах GitHub в Twitter и Facebook! :tada:

2048 в действии!

Установка

Игра и код предназначены для работы на платформах GNU/Linux и MacOS, но также добавлена кроссплатформенная совместимость с Windows.

Требования

  • Компилятор C++11 (например, g++, clang++, pgc++, icpc и т. д.).
  • Практически любая платформа, включая:
    • Linux;
    • MacOS;
    • Windows (через Cygwin или подсистему Windows для Linux).
  • CMake или Meson.

Установка

  1. Откройте терминал в предпочитаемом каталоге и клонируйте этот проект:
git clone https://github.com/plibither8/2048.cpp
  1. Перейдите в каталог проекта:
cd 2048.cpp

Для CMake и Meson будет использоваться стандартный компилятор C++, установленный на вашей системе. Если вы хотите вручную выбрать компилятор C++, можно добавить CXX=clang++ cmake или CXX=clang++ meson и так далее.

Сборка с помощью CMake

  1. Создайте исполняемый файл и запустите тесты:
ctest -S setup.cmake
  1. Установите программу (необязательно):
cmake --install build
  1. Запустите программу и сыграйте в игру! :tada:
2048    # запустите `build/2048`, если программа не установлена

ИЛИ

Сборка с помощью Meson

  1. Сгенерируйте конфигурацию сборки:
meson build
  1. Создайте исполняемый файл и запустите тесты:
meson test -C build
  1. Установите программу (необязательно):
meson configure build --prefix=$HOME/.local
meson install -C build
  1. Запустите программу и сыграйте в игру! :tada:
2048    # запустите `build/2048`, если программа не установлена

Вклад

Прежде всего, спасибо за ваш вклад! :smile:! Вот несколько моментов, которые следует учесть:

  • Если вы обнаружили ошибку или у вас есть функция, которую вы хотели бы реализовать, создайте проблему.

  • Если вы предложили запрос на вытягивание, убедитесь, что вы запустили clang-format для файлов исходного кода (как .cpp, так и .hpp), если вы внесли изменения в эти файлы.

  • В вашем локальном репозитории запустите git update-index --skip-worktree ./data/*.txt, чтобы изменения в файлах данных не отслеживались git и, следовательно, не были поставлены.

Спасибо

Я глубоко признателен следующим людям:

  • Michael Hirsch
    • очистил код,
    • организовал файлы заголовков более эффективным образом для более эффективной сборки,
    • добавил AppVeyor CI,
    • добавил систему сборки Meson и исправил CMake, а также добавил функцию установки.
  • Aiman Ismail добавил поддержку привязки клавиш Vim.
  • Patrik Huber исправил опечатку в Readme.
  • zestze изменил cstdlib rand на генератор случайных целых чисел C++.
  • Pascal J. Bourguignon добавил поддержку ANSI-стрелок.
  • Jean-Michaël Celerier добавил файл CMakeLists.txt.
  • comwrg сделал продолжительность в статистике и таблице рекордов удобочитаемой, перенося секунды в минуты и часы.
  • Christian Bundy заменил уродливые -, + и... | с помощью символов рисования рамок.
  • Тор Э. Хагеманн (https://github.com/hagemt) исправил проблему №10, вызывающую нежелательный вывод символа «1».
  • Фараз Замир (https://github.com/farazxameer) реализовал функцию сохранения состояния игры и продолжения с сохранённого состояния, а также доработал игровую логику.
  • Дродил (https://github.com/drodil) реализовал проверки для определения существования файлов данных и исправил проблему № 12.
  • Авискар KC (https://github.com/aviskarkc10) добавил клавиши со стрелками в инструкции к игре.
  • Питер Скуччиарино (https://github.com/stripedpajamas) исправил инструкции в файле readme.
  • Марк Фишер-младший (https://github.com/flyingfisch) исправил опечатку.
  • Уго Брандао (https://github.com/jhugobb) полностью реорганизовал существующую структуру проекта и обновил метод сборки для обеспечения соблюдения CMake.
  • Альтон Альварес (https://github.com/mathematicalist) исправил опечатку.
  • cawvyoct (https://github.com/cawvyoct) значительно упростил чтение исходного кода: удалил большинство «магических чисел», заменив их переменными для облегчения обслуживания. Реализовал clang-format.
  • Конг (https://github.com/cxong) отредактировал конструктор класса Game.
  • Тьен До (https://github.com/tiendq) добавил опцию «выход» в главное меню, обновил файл CMakeLists.txt и сделал перечисление Color ограниченным.
  • Скорр Морр (https://github.com/ScorrMorr) сделал многие методы константными.
  • Тангменгцю (https://github.com/tangmengqiu) исправил инструкцию, вызывающую ошибку, в файле readme.

Сопровождающие

Примечания

[GameBoard].getTile(2,0) относится к нулевому столбцу во второй строке, как в этом случае, x = 0 и y = 2. Конкретный тайл обозначается символом @ на следующей игровой доске:

Примечание: индексация строк и столбцов начинается с 0.

┌──────┬──────┬──────┬──────┐
│      │      │      │      │
├──────┼──────┼──────┼──────┤
│      │      │      │      │
├──────┼──────┼──────┼──────┤
│   @  │      │      │      │
├──────┼──────┼──────┼──────┤
│      │      │      │      │
└──────┴──────┴──────┴──────┘

Задачи

  • Добавить главное меню [19.04.2018]
  • Сохранять рекорды / счёт [21.04.2018]
  • Сохранить состояние игры и продолжить с сохранённого состояния
  • ИИ (отменён навсегда)

Лицензия

Авторские права (c) Михир Чатурведи. Все права защищены.

Лицензия MIT.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-2048-cpp.git
git@api.gitlife.ru:oschina-mirror/mirrors-2048-cpp.git
oschina-mirror
mirrors-2048-cpp
mirrors-2048-cpp
master