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

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

Явный Сапёр

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

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

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

Хочу купить!

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

Цена: 1000 p.


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

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:05:24 20 чел. ★ 5 Done
  Мы начинаем создание игры "MineSweeper" на языке Java.
В этом уроке мы поиграем в эту игру и подготовим картинки.
Рекомендую самостоятельно нарисовать блок-схему игры.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 10 мин. [Показать отчёт]
Научился: nakonec ponial pravila igri:) 
Сложности: ---------------- 
Комментарии: ------------------------ 
2 Блок-схема 00:09:09 17 чел. ★ 5 Done
  На этом уроке мы составим блок-схему программы.
Что происходит в игре и как это всё связано друг с другом.
Обязательно нарисуйте схему от руки или на сайте draw.io.
В блок-схеме не хватает одного важно момента -
найдите, чего именно и дорисуйте на схеме.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 10 мин. [Показать отчёт]
Научился: Stanovica paniatno pro sozdania program, sam proces. V svoju sxemu dobavil sekundamer. 
Сложности: ------------------------------------ 
Комментарии: --------------------------------------- 
3 Окно проекта 00:13:51 16 чел. ★ 5 Done
  На этом уроке мы начнём создание программы.
Создадим новый пустой Java-проект и создадим форму.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 15 мин. [Показать отчёт]
Научился: pervoje okno, na Jave:), mnogo cevo raskazano. JFrame novaja ves. 
Сложности: ------------------------------------ 
Комментарии: ----------------------------------- 
4 Радуга картинок 00:24:07 13 чел. ★ 5 Done
  На этом уроке мы загрузим в проект все картинки.
Проинициализируем массив с картинками.
Напишем функцию paint() для их отображения.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 40 мин. [Показать отчёт]
Научился: Mnogo poleznoi informaciji, esio ras ubezdajus v nuzde ucic English. Pokasto neponiaten mexanizm vivedenia kartinok na ekran. Nu eto v peredi, sias ja poluciaju udavolstvie i znania samovo procesa programirovania, kak nado pravilna i kakiji etapi programirovania. 
Сложности: ----------------------------------------------- 
Комментарии: Nieko pries, jei ateitije rasisiu lietuviskai? 
5 Карта местности 00:18:01 13 чел. ★ 5 Done
  На этом уроке мы создадим матрицу map,
в которую случайным образом разместим мины.
Потом напишем функцию addOne() для проставки
цифр вокруг мин и отобразим это всё на экране.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 45 мин. [Показать отчёт]
Научился: Susipažinau su Random(), kad galima naudoti vienai konstantai daugiau nei viena [], šioje programoje naudojame [] []. Kad nerodytu minu, reikia naudoti private HashMap MAP; - int map [x] [y] naudojam kaip unikalu 'key' o Integer naudojame kaip "value", reikia visa lauka užpildyti close.png ir kai mes paspaudžiam lauka jo map [x] [y] kordenates kreipiasi į HashMap key ir if(value = IMG_MINE) Game over. 
Сложности: ---------------------------------------------- 
Комментарии: ---------------------------------------------- 
6 Философия сапёра 00:09:44 12 чел. ★ 4.8 Done
  На этом уроке мы возьмём новые картинки,
сконвертируем их в jpg чтобы убрать прозрачность.
После этого пофилософствуем об аналогии
компьютерного и реального мира.

Отчёт отправил: 11317. Reinis Stacevič Выполнено за 10 мин. [Показать отчёт]
Научился: Labai įdomi tema, kad mes galime programuot save. Aš pritariu jai, nes kiekvienas gali iškelti sau tikslą(Project) ir kurti programą, kad pasiekti tikslą. Žmogus turi input(jutimo organai) Procesor(Smegenis) output(veiksmai), viskas tai saveikauja tarpusavyje. Bet manau ne žmonės ar gyvunus reikia liginti su mašinom, o mašinas su gyvunais. Nes žmogus sukuria kaska pagal pavyzdį, tai ką jis jau buvo pamates, jautes, užuodes. PVZ.: kompiuteris neirašo balsą, garsa jai neprijungtas mikrofonas, taip pat ir kurčias žmogus negali kurti muzikos mintise, nes jis jos negirdejo. Automatizavime naudojamos shemos, kurios pavaizduoja tam tikro veiksmo procesa ir kas kaip ir su kuo saveikauja. Tai reikia, kad tinkamai atlikti procesu automatizavimą, tai gyvu butibių ir mašinų schemų veikimo principas beveik vienodas. Programavimas man, tai programa kuri atlieka užduoti ir kaip galima greičiau ir efektiviau, kuo daugiau programuoji, sprendi iškilusias problemas, naujas užduotis. Tuo labiau tu tas žinias gali naudoti savo givenime. Nes dauguma žmonių jau yra užprogramuoti visuomenes, tevu, mokyklos, jie gyvena diena nuo denuos ta pačia diena, ir jie nesprendža problemų, jie netobuleja, negauna žinių kaip siekti tikslo, keisti savo gyvenimą. 
Сложности: ------------------------------ 
Комментарии: warhammer mechanicus, tai žmonės kurie save paverte mašinomis. 
7 Мины на панели 00:12:02 12 чел. ★ 5 Done
  На этом уроке мы создадим подкласс MinePanel.
Именно на этой панели мы будем размещать картинки.
Сделаем всё необходимое, чтобы программа заработала.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 20 мин. [Показать отчёт]
Научился: setResizable(false) - supratau šios funkcijos paskirti ir veikimą. Dabar geriau suprantu kuriamos programos veikimo principa. 
Сложности: --------------------------------------- 
Комментарии: --------------------------------------- 
8 Мышечный адаптер 00:12:30 12 чел. ★ 5 Done
  На этом уроке мы добавим подкласс-адаптер
для обработки нажатий кнопки мышки.
Сделаем вычисление координат
и простые действия по нажатию
левой и правой кнопки мышки.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 20 мин. [Показать отчёт]
Научился: Sužinojau apie class MouseAdapter kuris skirtas darbui su pelia, ir kaip pakeisti paveiksleli su funkcija repaint() 
Сложности: ---------------------------- 
Комментарии: --------------------------------------- 
9 Правый флаг 00:15:44 11 чел. ★ 5 Done
  На этом уроке мы сделаем обработку правой кнопки мышки.
Для этого нам придётся добавить дополнительный массив,
в котором будет записано, что видно сверху нашего поля.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 20 мин. [Показать отчёт]
Научился: Labiau suprantu kaip naudoti MouseAdapter() ir kaip vaizduojami paveiksleliai ir programos logika. 
Сложности: ------------------------------ 
Комментарии: ----------------------------------------- 
10 Открывашка 00:16:46 11 чел. ★ 5 Done
  На этом уроке мы сделаем фишку автоматического
открытия плашек для клеток, вокруг которых уже
все мины проставлены. В стандартном сапёре эта
функция вызывается двойным щелчком мышки.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 40 мин. [Показать отчёт]
Научился: Rašant programa ir ja testuojant mokausi tuo pačiu žaisti minesweeper.  
Сложности: --------------------------------------- 
Комментарии: ---------------------------------- 
11 Волшебный метод 00:23:39 11 чел. ★ 4.8 Done
  На этом уроке мы создадим
волшебный метод cellOpen().
Именно в нём кроется вся магия логики игры.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: Išmokau ir supratau kaip reikia žaisti minesweeper, pilnai supratau visus programos elementus ir komponentus.  
Сложности: Nieko, viskas buvo lengva, nes prieš tai viskas buvo gerai paaiškinta. 
Комментарии: lange NR1. programa kuri išveda "" :)!!!!YOU WIN GAME!!!! :) "", kai minesCount ==0, bet galima kiekviena karta kai su palite pastatai ant langelio veliava, minesCount-- mažėja vienetu, todėl galima neatverti ne vieno lango ir iškart pastatyti veliavu kiek yra N_MINES ir tu laimejai. lange NR2. žaidimas baigtas kai paspaudi ant minos. lange NR3. žaidimo eigoje vaizduojamas minu skaičius. iki lango numeris 4 yra keli žaidimo trukumai. Pirmas kai pastatai veliavą ir paspaudi ant skaičiaus atsidaro aplink jo laukai, kartai atsidaro miną, nes veliava pastatyta ne tinkamoje vietoje, bet žaidimas tesiasi ir neatsiveria visos minos. antras minusas laimėjus ar pralaimėjus žaidimą, ir statusvbar išvedus tekstus, su pelite galima atidaryneti laukus ir statyti veliavas. trečias minusas kad galima pristatyti veliavų ir taip laimeti, bet neatvesus jokio lauko. Aš šituos trukumus pašalinau ir langai NR4 ir NR5 gerai funkcianuoja. Kad tai butu pašalinta aš padariau programoje šiuos pakeitimus sukuriau kintamaji private int opencell =0; metoduose leftButton() ir rightButton() parašiau šias kodo eilutes if(minesCount==0) opencell = OpenTopCell(); if(( N_ROWS * N_COLS - opencell==N_MINES)) { result = 1; statusbar.setText(" :)!!!!YOU WIN GAME!!!! :) "); } metode openNear() parašiau: if (top[mx][my] == IMG_OPEN) { if (map[mx][my] == IMG_MINE) openAllMines(); } metode openAllMines() parašiau result = -1; statusbar.setText("GAME OVER"); sukuriau metoda OpenTopCell public int OpenTopCell()// Metodas skaičiuojantis atvertus laukus { int t=0; for(int y = 0; y < N_ROWS; y++) for(int x = 0; x < N_COLS; x++) if(top [x][y]== IMG_OPEN) t++; return t; } ir į mousePressed() parašiau kiekvienam mygtukui: if(result!=1 && result!=-1) pakeitimai pavaizduoti faile NR2.  
12 Условие победы! 00:19:06 11 чел. ★ 5 Done
  На этом уроке мы закончим создание сапёра -
сделаем проверку на окончание игры,
поздравление с победой, с проигрышем,
и запрограммируем начало новой игры.
Отчёт отправил: 11317. Reinis Stacevič Выполнено за 5 час. 30 мин. [Показать отчёт]
Научился: Pradėjau testuoti programa. 
Сложности: Pradžioje pastrigau, buvau sumastes kaip reikia parašyt, kad paspaudžius pirma karta mina butu perkelta į kitą vietą, parašes kodą, programa išvis veike nekorektiškai, bandžiau taisyti ir niekas neišėjo. Todėl pradėjau naudoti System.out.println() - dėka šių eilučių aš pamačiau kaip veikia programa, kokios eilutes peršokomos, neapdorojomos ir kaip keičiasi konstatu vertes. Ir tokiu būdų jau žinojau ką reikia keisti. Dar liko viena problema kaskur 1-2 iš 10 pirmu paspaudimu pataikoma į miną. Bet taip veikia 80 langu lauke kur yra 78 minos. Beveik visalaik išoksta skaičiai 8 ar 7  
Комментарии: --------------------------------------------------- 
  Итого:   12 видеоуроков общей продолжительностью 3 час. 00 мин. 11 чел. ★ 4.97  
  Финалисты:   Дмитрий,   Алексей В.,   Константин,   Новопашин Владимир,   Елена,   Иван Воронин,   Максим Лапшинов,   Сергей Соколов,   Tekashnik,   Babenko Oleg,   Reinis Stacevič .

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




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

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

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

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


Научился: Выводить в окно картинки.
Трудности: Пока все сложно. Нужно во всем разбираться.
Все норм нужно разбираться.


Научился: Išmokau ir supratau kaip reikia žaisti minesweeper, pilnai supratau visus programos elementus ir komponentus.
Трудности: Nieko, viskas buvo lengva, nes prieš tai viskas buvo gerai paaiškinta.
lange NR1. programa kuri išveda "" :)!!!!YOU WIN GAME!!!! :) "", kai minesCount ==0, bet galima kiekviena karta kai su palite pastatai ant langelio veliava, minesCount-- mažėja vienetu, todėl galima neatverti ne vieno lango ir iškart pastatyti veliavu kiek yra N_MINES ir tu laimejai. lange NR2. žaidimas baigtas kai paspaudi ant minos. lange NR3. žaidimo eigoje vaizduojamas minu skaičius. iki lango numeris 4 yra keli žaidimo trukumai. Pirmas kai pastatai veliavą ir paspaudi ant skaičiaus atsidaro aplink jo laukai, kartai atsidaro miną, nes veliava pastatyta ne tinkamoje vietoje, bet žaidimas tesiasi ir neatsiveria visos minos. antras minusas laimėjus ar pralaimėjus žaidimą, ir statusvbar išvedus tekstus, su pelite galima atidaryneti laukus ir statyti veliavas. trečias minusas kad galima pristatyti veliavų ir taip laimeti, bet neatvesus jokio lauko. Aš šituos trukumus pašalinau ir langai NR4 ir NR5 gerai funkcianuoja. Kad tai butu pašalinta aš padariau programoje šiuos pakeitimus sukuriau kintamaji private int opencell =0; metoduose leftButton() ir rightButton() parašiau šias kodo eilutes if(minesCount==0) opencell = OpenTopCell(); if(( N_ROWS * N_COLS - opencell==N_MINES)) { result = 1; statusbar.setText(" :)!!!!YOU WIN GAME!!!! :) "); } metode openNear() parašiau: if (top[mx][my] == IMG_OPEN) { if (map[mx][my] == IMG_MINE) openAllMines(); } metode openAllMines() parašiau result = -1; statusbar.setText("GAME OVER"); sukuriau metoda OpenTopCell public int OpenTopCell()// Metodas skaičiuojantis atvertus laukus { int t=0; for(int y = 0; y < N_ROWS; y++) for(int x = 0; x < N_COLS; x++) if(top [x][y]== IMG_OPEN) t++; return t; } ir į mousePressed() parašiau kiekvienam mygtukui: if(result!=1 && result!=-1) pakeitimai pavaizduoti faile NR2.