# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | Планирование |
1 тест |
|||
Мы начинаем создание игровой программы Морской Бой. 1. Создать объектную модель. 2. Реализовать классы Корабль и Море. 3. Спроектировать интерфейс игры. DataGridView. 4. Написать Искусственный интеллект. 5. Реализовать игру с компьютером. 6. Реализовать сетевую версию игры на двоих. Отчёт отправил: 9913. vip Выполнено за 1 мин. [Показать отчёт] Научился: Продумали классы игры. Класс Море-Море... Класс украинские корабли в нейтральных водах Крыма |
|||||
2 | Море и Корабль |
1 тест |
|||
На этом уроке мы создадим "ядро" программы, два основных класса - Корабль и Море. А в конце урока протестируем их работу. Отчёт отправил: 9913. vip Выполнено за 23 час. 22 мин. [Показать отчёт] Научился: Создали основные классы море и корабль расписали и протестировали их Сложности: Переключаться с одной раскладки на другую. В тестовой версии в функции отображения кораблей ошибка в цикле по x и по y |
|||||
3 | Редактор и Сетка |
|
|||
На этом уроке мы разместим и настроим DataGridView. Потом расширим класс Море до Редактора, добавив методы для автоматического размещения всех кораблей. Отчёт отправил: 9913. vip Выполнено за 2 дня 23 час. 38 мин. [Показать отчёт] Научился: Создали механизм размещения кораблей Что мне нравиться в длинных уроках так их никак не пройти. Зато потом какой объем сразу. УХ! Сложности: Было дело запорол две части кода 1. не появлялись два корабля-косяк в цвете. совпал с цветом фона. 2. косяк по функции Сброс() - была не public |
|||||
4 | Делегаты отображения |
1 тест |
|||
На этом уроке мы перенесём функции из Моря в редактор и создадим Делегаты для отображения Кораблей и Выстрелов. Отчёт отправил: 9913. vip Выполнено за 1 день 22 час. 17 мин. [Показать отчёт] Научился: Применение делегатов этой всегда нереальная магия. В данном случае немного запутанно получилось но главное что получилось. Все-таки я бы эту игру создавал бы немного по-другому. Создать объект Море Создать объект Корабль описать им методы и работать с ними. Поживем увидим что дальше. Евгения Витольдовичу спасибо за подведение итогов в конце видеоурока! Сложности: пока непонятно зачем нам объект Точка не проще было бы просто координаты прописывать. т.к. при вызове каждого метода приходиться создавать точку так же пока непонятно зачем мы этим сейчас занимаемся если собирались редактор делать для размещения кораблей |
|||||
5 | Установка кораблей |
1 тест |
|||
На этом уроке мы дадим возможность пользователю устанавливать корабли мышкой и с клавиатуры. Отчёт отправил: 9913. vip Выполнено за 2 дня 23 час. 7 мин. [Показать отчёт] Научился: Задействуем MouseUp Grid формы для отрисовки кораблей пользователем. Создали необходимый функционал для расстановки как мышкой так и клавишами |
|||||
6 | Олимпиада - Самый лучший алгоритм |
|
|||
На участие в олимпиаде было прислано 10 работ. В этом видео мы проводим тестирование всех программ. Домашнее задание - составить словесный алгоритм ИИ. Отчёт отправил: 9913. vip Выполнено за 2 дня 12 час. 12 мин. [Показать отчёт] Научился: За тестировали ПО для поиска решения на различных алгоритмах Сложности: хотелось бы отдельно код программы в студию для анализа разных алгоритмов в том числе посмотреть алгоритм Orange+ посмотреть как он реализовал хакерский метод подсматривания в памяти просьба выложить на GIT Спасибо за понимание! |
|||||
7 | Олимпиада - Угадай число |
|
|||
Класс Secret загадал число. Вам нужно написать класс Strategy, который сможет его отгадать. Инструкции в видео-уроке. Отчёт отправил: 9913. vip Выполнено за 2 дня 9 час. 27 мин. [Показать отчёт] Научился: Доработал алгоритм поиска задуманного числа методом половинного деления Сложности: пришлось включать пошаговую отладку что бы посмотреть как работает код и где копать |
|||||
8 | Олимпиада - Создание ИИ - Стратегия |
|
|||
Олимпиадная задача - создать алгоритм ИИ для игры в Морской бой. Подробности на видео. Отчёт отправил: 9913. vip Выполнено за 54 мин. [Показать отчёт] Научился: Скачал проект. Что было весьма приятно. Вот были времена а теперь события раньше Евгений Витольдович да же кодом делился а теперь целым хабом на гите. К вечеру уже ничего в голову насчет решения не приходит кроме как рандомно мочить пусть комп процессорное время отрабатывает Сложности: метод половинного деления из предыдущего урока на растерзание int max = 1000, min = 0; public Answer Guess(out int num) { num = value; Answer answer = secret.Guess(value); if (answer != Answer.equal) { if (answer == Answer.more) { min = num; value = (max - min) / 2 + min; } else { max = num; value = (max - min) / 2 + min; } } return answer; } |
|||||
9 | Олимпиада - Создание ИИ - Шаблон ударов |
|
|||
Алгоритм искусственного интеллекта для игры в Морской бой состоит из двух этапов: 1. нанесение ударов по шаблону для поиска 4-палубного и 2-палубных. 2. добивание раненного корабля и пометка клеток вокруг потопленного корабля. На этом уроке разберём и реализуем первый этап. Отчёт отправил: 9913. vip Выполнено за 3 дня 1 час. 30 мин. [Показать отчёт] Научился: Реализовал алгоритм шмалять по кораблям. В ссылке правда о затонувшем Курске 20 лет спустя Сложности: Реализация алгоритма хороша, но вот визуализация в рамка проекта морской бой никудышняя. Как нам консоль реализовать для проверки когда у нас корабли на форме расставлены. Будем ждать продолжения банкета Видеообзор: 8KG-nuI35MQ |
|||||
10 | Олимпиада - Создание ИИ - Добивание корабля |
1 тест |
|||
Алгоритм искусственного интеллекта для игры в Морской бой состоит из двух этапов: 1. нанесение ударов по шаблону для поиска 4-палубного и 2-палубных. 2. добивание раненного корабля и пометка клеток вокруг потопленного корабля. На этом уроке разберём и реализуем второй этап. Отчёт отправил: 9913. vip Выполнено за 2 дня 1 час. 15 мин. [Показать отчёт] Научился: реализовал алгоритм ИИ игры Сложности: протестировать не удалось пока |
|||||
11 | Рефакторинг кода |
|
|||
На этом уроке мы займёмся рефакторингом нашего проекта. Создадим класс SeaGrid, в который перенесём некоторые функции из класса формы. Отчёт отправил: 9913. vip Выполнено за 2 дня 2 мин. [Показать отчёт] Научился: Сделал крутой рефакторинг по коду Сложности: было "мочно"! есть косяк при размещении кораблей их можно лепить впритык, что не соответствует логике ИИ |
|||||
12 | Интерфейс игры |
1 тест |
|||
На этом уроке мы создадим интерфейс пользователя - разместим несколько кнопочек и запрограммируем их. Также создадим перечисление всех режимов игры. Отчёт отправил: 9913. vip Выполнено за 43 мин. [Показать отчёт] Научился: Поработал над интерфейсом игры |
|||||
13 | Последний Бой! |
|
|||
На этом уроке мы закончим создание Морского боя. Сделаем отображение выстрелов пользователя. Подключим класс Mission и сделаем ход компьютера. Ходы будут выполняться в порядке очереди. Нам потребуется таймер для постепенного отображения серии ходов компьютера. Отчёт отправил: 9913. vip Выполнено за 21 час. 21 мин. [Показать отчёт] Научился: Как жаль что наконец-то закончился этот проект :))) Сложности: Есть много косяков. Компьютер не совсем по алгоритму мочит корабли Опять же стреляет туда где стоит корабль уже убитый в море рядом с кораблем убитым хотя и не должен по идее. Потом корабли при ручной расстановке могут прилепиться друг к другу. Во общем поле для работы и фантазии огромное. Рефакторинг кода нужен огромнейший. И опять же концепция ООП неверно реализована. Объекты корабли оттуда и плясать нужно было. А тут все как всегда с ног на голову. Вот правильно говорят ООП хорошо но запутанно, функциональное программирование в этом плане значительно лучше. И что самое главное поддерживать такой проект уже через пару недель станет невозможным из-за сложности и запутанности в коде и взаимосвязей между классами. Тут надо над каждый методом обязательное описание что куда и как работает. Вообщем классический пример как НЕ НАДО писать программы. В целом остальное все класс Евгений Витольдович на высоте тем более сколько ему стоили трудов через 8 месяцев вернуться и закончить проект представляете... |
|||||
14 | ФИНАЛЬНЫЙ УРОК |
1 тест |
|||
Записать видео обзор Морского боя. созданного на этом курсе. Отчёт отправил: 9913. vip Выполнено за 1 день 19 мин. [Показать отчёт] Научился: Доделывать начатое. Сложности: Нужно обязательно будет вернуться к этой программе как было с шариками и довести её до ума Видеообзор: ezMHqAeEt0M |
|||||
15 | VIP. Анимированный кружок |
|
|||
На этом уроке мы создадим двигающийся кружок, из которого потом сделаем анимированый кубик. Задание: Создать два класса с наследованием. Сделать плавное перемещение кружка. Отчёт отправил: 9913. vip Выполнено за 1 час. 47 мин. [Показать отчёт] Научился: Создал перемещение шарика |
|||||
16 | VIP. Анимированный кубик |
|
|||
На этом уроке мы создадим массив из кружков, они будут сначала двигаться случайно, похоже на бильярд. Дальше мы создадим правила для их передвижения и в конечном итоге реализуем анимированный игральный кубик. Задание: Нарисовать верхнюю сторону игрального кубика с шестью анимированными точками для смены чисел. Отчёт отправил: 9913. vip Выполнено за 23 час. 35 мин. [Показать отчёт] Научился: сделал какую-то хрень которая бросает кости прикольно Сложности: класс Circle вместе с классом MoveCircle снести нафиг и все и так будет работать в цикле |
|||||
Итого: 16 видеоуроков |
9 час. 36 мин. 7 тестов |
14 чел. | |||
Финалисты: Алексей В., Ильшат, Станислав, Tekashnik, Новопашин Владимир, LINKI, Dimon, Yefim, chokayes, Николай Денисов, Максим Лапшинов, Александр, vip, MaxB . |