Skip to content

Repository files navigation

Hexlet tests and linter status:

Actions Status Quality Gate Status

HW-10 Игра "Простое ли число?"

Задачи:

  • Добавьте в директорию bin новый исполняемый файл с названием brain-prime.js.
  • Реализуйте необходимую логику для работы игры.
  • Добавьте ещё одну запись в секцию bin в package.json.
  • Проверьте работоспособность новой игры.
  • Добавьте в README.md аскинему с запуском и демонстрацией различных исходов игры.
  • Asciinema

HW-9 Игра "Арифметическая прогрессия"

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

  • Рекомендуемая длина прогрессии – 10 чисел. Длина может генерироваться случайным образом, но должна содержать не менее 5 чисел Позиция спрятанного элемента каждый раз изменяется (выбирается случайным образом)

  • Пример:

brain-progression

Welcome to the Brain Games!
May I have your name? Sam
Hello, Sam!
What number is missing in the progression?
Question: 5 7 9 11 13 .. 17 19 21 23
Your answer: 15
Correct!
Question: 2 5 8 .. 14 17 20 23 26 29
Your answer: 11
Correct!
Question: 14 19 24 29 34 39 44 49 54 ..
Your answer: 59
Correct!
Congratulations, Sam!

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

Question: 5 7 9 11 13 .. 17 19 21 23
Your answer: 1
'1' is wrong answer ;(. Correct answer was '15'.
Let's try again, Sam!

Задачи:

  • Добавьте в директорию bin новый исполняемый файл с названием brain-progression.js
  • Реализуйте необходимую логику для работы игры
  • Добавьте ещё одну запись в секцию bin в package.json
  • Проверьте работоспособность новой игры
  • Добавьте в README.md аскинему с запуском и демонстрацией различных исходов игры
  • Asciinema

Подсказки

  • Чтобы создать последовательность, лучше сделать отдельную функцию. Она будет рассчитывать числа по такой формуле::
currentElement = start + index * step

HW-8

  • Реализовать игру "наибольший общий делитель (НОД)". Суть игры в следующем: пользователю показывается два случайных числа, например, 25 50. Пользователь должен вычислить и ввести наибольший общий делитель этих чисел.

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

brain-gcd

Welcome to the Brain Games!
May I have your name? Sam
Hello, Sam!
Find the greatest common divisor of given numbers.
Question: 25 50
Your answer: 25
Correct!
Question: 100 52
Your answer: 4
Correct!
Question: 3 9
Your answer: 3
Correct!
Congratulations, Sam!

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

Question: 25 50
Your answer: 1
'1' is wrong answer ;(. Correct answer was '25'.
Let's try again, Sam!

Задачи:

  • Добавьте в директорию bin новый исполняемый файл с названием brain-gcd.js.
  • Реализуйте необходимую логику для работы игры.
  • Добавьте ещё одну запись в секцию bin в package.json.
  • Проверьте работоспособность новой игры.
  • Добавьте в README.md аскинему с запуском и демонстрацией различных исходов игры.
  • Asciinema

HW-7 Игра: "Калькулятор"

Суть игры: пользователю показывается случайное математическое выражение, например 35 + 16, которое нужно вычислить и записать правильный ответ.

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

brain-calc

Welcome to the Brain Games!
May I have your name? Sam
Hello, Sam!
What is the result of the expression?
Question: 4 + 10
Your answer: 14
Correct!
Question: 25 - 11
Your answer: 14
Correct!
Question: 25 * 7
Your answer: 175
Correct!
Congratulations, Sam!

Достаточно реализовать следующие операции: +, - и *. Операции, как и числа, выбираются случайным образом. В случае, если пользователь даст неверный ответ, необходимо вывести:

Question: 25 * 7
Your answer: 145
'145' is wrong answer ;(. Correct answer was '175'.
Let's try again, Sam!

и завершить игру.

На данном этапе можно заметить, что игры имеют общий порядок выполнения (задать вопрос, получить ответ, сравнить ответ и т.д.). Эту логику можно вынести в одно место и переиспользовать внутри конкретных игр для устранения дублирования кода.

BP: hexlet-pairs (если нужно) Принцип открытости закрытости Интерфейс Побочные эффекты Построение правильной архитектуры

Задачи:

  • Добавьте в директорию bin новый исполняемый файл с названием brain-calc.js.
  • Реализуйте необходимую логику для работы игры.
  • Добавьте ещё одну запись в секцию bin в package.json.
  • Проверьте работоспособность новой игры.
  • Добавьте в README.md аскинему с запуском и демонстрацией различных исходов игры.
  • Asciinema HW-7

HW-6 Игра: "Проверка на чётность"

  • Необходимо реализовать игру "Проверка на чётность". Суть игры в следующем: пользователю показывается случайное число. И ему нужно ответить yes, если число чётное, или no — если нечётное:
Welcome to the Brain Games!
May I have your name? Bill
Hello, Bill!
Answer "yes" if the number is even, otherwise answer "no".
Question: 15
Your answer: yes

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

'yes' is wrong answer ;(. Correct answer was 'no'.
Let's try again, Bill!

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

Correct!

и приступить к следующему числу.

Пользователь должен дать правильный ответ на три вопроса подряд. После успешной игры нужно вывести:

Congratulations, Bill!

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

brain-even

Welcome to the Brain Games!
May I have your name? Sam
Hello, Sam!
Answer "yes" if the number is even, otherwise answer "no".
Question: 15
Your answer: no
Correct!
Question: 6
Your answer: yes
Correct!
Question: 7
Your answer: no
Correct!
Congratulations, Sam!

Любой некорректный ввод считается ошибкой (например, n) и равносилен неправильному ответу. Помним про BP: Don’t repeat yourself, YAGNI, KISS, Магические числа, Предикаты

  • Добавьте в директорию bin новый исполняемый файл с названием brain-even.
  • Реализуйте необходимую логику для работы игры. Файлы, которые мы добавили ранее (src/cli.js, bin/brain-games.js), оставьте, как есть, и не смешивайте с остальным кодом. cli.js не предназначен для описания логики игр.
  • Добавьте ещё одну запись в секцию bin в package.json:
"bin": {
    "brain-games": "bin/brain-games.js",
    "brain-even": "bin/brain-even.js"
  }
  • Выполните отладку публикации и убедитесь, что после установки пакета команда brain-even в терминале запускает игру.
  • Запишите аскинему с примером установки пакета, запуска игры, победой и поражением игрока. Опубликуйте её в сервисе и добавьте ссылку в README.md.
  • Asciinema HW-6

HW-5

  • Зарегистрируйтесь в SonarQube и добавьте в него проект
  • Добавьте в README бейджи
  • Установите и настройте eslint. Документация. Сверяйтесь с nodejs-package
  • Создайте задачу make lint, которая должна запускать npx eslint .
  • Подключите eslint к своему редактору, убедитесь что все работает. Скорее всего, понадобится поставить eslint глобально
  • Исправьте все ошибки, которые выдает линтер

HW-4

  • Подключите библиотеку readline-sync.
  • Поприветствуйте пользователя в игре. Спросите у пользователя его имя и поприветствуйте его по имени:
brain-games
Welcome to the Brain Games!
May I have your name? John
Hello, John!

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

  • Проведите отладку публикации новой версии пакета.

HW-3

  • Пропишите в начале файла brain-games.js шебанг с правильно указанным интерпретатором (node) — #!/usr/bin/env node.
  • Добавьте запись в секцию bin в package.json:
"bin": {
  "brain-games": "bin/brain-games.js"
}
  • Добавьте файлу bin/brain-games.js права на исполнение, выполнив в корневой директории проекта команду chmod +x bin/brain-games.js.
  • Добавьте в Makefile команду publish, которая выполнит npm publish --dry-run.
  • Проведите отладку публикации пакета. Если в процессе выполнения будут получены ошибки или предупреждения, исправьте их.
  • Установите пакет в систему с помощью npm link и убедитесь в том, что он работает, запустив brain-games в терминале. Команда npm link может потребовать запуск с sudo.
  • Запушьте изменения в репозиторий на гитхабе и переходите к следующему шагу.

HW-2

  • Убедитесь, что у вас установлена последняя (свежая) версия Node.js.
  • Добавьте в package.json секцию "type" со значением "module". Она активирует возможность использовать модули без Babel.
  • Создайте Makefile с командой install, выполняющей npm ci. Эта команда полезна при первом клонировании репозитория (или после удаления node_modules).
  • Добавьте директорию node_modules в файл .gitignore. Зависимости не хранят в репозитории.
  • Добавьте в Makefile команду brain-games:
node bin/brain-games.js

Набирать эту команду руками довольно долго, а make brain-games быстро и просто и позволит запускать игру без глобальной установки.

HW-1

  • Прочитайте наши советы по прохождению проектов — они помогут настроиться на правильный лад и расскажут что делать в трудных ситуациях.
  • Установите Node.js последней версии в систему глобально (Установка JavaScript).
  • Склонируйте созданный репозиторий проекта локально. В результате клонирования репозитория в вашей файловой системе появится корневая директория проекта — в ней будем размещать все файлы проекта. По умолчанию, имя этой директории будет таким же, как имя репозитория. Но, если захотите, вы сами можете выбрать имя (переименовать) для корневой директории.
  • Инициализируйте ваш npm-пакет внутри корневой директории проекта, используя команду npm init. При инициализации задайте имя пакета - @hexlet/code.
  • Создайте директорию bin и добавьте в неё файл brain-games.js.
  • Сделайте так, чтобы запуск файла bin/brain-games.js выводил на экран строку:
node bin/brain-games.js
Welcome to the Brain Games!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages