# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
Мы начинаем создание игры "MineSweeper" на языке Java. В этом уроке мы поиграем в эту игру и подготовим картинки. Рекомендую самостоятельно нарисовать блок-схему игры. Отчёт отправил: 11317. Reinis Stacevič Выполнено за 10 мин. [Показать отчёт] Научился: nakonec ponial pravila igri:) Сложности: ---------------- Комментарии: ------------------------ |
|||||
2 | Блок-схема |
1 тест |
|||
На этом уроке мы составим блок-схему программы. Что происходит в игре и как это всё связано друг с другом. Обязательно нарисуйте схему от руки или на сайте draw.io. В блок-схеме не хватает одного важно момента - найдите, чего именно и дорисуйте на схеме. Отчёт отправил: 11317. Reinis Stacevič Выполнено за 10 мин. [Показать отчёт] Научился: Stanovica paniatno pro sozdania program, sam proces. V svoju sxemu dobavil sekundamer. Сложности: ------------------------------------ Комментарии: --------------------------------------- |
|||||
3 | Окно проекта |
1 тест |
|||
На этом уроке мы начнём создание программы. Создадим новый пустой Java-проект и создадим форму. Отчёт отправил: 11317. Reinis Stacevič Выполнено за 15 мин. [Показать отчёт] Научился: pervoje okno, na Jave:), mnogo cevo raskazano. JFrame novaja ves. Сложности: ------------------------------------ Комментарии: ----------------------------------- |
|||||
4 | Радуга картинок |
1 тест |
|||
На этом уроке мы загрузим в проект все картинки. Проинициализируем массив с картинками. Напишем функцию 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 | Карта местности |
|
|||
На этом уроке мы создадим матрицу 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<int [][], Integer> 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 | Философия сапёра |
|
|||
На этом уроке мы возьмём новые картинки, сконвертируем их в 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 | Мины на панели |
1 тест |
|||
На этом уроке мы создадим подкласс MinePanel. Именно на этой панели мы будем размещать картинки. Сделаем всё необходимое, чтобы программа заработала. Отчёт отправил: 11317. Reinis Stacevič Выполнено за 20 мин. [Показать отчёт] Научился: setResizable(false) - supratau šios funkcijos paskirti ir veikimą. Dabar geriau suprantu kuriamos programos veikimo principa. Сложности: --------------------------------------- Комментарии: --------------------------------------- |
|||||
8 | Мышечный адаптер |
1 тест |
|||
На этом уроке мы добавим подкласс-адаптер для обработки нажатий кнопки мышки. Сделаем вычисление координат и простые действия по нажатию левой и правой кнопки мышки. Отчёт отправил: 11317. Reinis Stacevič Выполнено за 20 мин. [Показать отчёт] Научился: Sužinojau apie class MouseAdapter kuris skirtas darbui su pelia, ir kaip pakeisti paveiksleli su funkcija repaint() Сложности: ---------------------------- Комментарии: --------------------------------------- |
|||||
9 | Правый флаг |
1 тест |
|||
На этом уроке мы сделаем обработку правой кнопки мышки. Для этого нам придётся добавить дополнительный массив, в котором будет записано, что видно сверху нашего поля. Отчёт отправил: 11317. Reinis Stacevič Выполнено за 20 мин. [Показать отчёт] Научился: Labiau suprantu kaip naudoti MouseAdapter() ir kaip vaizduojami paveiksleliai ir programos logika. Сложности: ------------------------------ Комментарии: ----------------------------------------- |
|||||
10 | Открывашка |
1 тест |
|||
На этом уроке мы сделаем фишку автоматического открытия плашек для клеток, вокруг которых уже все мины проставлены. В стандартном сапёре эта функция вызывается двойным щелчком мышки. Отчёт отправил: 11317. Reinis Stacevič Выполнено за 40 мин. [Показать отчёт] Научился: Rašant programa ir ja testuojant mokausi tuo pačiu žaisti minesweeper. Сложности: --------------------------------------- Комментарии: ---------------------------------- |
|||||
11 | Волшебный метод |
1 тест |
|||
На этом уроке мы создадим волшебный метод 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 | Условие победы! |
1 тест |
|||
На этом уроке мы закончим создание сапёра - сделаем проверку на окончание игры, поздравление с победой, с проигрышем, и запрограммируем начало новой игры. Отчёт отправил: 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 мин. 10 тестов |
13 чел. | |||
Финалисты: Дмитрий, Алексей В., Константин, Новопашин Владимир, Елена, Иван Воронин, Максим Лапшинов, Сергей Соколов, Tekashnik, Babenko Oleg, Reinis Stacevič, Dmitry Sinitsin, Anatoli . |