Мы продолжаем эксперименты с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы доделаем игру BlackJack, после чего можно будет играть с Дилером один на один.
Дата отправки отчёта:
20 ноября 2019 г.
Задание выполнено: за
4 час. 58 мин.
Чему научился:
выиграть у Дилера, как оказалось, несложно ))) Но это без ставок. С оными, картина мира меняется и люди готовы снять последнюю сами-знаете-что )) Разделяй и властвуй - хороший принцип алгоритмизации жизни, применённый в разработке игры, помог разделить игру на три этапа, в коде это был просто свич-кейс, в каждой из Сцен (STAGE) применили свои наборы правил и проверку условий. Обошлись ифэлзами, присвоением, суммированием, оператором НЕ (!), и оператором БОЛЬШЕ (>) С этим небогатым инструментарием игра взлетела и играет как надо Можно завтра делать видео по курсу Код несложный, думаю рассказать и показать не составит труда
Что было сложным:
Осознать, что подсветка клавиатуры в тёмном салоне машины уже не так актуальна ибо смотрю на экран, а не на клавиатуру. Спасибо Евгению Витольдовичу за прошлогодний марафон по СОЛО!
Пересмотрел код, думаю, а как передаётся управление, к какой строке после третьего стейджа? Поглядел - ничего не нашел, не передаётся управление вверх и всё тут. Лишь затем дошло, что правила игры не предусматривают телодвижения Игрока, после того, как он сказал ИНАФ! Хватит, значит хватит - сколько набрал и не перескочил через 21 - сиди и жди судьбы в лице выбора Дилера. Знание предметной области - СИЛА!
Научился: Созданию игры BlackJack В процессе реализации алгоритма для игрока, который сам решает, брать ещё или хватит, сразу бросился в глаза тот факт, что карта, от которой отказывается игрок, уже взята из колоды и при использовании свитча, получается, что игрок отказался, карта то взята, но далее выходит из свитча и берёт новую карту, а эту куда? под стол? БАГ явно, поэтому стадию игры Дилера вынес ниже свитча, но перед проверкой победы. Теперь если игрок отказывается брать карту из колоды, эту карту берёт Дилер. Протестировал алгоритм, на скриншоте видно, сколько карт в колоде перед тем как кто-либо берёт карту или отказывается от этого действия. Отличный мини-курс, теперь я знаю как играть в BlackJack, ранее никогда не играл, как-то не было надобности и задачи в этом =)
з.ы.
Как видно из скриншота, отрефакторил код основательно. Всем спасибо за внимание.
Научился: Пользоваться switch именно в этом шаблоне, в этом цикле. Теперь вижу что способ удобный. Трудности: Все условия if написать верно друг за другом Шаблон не плохой. Сама программа еще лучше.