DevMethology-lab2

module
v0.0.0-...-00f05b7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 24, 2024 License: MIT

README

DevMethology-lab2

Maintainability

Overview

demo

Usage

Склонируйте себе проект:

https://github.com/MikhailLipanin/DevMethology-lab2.git

Для того чтобы запустить игру, воспользуйтесь бинарником в директории bin/:

./bin/app --mode geom-progression

Для того, чтобы запустить код с исходников, воспользуйтесь Makefile .phony:

  • Игра "НОК":
make lcm
  • Игра "Геометрическая прогрессия":
make geom-progression

Requirements

golang 1.23.0+

Задание

  1. Создание приветствия. Поприветствуйте пользователя в игре. Спросите у пользователя его имя и поприветствуйте его по имени: Welcome to the Brain Games! May I have your name? John Hello, John!

Код, реализующий этот функционал, должен быть в отдельном файле src/cli.* относительно директории проекта, а в исполняемом файле bin/brain-games.* сделайте вызов. Для этого код нужно поместить в функцию и импортировать ее в исполняемый файл.

  1. Настройка линтера. (Доп.задание лучше сделать, описание приведено только для JS, если у вас другой язык, посмотрите, как это сделать)

  2. Установите следующие пакеты: eslint, eslint-config-airbnb-base, eslint-plugin-import 2. Настройте правильно .eslintrc.yml. Документация: https://eslint.org/docs/user-guide/configuring. Сверяйтесь с nodejs-package

  3. Создайте задачу make lint, которая должна запускать npx eslint .

  4. Подключите eslint к своему редактору, убедитесь что все работает. Скорее всего, понадобится поставить eslint глобально

  5. Исправьте все ошибки, которые выдает линтер. Отключите правила no-console (оно не актуально для nodejs разработки) и import/extensions (чтобы получить возможность указывать при импорте файлы с расширением)

  6. Игра "НОК" Необходимо реализовать игру "наименьшее общее кратное (НОК)". Суть игры в следующем: пользователю показывается три случайных числа, например, 5 7 15. Пользователь должен вычислить и ввести наименьшее общее кратное этих чисел.

Вывод должен получиться следующий:

the smallest common multiple

!

, !

В случае, если пользователь даст неверный ответ, необходимо вывести:

  1. Игра "Геометическая прогрессия" Показываем игроку ряд чисел, образующий геометрическую прогрессию, заменив любое из чисел двумя точками. Игрок должен определить это число. • Рекомендуемая длина прогрессии – 10 чисел. Длина может генерироваться случайным образом, но должна содержать не менее 5

чисел • Позиция спрятанного элемента каждый раз изменяется (выбирается случайным образом)

Пример:

Question: 1 2 4 8 .. 32 64 128

!

, !

В случае, если пользователь даст неверный ответ, необходимо вывести:

Задачи

  1. Реализуйте необходимую логику для работы игры.

  2. Проверьте работоспособность новой игры. 3. Добавьте в README.md аскинему (https://asciinema.org/) с запуском и демонстрацией различных исходов игры (дополнительное задание за доп.баллы). 4. Подключите к проекту сервис по проверке качества кода: www.CodeClimate.com.

Разместите значок Maintainability в файле readme вашего репозитория.

  1. На данном этапе можно заметить, что игры имеют общий порядок выполнения (задать вопрос, получить ответ, сравнить ответ и т.д.). Эту логику можно вынести в одно место и переиспользовать внутри конкретных игр для устранения дублирования кода. С введением второй игры у вас появляется общая для всех игр логика (Эту логику можно поместить в отдельный файл). Главная задача этого шага – построить архитектуру запуска игр так, чтобы эта логика была в одном месте и управляла играми. Правильная организация файловой структуры хорошо помогает понимать структуру проекта. Хорошим решением будет положить все игры (и только игры) в директорию games. Максимальное количество раундов одинаково для всех игр и должно быть равно трём.

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

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL