Как создать программу для компьютера

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

Явный Сапёр

Создание легендароной игры "Сапёр"
на языке программирования Java.

На этом видеокурсе ты научишься создавать оконные
приложения на языке программирования Java,
работать с графикой, с матрицами,
составлять полезные алгоритмы.

Объём: 12 коротких видеоуроков
общей продолжительностью 3 часа.

Хочу купить!

Купить в рассрочку за мегахеши

Цена: 1000 p.


Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:05:24 20 чел. ★ 5 Done
  Мы начинаем создание игры "MineSweeper" на языке Java.
В этом уроке мы поиграем в эту игру и подготовим картинки.
Рекомендую самостоятельно нарисовать блок-схему игры.
Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Что "Сапер" был создан для обучения работе с мышью. 
Сложности: Играть в "Сапера" без мыши, с помощью тачпада. 
Комментарии: Когда-то это была моя любимая игрушка. Помню - была еще версия под DOS, где если вокруг клетки все мины обозначены флажками, и на этой открытой клетке нажать левую кнопку мыши, то все остальные клетки вокруг откроются. В Windows-варианте приходится нажимать для этих целей сразу две кнопки мыши. Я уж молчу про тачпад - тут вообще правую и левую кнопки перепутать - нет проблем. Несколько раз "взорвалась" когда отмечала мину. В результате решила мины вообще не отмечать.  
2 Блок-схема 00:09:09 17 чел. ★ 5 Done
  На этом уроке мы составим блок-схему программы.
Что происходит в игре и как это всё связано друг с другом.
Обязательно нарисуйте схему от руки или на сайте draw.io.
В блок-схеме не хватает одного важно момента -
найдите, чего именно и дорисуйте на схеме.
Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Рисовать блок-схемы :) 
Сложности: ничего 
Комментарии: Почему-то видеоурок, выполненный сегодня в 8(6) утра, не зачелся в "Клубе Формулистов". Может, потому, что еще не набрал 20 голосов? 
3 Окно проекта 00:13:51 16 чел. ★ 5 Done
  На этом уроке мы начнём создание программы.
Создадим новый пустой Java-проект и создадим форму.
Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Создала первую программу на Java ... после длительного перерыва. Поработала с IntelliJ IDEA. 
Сложности: Установить среду разработки. Было бы неплохо посвятить этому отдельный урок. 
Комментарии: Раньше пыталась программировать на Java только в среде Eclipse, да и то не создала ни одной готовой программы. 
4 Радуга картинок 00:24:07 13 чел. ★ 5 Done
  На этом уроке мы загрузим в проект все картинки.
Проинициализируем массив с картинками.
Напишем функцию paint() для их отображения.
Отчёт отправил: 4004. Елена Выполнено за 40 мин. [Показать отчёт]
Научился: Размещать картинки на форме. 
Сложности: Хочу оставить прозрачный фон картинок, но изменить цвет фона самой формы. Но проблема в том, что абсолютно не знаю Java. Первое, что нарыла в Интернете - setBackground(Color.BLACK); - не помогло :( Роюсь дальше. 
Комментарии: Может, найдутся люди добрые, подскажут, как поменять цвет у формы. Если все уж совсем плохо, придется картинки переделывать. Хотя использовать картинки с прозрачным фоном в C# у меня получалось и довольно успешно (в игре lines). P.S. Решено: добавила на фон непрозрачное изображение. P.P.S. Но научиться менять цвет формы все равно хочется :) 
5 Карта местности 00:18:01 13 чел. ★ 5 Done
  На этом уроке мы создадим матрицу map,
в которую случайным образом разместим мины.
Потом напишем функцию addOne() для проставки
цифр вокруг мин и отобразим это всё на экране.
Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Использовать Random 
Сложности: Ничего 
Комментарии: Всё получилось 
6 Философия сапёра 00:09:44 12 чел. ★ 4.8 Done
  На этом уроке мы возьмём новые картинки,
сконвертируем их в jpg чтобы убрать прозрачность.
После этого пофилософствуем об аналогии
компьютерного и реального мира.

Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт]
Научился: Ничему 
Сложности: Дослушать до конца 
Комментарии: Я бы все-таки для философии и психологии выделила отдельный курс. А то настраиваешься на сапера - а тут философия. 
7 Мины на панели 00:12:02 12 чел. ★ 5 Done
  На этом уроке мы создадим подкласс MinePanel.
Именно на этой панели мы будем размещать картинки.
Сделаем всё необходимое, чтобы программа заработала.
Отчёт отправил: 4004. Елена Выполнено за 20 мин. [Показать отчёт]
Научился: Работать с панелью отдельно от формы 
Сложности: Сложного - ничего, но всё новое. 
Комментарии: Пока вопросов нет. Идем дальше. 
8 Мышечный адаптер 00:12:30 12 чел. ★ 5 Done
  На этом уроке мы добавим подкласс-адаптер
для обработки нажатий кнопки мышки.
Сделаем вычисление координат
и простые действия по нажатию
левой и правой кнопки мышки.
Отчёт отправил: 4004. Елена Выполнено за 25 мин. [Показать отчёт]
Научился: Обрабатывать нажатия кнопок мыши 
Сложности: Ничего 
Комментарии: Интересный урок 
9 Правый флаг 00:15:44 11 чел. ★ 5 Done
  На этом уроке мы сделаем обработку правой кнопки мышки.
Для этого нам придётся добавить дополнительный массив,
в котором будет записано, что видно сверху нашего поля.
Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Размещать и убирать флаг 
Сложности: ничего 
Комментарии: Самое интересное - впереди, когда нужно будет открывать клетки поля. 
10 Открывашка 00:16:46 11 чел. ★ 5 Done
  На этом уроке мы сделаем фишку автоматического
открытия плашек для клеток, вокруг которых уже
все мины проставлены. В стандартном сапёре эта
функция вызывается двойным щелчком мышки.
Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Обрабатывать нажатие левой кнопки мышки 
Сложности: Найти ошибку map[x][y]=0, из-за которой все клетки открывались пустыми. 
Комментарии: Пока не срабатывает открывание все клеток если щелкаешь левой кнопкой по открытой клетке на границе поля. Но к следующему уроку исправлю этот недочет. 
11 Волшебный метод 00:23:39 11 чел. ★ 4.8 Done
  На этом уроке мы создадим
волшебный метод cellOpen().
Именно в нём кроется вся магия логики игры.
Отчёт отправил: 4004. Елена Выполнено за 40 мин. [Показать отчёт]
Научился: Открывать зоны вокруг пустых клеток. 
Сложности: Если щелкаешь левой кнопкой мыши на уже открытой клетке с отмеченными минами, все закрытые клетки вокруг нее открываются, но если среди них есть пустая, то вокруг нее клетки не открывались. 
Комментарии: Не знаю, я что-то просмотрела или в уроке есть та же проблема. Исправила. 
12 Условие победы! 00:19:06 11 чел. ★ 5 Done
  На этом уроке мы закончим создание сапёра -
сделаем проверку на окончание игры,
поздравление с победой, с проигрышем,
и запрограммируем начало новой игры.
Отчёт отправил: 4004. Елена Выполнено за 20 мин. [Показать отчёт]
Научился: Определять победу. 
Сложности: Найти ошибку, из-за которой после запуска новой игры не открывались клетки поля. 
Комментарии: Ошибка была в том, что я забыла обнулить переменную result. 
  Итого:   12 видеоуроков общей продолжительностью 3 час. 00 мин. 11 чел. ★ 4.97  
  Финалисты:   Дмитрий,   Алексей В.,   Константин,   Новопашин Владимир,   Елена,   Иван Воронин,   Максим Лапшинов,   Сергей Соколов,   Tekashnik,   Babenko Oleg,   Reinis Stacevič .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.


Научился: Улучшать программу на java
Трудности: Придумывать, что было самым сложным)
Первая моя не консольная программа на Java, всех с этим поздравляю, спасибо всем кто создавал курс.


Научился: Научился завершать начатое дело до конца.
Трудности: Ничего. Злился на автора, что он передергивал с переменными, по ходу дела кардинально менял концепцию, потом поймал себя на мысли, что сам так делаю. Например на днях делал олимпиадное задание по тимусу и программа проходила все тесты , что люди давали на форумы - все самые заковыристые тесты. Я ее пустил в обработку - она не прошла самый главный тест - time limited - то есть ограничение времени выполнения - а все потому, что массив в задаче давался от 10 до 10 000 элементов, а я постоянно по этим элементам двигался, хотя по сути дела требовалось находить суммы элементов, которые можно было в начале запомнить и с ними оперировать - во первых до этой ошибки надо дойти, потом подумать как исправить - так что я и по другую сторону барикад оказался.
Супер! Все доделано. Кстати - я сделал, чтобы нельзя было выставить флажков, больше, чем мин.