GithubHelp home page GithubHelp logo

23jura23 / intellector Goto Github PK

View Code? Open in Web Editor NEW
10.0 2.0 1.0 599 KB

Настольная игра с гексагональным полем наподобие шахмат

Home Page: https://intellector.info

C++ 99.04% CMake 0.84% Shell 0.12%
cpp ncurses chess intellector

intellector's Introduction

Intellector

О проекте

Основная идея

Интеллектор - настольная игра с гексагональным полем наподобие шахмат.

В интеллектор играют 2 игрока, за белых и чёрных соответственно. Каждый по очереди ходит своими фигурами. Цель - срубить вражескую фигуру "Интеллектор". В отличие от классических шахмат с квадратными клетками, в интеллекторе доска состоит из шестиугольных ячеек:

Поле интеллектора

Подробнее узнать об игре, а также ознакомиться с правилами, вы можете на официальном сайте игры

Проект

Данный проект - реализация Интеллектора в виде компьютерной игры.

Текущая версия проекта представляет собой консольное приложение, написанное на ncurses.

Скриншот игры

Программа работает в терминале и поддерживает только ввод с клавиатуры, засчёт чего не требует графической оболочки для использования.

Этот проект является учебным в рамках 1 курса программы "Прикладная математика и информатика" Санкт-Петербургской Высшей Школы Экономики, 2019-2020 гг.

Установка

Зависимости

Операционная система: OS Linux или MacOS

Терминал, поддерживающий 256 цветов. Чтобы это проверить, введите

$ tput colors

Значение должно быть равно 256.

Библиотеки

Ubuntu, Debian, Linux Mint
  • ncurses

    $ sudo apt install libncurses5-dev libncursesw5-dev
    

    При разработке данного приложения использовалась версия 6.1. Впрочем, более старые версии тоже должны работать.

  • doctest

    Используется для тестирования

    $ sudo apt install doctest-dev
    

    Использовалась версия 2.3.7, но и более старые версии должны работать.

Другие операционные системы

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

Также вы можете скачать наиболее новые стабильные версии библиотек и собрать их из исходников:

Примечание

Также для разработки программы используется figlet, позволяющий создавать ASCII картинки и баннеры.

Сборка

Для сборки запустите скрипт:

$ ./build.sh

Использование

Для запуска после сборки:

$ ./start.sh

Перемещение по программе с помощью клавиатуры

Вы можете перемещаться по меню с помощью клавиш w, s, а также стрелок вверх 🠕 и вниз 🠗. Выбор пункта меню происходит при нажатии на пробел.

На поле вы можете перемещать курсор с помощью клавиш q,w,e,a,s,d в соответствии с направлением грани шестиугольника:

Направления движения курсора

Для выделения фигуры переместите на неё курсор и нажмите пробел

У фигуры подсветятся поля, доступные для хода. Вы можете переместить курсор на одно из них и снова нажать пробел, тогда фигура сходит на это поле. Вы также можете нажать нажать пробел на выделенной вами фигуре, тогда с неё снимется выделение. Другой способ снять выделение - нажать клавишу c (clear selection).

После того, как вы сходили, наступает ход противника. В зависимости от настроек, следующим ходит либо ваш оппонент, играющий с вами за одним компьютером по очереди, либо бот определенного уровня сложности.

В игре также поддерживается история ходов. Чтобы показать её, нажмите h, справа появится боковое меню истории с совершенными ходами. Чтобы скрыть его, также нажмите h.

Чтобы отменить ход, нажмите u, чтобы обратно повторить его, нажмите Shift-u.

В ситуации, когда вы дошли пешкой до последнего ряда поля, вы можете выбрать фигуру, в которую хотите превратиться. Это можно сделать с помощью клавиш r и f, пролистывая доступные фигуры, а затем выбрать нужную и сходить на пробел.

Чтобы выйти из игры и вернуться в главное меню, вы можете нажать x или Esc (в некоторых терминалах после нажатия Esc нужно нажать его ещё раз или подождать пару секунд).

Обратите внимание, что на данный момент игра работает только на английской раскладке клавиатуры. Следите за тем, нажат ли у вас Caps Lock - с ним игра работать также не будет.

Настройки

В игре есть ряд вкладка с рядом настроек:

  • Настройка уровня сложности бота - от 1 до 6
  • Настройка цветовой темы:
    • Classic
    • Dracula
    • Snow blue

Авторы

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.