Что скажу, учиться стало интереснее. У меня появилась цель. Вернее, не так. У меня начали появляться интересные для меня цели. Их начал ставить искин, по мере того, как увеличивались мои знания в области программирования. Иногда они были простыми. Но чаще всего приходилось включать смекалку.
К примеру…
Хотя, нет. Давайте по порядку. Самые первые задачи были довольно простыми и прикольными. Заставить дрона встать. Потом нужно было прописать программу, по которой он будет просто ходить. Следующим шагом стало написание программы, согласно которой он должен бежать. Передвижение по стенам и потолку, было намного тяжелее реализовать, чем обычное, по горизонтальной поверхности.
Добавьте ко всему этому следующий фактор. Практически каждое решение приходилось переделывать, иногда не по одному разу. К примеру, задачу, согласно которой мой таракан должен был бежать, как будто бы находясь под обстрелом противника, я переделывал порядка двадцати раз. И весь прикол в том, что только он начинал свой бег, искин тут же выдавал карту его маршрута.
В этой ситуации у меня начал развиваться азарт. Ну, неужели я не смогу выполнить поставленную задачу? Вероятно, это была самая тяжелая задача в моем обучении, так как именно она заставила меня очень многое переосмыслить в искусстве программирования.
* * *
Два месяца понадобилось для решения текущей задачи. Когда просил искина показать хотя бы примерный вариант решения, тот просто отказал в этом, аргументируя, что если я очень захочу, то обязательно смогу выполнить поставленную задачу. Помучившись с генератором случайных чисел, который пытался прикрутить для выполнения поставленной задачи, решил все же разобраться, почему меня так легко просчитать?
Два дня — и задача разобрана на составляющие. И когда было получено понимание того, что же такое генератор случайных чисел, сидел, и не знал, смеяться мне или плакать? Только анализ программного кода, которым, как оказалось пользуются уже не одну сотню лет, дал понимание, что числа, получаемые на выходе, к случайным, не имеют никакого отношения. Они были четко привязаны к времени вызова самой функции.
Теперь стало понятно, почему искин смог настолько быстро просчитать его дальнейшие шаги. Решил проверить одно подозрение и привязать генерацию действий моего таракана к двум переменным. Логика была следующей: начальной точкой отсчета, был запуск самого таракана. А потом выбирался временной интервал в зависимости от того, какая конечность дрона была поднята выше остальных. Когда же подумал еще, то решил, что дополнительно нужно учитывать и положение самой конечности в пространстве.