Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович
Шаблоны Проектирования / Java

Морской Бой / Последний Бой!

  • На этом уроке мы закончим создание Морского боя.
    Сделаем отображение выстрелов пользователя.
    Подключим класс Mission и сделаем ход компьютера.
    Ходы будут выполняться в порядке очереди.
    Нам потребуется таймер для постепенного
    отображения серии ходов компьютера.
  • Дата отправки отчёта: 8 мая 2016 г.
  • Задание выполнено: за 2 час. 30 мин.
  • Чему научился: использовать методы классов, созданных отдельно от основного проекта. Осуществлять стрельбу компьютера по таймеру.
  • Что было сложным: сделать доработку от себя, чтобы при добивании корабля со стороны человека, на поле компьютера закрашивались все ячейки, куда уже точно не надо стрелять. Так делается и при обычной игре, это не чит)
  • Комментарии: Очень хороший курс, много алгоритмики и есть ооп, а также сильная логическая составляющая в виде создания ИИ.
    Немного не хватает прилизанности, т.к. он создавался с большим временным промежутком, и как бы собран из разных кусков, но тем не менее все работает. Спасибо!
  • Оценка видео-уроку:
Отчёт от 4780 за Морской Бой / Последний Бой!


Отчёт от 4780 за Морской Бой / Последний Бой!




Оцени работу

 
Сохранить страницу:

  • Отчёт оценивали:
    9237Mais+1   4467Alcatraz+1   10106Alexmidrus0   3506Алексей|BrisK|Кривицкий+1   9332Dima+1   4992Николай+1   6925Артём+1   1Евгений Витольдович+1   689Igorenzia+1   1537Сергей+1   8886Михаил Ермишин+1   7119Новопашин Владимир+1   6391Владимир+1   6452Lik_Kirill+1   10189Анастасия Чернилевская0   7645Александр Львович+1   4395Денис+1   9366Sman Diana+1   9263Андрей Н.+1   10101xrt+1   9286Petuško Julija+1   9287Vaitkevičiūtė Irma+1  

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Добавлять класс из другого проекта, собирать все вместе и тестировать варианты ИИ. Повторил работу с таймером.
Трудности: Найти ошибку, нужно было поменять модификатор доступа на public. Реализовывать свои идеи.
Для усложнения игры сделал два, нет три добавления: 1. Сделал цвет "убил" таким же как "ранил" - это усложняет игру для человека. 2. Добавил зеркальный шаблон для обстрела, так как зная шаблон легко расставить корабли так чтобы по ним компьютер попадал в последнюю очередь. 3. Сделал приоритет обстрела по краю, в соответствии с правилом лучшей расстановки кораблей. И после этого выиграть у компьютерного ИИ позволяет только удача, что и видно на скриншоте. Это замечательный курс уроков, который прокачивает не только программирование, но и алгоритмическое мышление и планирование. Тут есть над чем подумать не только начинающим программистам. Все играли в "Морской бой" не одну сотню раз, и есть и стратегия обстрела и тактика расстановки. А когда пробуешь это все запрограммировать сталкиваешься с трудностями, о которых даже не подозревал. Я очень рад что прошел этот курс и что был на вебинаре по его окончанию, и видел первую победу над ИИ. ;) Спасибо Евгений Витольдович, за Ваш талант преподавания не очень простых вещей, очень наглядно и доступно, так что даже если не понятно с первого раза, можно посмотреть еще раз и все становится ясно! Благодаря таким урокам хочется узнавать все больше и на более глубоком уровне, ведь впереди еще столько интересного!
Научился: Играть с ИИ в "Морской бой")
Трудности: В принципе ничего сложного, весь функционал написан, оставалось только все подключить и отладить, чтобы корректно все работало.
Вот и все, закончился, к сожалению, этот видеокурс. Но зато была написана замечательная программа "Морской бой", да еще не простая, а с реализацией искусственного интеллекта. Причем последний не такой уж и простой, а весьма смышленый и обыграть его порой не так-то уж и легко. Но, мы-то знаем, как он работает, так что будем действовать его методами плюс подключим интуицию) Что хочу сказать, конечно можно еще улучшать и улучшать дизайн программы. К примеру, добавить статистику. Я вот только смог сделать отображение хода, то есть выводить чья очередь сейчас ходить. А с "секретной кнопкой" так и ничего не получилось сделать. Секретная кнопка должна была показывать нам, при ее нажатии, корабли противника, в данном случае компьютера. Мы же используем делегаты для отображения состояния поля да еще в методе ShowCompShip передается координата точки и номер корабля. Как все это "прикрутить", чтобы все работало, не придумал, к сожалению. Видать, знаний мало. Отображение статистики я, честно признаюсь, делать не стал, навряд ли получится. Так что, направление дальнейшего движения задано, буду читать книжки, разбираться. Глядишь, потом как-нибудь (очень хочется надеяться) открою этот проект и реализую все то, что хотел сделать. Огромное спасибо за видеокурс! Он очень полезен начинающим программистам, которые хотят лучше разобраться в языке C# и "прокачать" свои навыки. Тем более игра эта знакома всем с детства и попробовать ее "сделать" своими руками - это значит вдвойне осознать, что ты можешь осуществить свою задумку! p.s. Конец последнего предложения получился не очень, вдохновение закончилось. Но, думаю, Вы меня поняли)