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

Формула программиста
основатель — Волосатов Евгений Витольдович

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

  • На этом уроке мы закончим создание Морского боя.
    Сделаем отображение выстрелов пользователя.
    Подключим класс Mission и сделаем ход компьютера.
    Ходы будут выполняться в порядке очереди.
    Нам потребуется таймер для постепенного
    отображения серии ходов компьютера.
  • Дата отправки отчёта: 5 декабря 2015 г.
  • Задание выполнено: за 3 час. 00 мин.
  • Чему научился: организацию работы всех этих методов!
  • Что было сложным: только собственные доработки дают понятие о работе программы, как всё соединяется и что за что отвечает!
  • Комментарии: добавил закраску полностью подбитого корабля, добавление настроек, возможности выбора уровня сложности игры, отображение статистики и текущего хода.
    кстати не сказал, но когда ход противника я блокирую грид с кораблями компьютера, чтобы нельзя даже просто так тыкнуть на него, иначе много нюансов возникало, а так всё четко работает!
  • Видеозапись: https://youtu.be/VcUyQJm4vRM
  • Оценка видео-уроку:
Отчёт от 6452 за Морской Бой / Последний Бой!




Оцени работу

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

6452. Lik_Kirill
Lik_Kirill
ответить
→  ironsavior  # Морской Бой / Последний Бой! / 2016-01-23 07:16

В классе Море, в методе Выстрел идет проверка на Убил, и если Убил то проверяется Победил-ли. После этой проверки я добавил хождение по всему полю и проставляю им Статус. Раньше возвращался только последний, а я, пробегаясь по всей карте, заново им выставляю статусы, и у уже Убитого корабля на всех его палубах выставится корректный цвет - красный!


8322. ironsavior
ironsavior
ответить
→  Lik_Kirill  # Морской Бой / Последний Бой! / 2016-01-22 14:45

Спасибо! А как организовали добивание всего корабля в красный цвет. Я когда функцию написал, у меня почему-то ранение тоже красным становится...


6452. Lik_Kirill
Lik_Kirill
ответить
→  ironsavior  # Морской Бой / ПОСЛЕДНИЙ БОЙ / 2015-12-12 18:21

Там же где меняется Mode программы, при переходе хода. Если ход компьютера, то пропадает(Visible=false) "Ваш ход" и поле с кораблями компьютера становится не Enabled, когда ход человека - наоборот.


8322. ironsavior
ironsavior
ответить
→  Lik_Kirill  # Морской Бой / ПОСЛЕДНИЙ БОЙ / 2015-12-12 16:25

Очень классно! А как вы сделали динамический лейбл с указанием чей ход?


2146. Иван
Иван
ответить
→  Lik_Kirill  # Морской Бой / ПОСЛЕДНИЙ БОЙ / 2015-12-06 00:30

Здорово! Очень интересно было посмотреть на такую замечательную реализацию! Спасибо!


24. Оля
Оля
ответить
→  Lik_Kirill  # Морской Бой / ПОСЛЕДНИЙ БОЙ / 2015-12-05 22:58

Кирилл, отличные у тебя доработки, уверена что ты ее еще доделаешь и улучшишь! Классный обзор, интересный и захватывающий, мотивирует заниматься! Молодец! :)


1. Евгений Витольдович
Евгений Витольдович
ответить
→  Lik_Kirill  # Морской Бой / ПОСЛЕДНИЙ БОЙ / 2015-12-05 21:02

Бесподобная работа!


7276. Ильшат
Ильшат
ответить
→  Lik_Kirill  # Морской Бой / ПОСЛЕДНИЙ БОЙ / 2015-12-05 20:44

Хорошие дополнения, возможность подсмотреть корабли компьютера позволяет быстро протестировать работу программы.


6391. Владимир
Владимир
ответить
→  Lik_Kirill  # Морской Бой / ПОСЛЕДНИЙ БОЙ / 2015-12-05 19:58

Отличный обзор, Кирилл! Полезные дополнения! Молодец!


  • Отчёт оценивали:
    6203Николай (nick27m)+1   8118Юрий +1   6391Владимир+1   3747Сергей+1   459Сергей Сергеевич+1   7901Влад+1   2639Морозов Юрий Александрович+1   7276Ильшат+1   1Евгений Витольдович+1   6925Артём+1   4853Alexander Sidorov+1   24Оля+1   7645Александр Львович+1   1232Фомичева Наталья+1   7573Павел+1   2146Иван+1   6080annaka+1   7788Ксения+1   8Василевская Елена0   4383Maryna Zhuravlova+1   8422dima0   6958Кирилл+1   8322ironsavior+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Сдeлaл выстрeлы пoльзoвaтеля. Пoдключил клaсс Mission. Сдeлaл выстрeлы кoмпьютepа. Убиpaл лишние выделeния нa ceтке. Дoбaвил таймеp и eгo фyнкцию. Пoбeдил комьютеp!
Трудности: Искать ошибки - это жесть! Ярость и злость сменяющие аппатию, и радость от того, что всё заработало!!!
Я наконец-то это сделал!!!! Ура!!! Это реально был для меня был марафон!))))) Е.В. конечно замутил тему!!! Отдельное и большое спасибо Алексею Васюку, который помог мне найти ошибку, тормознувшую меня в полушаге от завершения курса!!!
Научился: Добавлять класс из другого проекта, собирать все вместе и тестировать варианты ИИ. Повторил работу с таймером.
Трудности: Найти ошибку, нужно было поменять модификатор доступа на public. Реализовывать свои идеи.
Для усложнения игры сделал два, нет три добавления: 1. Сделал цвет "убил" таким же как "ранил" - это усложняет игру для человека. 2. Добавил зеркальный шаблон для обстрела, так как зная шаблон легко расставить корабли так чтобы по ним компьютер попадал в последнюю очередь. 3. Сделал приоритет обстрела по краю, в соответствии с правилом лучшей расстановки кораблей. И после этого выиграть у компьютерного ИИ позволяет только удача, что и видно на скриншоте. Это замечательный курс уроков, который прокачивает не только программирование, но и алгоритмическое мышление и планирование. Тут есть над чем подумать не только начинающим программистам. Все играли в "Морской бой" не одну сотню раз, и есть и стратегия обстрела и тактика расстановки. А когда пробуешь это все запрограммировать сталкиваешься с трудностями, о которых даже не подозревал. Я очень рад что прошел этот курс и что был на вебинаре по его окончанию, и видел первую победу над ИИ. ;) Спасибо Евгений Витольдович, за Ваш талант преподавания не очень простых вещей, очень наглядно и доступно, так что даже если не понятно с первого раза, можно посмотреть еще раз и все становится ясно! Благодаря таким урокам хочется узнавать все больше и на более глубоком уровне, ведь впереди еще столько интересного!