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