Задать вопрос
weranda
@weranda

Как осмыслить решение задач на основе общения функций?

Приветствую

Полтора часа сидел и думал над решением такой задачи: Игра начинается с числа 0. За ход можно прибавлять к имеющемуся числу любое число от 1 до 10. Выигрывает получивший число 100. Кажется, что все просто, написал несколько функций (выбор первого хода, ход компьютера, ход человека, проверка на кол-во возможного ввода очков и пр.) и все готово, но в мыслях такой диссонанс, что доходит до ступора. Не могу понять, как правильно расставить функции и правильно организовать их общение, то ли на каждое малейшее действие написать свою функцию, то ли как-то уменьшить кол-во функций, вписав в каждую больше возможностей и тому подобное.

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

Что посоветуете в этом случае для лучшего вхождения в понимание решения сложных задач?
  • Вопрос задан
  • 300 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Lander К ответам на вопрос (3)
usdglander
@usdglander
Yipee-ki-yay
Если это игра - даже самая простейшая, то попробуйте использовать игровой цикл.
Весь игровой процесс - это один цикл. В какой то переменной хранится значение чей сейчас ход.
В цикле идет проверка:
Если ход игрока, то запрашиваем у него значение, проверяем его, и обновляем игровую ситуацию (в нашем случае - сумматор)
Если ход компьютера, то вызываем функцию хода компьютера в которую передаём текущее значение сумматора, а возвращаем число от 1 до 10.
В конце игрового цикла делаем проверку, если сумматор = 100, то победил игрок, который сейчас ходил, а если < 100 то меняем переменную "чей ход" и идём на следующий шаг цикла!
Из этого алгоритма уже можно какие то функции выделять. А вообще учите ООП сразу. :)
Ответ написан
Комментировать