# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | Планирование |
1 тест |
|||
Мы начинаем создание игровой программы Морской Бой. 1. Создать объектную модель. 2. Реализовать классы Корабль и Море. 3. Спроектировать интерфейс игры. DataGridView. 4. Написать Искусственный интеллект. 5. Реализовать игру с компьютером. 6. Реализовать сетевую версию игры на двоих. Отчёт отправил: 6391. Владимир Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: Планировать будущую игру. Делать проект с русскими названиями методов. Сложности: выбрать нужные методы и поля. Комментарии: Хорошее начало, все логично и понятно. |
|||||
2 | Море и Корабль |
1 тест |
|||
На этом уроке мы создадим "ядро" программы, два основных класса - Корабль и Море. А в конце урока протестируем их работу. Отчёт отправил: 6391. Владимир Выполнено за 1 час. 38 мин. [Показать отчёт] Научился: Строить и перестраивать структуру будущей программы. Сложности: ничего Комментарии: Очень понравилось как быстро мы набросали полигон для теста. Спасибо, замечательный урок! |
|||||
3 | Редактор и Сетка |
|
|||
На этом уроке мы разместим и настроим DataGridView. Потом расширим класс Море до Редактора, добавив методы для автоматического размещения всех кораблей. Отчёт отправил: 6391. Владимир Выполнено за 2 час. 05 мин. [Показать отчёт] Научился: Очень сильно прокачал навыки алгоритмизации. Сложности: Самостоятельно решать задачи расстановки. Комментарии: Очень нужный и полезный урок, пригодится во проектах, где нужно работать с прямоугольными областями. Спасибо, идем дальше! |
|||||
4 | Делегаты отображения |
1 тест |
|||
На этом уроке мы перенесём функции из Моря в редактор и создадим Делегаты для отображения Кораблей и Выстрелов. Отчёт отправил: 6391. Владимир Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Рефакторингу, применению делегатов, тестированию делегатов. Сложности: перед каждой функцией пытался придумать ее сам. Комментарии: Делегаты становятся все ближе! Настолько ёмкий урок, что нужно будет еще раз 5 пересмотреть, и столько же создать делегатов. Спасибо! |
|||||
5 | Установка кораблей |
1 тест |
|||
На этом уроке мы дадим возможность пользователю устанавливать корабли мышкой и с клавиатуры. Отчёт отправил: 6391. Владимир Выполнено за 2 час. 10 мин. [Показать отчёт] Научился: Расширенной работе с выбранными областями DataGridView. Создавать свою функцию проверки точек на принадлежность кораблю в функции ПоставитьПоТочкам. Обрабатывать события клавиатуры. Сложности: Придумать функцию ПоставитьПоТочкам. В моей функции корабль не ставится если тянуть его снизу вверх, пока не разобрался почему. Комментарии: Очень насыщенный алгоритмами урок, хорошо заставляет подумать. Спасибо, идем дальше! |
|||||
6 | Олимпиада - Самый лучший алгоритм |
|
|||
На участие в олимпиаде было прислано 10 работ. В этом видео мы проводим тестирование всех программ. Домашнее задание - составить словесный алгоритм ИИ. Отчёт отправил: 6391. Владимир Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: Как с помощью интерфейсов можно объединять алгоритмы разных программистов и сравнивать их работу. Придумывать свой алгоритм ИИ. Сложности: ничего. Комментарии: Алгоритм: 1. Ищем трехпалубный корабль по краям (в расчете что 4-х палубный сам попадется). 12 выстрелов 2. Если находим любой корабль, то добиваем и убираем из таблицы необстреляных полей с областями вокруг. 3. Смотрим что осталось и выбираем шаг. 4. случайно перебираем стреляем по тому что осталось. |
|||||
7 | Олимпиада - Угадай число |
|
|||
Класс Secret загадал число. Вам нужно написать класс Strategy, который сможет его отгадать. Инструкции в видео-уроке. Отчёт отправил: 6391. Владимир Выполнено за 59 мин. [Показать отчёт] Научился: Реализовал поиск с делением пополам. Сложности: найти ошибку из-за которой у меня убегал диапазон. Комментарии: Ошибку помогло отвлечение от задачи, буквально через пять минут я нашел ошибку. Полезно отвлекаться когда что-то не выходит! Спасибо, полезность урока зашкаливает! зы хоть и скачал, проект, но так и не открыл, набрал его руками ;) |
|||||
8 | Олимпиада - Создание ИИ - Стратегия |
|
|||
Олимпиадная задача - создать алгоритм ИИ для игры в Морской бой. Подробности на видео. Отчёт отправил: 6391. Владимир Выполнено за 3 час. 12 мин. [Показать отчёт] Научился: Алгоритмам ИИ. Сложности: реализация алгоритма ИИ. Комментарии: Все еще глючит. Буду потом дорабатывать. Спасибо, зацепило! ;) |
|||||
9 | Олимпиада - Создание ИИ - Шаблон ударов |
|
|||
Алгоритм искусственного интеллекта для игры в Морской бой состоит из двух этапов: 1. нанесение ударов по шаблону для поиска 4-палубного и 2-палубных. 2. добивание раненного корабля и пометка клеток вокруг потопленного корабля. На этом уроке разберём и реализуем первый этап. Отчёт отправил: 6391. Владимир Выполнено за 1 час. 25 мин. [Показать отчёт] Научился: Правильно реализовывать свою идею. Сложности: легко, когда сам помучаешься. Комментарии: Понял что не надо было создавать дополнительный объект класса Море для выстрелов, а просто создать отдельную матрицу и там все делать. Урок просто супер! Когда после попыток реализовать свою стратегию, видишь как это нужно было делать. Правда у меня матрица выстрелов генерировалась. Спасибо! зы Решил посмотреть на ИИ в онлайн игре Морской бой, и на одном из сайтов выбрал самый сложный уровень, и какой был восторг, когда увидел что он расставил корабли по самому сложному варианту: все по краю, а однотрубные случайно в центре ;) |
|||||
10 | Олимпиада - Создание ИИ - Добивание корабля |
1 тест |
|||
Алгоритм искусственного интеллекта для игры в Морской бой состоит из двух этапов: 1. нанесение ударов по шаблону для поиска 4-палубного и 2-палубных. 2. добивание раненного корабля и пометка клеток вокруг потопленного корабля. На этом уроке разберём и реализуем второй этап. Отчёт отправил: 6391. Владимир Выполнено за 1 час. 15 мин. [Показать отчёт] Научился: Разбираться в сложной логике программы ИИ. Сложности: понять все в деталях. Комментарии: Круто у меня есть бот для Морского боя! ;) Спасибо, это наверное самое сложное и именно ради этого алгоритма рекомендую всем пройти этот курс! |
|||||
11 | Рефакторинг кода |
|
|||
На этом уроке мы займёмся рефакторингом нашего проекта. Создадим класс SeaGrid, в который перенесём некоторые функции из класса формы. Отчёт отправил: 6391. Владимир Выполнено за 1 час. 14 мин. [Показать отчёт] Научился: Рефакторингу. Сложности: ничего Комментарии: Рефакторинг - это здорово! |
|||||
12 | Интерфейс игры |
1 тест |
|||
На этом уроке мы создадим интерфейс пользователя - разместим несколько кнопочек и запрограммируем их. Также создадим перечисление всех режимов игры. Отчёт отправил: 6391. Владимир Выполнено за 37 мин. [Показать отчёт] Научился: Работе с кнопками и их событиями. Релизации режимов игры. Сложности: ничего, был на вебинаре, повторение. Комментарии: Повторение - мать учения. Мы на финишной прямой, скоро в бой! |
|||||
13 | Последний Бой! |
|
|||
На этом уроке мы закончим создание Морского боя. Сделаем отображение выстрелов пользователя. Подключим класс Mission и сделаем ход компьютера. Ходы будут выполняться в порядке очереди. Нам потребуется таймер для постепенного отображения серии ходов компьютера. Отчёт отправил: 6391. Владимир Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Добавлять класс из другого проекта, собирать все вместе и тестировать варианты ИИ. Повторил работу с таймером. Сложности: Найти ошибку, нужно было поменять модификатор доступа на public. Реализовывать свои идеи. Комментарии: Для усложнения игры сделал два, нет три добавления: 1. Сделал цвет "убил" таким же как "ранил" - это усложняет игру для человека. 2. Добавил зеркальный шаблон для обстрела, так как зная шаблон легко расставить корабли так чтобы по ним компьютер попадал в последнюю очередь. 3. Сделал приоритет обстрела по краю, в соответствии с правилом лучшей расстановки кораблей. И после этого выиграть у компьютерного ИИ позволяет только удача, что и видно на скриншоте. Это замечательный курс уроков, который прокачивает не только программирование, но и алгоритмическое мышление и планирование. Тут есть над чем подумать не только начинающим программистам. Все играли в "Морской бой" не одну сотню раз, и есть и стратегия обстрела и тактика расстановки. А когда пробуешь это все запрограммировать сталкиваешься с трудностями, о которых даже не подозревал. Я очень рад что прошел этот курс и что был на вебинаре по его окончанию, и видел первую победу над ИИ. ;) Спасибо Евгений Витольдович, за Ваш талант преподавания не очень простых вещей, очень наглядно и доступно, так что даже если не понятно с первого раза, можно посмотреть еще раз и все становится ясно! Благодаря таким урокам хочется узнавать все больше и на более глубоком уровне, ведь впереди еще столько интересного! |
|||||
14 | ФИНАЛЬНЫЙ УРОК |
1 тест |
|||
Записать видео обзор Морского боя. созданного на этом курсе. |
|||||
15 | VIP. Анимированный кружок |
|
|||
На этом уроке мы создадим двигающийся кружок, из которого потом сделаем анимированый кубик. Задание: Создать два класса с наследованием. Сделать плавное перемещение кружка. |
|||||
16 | VIP. Анимированный кубик |
|
|||
На этом уроке мы создадим массив из кружков, они будут сначала двигаться случайно, похоже на бильярд. Дальше мы создадим правила для их передвижения и в конечном итоге реализуем анимированный игральный кубик. Задание: Нарисовать верхнюю сторону игрального кубика с шестью анимированными точками для смены чисел. |
|||||
Итого: 16 видеоуроков |
9 час. 36 мин. 7 тестов |
14 чел. | |||
Финалисты: Алексей В., Ильшат, Станислав, Tekashnik, Новопашин Владимир, LINKI, Dimon, Yefim, chokayes, Николай Денисов, Максим Лапшинов, Александр, vip, MaxB . |