Назад Наверх
Энтропия и решение

Вступление

Делаем небольшую стратегию по мотивам игры Konquest разработанную в рамках проекта KDE. Из оригинала заимствовано игровое поле и частично игровой процесс. Основной смысл игры в том, чтобы провести тестирование интеллектуальных способностей играющего в процессе игры.



Сотояние проекта

Проект был заморожен на стадии отладки. Возобновление работы над ним предположительно начнется, ... только когда не известно. Пока можно ознакомится с этапами его создания, на основе постов перенесенных из vk.com.



Этапы работы

02.01.2014 22:17
Пока никто не беспокоит, можно что-то сделать для души. Владимир, тот набросок который сначала писал я, потом ты, потом опять я, пока будет выглядеть так. Думаю в html рабочее поле будет завтра болтаться. До 9-го надеюсь в каком-то виде заработает на сервере. За мозги пока не брался.

02.01.2014 22:34
Забыл легенду, цвет подобрать и так, по мелочам.




03.01.2014 13:38
Добавлена легенда. Цвета игроков выбраны. Специально работаю по немногу. Надеюсь показать ребятам, которые сомневаются в своих силах, что можно работая по часу в день делать что-нибудь интересное и необязательно быть чеканутым фриком живущим возле компьютера.

03.01.2014 13:42
Цвета кривые на планетах! Отладка она и в Африке отладка)




04.01.2014 11:58
Теперь страничка выплевывается сайтом по адресу АДРЕС СЕЙЧАС НЕ ДОСТУПЕН. Понятное дело, сервер её еще не обрабатывает. Уже больше похоже на рабочее игровое поле. Можно щелкать по планетам и их адреса сами подставляются. Работает только кнопка "Сброс всех действий хода" ;)

04.01.2014 12:05
Замечен глюк. Если щелкнуть точно по надписи или взрыву, подстановка адреса планеты не производится. Кстати трудозатраты на этот этап самые большие. Примерно 3-4 часа. Связано с большим количеством копи-паст кода. Оптимизировать было лень. Все, перетрудился :) .Отдыхать!




05.01.2014 06:50
Нашел готовую страничку запуска игры АДРЕС УЖЕ НЕ ДОСТУПЕН. Неизбежно приближается время, когда придется писать мозги. Жуть. Где бы найти того парня, который сделает это за меня. Все-таки один знакомый чекнутый фрик в проекте нужен :(




05.01.2014 18:26
Алилуя! И ЭТОТ АДРЕС НЕДОСТУПЕН. Теперь можно выбрать кол-во планет и игроков и поле рандомно сгенерируется скриптом. Кнопочки уже нажимаются, но игра все еще не реагирует. Осталось дело за мозгами.

05.01.2014 18:27
Трудозатраты примерно 2 часа. Где ты мой фрик который напишет мозги. Видимо придется самому им стать на время.




06.01.2014 15:15
Кстати, первым наброском игры стал вот этот.




08.01.2014 8:45
Завтра на работу. Пора садиться за мозги.




08.01.2014 11:16
Примерная энтропия возможностей игрока 4,29982e16. Примерная энтропия игрового поля 9,3e80. Тот кто формирует игровое поле, непобедим на нем :)
Кукисы .................ОК!




08.01.2014 13:34
Планеты начали генерировать корабли. Флотилии полетели. Выбор был сделан в пользу варианта 2 (см.фото). Теперь даже компьютер не знает по какой именно траектории полетит флотилия, до тех пор, пока она не прилетит. На картинке: основные инструменты программиста, примерная схема полета флотилии. Осталось: бои, собственно мозг.

08.01.2014 13:38
Еще осталось: условия завершения игры, картинки выигрыша, проигрыша, статистика по окончанию игры. Энтропия???? Пока просто набор цифр. Как красиво оформить вообще не понятно.




08.01.2014 18:26
Битвы ведутся. Еще энтропию посчитать. Поле убрать. И привет, мозги! Еще 14 часов до работы.

08.01.2014 18:29
Справедливости ради нужно отметить 3-х часовой перерывчик. Чтобы потом при подведении итогов не забыть.




08.01.2014 20:12
Класс! Энтропию закончил. Почти 12 часов назад я думал что сажусь писать мозги. По факту только приступаю. Движок написан, нет сервисных функций и этой самой страницы победителя. До завтрашнего утра отладку вряд ли закончу. Печалька.




08.01.2014 23:35
Итого: 1 790 строк. Мозги есть. В принципе, все есть, остались мелочи. Дело осталось за малым. Где бы найти того малого, который все это отладит и оттестирует. Не те времена пошли, на сервер что-нибудь выложить не получается. С другой стороны я рад что получилось не по-моему. Иначе, я какой-то идеальный получаюсь, захотел, сделал, получил. Отзывы только положительные. Конечно все так не быть. Что в ближайшие часы не успею, смогу доделать только на выходных, опять же, если игра не станет долгостроем. Что касается читателя, пример моего сегодняшнего дня, это элемент культуры стратапов. Если Вы ни разу не занимались стресс-программированием, стартапа у Вас не было.




08.01.2014 23:43
Еще немного о том же: Проект "Сенсор для измерения энтропии мозга, работающего под нагрузкой". Самые грубые ошибки проектирования: 1. в мозгу - принятие решения производится на основе того, что видит пользователь, но не учитывается предыдущая игровая ситуация. Сильно понижает качество принимаемых компьютером решений. 2. много где пришлось проверять, перепроверять. Если пользователь что-то делает не так, программа доделывает за него, такая чушь получается)))). 3. ошибка ввода игрока приводит к аннулированию хода, т.е. компьютер получает преимущество на ход. 4. не правильно рассчитал время разработки проекта. В моем положении это очень не очень.




