# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
5 тестов |
|||
Создаём старую добрую игру Арканоид. Создаём меню, рисуем уровень, размещаем ракетку. Делаем, чтобы ракетка двигалась. Отчёт отправил: 16799. Андрей Чуприков Выполнено за 3 час. 10 мин. [Показать отчёт] Научился: Это один из самых первых видеоуроков. Но для его выполнения уже нужна хорошая подготовка и понимание. А значит выполнение следующих уроков даст высокий уровень подготовки, который необходим для работы. Повторил и научился следующему: задание фона формы создание и вызов дочерней формы в модальном виде добавление иконки к форме + встраивание в exe-файл через свойство проекта обработка событий KeyDown и KeyPress: чем отличаются KeyPress - и нажали, и отпустили, KeyDown - больше свойств; подходит для игры - здесь обработка нажатия расчёт координат элемента управления на форме перемещение элемента на форме с помощью Point например: p.Location = new Point(x, y); Сложности: В принципе, не было больших сложностей. Но из того, что делали, наиболее сложное (и интересное): это во время написания пунктов работы будущей программы - мысленно представить её структуру в виде взаимосвязанных частей кода. |
|||||
2 |
![]() |
3 теста |
|||
Делаем движение шарика, отскок его от стен и ракетки, а также выбивание кирпичиков.
Отчёт отправил: 16799. Андрей Чуприков Выполнено за 1 день 17 час. [Показать отчёт] Научился: Интересна ключевая роль таймера в работе программы: Фактически - здесь таймер это движок для шарика, поскольку последовательно вызывает функцию перемещения шарика. Этот движок включается клавишей Enter. Интересно то, что здесь - во второй части после первой части - уже можно предположить следующие действия по написанию кода. Поскольку, есть аналогия движения ракетки (из уже пройденной первой части) и движения шарика (в этой второй части). Понравилось представление одного пункта - например, пункта "Алгopитм oтcкoка от paкетки" - в виде отдельных составляющих и их связей между ними. Например, отдельные координаты bx1, bx0 и bx шарика связаны с координатами ракетки. И угол отскока определяется тем, какая из координат активна в момент касания ракетки. Таким образом, задача наглядно разделена на простые составляющие. Понравился способ закрытия модального окна: DialogResult = System.Windows.Forms.DialogResult.Abort или Оk; - это кратко и рационально, но об этом надо знать. Понравилось использование рандомайзера в игре - static Random rand = new Random(); Своё: Добавил метку для подсчёта выбитых кирпичиков. Сложности: Осознанно пройти от начала и до конца - всё-таки урок достаточно продолжительный. |
|||||
3 | Скорость реакции. Блок-схема |
|
|||
На этом уроке мы составим блок-схему для игры по вычислению скорости реакции. Нам потребуются три картинки, листик и ручка. Отчёт отправил: 16799. Андрей Чуприков Выполнено за 6 час. 51 мин. [Показать отчёт] Научился: Думаю, что это полезно и правильно: перед началом написания программы изложить на бумаге то, какими видятся её компоненты и алгоритм работы еще до написания. И потом в процессе разработки это, скорее всего, будет скорректировано и улучшено. Сложности: Из всего, что было: терпеливо вычертить правильную схему |
|||||
4 | Скорость реакции. Три картинки по таймеру |
2 теста |
|||
На этом уроке мы подготовим форму для программы. Установим иконку, разместим три картинки, кнопку запуска. Напишем демо-код для переключения картинок. Отчёт отправил: 16799. Андрей Чуприков Выполнено за 6 час. 36 мин. [Показать отчёт] Научился: Научился: добавление ресурсов (картинок) в приложение через свойство проекта использование элемента PictureBox добавление картинок в PictureBox с использованием режима "изменение размера", чтоб вписать картинку в PictureBox использование таймера для визуального эффекта |
|||||
5 | Скорость реакции. Алгоритм и рекорд |
2 теста |
|||
На этом уроке мы наконец-таки создадим программу вычисления скорости реакции, следуя блок-схеме. Напишем обработчик кнопки "Запуск", кликов по картинкам и таймера. Даже добавить прогресс-бар для наглядности. Отчёт отправил: 16799. Андрей Чуприков Выполнено за 5 дней 1 час. 5 [Показать отчёт] Научился: Понравилось: использование одной (!) функции события по нажатию сразу на одну из трех картинок. работа с секундомером Stopwatch использование таймера - в том числе и при расчетах следующего появления картинки Чтоб прогресс-бар работал плавно (красивее) можно каждый раз увеличивать его не с шагом 1. А, например, с шагом 100. Для этого делаем: progress.Maximum = total_clicks * 100; // можно 100 в виде отдельной переменной добавить private void NextClick() { ... click_nr += 100; ... } private void picture1_Click(object sender, EventArgs e) { ... NextClick(); progress.Value = click_nr; // плавно идет прогресс-бар } Сложности: Побить рекорд Евгения... Так и не побил) |
|||||
6 | Игра Цифры |
3 теста |
|||
На этом уроке мы напишем игрушку «Цифры». Познакомимся с компонентом MenuStrip, и приручим кучу кнопок. Параллельно воспользуемся конструкцией языка switch - case. Задание: Создать программу с 9 кнопками, которые нужно нажимать по порядку. P. S. Рекомендую почитать: https://ru.wikipedia.org/wiki/Таблица_Шульте Отчёт отправил: 16799. Андрей Чуприков Выполнено за 3 дня 8 час. 14 мин. [Показать отчёт] Научился: Интересно и понравилось: - работа с MenuStrip - задавать горячие клавиши в MenuStrip - использование tableLayoutPanel для упорядочивания кнопок Понравилась, что одновременно задаются свойства всех кнопок при их совместном выделении (Dock, Text, Margin и пр). И функция обработчика события единая для кликов на всех кнопках. Интересна функция, внутри которой оператор switch ... case, и которая по индексу возвращает нужный контрол (!) - контрол "кнопка". Понравилось приведение типа "object" к "Button" с последующим извлечением свойства -> ((Button)sender).Text или ((Button)sender).Visible; Сложности: Сложностей особых не было. Игрушка понравилась. Её можно дать поиграть трехлетнему ребенку - хороша для изучения цифр. |
|||||
7 | Бот для Цифр |
2 теста |
|||
На этом уроке мы напишем бота для игры из прошлого урока. Мы научим мышку быстро щёлкать по кнопкам программы из прошлого урока. Задание: Написать бота для игры из прошлого урока. Придумать, для чего можно использовать эту программу. Отчёт отправил: 16799. Андрей Чуприков Выполнено за 11 час. 4 мин. [Показать отчёт] Научился: Интересна идея - программное управление мышкой для нажатия на кнопок. Думаю, что этим можно воспользоваться для решения определенных задач. Интресна реализация идеи - сначалоа сохранить координаты мышки и потом воспроизвести их. Узнал про " + Environment.NewLine". А я раньше всегда писал " + \n\r") Узнал, что к тексту в TextBox можно обращаться как к массиву через свойство Lines: for (int i = 0; i < text_x.Lines.Length; i++) { x = Convert.ToInt16(text_x.Lines[i]); y = Convert.ToInt16(text_y.Lines[i]); } Понравилось использование события mouse_event для имитации клика мышки -> to simulate mouse click in c#:) Думаю, что применить эту программу можно там где надо выполнить стандартную последовательность кликов на форме или в броузере. Можно добавить к каждому клику ввод с клавиатуры - и тогда можно формы автоматически заполнять. Например, ввести пароль. Сложности: Урок интересен тем, что продолжает предыдущий урок. И эти два урока теперь воспринимаются целиком. |
|||||
8 | ФИНАЛЬНЫЙ УРОК |
|
|||
Задание. Записать видеообзор любой своей программы. Отчёт отправил: 16799. Андрей Чуприков Выполнено за 6 дней 11 час. 6 мин. [Показать отчёт] Научился: Пользоваться программой oCam, записывать видео и размещать его на youtube. Сложности: Я записывал и размещал видео в первый раз. Старался внимательно изучить - как это делается. Спасибо Евгению за подробное описание! Видеообзор: ZcqcQLh5WcY |
|||||
9 | VIP урок. Игра 2048 |
|
|||
Поздравляю с окончанием курс "Наноигры". Теперь можно немножко расслабиться и поиграть в 2048. Мы напишем эту замечательную игру в курсе "Микроигры". |
|||||
Итого: 9 видеоуроков |
4 час. 10 мин. 17 тестов |
55 чел. | |||
Финалисты: Сергей, Николай Денисов, Progresir, WildOrc, Dmitry Sinitsin, Chip, Bodrik_torf, zhikharevav, Виталий, Иван Воронин, Андрей, Алексей|BrisK|Кривицкий, Денис, Андрей Шевченко, Protos, Никита, Иван, Владимир, Юрий, Константин Мельников, Михаил, OloloCode, Александр, Tekashnik, Дмитрий, Евгений, Dima, Salamatory, Snepper, Морозов Юрий Александрович, Oleksandr, superGrover, Никита, Новопашин Владимир, Сергей Соколов, Александр, Александр Балбашов, FireWolf, Максим Лапшинов, Denis, AlliZzeN, Кирилл, ser2018, DimanDOS, Permitin Alexey, Алексей В., vip, Дмитрий, Артём Нагорный, no name, ES35, MaxB, Konstantin, Tim, Tom . |