July 2, 2020

Daily log #26

Привет всем! Давненько не было логов, оправдать себя могу лишь усердной работой над своими проектами. Давайте ближе к сути

  • Буду рассказывать обо всем по порядку. Я окончательно реализовал поле игрока. Оно работает в соответствии с правилами оригинальной игры. Тут рассказывать особо не о чем
  • Подчистил код. Все повторяющиеся участки кода вынес в отдельные функции, которые просто вызываю с нужными мне аргументами. Приспособил функцию onclick под все кнопки сразу. При вызове передаю в нее нужные id и путем математических расчетов и проверок окрашиваю нужные мне клетки.
  • Когда реализовывал пробелы между кораблями, то пришлось переписать код очистки кнопок определенного Value( я использую ее при перестановки и повороте кораблей ). Опять же просто аргументы и проверки
  • Реализовал вражеское поле. Тут программа изначально хранит несколько вариантов расстановки кораблей и случайным образом использует один из них.
  • Ход игрока. Просто нажатие на вражеское поле и в случае если там стоит корабль, то есть ее value не равен 0 - кнопка окрашивается в красные цвет. А если там пусто, то в зеленый.
  • Ход бота. После каждого хода игрока, вызывается функция отвечающая за игру бота. Там просто выбирается число от 1 до 100 и если кнопка с этим id не атаковалось, вызывается проверка на значение Value этой кнопки. Если оно равно нулю - это промах, а если не равно то попадание. В том случает если кнопка была атакована ранее функция вызывается повторно. Да, да я люблю рекурсию, НО только там где она уместна :)
  • Ну и победа. Тут опять же элементарно подсчет попадание в отдельной функции. Она вызывается после хода игрока и после хода бота.

Вуаля, так сказать альфа-версия игры против бота готова. Я считаю, что усложнять бота не смысла, потому что дальше я буду добавлять в игру элемент онлайна. Короче, планов у меня много, главное реализовать хотя бы 80% до конца лета.

Ну а на сегодня все,
Удачи, программисты!