Alexandr S

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

export default (cards, customRandom = random) => (name1, name2) => run(name1, name2, cards, customRandom);

Ход моих рассуждений никак не приводит к такой конструкции. В теории к задаче говорится, что функция, отвечающая за рандомный вызов карты должна быть вынесена наружу (передается параметром), с этим вопросов нет. Мы экспортируем функцию по умолчанию с двумя параметрами: колода карт и функция выбора этих карт. Далее мы должны запустить сам алгоритм игры (движок run), который принимает параметры name1, name2, cards, RandomFunction. Никак не могу понять как в этом решении возникает "прослойка" функции с параметрами name1, name2, откуда они подставляются в момент вызова? Почему имена игроков не видны без использования этой прослойки?

3 2

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

0

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

Экспортируйте функцию по умолчанию, которую снаружи именуют и используют как make. Вторым параметром эта функция принимает пользовательскую random функцию.

7

Здесь ответ не стерли

0

Похожие вопросы

Михаил Манов 09 января 2020 →

https://ru.hexlet.io/code_reviews/192442, не очень понял, если написать просто вызов, говорит что card не с...

Сафия Б. 18 декабря 2019 →

https://ru.hexlet.io/code_reviews/184520 Здравствуйте, объясните, пожалуйста, задание: 1. принимает на вх...

Андрей Мягков 17 декабря 2019 →

Добрый день. Код ревью - https://ru.hexlet.io/code_reviews/184436. Я так и не понял условия задачи. Подскаж...

Николай Мальцев 16 декабря 2019 →

Всем, кто не понял как пройти задание, и зашёл в обсуждения, даю подсказку. Это - самое лёгкое самое сложно...

Олег Бородин 29 ноября 2019 →

В видео приводятся два примера: Прямой вызов: (cards) => { const card = random(cards); // to do somethi...

Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Javascript, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →