На этом уроке мы реализуем класс с логикой игры. Далее, напишем заглушки для функций смещения клеток и функцию проверки окончания игры game_over().
Дата отправки отчёта:
12 сентября 2015 г.
Задание выполнено: за
24 час. 00 мин.
Чему научился:
Повышать скорость работы программы. И рекурсия. Хотя здесь как раз быстро смекнул что к чему:)))))))
Что было сложным:
Наверное рекурсия.
Комментарии:
Наконец-то я доделал это приложение! Подробности ниже!))) 1. Добавил статистику игры в виде таблицы рекордов. За формирование таблицы рекордов отвечает отдельный класс "Statistics". В нем инкапсулирована вся работа с таблицей. При сохранении таблицы я использовал сериализацию и десериализацию. Это неимоверно удобно и выливается в итоге в меньший объем кода, чем при использовании System.IO c той же целью. Данный класс является моим первым шаблоном, который очень удобно интегрировать в любое приложение, требующее какой-то подобной статистики. 2. Добавил какой-никакой интерфейс игры - поле для ввода имени игрока, поле отображение текущего счета игры и кнопку рестарта игры. Данные текстБоксы как раз и используются при сохранении игры в таблицу рекордов. 3. Добавил вероятность появления цифр на игровое поле - где-то в описании игры в интернете вычитал, что цифры появляются не с равной вероятностью (да и сам замечал подобное при игре на смартфоне): 2-ка с вероятностью 80%-ами, 4-ка же с оставшимися 20%-ами. 4. Добавил "диалог" между программой и игроком при завершении игры с вопросами о сохранении игры и о создании новой игры. 5. Добавил кнопку рестарта игры. Я очень рад своим доделкам/переделкам. Именно так повышается скилл программирования - когда ты сам находишь решения своим же идеям:)))
Научился: Повторил работу с макросами, генерацией случайных чисел. Трудности: Разобраться в рекурсивных функциях. В позапрошлом отчете в комментарии я написал "математично", а в этом напишу "алгоритмично":D Снимаю шляпу, красивое решение с помощью рекурсивных функций shift и combine :)
Научился: Изучил логику игры 2048. Трудности: Набрать очки в собственноручно запрограммированной игре. Урок очень интересный и познавательный, а вот сама игра начала раздражать. Я даже сообщение с победой добавлять не стал: это игра на проигрыш.