08.01.2014 23:50
Собственно а зачем делал? Личная мотивация, это первое разминочное упражнение перед большим объемом работы в предстоящем году. Хотелось что-то сделать где мало кода в интерфейсе. Примитивная пошаговая стратегия, вполне удовлетворяет. Будет еще второе по которому возможно графики выложу, а затем, только в путь.




12.01.2014 20:36
Про отладку игры вспоминал. Честно. Даже сервер поднимал. Поднял и на место положил . Как бы не пришлось написать еще столько же кода, который будет тестировать код игры. В принципе первый шаг выполняется, но абсолютно все флотилии летят в ячейку f6, независимо от других обстоятельств. По этому поводу вспоминается выражение классика о том, что написание кода это 10% времени, а его отладка 90%. От себя добавлю, при этом из этих 90%, 80% уходит на объяснение себе почему не нужно это делать именно сейчас.

12.01.2014 20:55
Кстати, игровое поле выглядит на самом деле так:

12.01.2014 21:12
Флотилии выглядят так. Заодно и баг нашелся.

12.01.2014 21:32
Баг возник в результате перегрузки функции. Компилятор неправильно функцию подставлял. Разница между функциями была только в типе int и char одного аргумента. Во внутреннем представлении x86_64-alt-linux-g++ (GCC) 4.7.2 20121109 возможно что типы char и int не различил. Как известно целочисленных типов-то всего WORD и DWORD, остальное так, чтобы было. Вот по этому я не люблю интегрированные среды, тут хотя бы с одним компилятором разобраться.

14.01.2014 14:15
Не, неправда, баг возник в результате копи-пастинга кода в функцию перегрузки с последующим забыванием этого факта. Компилятор тут не причем. Последний баг gcc на который я наступил был в 1012 году. Функция fseek не работала, т.е. вообще ничего не делала. Теперь все что до мегабайта на диске у меня идет через файлмэппинг в ОЗУ.




19.01.2014 16:28
Все! Игрушка долгострой! По два бага в неделю это о-о-о-очень надолго. Там чего-то летает, но только на ближайшие планеты. И через 3-4 шага, когда как повезет, кукис просто рассыпается. Мозги противника включаются, но очень редко. Хоть что-то получается на малом кол-ве флотилий и планет и при перелете на соседние планеты. Вот так один не учтенный день трудозатрат может легко превратиться в полугодовой долгострой. Поэтому ошибка во времени разработки это ОЧЕНЬ плохо.

19.01.2014 18:24
Самый неприятный баг, корабли противника удваиваются)))), причем только на некоторых планетах. Играть получилось если выставить 34-35 планет и поменьше противников. Баланса нет в принципе. Флотилии противника летят куда их мозги отправят, а игрока только на соседнюю планету. Упорно не отправляются флотилии в ячейку e3. Это получился максимальный уровень сложности! Вероятность победы 0. Через примерно 100 ходов повис.

19.01.2014 18:33
Угадайте чем я сейчас занимаюсь))) Оказывается если кол-во кораблей становится очень большим, оно получает впереди - и захватывается 1 кораблем. Алиса в стране чудес отдыхает.




19.01.2014 19:08
Почти всех победил. В e3 игра принципиально ничего не отправляет от игрока. На планетах игрока 4 действует агент Смит из матрицы, поэтому там корабли удваиваются и эскадры достигают невиданных размеров. Ушел ловить агента.

19.01.2014 19:12
Багов многовато. Приторможу пока сервер. Следующее тестирование, как всегда, когда-нибудь.




19.01.2014 20:38
Завтра переходим ко второму разминочному упражнению. Первое постепенно становится процессом. Кому интересно и забыл о чем речь, читай на стене от 8 января 23:50.




01.02.2014 19:08
Теперь в игрушке правильно выставляются кол-во планет, а не плюс-минус пару тройку. Время на отладку + 40 минут.




01.02.2014 19:38
Исправлена ошибка ячейки e3. Теперь пользователь может отправлять туда то что хочет. Время на отладку +30 минут.




01.02.2014 19:54
Дальше отлаживать нет времени. На внешний сервер выложу когда агента Смита поймаю и эскадры пользователя полетят дальше чем на соседние планеты.




02.02.2014 10:52
Реализовано отображение флотилий пока в виде треугольничков. +195 строк кода. Почему-то на это ушло чуть больше 2-х часов. На всякий случай напомню, это не программный проект. Программный проект выполняется в соответствии с технологией программирования. ТЗ на эту игру я пока не придумал.




08.02.2014 20:27
Отладка игры. Теперь можно нажимать "ход" с незаполненными полями и кукисы от этого не разваливаются. +30-40 мин на отладку. Все равно висит агент Смитт и полет флотилий. Есть подозрение что не все проблемы в кукисах решены. Видимо они разваливаются из-за неправильного выделения памяти. Пишу и отлаживаю на x86-64, на сервере x86. Возможно причина в этом. Где бы мне взять побольше времени на отладку? Не заходить на вк вообще)))




10.04.2014 11:25
У нас намечается пополнение. Еще один человек изъявил желание поучаствовать в разработке этой игры. Пока не будем его называть, чтобы не сглазить.




18.11.2014 18:53
Пополнения не случилось. Интерес к игре пропал. Возможно на этот Новый год! что-то заработает :)