background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Занятие 4 (08.06.22) Java (основы) поток 32"

input logo icon
Обложка аудиозаписи
Подождите немного, мы готовим ссылки для удобного просмотра видео без рекламы и его скачивания.
console placeholder icon
Теги видео
|

Теги видео

занятие
08.06.22
java
основы
поток
32
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:01
а
00:00:27
так все будем начинать домашку не
00:00:31
разбираю не разбираю потому что у нас
00:00:34
будет равна разбираться в пятницу
00:00:37
подделок понедельник следующей и по
00:00:41
итогам голосования в понедельник
00:00:44
занимаемся только один человек
00:00:45
проголосовал что не занимаемся
00:00:51
все мы будем знать что
00:00:58
все
00:01:04
объясню почему лучше ну как бы
00:01:06
занимаются в понедельник потому что
00:01:08
когда мы пропускаем занимаемся один раз
00:01:11
в неделю у нас есть такое свойство как
00:01:12
немножечко забывать как будто вы
00:01:14
запоминается сейчас все на ну как будто
00:01:17
бы на подкорке она еще не в памяти она
00:01:19
на подкорке если мы его не будем
00:01:20
закреплять два раза в неделю она по
00:01:22
чуть-чуть забывается вот поэтому лучше
00:01:25
соблюдать шаги любили
00:01:29
да так что понедельники слишно кто
00:01:31
планировал да мы занимаемся понедельник
00:01:35
так у кого-то включился микрофончик
00:01:37
алексей тот который вы телеграме
00:01:40
подсоединился
00:01:44
машку не разбираем повторюсь и сегодня
00:01:47
алгоритмом будет самое сложное занятие
00:01:50
по алгоритмам дальше алгоритмов
00:01:52
практически не будет на сегодняшний
00:01:55
момент нам все равно должны как бы
00:01:56
пройти рано или поздно сегодняшнем
00:01:58
занятии мы потом все равно его давать
00:02:00
надо
00:02:01
поэтому лучше сегодня давайте dsm-4
00:02:04
папочка делаем
00:02:07
что мы сегодня будем проходить мы будем
00:02:11
проходить можно сказать цикличность
00:02:14
внутри цикличности такое иногда бывает
00:02:16
то есть цикл в цикле когда используется
00:02:20
цикл в цикле тогда когда у нас есть
00:02:24
предположим какой-то круг и внутри этого
00:02:28
круга повторяются одни и те же действия
00:02:30
а потом опять повторяется этот к ну к
00:02:33
примеру
00:02:35
какое-то может быть круг предположим вы
00:02:38
говорите я каждый день утром встаю и 10
00:02:41
раз приседаю смотрите я каждый день то
00:02:44
есть воин на протяжении там 365 раз то
00:02:47
есть это цикл for которые крутят 365 раз
00:02:51
а если вы говорите каждый день приседают
00:02:54
10 раз то соответственно внутри этого
00:02:57
круга циклов он выше не будете писать 10
00:03:00
раз присесть присесть присесть а вы
00:03:03
делаете еще внутренний цикл for который
00:03:05
делает 10 раз приседания и получается
00:03:08
цикл в цикле и вот таких циклов в циклах
00:03:11
внутри мира их очень много и вот сегодня
00:03:14
наша задача это полностью тренироваться
00:03:16
цикл в цикле
00:03:19
создаем main 1 или просто моим давайте
00:03:25
public static void main и
00:03:30
первую задачу которые мы сделаем это
00:03:36
написать программу которая
00:03:40
будет работать десять лет если ее не
00:03:43
остановить и
00:03:49
секрет если ее не остановить
00:03:55
а
00:03:58
как только мы ее установим она нам
00:04:01
напишет точно сколько прошло от старта
00:04:05
лет дней
00:04:07
месяцов недель там где не знаю все так
00:04:10
далее до а когда мы их остановим
00:04:19
она нам напишет
00:04:22
точно точное время сколько было
00:04:25
подсчитано от старта вот так напишем
00:04:30
сколько прошло от старта а
00:04:36
если мы оставим включенный компьютер 10
00:04:40
лет он будет работать десять лет
00:04:44
то есть смотрите если братьев
00:04:47
10 лет
00:04:50
значит у нас первый год и второй год и
00:04:53
третий год они абсолютно одинаковые и
00:04:55
четвертый год тоже одинаковые значит у
00:04:57
нас есть цикл for который откручивает
00:05:01
годами и он начинает от 0 до 10 то есть
00:05:06
мы пишем цикл for и
00:05:10
для нашей удобства обычно мы здесь
00:05:13
переменную называем ой но в этот раз мы
00:05:16
идем на 7-ой год для того чтобы нам было
00:05:19
уже удобно int год равняется нулю мы
00:05:25
начинаем с 0 потому что первоначально 0
00:05:28
лет правильно прошло со старта 0 нет
00:05:30
поэтому интро и равняется нулю и
00:05:34
год равняется нулю пока год меньше
00:05:39
десяти
00:05:41
год + +
00:05:45
а
00:05:47
теперь когда мы находимся внутри тела
00:05:51
цикла for the мы подразумеваем что это
00:05:55
тело должно отработать 1 год
00:05:59
и таких будет десять кругов пусть 10 лет
00:06:03
значит внутри тела мы должны написать
00:06:06
написать кусочек кода который работает
00:06:08
один год что внутри одного года то есть
00:06:11
нам нужно определить
00:06:13
следующем мы будем считать дни или
00:06:15
месяца давайте мы можем посчитать или от
00:06:18
1 до 3 165 дней но тогда мы будем
00:06:21
программа пишет что со старта прошло 0
00:06:24
дней там вернее 0 лет там
00:06:27
25 дней или там сто сорок три дня до
00:06:30
будет непонятно сколько месяца давайте
00:06:32
все-таки месяце тоже будем считать то
00:06:35
есть внутри года любого абсолютно года
00:06:37
трудится 12 месяцев поэтому вот здесь мы
00:06:41
пишем внутренний цикл for который от 0
00:06:45
до 12 и называем его уже mans
00:06:52
mans равняется нулю по команде меньше 12
00:06:59
+ +
00:07:06
внутри этого цикла for нам нужно
00:07:10
написать кусочек кода который
00:07:11
отрабатывает месяц конечно же месяце
00:07:14
бывают разные и по 28 дней по 30 по 31
00:07:17
но давайте не будем на это зацикливаться
00:07:20
да мы могли бы написать предположим
00:07:22
проверочку какой конкретно этот месяц но
00:07:25
не будем это писать мы напишем
00:07:26
подразумеваешь что каждый месяц 30 дней
00:07:29
и тогда напишем так и
00:07:36
да и равняется нулю
00:07:40
пока день меньше тридцати
00:07:44
до i + + и обратите внимание я всегда
00:07:49
стою внутри внутри внутри я не выхожу за
00:07:51
пределы или дело цикла for то есть все
00:07:54
внутри и
00:08:00
теперь здесь можно написать то что будет
00:08:03
отрабатывать один день соответственно 24
00:08:06
часа здесь уже проще внутренний цикл for
00:08:17
я забыла как писать
00:08:28
с и по к нулю пока час меньше 24
00:08:33
час + +
00:08:42
теперь что будет относительно одного
00:08:45
часа 1 часа мы крути в минуты
00:08:53
mind нулю по камин меньше 60
00:08:57
минут плюс плюс и
00:09:01
в последнем внутреннем цикле мы теперь
00:09:04
открутим то что относится 1 1 минуты это
00:09:07
60 секунд
00:09:09
он
00:09:12
им секту равняется нулю так acer
00:09:18
меньше 60
00:09:28
всех + + и
00:09:35
вот здесь от этой фигурные скобочки дают
00:09:39
фигурные скобочки должна пройти в итоге
00:09:42
одна секунда
00:09:44
как сделать так чтобы год проходил одну
00:09:49
секунду то есть мы можем первым делом
00:09:51
это что сделать вывести сообщение что от
00:09:54
старта прошло сколько-то лет столько
00:09:56
месяцев столько-то дней и так далее как
00:09:59
это вывести то есть мы можем сделать
00:10:01
систему от printer and и
00:10:04
предположим сделать вот здесь от старта
00:10:07
прошло плюс и вставить туда переменную
00:10:09
но также есть другой способ другой
00:10:13
способ это что такое систем систем этом
00:10:16
наш компьютер что такое out out это наша
00:10:19
консоль у
00:10:21
нашей консоли есть определенные методы
00:10:24
когда ставим точку вот набор методов
00:10:27
также набор методов как у типа string
00:10:30
out это объект тоже какого-то
00:10:32
определенного типа здесь есть метод
00:10:34
print л.н. мы вызывали один из них что
00:10:37
такое за метод print and print л.н. это
00:10:40
печать с переходом на следующую страницу
00:10:43
л.н. на следующую строку л.н. это
00:10:45
говорит о том что перейти на следующую
00:10:47
строку для следующего вывода метод print
00:10:50
это печать без перехода на следующую
00:10:54
строку все что будет выводиться это
00:10:57
будет выводиться внутри одной долгой
00:10:59
строке а есть также еще принт эф эф это
00:11:03
отформатированный вывод вот сейчас вы
00:11:05
возьмем принт эф от форматированный
00:11:07
вывод
00:11:09
когда мы видим что несколько методов вот
00:11:12
принт эф метод и вот принт эф метод
00:11:14
бывает такое что вот метод имеет одно
00:11:16
одинаковое название но на самом деле
00:11:19
разные входящие параметры это разные
00:11:22
методы и в зависимости от того что вы
00:11:25
дадите внутрь круглых скобочек такой
00:11:27
метод и будет вызван одессы сюда в
00:11:31
круглые скобочки вы дадите более то
00:11:32
будет вызван метод print этот а если
00:11:35
дадите chart будет вызван этот и он сам
00:11:38
динамически подстраивается от того что
00:11:41
вы даете входящими параметрами сейчас по
00:11:43
большому счету мы будем вызывать вот
00:11:45
этот метод которым будем давать string
00:11:48
текстовую строку и объекты для вывода но
00:11:51
если мы по случайности выберем вот этот
00:11:53
это тоже ничего страшно потому что он
00:11:56
динамически построиться от входящих
00:11:58
параметров для предположим даже выберу
00:11:59
вот этот специальным и теперь даю все
00:12:02
таки вот он показывает что я должна
00:12:04
якобы дать такой объект но я отдаю
00:12:06
стрелковую переменную
00:12:09
то что хочу вывести и он уже взял другой
00:12:13
другой метод он перестроился и
00:12:17
здесь в двойных кавычках я даю эту
00:12:20
строку которую хочу вывести предположим
00:12:23
так от старта прошло : у к примеру 1 год
00:12:30
2 месяца
00:12:33
23 дня
00:12:37
12 часов
00:12:40
34 минуты
00:12:42
14 секунд
00:12:45
то есть мы написали всю строку которого
00:12:48
мы хотим чтобы вывелось
00:12:54
принтер не имеет сходство перехода на
00:12:58
следующую строку поэтому следующая
00:13:00
строка и следующая следующая будет у вас
00:13:02
выводиться в 1 ден эстроген поэтому
00:13:04
чтобы такого не было здесь в конце после
00:13:07
14 секунд ставим clash n slash м это и
00:13:11
есть переход на следующую строку слеш н
00:13:16
вот такой вот то есть мы находясь внутри
00:13:20
двойных кавычек напишем сны будет
00:13:24
переход на следующей строкой а
00:13:26
теперь поскольку это отформатированный
00:13:28
вывод в нем теперь разрешается вставлять
00:13:31
переменные внутри текстовой переменной и
00:13:34
переменными мы хотим подставить вот это
00:13:36
значение потому что ни один год а
00:13:38
столько сколько открыть открутил сейчас
00:13:41
вот этот цикл for вот сюда подставить
00:13:43
переменную год вместо двойки я хочу
00:13:46
переменную man's подставить вместо 20
00:13:49
дней до и переменную и так далее то есть
00:13:53
я в итоге хочу подставить раз два три 4
00:13:56
5 шесть переменных
00:13:58
как обозначать переменная я вместо вот
00:14:02
этой единички ставлю значок процента
00:14:05
сначала процента и это идет обозначения
00:14:08
переменной значит процента и предположим
00:14:12
днд это число d идет от de simone
00:14:17
число то есть я указала что сюда будет
00:14:20
вставлена число поскольку у меня год в
00:14:23
числе дальше здесь тоже я ставлю значок
00:14:27
процент на d
00:14:28
поскольку тоже будет вставлена число и
00:14:31
соответственно вместо 23 тоже значок
00:14:34
процента да и вместо 12 вместо 34 и 14
00:14:40
то есть таким образом раз два три 4 5
00:14:43
шесть значок процента dema
00:14:46
если бы у нас был бы не числовой формат
00:14:50
то вместо буквы д был была бы какая-то
00:14:53
другая буква и эту букву пришлось бы до
00:14:55
смотреть в интернете
00:14:56
предположим если текстовое то с буква но
00:15:00
в нашем случае у нас все буквы д м и
00:15:05
теперь после вот этой переменной
00:15:08
находясь внутри
00:15:10
тела методы
00:15:13
здесь я должна через западную теперь
00:15:16
положить шесть переменных которые будут
00:15:20
подставлены вот вот эти значения
00:15:23
1 я представляю соответственно вот ,
00:15:27
потом месяц
00:15:31
,
00:15:33
потом с на день
00:15:38
сейчас
00:15:41
минутам и
00:15:43
секундам
00:15:54
главное чтобы количество вот этих
00:15:57
совпало с количеством вот эти
00:16:00
порядок вашим на порядок ваши четко она
00:16:04
будет подставлена это первая здесь она
00:16:06
первое это 2 здесь 2 конечно
00:16:14
дописали и теперь если запустить
00:16:18
если запустить
00:16:25
[музыка]
00:16:31
если запустить то у нас очень быстро
00:16:34
пошло в консоли много всего писать
00:16:37
статьи не пишутся минут и сейчас я
00:16:41
посмотрю
00:16:42
[музыка]
00:16:46
что я два раза man's
00:16:55
смотрите если мы запустим то сказать что
00:16:58
это работает в режиме реального времени
00:17:00
невозможно сказать потому что он начнет
00:17:03
очень быстро отсчитывать от меня пошли
00:17:06
три минуты 710 1834 уже вот сколько
00:17:09
минут но за то что мы видим он правильно
00:17:12
отсчитывает круги 6 7 8 9 10 вот
00:17:16
правильно отсчитывает но только и тесто
00:17:18
момент что отсчитывает очень быстро и
00:17:21
как и мы видим что когда закончились
00:17:23
предположим секунды в секунды вот пошли
00:17:26
60 вот кругов то тогда действительно
00:17:29
секунды пошли заново заново но минутка
00:17:34
увеличилась счетчик сам правильное
00:17:37
только неправильная режим реального
00:17:38
времени как добавить режим реального
00:17:40
времени
00:17:42
нам же нужно чтобы вот этот кусочек кода
00:17:46
вот этот круг он проходил ровно одну
00:17:49
секунду и соответственно нам нужно
00:17:52
сделать так чтобы поток который
00:17:54
выполняет этот ход потому что реально
00:17:57
кто-то этот код выполняет это поток и
00:18:00
этот поток нам нужно остановить на одну
00:18:04
секунду то есть он выполнил быстро
00:18:06
напечатал на консоли теперь говорим
00:18:08
подожди секунду в том дальше напечатал и
00:18:10
опять говорим подожди секунду то есть мы
00:18:13
его будем тормозить а каждую секунду
00:18:16
тормозит на спать на одну секунду ровно
00:18:18
давать вообще работы с потоками у нас
00:18:22
будет примерно на девятнадцатом занятий
00:18:24
но сейчас мы просто посмотрим как
00:18:27
усыпить поток на одну секунду мы
00:18:31
обращаемся к файлик у под названием сред
00:18:34
этот файлик
00:18:37
там получилось
00:18:39
мы обращаемся к валику под названием
00:18:42
среда этот файлик он управляет потоками
00:18:48
когда салли снова сайт импорта никакого
00:18:51
сверху не подтянулась
00:18:55
свет это ссылка считайте что на поток
00:18:58
который выполняет ваш код и здесь есть
00:19:00
мне этот метод под названием слепцы то
00:19:03
есть заснуть и сюда мы можем указать
00:19:05
количество миллисекунд сколько мы хотим
00:19:07
чтобы спал наш потом и указываем тысячу
00:19:12
далее кусочек кода ругается но то что он
00:19:16
ругается эту тему мы с вами рассмотрим
00:19:18
на шестнадцатом примерно занятие то есть
00:19:20
вот это сейчас как исправить просто
00:19:23
говорю но не буду говорить
00:19:25
соответственно что конкретно происходит
00:19:28
когда мы видим что красном ругается мы
00:19:32
становимся на слова slide и появляется
00:19:35
вот такая вот лампочка если мы на
00:19:37
лампочку кликаем есть два варианта
00:19:39
решения задачи давайте все выберем 1 1
00:19:44
это будет it takes a action in метод
00:19:46
сигнатура
00:19:48
он на самом деле добавил вот такую всего
00:19:51
лишь шапочку но эта шапочка позволило не
00:19:54
ругаться вашему ходу получилось
00:19:59
то есть еще раз кусочек кода который при
00:20:02
сцепляет поток
00:20:07
вот у вас вы написали так сразу большой
00:20:10
губы
00:20:11
slip вызвали снова mills не пиши мне в
00:20:16
коем случае она вставилась самой вызвали
00:20:19
вот этот метод . снег и вставили сюда в
00:20:23
тысячу
00:20:24
теперь ругается ход стали на него
00:20:27
окликнули отошли сгенерировалась
00:20:29
лампочка на лампочку нажали и выбрали
00:20:32
вариант добавить эксепшен in метод и у
00:20:36
вас прописалась вот такая штучка которая
00:20:38
дала возможность не ругаться этому ходу
00:20:41
но эту тему мы пока не разбираем а вот
00:20:44
это усыпляет поток на 1 секунду теперь
00:20:47
когда мы запустим произойдет режим
00:20:49
реального времени
00:20:54
то есть вот мы видим программа прошла
00:20:56
медленно и она действительно отсчитывает
00:20:59
правильно секунды абсолютно правильным и
00:21:02
если ее не останавливать то она будет
00:21:05
работать в итоге 10 лет
00:21:10
[музыка]
00:21:18
это режим реального времени потому что
00:21:21
вы указали вот слеп .
00:21:24
1001
00:21:25
секунд
00:21:31
ну это же задача которой я смотрю
00:21:35
которые она не напишет точное время
00:21:37
сколько прошло орда он значит это просто
00:21:40
такая задача написать реальные время
00:21:42
сколько прошло от старта как она
00:21:44
работает разберу
00:21:48
когда мы
00:21:49
работает она примерно вот так
00:21:52
встречается цикл год равняется нулю 0
00:21:56
меньше десяти до надо прокрутить тело
00:21:59
здесь это это встречается цикл монти
00:22:01
меньше нулю man's 000 меньше двенадцати
00:22:05
до а здесь опять встречается темы опять
00:22:08
цикл for
00:22:10
100 меньше тридцати до опять цикл час на
00:22:14
час меньше двадцати четырех до минута 0
00:22:17
минут от 60 до секунды новым секунда
00:22:20
меньше 60 до отрабатывает тела вот здесь
00:22:23
только отрабатывать тела и он пишет со
00:22:25
старта прошло 00000 она подставляет
00:22:28
потому что эти переменные реально 0
00:22:30
засыпают на одну секунду и следующие
00:22:34
сект + + и он сначала отрабатывает вот
00:22:37
этот внутренний цикл for крутят крутит
00:22:40
крутит против до 60 как только он
00:22:43
докрутил 60 60 меньше 60 нет это
00:22:48
получается мы дошли до конца тело цикла
00:22:50
фон значит минута плюс плюс мы сюда
00:22:53
вернулись минута меньше 60 до опять
00:22:57
нужно выполнять внутренний цикл и фоне
00:22:59
опять пройдет 60 кругов только уже
00:23:02
относительно минуты один когда минута
00:23:05
один дошла до конца 60 кругов дошли
00:23:07
минута стала 22 меньше 60 до и опять
00:23:11
пошли рук то есть эти он не выходит даже
00:23:15
до этого круга когда он дойдет до отсюда
00:23:17
досюда до час плюс плюс он дойдет только
00:23:20
через час соответственно вот мы и видим
00:23:24
что он крутит абсолютно правильным смысл
00:23:26
понятен
00:23:27
замечательно я останавливаю программу
00:23:30
все и
00:23:31
теперь уберем себе тренажер чек на
00:23:34
котором будем откатывать цикле поскольку
00:23:36
он используется часто
00:23:39
на каком в тренажере его будем
00:23:42
откатывать на вот таком сейчас вам
00:23:45
покажу
00:23:56
мы с вами на прошлом занятии мы учили
00:24:00
массивы
00:24:02
учили массивы вот такие
00:24:05
вот такой был массив и у
00:24:09
каждого у
00:24:11
каждого получается каждой ячейки были
00:24:13
подписаны вот так сверху яндексе но это
00:24:17
не единственный формат массива массив
00:24:20
бывают
00:24:21
еще и вот такой вот такой это называется
00:24:26
2-мерный массив и
00:24:27
в двухмерном массиве им вот это это
00:24:31
индексы колонок вот колонка вот 3 4 5
00:24:36
колонка а вот это это будет яндексе
00:24:40
строк
00:24:41
индексы строк начинаются тоже от 0 вот
00:24:45
сюда пришли яндекс острова
00:24:48
индексы строк считаются немножечко
00:24:51
главнее чем индексы колонок и они идут
00:24:54
первичные почему потому что на самом
00:24:58
деле вот такой 2-мерный массив
00:25:00
на самом деле это одномерный вот такой
00:25:03
массив вот это это идет якобы нулевой
00:25:07
этаж первый этаж 2 3 4 будем вот так
00:25:11
считать 4 а на нулевом этаже
00:25:14
я его вот под свечу предположим раньше
00:25:17
вам на нулевом этаже лежит вот этот
00:25:19
одномерный массив вот этот одномерный
00:25:22
массив и получается что внутри этой
00:25:24
ячейке лежит целый массив вот здесь а
00:25:28
внутри этой ячейке лежит вот этот целый
00:25:32
массив
00:25:33
а внутри этой ячейки соответственно вот
00:25:37
этот может целый массив лежать и этот
00:25:40
массив чисто теоретически я специально
00:25:41
вышла за пределы он может быть больше
00:25:44
чем вот этот почему бы нет а внутри вот
00:25:48
этого соответственно
00:25:50
вот этот предположим массивчик тоже он
00:25:53
может быть меньше все эти клеточки я
00:25:55
убрала
00:26:00
нет границ сейчас
00:26:03
то есть вот так и
00:26:06
соответственно на каждом этаже свой
00:26:10
пассив поэтому вот эти индексы строк вот
00:26:15
эти они идут первичны более важны чем
00:26:18
вот этим но обычно конечно же двухмерные
00:26:21
массивы они ну как бы ровненькие они
00:26:25
имеются ввиду что с одинаковым
00:26:27
количеством строк одинаковым количеством
00:26:28
колонок не не с разным но с разными
00:26:32
могут быть просто сразу говорю с разными
00:26:34
могут быть если мы хотим вот сюда на эту
00:26:38
ячейку положить какие-то данные вот на
00:26:40
эту то мы должны знать ее индексы
00:26:43
индексы строки и индексы колонки
00:26:46
получается 23 яндексе где это
00:26:50
используется давайте так вот где это
00:26:52
используется с их оказываем
00:27:00
игра крестики-нолики
00:27:02
в картинках мы видим что мы видим вот
00:27:05
здесь 2-мерный массив в котором
00:27:07
заполнены какие-то даль данные да где то
00:27:10
можно стать где-то нет не стать
00:27:12
игра предположим сапер тоже кто знает
00:27:17
кто играл в кого windows вот тоже
00:27:20
2-мерный массив в котором есть где-то
00:27:23
бомбочки где это могут быть еще
00:27:27
это могут быть шахматная доска на
00:27:30
которой могут играть правильно это позже
00:27:33
2-мерный массив это может быть морской
00:27:36
бой это могут быть матрицы
00:27:39
математические и так далее то есть вот
00:27:41
то что требуется в виде вот такой вот
00:27:45
структур не сохранить до использование
00:27:48
очень много где используется мы с вами
00:27:50
тоже будем его использовать и
00:27:53
если нам нужно его использовать давайте
00:27:56
тогда мы создадим сделаем первую задачу
00:27:59
это создадим предположим в двухмерный
00:28:01
массив пустой пустой предположим и
00:28:04
укажем что там будут храниться ин-т если
00:28:07
мы укажем что будут храниться intel то
00:28:10
они автоматически
00:28:11
дай очень очка заполнится чем ноликами
00:28:14
если мы укажем что тут хранятся intel то
00:28:18
значит у нас все будет нолики и
00:28:21
заполненная каждая ячейка ноликами мы
00:28:24
попробуем вывести просто на концу от
00:28:27
весь наш массив то есть вот так мы
00:28:28
первоначально его создадим и напечатаем
00:28:31
здесь вот такая задача создаем main один
00:28:39
public static void main
00:28:48
как застать вас fps мы указываем тип int
00:28:52
дальше одинарные и двойные
00:28:56
и
00:28:57
скобочки кстати могу сразу забежать
00:29:00
наберет есть еще такое понятие как
00:29:03
трехмерный массив вот такой трехмерный
00:29:06
массив это предположим убёг рубика когда
00:29:09
есть координата x y и z sorento то есть
00:29:13
трехмерный массив это когда x y z да вот
00:29:16
кубик рубика данные примеры когда есть
00:29:17
объем но у нас объема нет давайте пока
00:29:20
двухмерного всех вот такой мы назовем
00:29:24
его предположим numbers
00:29:27
сравняется и
00:29:30
мы можем опять таки имеет два варианта
00:29:32
либо сразу заполнить его какой-то
00:29:36
информацией
00:29:37
это первый вариант и второй вариант это
00:29:41
если мы ничего не укажем то есть мы
00:29:43
создадим его пустым и тогда он создастся
00:29:45
ноликами у нас как раз таки усваивают
00:29:47
вариант ноликов соответственно мы
00:29:49
создаем с помощью слова new также также
00:29:52
new in тупая своим значок двухмерного
00:29:55
массива и в первых уголках нам нужно
00:29:58
указать количество строк во вторых
00:30:02
количество колонок ну предположим
00:30:05
количество строк мы хотим 3 а количество
00:30:08
колонок 4 3 на 4 и
00:30:14
теперь попробуем теперь
00:30:19
попробуем мы вывести на консоль каждую
00:30:22
ячейку с учетом того если бы мы не знали
00:30:25
бы цикла for не знали получается мы
00:30:29
выводим вначале то есть у нас три на
00:30:32
четыре дня три строки вот так на 4 то
00:30:37
есть у нас вот такой вот такой если мы
00:30:41
не знали цикла форма бы вначале выбили
00:30:43
вывели в яндексе 00 потом 01 02 и 03
00:30:50
секунду перезапустится
00:31:27
получается он вы делаем расистом от
00:31:30
pretend давайте
00:31:45
чисто мало принтами
00:32:00
здесь выводим ячейку наверх по индексу
00:32:05
00
00:32:09
нам пирс по индексу 00 то есть мы вывели
00:32:12
получается вот эту 00 дальше мы хотим
00:32:17
01 получается 1 первичные строки 01
00:32:21
соответственно делаем
00:32:22
копируем вставляем ниже 01
00:32:27
только важный момент мы что мы хотим же
00:32:30
чтобы продолжился вывод на этой же
00:32:33
строке правильно поэтому мы должны
00:32:36
удалить м м и вызвать просто метод print
00:32:39
который следующую ячейку оставит на той
00:32:42
же строке если спринт тоже и также чтобы
00:32:46
циферки не были в слив он я бы еще после
00:32:50
вывода одного числа добавило бы плюс в
00:32:54
двойных кавычках пробел просто для того
00:32:56
чтобы был доступ
00:32:58
здесь получается тоже скопируем
00:33:01
ставлю отступ и
00:33:05
теперь соответственно вот эту строчку
00:33:09
скопирую ставлю вставлю у нас получается
00:33:13
четыре ячейки внутри одной строке с
00:33:17
индексом 0 1 2 3 соответственно здесь
00:33:19
меняю
00:33:21
0123 то есть вот так мы выведем первые
00:33:24
стэком
00:33:26
после первой строки нам нужно перейти на
00:33:30
следующую строку соответственно здесь мы
00:33:32
уже можем сделать
00:33:34
систем от print л.н. и в него внутри
00:33:38
ничего не вложить для того чтобы был
00:33:40
переход на новую строку и
00:33:42
далее повторить еще раз вот эту строчку
00:33:46
только поменять вот здесь индексы
00:33:48
индексы сделать уже единица потому что
00:33:51
уже будет не нулевая строка не вот эта
00:33:54
строка а вот эта строка в ней в колонках
00:33:57
индексы такие же а в строке меняется и
00:34:00
единичка составляется поэтому я копирую
00:34:03
даже я бы сказала копируем все вот эти
00:34:05
строчки
00:34:08
вставляю их ниже и здесь меняю индекс на
00:34:14
1111 то есть первая строка налево ячейка
00:34:17
1 1 1 2 1 3 и
00:34:21
поскольку у нас три строки то
00:34:24
соответственно мне нужно будет еще для
00:34:26
третьей строке скопировать-вставить
00:34:28
ниже и поменять здесь индексы
00:34:31
соответственно на 2 2 2 2 2 получается
00:34:36
что это индексы вот этой второй строке
00:34:38
20 21 22 23
00:34:42
вывели 20 21 22 23
00:34:45
теперь я запущу чтобы увидеть результат
00:34:59
вот есть
00:35:05
смысл пока понятен правильным привет
00:35:08
замечательно а теперь вопрос становится
00:35:11
конечно же как сократить потому что
00:35:14
неправильно полностью вручную все
00:35:17
записывать поскольку если будет 100 на
00:35:21
100 как бы очень много будет строчек
00:35:23
целые ты сейчас прочее
00:35:25
как сократить вот мы должны посмотреть
00:35:28
хронологию если взять на самом деле одну
00:35:31
любую строку вот предположим вот эту в
00:35:35
этой строке 1 ровно такая же так вот это
00:35:37
строка только меняются два числа
00:35:41
это строка относительно вот этой строке
00:35:43
тоже в нее изменены два числа
00:35:47
соответственно нам нужно два числа
00:35:49
генерировать каких-то
00:35:52
первым числом вот обратите внимание вот
00:35:55
это первое число все 0000 а вот здесь
00:36:00
1111 вот здесь 2 2 2 2
00:36:04
соответственно делаем выводы что мы
00:36:07
можем чисто теоретически написать цикл
00:36:09
for который просит вот этот кусок кода 0
00:36:13
1 2 3 раза
00:36:17
крутят вот мой переменную а вот сюда
00:36:20
подставим и получается весьма ухода
00:36:22
будет
00:36:23
01 давай ну давайте так и сделаем 8 ниже
00:36:28
ставим записали форм круглые скобки темы
00:36:33
and i равняется на взлом пока они меньше
00:36:39
трех в нашем случае потому что мы хотим
00:36:42
сгенерировать
00:36:43
012 и плюс плюс а
00:36:53
вот сюда в тело мы вставляли вы прям
00:36:57
весь один кусок вот такой я его отсюда
00:37:01
скопирую сюда
00:37:02
вставлю и
00:37:05
я уже заведомо до этого проговорила что
00:37:10
вот эту двойку я буду менять на и здесь
00:37:14
и здесь и здесь и здесь получается будет
00:37:21
так равняется нулю пока а и меньше всем
00:37:24
пока а и меньше трем получается и меньше
00:37:28
трех до мы прокручиваем вот этот кусок и
00:37:31
сюда подставиться 0000 то есть будет
00:37:34
выведена фактически вот это
00:37:37
дальше ой увеличится на 1 1 меньше 3 до
00:37:41
будет крутиться весь круг
00:37:44
1111 сюда будет подставлена и будет вот
00:37:47
этот кусок от работаем дальше ой
00:37:50
становится 2 2 меньше 3 да и судака
00:37:54
ставилась 2222 отработал
00:37:57
согласны
00:38:00
пока да потому что он нам нужен а теперь
00:38:05
мы пойму понимаем что мы из этих трех
00:38:07
кусков сделали один кусок но теперь мы
00:38:10
видим а как еще мы можем сократить то
00:38:13
есть мы берем одну эту строчку и
00:38:14
понимаем что эта строка отличается от
00:38:17
этой вот циферкой вот смотрите циферка
00:38:20
еще одна какая-то крутится то есть на
00:38:22
самом деле вот эту строчку мы крутим
00:38:24
четыре раза и в ней меняется
00:38:27
0123
00:38:29
соответственно внутри находясь здесь мы
00:38:32
можем ее зациклить четыре раза
00:38:34
запустится comfo на четыре раза да а
00:38:37
почему нет то есть вот здесь я напишу
00:38:39
цикл for который крутит 0123 вот эти
00:38:44
цифры 0 1 2 3 вот здесь он будет внутри
00:38:49
потому что нам этот кусочек кода нужен
00:38:51
внутри и
00:38:53
поскольку а и переменные уже занято
00:38:56
следующая внутренняя переменная
00:38:58
называется джей обычно int j равняется
00:39:02
нулю
00:39:03
пока джей меньше 4 это увидели она
00:39:09
меньше четырех и здесь меньше 4 мы здесь
00:39:11
и здесь бизнес
00:39:14
4j + + а
00:39:17
сюда вставляем вот эту одну строку вот
00:39:22
эту одну строку и
00:39:24
меняем двоечку на переменную джей
00:39:27
получается джей меньше 0 у
00:39:30
джей 0 0 меньше четырех до печатать на
00:39:35
консоль
00:39:36
00 предположим j + + j
00:39:41
1 меньше четырех до печатает на консоль
00:39:44
01 джей становится 2 2 меньше 4 до
00:39:49
печатается на консоль соответственно уже
00:39:52
02 и 03
00:39:55
то есть вот это это будет аналог вот
00:39:56
этой вот этой вот этой и вот этой строке
00:39:59
когда он дойдет нам нужно конечно же
00:40:02
теперь вот это сделать а вот это мы
00:40:05
никак не за цепным поскольку она сама по
00:40:07
себе стоит и я его просто вставляю после
00:40:11
цикла for и теперь вот этот кусок кода
00:40:14
он заменен вот этим usb am кода и вот
00:40:17
этот кусок куда я отсюда уже удаляю
00:40:19
просто даже беру удаляю и получается у
00:40:22
нас вот такой вот лаконичный красивый
00:40:25
цикл в цикле цикл в цикле это идет
00:40:28
проход по
00:40:30
ну получается как бы квадратному нашему
00:40:33
либо прямоугольному двухмерному массивы
00:40:36
и вот это я теперь закомментирую вообще
00:40:42
комментирую всё и теперь беру и запускаю
00:40:48
проверяю от работает ли правильным
00:40:56
отрабатывает абсолютно правильного его
00:40:58
правильно заменили единственный момент
00:41:01
что еще хотелось это заменить вот эту
00:41:04
троечку и вот эту четверочку потому что
00:41:06
мы в шили их и троечка это ссылка на
00:41:10
самом деле на количество строк потому
00:41:12
что у нас три строки и сюда подставлена
00:41:15
троечка а4 это количество колонок 404
00:41:20
колонки соответственно нам их нужно
00:41:22
заменить вместо троечки узнать строки
00:41:26
количество строк и the numbers .
00:41:29
linux это будет количество строк а
00:41:33
как узнать колонки а колонки
00:41:37
это нам нужно взять ссылку на текущую
00:41:41
строку то есть вот это это весь этаж
00:41:43
котором есть указания количества
00:41:46
количество нам нужно взять весь этаж и
00:41:49
узнать его длину весь этаж либо либо
00:41:52
этот его это обращение ко всему этажу и
00:41:56
the numbers по индексу предположим 0 вот
00:42:00
мы один раз указали квадратные уголки
00:42:04
это значит обращение ко всему этажу ко
00:42:06
всей строке
00:42:07
но указывая но это мы обращаемся к 0
00:42:11
строке указывая один обращаемся к первой
00:42:15
строки а здесь нужно подставить а и
00:42:17
потому что как раз таки и ой он и крутит
00:42:20
индексы этажей и получается numbers по
00:42:24
индексу .
00:42:25
links длина вот это это будет количество
00:42:28
колонок вот этот синтаксис просто его
00:42:31
нужно как бы один раз понять и запомнить
00:42:34
и
00:42:36
теперь еще раз запущу то есть у нас вот
00:42:39
такой вот проход
00:42:41
будет частым
00:42:46
вот то есть мы видим что ничего не
00:42:48
полагалось и
00:42:52
делаем выводу выводы что ой генерирует
00:42:57
индексы строк аджей генерирует индексы
00:43:00
колонок аль стрелки джейк колонке у
00:43:05
всех получилось
00:43:08
[музыка]
00:43:15
нет не у всех получалось у
00:43:19
[музыка]
00:43:24
меня нолики у
00:43:27
[музыка]
00:43:33
[музыка]
00:43:37
всех получается у вас тоже ребят до
00:43:40
получилось так хорошо
00:43:42
играть те кто выманиваешь тоже
00:43:44
параллельно делаете у вас тоже
00:43:46
получается если у вас просто из вопросы
00:43:48
как бы обычно группу более активны в том
00:43:50
плане что те кто в онлайне можно
00:43:51
включать микрофон и в любой момент
00:43:52
спрашивать какие-то вопросы
00:43:55
либо скрины и показывать ваши учатся
00:43:57
бросать я могу их разбирать
00:44:04
либо хотя бы в чат писать если есть
00:44:08
такая возможность хорошо ребят двигаемся
00:44:11
дальше да у всех все ок здесь вас ребят
00:44:13
тоже когда
00:44:15
[музыка]
00:44:28
[музыка]
00:44:51
[музыка]
00:45:02
[музыка]
00:45:21
[музыка]
00:45:22
лишь также сделал хорошее изучаем через
00:45:26
без
00:45:27
них
00:45:33
увидимся дальше
00:45:35
двигаемся дальше вообще общими тщательно
00:45:40
так делаем следующие мои на
00:45:43
следующий день войны 2 и
00:45:52
public static void main можете чуть-чуть
00:45:55
окошечко период к числу мест
00:45:57
возможностям want to darna
00:45:59
спасибо
00:46:08
давайте теперь попробуем
00:46:13
сделать такой момент
00:46:16
задание будет сразу говорю сложнее но
00:46:20
тем не менее мы будем сейчас пытаться
00:46:22
сделать его
00:46:32
будет вот такой формат
00:46:36
ну предположим у нас есть
00:46:39
восемь на восемь
00:46:48
восемь на восемь и
00:46:56
наша задача
00:46:58
пусть это все будет заполнено ноликами
00:47:01
окей не проблемы но наша задача вывести
00:47:05
на консоль
00:47:07
все это нолики но вывести на консоли там
00:47:12
где в таком формате сейчас вам покажу
00:47:15
просто
00:47:18
до в шахматном порядке
00:47:21
вот так и
00:47:26
соответственно там где нолик выпадает на
00:47:29
желтенькую предположим вывести нолик а
00:47:31
там где нолик выпадает на зелененькую
00:47:35
вывести единицу
00:47:41
предположим вот так
00:47:51
как это делать ну давайте вот в принципе
00:47:54
будет понятно что там где я не буду
00:47:57
запутывать единичками хотел бы вот вот
00:48:00
так задача вывести вот так на консоль
00:48:03
только там где зелененькая это будет
00:48:05
выводиться предположим нолик а там где
00:48:07
желтенькая будет выводить св .
00:48:10
как это делать то есть давайте так у нас
00:48:13
есть в любом случае нам нужно 2-мерный
00:48:17
массив создать phone 7 на 8 и
00:48:19
первоначально сказать что он заполнен
00:48:22
ноликами здесь создаем 2-мерный массив и
00:48:27
значок двухмерного массива
00:48:31
можно назвать также иваном вас
00:48:36
поменяется new
00:48:40
значок двухмерного и на значок
00:48:42
двухмерного массива 8 на 8
00:48:48
[музыка]
00:48:56
и
00:48:59
далее
00:49:01
мы соответственно что думаем нам нужно
00:49:05
печатать каждую ячейку на сто процентов
00:49:08
каждую да то есть у нас будет генерация
00:49:10
всех индексов будет генерация однозначно
00:49:13
всех индексов только в зависимости от
00:49:16
каких-то определенных условий печатаем
00:49:18
либо вот так либо вот так то есть это
00:49:20
уже или или будет нас записано внутри но
00:49:24
проход идет по всем индексом если проход
00:49:28
по всем индексом это однозначно вот
00:49:30
такой цикл внутри такого цикла это
00:49:33
генерация индексов ой это генерация
00:49:35
индекс арджей это сто процентов и без
00:49:38
этого никак поэтому сразу делаю цикл for
00:49:42
первый цикл for будет генерировать
00:49:45
индексы строк получается int i равняется
00:49:49
но двум пока а и меньше на
00:49:55
пирс . минус и плюс плюс вот это это
00:50:01
генерация строк и вот эти круги и это
00:50:04
аналог того же самого как будто бы мы
00:50:06
ходим вот так
00:50:09
раз-раз-раз-раз
00:50:11
построчно
00:50:12
мы ходим построчном и он будет
00:50:16
соответственно делать восемь кругов
00:50:20
дальше стоим внутри и
00:50:23
пишем цикл фон который генерирует
00:50:27
индексы строк то есть мы ярко бы стали
00:50:29
на эту строчку и теперь генерирую мной
00:50:31
один два три четыре пять шесть семь
00:50:32
следующий устами опять 0 1 2 3 4 5 6 7
00:50:36
то есть мы генерируем
00:50:37
индексы колонок в круглые скобки тело
00:50:44
здесь идет find j равняется нулю
00:50:50
пока джей меньше вот здесь это надо
00:50:53
просто запомнить такая же формулировка
00:50:55
numbers по индексу и . винкс она здесь
00:50:59
идет всегда такая лампа по индексу ой то
00:51:02
есть текущая строка ю . links
00:51:07
j + +
00:51:15
после внутреннего цикла фон в любом
00:51:19
случае у нас будет переход на новую
00:51:21
строку и он будет вот здесь то есть
00:51:24
когда мы внутренний цикл по завершили у
00:51:26
нас идет система принтера а
00:51:32
внутри мы печатаем или так или так в
00:51:37
зависимости от условия то есть нам нужно
00:51:41
поставить или так или так
00:51:45
или так или так у нас будет это условие
00:51:49
if и else а вот здесь я сразу пишу их
00:51:54
круглые скобки тела и
00:51:57
обязательно после тело пишу lc и телом
00:52:11
и
00:52:15
внутри этого условия
00:52:21
я печатаю на консоль только беру system
00:52:24
and print я печатаю на консоль
00:52:27
предположим 0 пробел а
00:52:31
в этом случае я печатаю на консоль один
00:52:36
пробел то есть либо ноль пробел печатаем
00:52:40
либо один пробел печатаем или или
00:52:42
сделали разминку и
00:52:45
обращаю внимание что систему от print
00:52:48
без елена без перехода на новую строку а
00:52:51
теперь нам всего лишь все что осталось
00:52:54
это вот здесь прописать правильные
00:52:56
условие когда мы печатаем 0 а
00:53:00
когда мы печатаем 0 это условия никто
00:53:04
никогда не увидит фактически если
00:53:06
визуально это не отображать вот давайте
00:53:08
визуально попробуем посмотреть
00:53:11
вот вот есть картинка я вот эти строки
00:53:15
удален вот есть картинка вот здесь
00:53:18
сейчас буду печатать то есть у нас есть
00:53:20
привязка только вот этим цифрам эти
00:53:24
цифры это генерация
00:53:28
нет нет нет просто я совсем забыл что
00:53:31
excel с баком и жирность нельзя выбирать
00:53:34
ладно час он зависнет и закроется самом
00:53:39
интересном месте как говорится
00:53:43
ладно
00:53:47
[музыка]
00:53:49
мне тут нужно будет рисовать и совсем
00:53:53
чуток
00:53:57
они из очень быстро excel компрессора
00:54:00
еще раз
00:54:02
это нечётное нечетное
00:54:09
нормально отлично
00:54:11
нет это нечётное ничего дна и посмотрите
00:54:14
вот это это мы генерируем индексы ой вот
00:54:19
здесь я подпишу что это ой
00:54:24
ну ладно тогда
00:54:33
он был
00:54:35
лишь нет
00:54:38
это мы вообще мы можем привязываться
00:54:42
только к тому что динамически меняется
00:54:45
то есть у нас с каждым блоком
00:54:47
динамический есть ой есть джейк это
00:54:50
индексы и нам нужно только привязываться
00:54:52
однозначно к ним и цель и понять
00:54:55
зависимость когда 3.0 а когда клеточка
00:54:59
единица понять зависимость вот эта
00:55:02
колоночка у нас идет ой генерация ой вот
00:55:07
это колоночка у нас идет генерация j я
00:55:11
для нашего удобства подпишу вот здесь
00:55:14
вариант ой ой а вот здесь варианты джей
00:55:18
предположим я сейчас возьму варианты вот
00:55:22
столько вариантов возьму когда да и вот
00:55:25
столько вариантов возьму когда нет то
00:55:28
есть вот это это будет варианты когда
00:55:30
писать предположим надо единичку а вот
00:55:33
здесь варианты когда писать нолик то
00:55:35
есть вот я беру вот эту клеточку увы не
00:55:41
242
00:55:42
j4 и мы печатаем
00:55:46
предположим беру вот эту карточку в ней
00:55:49
73 и мы ее тоже печатаем 73
00:55:55
беру вот эту клеточку
00:55:58
40 и мы ее тоже печатаем 40 здесь чистая
00:56:02
логика ребята вот эта клеточка 17 мы ее
00:56:06
тоже подсчитаем 1 и 7
00:56:09
вот эта клеточка 77 тоже почитаем
00:56:14
77 теперь когда не печатаем примеры вот
00:56:18
это
00:56:19
23 не печатаем 23 еще какую ну
00:56:24
предположим вот эту 01 тоже не печатаем
00:56:28
01 ну к примеру вот эту не печатаем 65
00:56:33
тоже не печатаем а теперь придумайте
00:56:36
хронологию это вот ваша задачка на
00:56:39
логику когда мы печатаем а когда нет
00:56:53
не но это будет сложнее каждый этаж
00:56:57
разобрать можно и через клеточку
00:56:59
выводить можно и то есть решение а вот
00:57:02
из логики исходя вот это
00:57:07
разница в единицу где вот здесь вот
00:57:10
здесь и вот здесь хорошо тогда я беру
00:57:13
тогда беру тогда когда разница не в
00:57:15
единицу давай возьмем
00:57:18
предположим
00:57:20
3030 теперь твоя логика разбито
00:57:24
разницы в единицу нет
00:57:35
нет разницы нет единицу
00:57:38
потому что здесь не в единиц свою здесь
00:57:41
и new единицу здесь тоже нет а здесь они
00:57:43
очарованы
00:57:48
context она не можете магазин с ума
00:57:52
ничего о
00:57:53
смотрите наконец-то докопаем покупали
00:57:56
смотрите есть ли сумма вот смотрите вас
00:57:59
смущает то что 2 + 4 6 чётное всем плюс
00:58:04
3 тоже чётное 4 + 0 четная sims 1 черная
00:58:08
14 чётное а 2 плюс 3 нечетное
00:58:13
50 плюс 15 нечетная 6 плюс 5 нечетно 3 +
00:58:18
0 учетно то есть мы получается когда
00:58:21
сумма этих и + j четная это печатаем
00:58:26
одном вот здесь мы должны прописать
00:58:30
этого слове когда а и + j
00:58:35
остаток от деления на 2 это мой постер
00:58:38
ставлю в круглой скобочки и + j а потом
00:58:41
ставлю значок процента остаток от
00:58:43
деления на 2 это 0 вот такое условие
00:58:48
тогда мы печатаем но в противном случае
00:58:51
напечатай единицы и
00:58:58
попробуем запустить
00:59:03
[музыка]
00:59:08
ошибки
00:59:16
да да да наверное
00:59:18
доказать вот у меня вышел вышел ровно
00:59:21
через раз
00:59:23
через раз чётенько у
00:59:27
[музыка]
00:59:30
кого также поставьте те кто в онлайне
00:59:32
плюсики
00:59:34
сказать так же и потому что тоже также
00:59:38
ребят
00:59:39
[музыка]
00:59:47
[музыка]
01:00:05
[музыка]
01:00:07
разбираем дальше
01:00:11
замечаете теперь смотрите как уложим
01:00:14
играться с условиям давайте ещё
01:00:16
попробуем поиграться с условием к
01:00:18
примеру вот здесь мы можем поставить
01:00:21
другое условие к примеру как вывести
01:00:23
только главную диагональ примеру мы
01:00:26
хотим из-за этого всего
01:00:29
вывести вот эти ячейки
01:00:32
как вывести ну вывести вот эти
01:00:34
предположим единичка и все остальное но
01:00:37
никами
01:00:39
вот смотрите вы уже дороже легче здесь
01:00:42
определять
01:00:43
0011 2233 то есть ой совпадает же и мы
01:00:48
это видим и тогда вот здесь если мы
01:00:50
поиграемся попробуем а и равно равно j
01:00:52
поставить условие
01:00:54
мы увидим что
01:00:59
до что будет сейчас ну вот сейчас нолики
01:01:04
здесь единички там на смысл понятен то
01:01:06
что можно вот так
01:01:08
теперь по этой теме 1 домашка по этой
01:01:17
для всех будет домашка вот такого
01:01:22
формата
01:01:25
вывести воды по диагонали она будет идти
01:01:28
сложнее потому что здесь не просто но
01:01:32
здесь индексы 07
01:01:35
1625
01:01:36
здесь индексы другим это одна для тех
01:01:41
кто ещё не ухожу я сразу говорю я просто
01:01:44
сразу по этой теме посмотри для тех кто
01:01:48
хочет начать сейчас гугла следующая для
01:01:52
тех кто хочет по сложнее
01:01:54
не для всех а только для самых одаренных
01:01:57
себя считает вот так для всех это вот
01:01:59
эта диагональ они для всех ребят вот
01:02:03
такая
01:02:11
[музыка]
01:02:13
давайте так вот такая
01:02:20
вот такая фигурка будет идти я сохраню и
01:02:24
скрины отправлю хорошо у меня даже здесь
01:02:26
уже в скринах есть это вообще шикарно
01:02:29
давайте в работе на рабочий стол сейчас
01:02:32
себя
01:02:33
нет вы можете оставлять не 8 на 8 можете
01:02:38
оставлять как вам удобно полностью
01:02:40
[музыка]
01:02:43
вот такую тот кто хочет еще усложнится
01:02:47
может вот такой формат вывести
01:03:04
хочет осложниться вот такое делаете
01:03:07
формате еще этот еще посложнее
01:03:13
кто хочет вообще прям осложниться вот
01:03:16
последний вариант
01:03:20
домашка чтобы было побольше
01:03:25
не а картина мона лиза не будем выводить
01:03:31
всего лишь вот такой
01:03:34
вот такой это будет уже последний
01:03:37
заключительный вариант вот такой
01:03:40
зато после того как вы это делаете вы
01:03:43
полностью поймете алгоритмы ну вот эти
01:03:46
алгоритмы они но довольно таки вот
01:03:47
почему я даю их дополнительно и потому
01:03:50
что это уже как бы больше нормы больше
01:03:53
нормы вашего курса хорошо просто тех у
01:03:55
кого есть время вот это это однозначно
01:03:58
вам будет недостаточно и дополнительных
01:04:00
переменных однозначно
01:04:03
прошло сейчас сделаем перерыв 34 минуты
01:04:05
и дальше вторую часть по двухмерным
01:04:07
массируем сюда же также мы уважаем
01:04:15
[музыка]
01:04:20
[музыка]
01:04:43
[музыка]
01:04:50
[музыка]
01:05:32
[музыка]
01:05:48
[музыка]
01:05:57
[музыка]
01:07:13
ну
01:07:26
[музыка]
01:07:53
[музыка]
01:08:47
[музыка]
01:09:03
[музыка]
01:09:13
[музыка]
01:09:20
дальше продолжать
01:09:51
я предлагаю
01:09:53
сделать что-то с сервером это не будет
01:09:57
просто но тем не менее вы увидите
01:09:59
фактически как строится в борт наша
01:10:03
задача предположим мы возьмем сапер
01:10:09
играю за пилон
01:10:12
играть онлайн
01:10:15
чтобы конкретно сделаем
01:10:19
мы возьмем предположим
01:10:22
вот смотрите здесь сапер
01:10:26
здесь есть кнопки начинающий любитель
01:10:28
чаще 8 какой-то
01:10:42
укажите ваши имя хорошо
01:10:46
пойдем смотреть у нас запросили укажите
01:10:50
ваши имя я указала а дальше есть новичок
01:10:53
любитель профессионал и особый особый то
01:10:58
есть мы указываем сколько ширина и
01:11:00
высота колонок и количество мин наша
01:11:03
задача на сегодня если конечно же успеем
01:11:06
и и надеюсь очень что успеем мы
01:11:08
запрограммируем такую часть что мы от
01:11:10
пользователя с концами будем спрашивать
01:11:13
введите ваше имя он и а потом мы говорим
01:11:18
выберите уровень новичок любитель
01:11:21
профессионал или особой если предположим
01:11:24
человек выбирает новичок мы создаем
01:11:27
2-мерный массив соответственно раз два
01:11:30
три 4 5 6 7 8 9 на 12 предположим 9 на
01:11:34
12 и здесь если здесь 9 на 12 положим
01:11:38
100 клеточек здесь на этих ста клеточках
01:11:40
примерно 10 мин а даже написано что их
01:11:43
10 и наша задача создать 2-мерный массив
01:11:46
и заполнить десятью минами
01:11:50
заполнить 10 именами даже вот такой
01:11:53
формат а заполнить 10 не намерен дом на
01:11:56
если выбрали любитель то мы создаем
01:11:59
соответственно к примеру уже там 15 на
01:12:01
15 и заполняем 40 мин
01:12:04
если профессионал соответственно так
01:12:07
если особый мы у пользователя спрашиваем
01:12:10
введите количество строк количество
01:12:12
колодок и количество мин и
01:12:15
заполняем рандомного все что не допишем
01:12:18
будем доделывать дома либо на следующем
01:12:20
занятии мы
01:12:22
делаем новый класс и давайте назовем его
01:12:25
уже не мейн назовем его сапер
01:12:37
public static void main
01:12:49
ну предположим
01:12:51
вводить имя
01:12:54
пользователя она не имеет значение для
01:12:57
нас поскольку она не играет
01:12:59
давайте будем спрашивать сразу начиная
01:13:02
от уровня то есть имя забыли вот
01:13:06
начинаем новичок любитель профессионал
01:13:08
либо особой
01:13:09
значит мы должны напечатать на консоль
01:13:12
систему от rental and
01:13:14
выберите уровень игры и
01:13:25
что мы будем выводить мы будем выводить
01:13:29
предположим один теряем новичок
01:13:38
2 тире любитель 3 профессионал
01:14:02
и
01:14:12
4-7
01:14:19
теперь
01:14:20
то что мы уже знаем это то что считывать
01:14:24
из консоли у нас сможет тип под
01:14:28
названием сканер да и мы можем здесь
01:14:31
создать его объект
01:14:34
skynyrd сканированию scania такая
01:14:37
формула которая формула создания любого
01:14:39
объекта сканер тип дальше идет его
01:14:42
название любое абсолютно но мне удобно
01:14:45
ставить сканер равно your
01:14:48
зарезервированные слова создания нового
01:14:50
объекта и сканер второе слово
01:14:53
повторяется один в один с этим круглые
01:14:55
скобки конце . закатай и здесь не
01:14:58
хватает параметров то есть то что мы
01:15:00
будем считывать и в нашем случае мы
01:15:03
считывать будем систем . и
01:15:06
систем . и
01:15:08
клавиатуры
01:15:21
далее когда мы написали пользователям
01:15:24
выберите уровень
01:15:26
мы конечно же будем ожидать что
01:15:29
пользователь вобьет уровень и уровень
01:15:32
это будет тебе string в тексте но на
01:15:35
самом деле он может ввести предположим
01:15:38
ведь ну и либо единичку либо слова
01:15:41
новичок но давайте вы как будто бы он
01:15:43
будет прямо взбивать слова новичок
01:15:46
любитель профессионал или особый или
01:15:49
может сбить даже единичку двоечку
01:15:51
троечку ли четверочку то есть или или
01:15:54
мы в любом случае будем брать string
01:15:57
string назовем его предположим level
01:16:04
равняется у
01:16:06
этого нашего объекта сканер сканер
01:16:10
вызываем метод под названием
01:16:12
next line dexline это достаем мы все то
01:16:16
что до enter то что вы учили на прошлом
01:16:18
занятия а
01:16:20
теперь дальше идет развилка кода
01:16:23
разминка развилка состоящая из четырёх
01:16:26
вариантов первый вариант второй вариант
01:16:28
3 или 4 если у нас четыре варианта то мы
01:16:34
делаем 4 if i fall so i feel so if so if
01:16:39
да то есть у нас будет четыре варианта
01:16:43
свечу будет менее читабельно может быть
01:16:47
не знаю чисто теоретически почему
01:16:49
switch-ем не получится потому что может
01:16:52
пользователь сбить единичку или слова
01:16:54
новичок и ифом мы можем указать о том
01:16:58
что если пользователю бен единичку елена
01:17:00
новичок окей со свечами не сможем
01:17:04
поэтому здесь лучше всего iv и в круглые
01:17:07
скобки тело
01:17:10
и
01:17:14
здесь мы указываем
01:17:16
условиям
01:17:17
теперь мы знакомимся еще с
01:17:20
дополнительным методом level эта
01:17:23
переменная типа string и
01:17:26
если бы это было бы примитивный тип мы
01:17:30
бы сравнивались с помощью равно равно
01:17:32
равно равно оператор он сравнивает
01:17:35
оправдали что эта единица или правда ли
01:17:38
что это новичок но ссылочные типы нельзя
01:17:42
сравнивать с помощью равно равно потому
01:17:45
что равно равно оператор он правильно
01:17:48
работает только на примитивных типов на
01:17:50
ссылочных типов если мы хотим сравниться
01:17:53
и сказать оправдали что level это
01:17:55
единица мы должны это делать с помощью
01:17:58
метода методов от названием эквол этот
01:18:02
метод живет в типе string и на самом
01:18:06
деле такой метод и он живет абсолютно в
01:18:09
любом ссылочном теперь во всех гевискон
01:18:12
и он всегда сравнивает два объекта и
01:18:15
говорит они равны или нет получается вот
01:18:18
здесь моим level .
01:18:21
и вызываем метод под названием и quill и
01:18:25
метод будет сравниваться со вторым
01:18:27
объектом которые здесь мы положим
01:18:29
круглых скобочках и будет возвращать
01:18:32
ответ в формате да или нет как раз тот
01:18:35
что нам подходит то есть мы сразу из про
01:18:37
вливаем оправдали что в эквол двойных
01:18:40
кавычках единичка
01:18:42
вот мы сравнялись и
01:18:45
также мы можем поставить значок или
01:18:51
или новичок правильно только вот здесь
01:18:54
еще важный момент я вот копирую вот этот
01:18:57
сиквел единица вот вроде бы кажется
01:19:00
только здесь важный момент копаем мы
01:19:03
можем также вызвать еще другой метод под
01:19:06
названием и плыл и в море кейс очень
01:19:08
удобный равенство без учета регистра это
01:19:12
говорит о том что новичок маленькими или
01:19:14
большими это будет новичок но как бы он
01:19:16
будет равен новичок слова вот вот этот
01:19:18
их 1 и кейс идеально нам подходит и
01:19:21
здесь мы подпишем условно новичок и не
01:19:25
важно как мы его напишем маленькими или
01:19:27
большими
01:19:29
то тогда будет отрабатывать вот этот
01:19:32
кусочек кода
01:19:35
мы здесь начнем которым вы
01:19:38
закончите как раз мы хотя бы на новичка
01:19:40
сделаем сегодня
01:19:44
если это новичок
01:19:48
если это новичок это дописали
01:19:54
если это новичок когда я перехожу сюда и
01:19:59
вижу что создается масел раз два три 4 5
01:20:02
6 7 8 9 на 1 2 3 4 5 6 7 8 9 9 на 9
01:20:07
тогда я здесь создаю 2-мерный массив 9
01:20:11
на 9 только опять таки важный момент
01:20:15
какой это какой тип внутри нашего
01:20:17
массива двухмерного хранится и здесь мы
01:20:22
сами можем придумать что конкретно будет
01:20:24
храниться
01:20:26
ну то есть если этот 9 на 9 вот такой
01:20:29
2-мерный массив мы можем указать что мы
01:20:33
можем указать первый вариант
01:20:36
что там
01:20:38
сейчас лилит ничего не давит хорошо я
01:20:41
поняла удалит нет такого делить лес
01:20:44
первый вариант мы можем хранить циферки
01:20:47
предположим все забито ноликами а мимо у
01:20:50
нас будет минус 1 предположим или мы
01:20:53
можем хранить сюда
01:20:55
как как мы будем мины обозначать то есть
01:20:57
нам надо придумать веб-программистом как
01:20:59
обозначать мины мы можем чисто
01:21:02
теоретически этот массив объявить bully
01:21:04
навский и если в ячейке фолз то значит
01:21:07
меня нет одру мина есть можно так можно
01:21:11
предположим сохранить сюда указать int
01:21:14
новый именно будет означать положим -1
01:21:17
от для нас это максимально удобно почему
01:21:21
объясню потому что если когда я кликнула
01:21:23
единица отобразилось единица значит
01:21:27
вокруг идет одна мина и
01:21:30
я на нее попал отлично
01:21:33
арт то есть смотрите здесь значит вот
01:21:38
этот 2-мерный массив он по хорошему
01:21:40
заполнен минами и цифрами а цифры вообще
01:21:44
дальше некуда а цифры обозначают
01:21:48
соответственно вот смотрите если именно
01:21:50
будет у нас обозначать -1 то число будет
01:21:54
обозначать сколько вокруг этой клеточки
01:21:57
мин вот поэтому лучше всего указать
01:22:00
предположим что мина это -1 2-мерный
01:22:04
массив у нас числовой вот поэтому вот
01:22:06
здесь давайте мы укажем и
01:22:09
числовой значок двухмерного массива и
01:22:13
назовем его
01:22:15
маин поле до или майнц mine is mine
01:22:20
или fields лучше всего это feels
01:22:25
полем
01:22:27
равняется new
01:22:31
массив 9 на 9 потому что пользователь
01:22:34
выбрал новичка
01:22:46
поскольку пользователь новичок
01:22:50
10 мин мы знаем уже что нам надо
01:22:53
расставить 10 мин вот наши поля 9 на 9
01:22:57
вот она стала
01:22:59
9 на 9
01:23:03
красавиц здесь мины рандомно предположим
01:23:06
вот я рандомно ты пола вот сюда и вот
01:23:09
здесь сохраняю -1 но это будет мина и ты
01:23:13
пнула вот сюда и здесь сохраняем минус
01:23:15
один это и сюда от этого минуса нет но
01:23:18
вы же не можете в джаве тaк вот вот так
01:23:21
правильно а что я на самом деле сделал а
01:23:23
если я тыкнул а вот сюда на самом деле я
01:23:27
как-то с неба взяла число два и число 6
01:23:30
я как-то с неба значит я сгенерировал а
01:23:33
себе два числа два индекса два индекса с
01:23:37
потолка сгенерировала которые индекс
01:23:40
строки индекс колонки и теперь осталось
01:23:43
правильно джаве запрос сделать это
01:23:47
java и
01:23:53
назовем get random number in range вот я
01:23:58
бы сказала так бед
01:24:00
random
01:24:03
number
01:24:05
in range в диапазоне потому что почему в
01:24:09
диапазоне потому что если где-то random
01:24:11
number то это вообще в общей сложности
01:24:12
на а нам нужно в диапазоне в диапазоне
01:24:15
индекса флешек у нас индексы от 0 до 8
01:24:19
здесь и от 0 до 8 здесь значит у нас вот
01:24:23
такое рандомно число нам нужно взять и
01:24:26
вот беру stack overflow
01:24:32
и
01:24:34
здесь вот как сгенерировать рандомные
01:24:36
числа используя специфический диапазонах
01:24:40
jawing вот запрос 3 900 лайков отлично
01:24:44
70 ответов
01:24:46
4170 9 лайков то есть вот здесь указали
01:24:48
что у вас будет импортироваться вот
01:24:50
такой вот файлик сред local брендом и в
01:24:53
нем есть вот такое вот значение мы уже
01:24:56
примерно можем понимать смотрите как и
01:24:59
объявление целого числа random number то
01:25:03
есть вот будет сюда присвоенное огромное
01:25:05
значение здесь говорится сыр и плакал
01:25:08
рандом это файлик откуда я знаю что это
01:25:11
файлик потому что с большой буквы
01:25:12
написан и в этом файлики вызывается
01:25:15
какой-то метод под названием car and что
01:25:18
он возвращает без понятия возможно он
01:25:21
возвращает слона не знаю но этот слон у
01:25:24
него вызывается следующий метод под
01:25:27
названием next and то есть кто то кто
01:25:29
был возвращен с помощью метода карт без
01:25:32
понятия кто в нем вызван метод под
01:25:35
названием next and expert я догадываюсь
01:25:38
что этот метод говорит следующее число и
01:25:40
сюда вставляется минимальное число а
01:25:43
сюда максимальное число то есть в нашем
01:25:46
случае минимальным числом является 0
01:25:48
максимальным числом является 8 и сюда я
01:25:51
подставляю 0 и 8 и вот это комбинация
01:25:55
рождает мне снова и восьмерки одно
01:25:59
рандомное число понятен смысл то есть
01:26:02
вот это вот это вот эти вот моменты как
01:26:05
создавать мы еще будем разбирать начиная
01:26:08
с 5 занятия с 5 занятие полностью
01:26:11
проработка того как вызывать чужие
01:26:14
методы но пока мы только вот увидели
01:26:17
кусочек кода и его всего лишь можем
01:26:20
интегрировать этот сложный момент или
01:26:21
нет ребят нет какого-то нет для вас
01:26:24
девочки
01:26:25
[музыка]
01:26:29
посмотрите пока на сегодняшний момент
01:26:31
вот этот кусочек кода должен быть
01:26:33
понятен на 2 из 10 вот где-то так на
01:26:36
двойку из десяти вот если на двойку из
01:26:38
десяти понятен значит нормально
01:26:40
мы идем нормально вот потому что вот
01:26:43
этот кусочек о да это не тема
01:26:45
сегодняшнего занятия сегодня мы
01:26:46
прокатывали цикл цикле поэтому нормально
01:26:49
я его копирую
01:26:51
отправляю вам в телеграме
01:26:56
или давайте кто без telegram а вот здесь
01:26:59
его напишем int
01:27:02
рэндом ну то есть мы первое число должны
01:27:05
будем сгенерировать себе
01:27:07
рандомный индекс строки а второе число
01:27:11
это рандомный индекс фланкер рандомный
01:27:14
индекс строки я его назову and
01:27:17
random
01:27:19
ров
01:27:22
индекс
01:27:24
равняется и
01:27:26
теперь беру формулировку прямо отсюда
01:27:29
сред local рэндом то есть я начинаю
01:27:32
писать с большой буквы фред local рандом
01:27:36
уводом нахожу этот файлик который там
01:27:39
был написан и обязательно сто процентов
01:27:42
на него два раза кликаю когда я два раза
01:27:44
и выплеснула сверху и импортом
01:27:47
подтянулся потому что это такой же
01:27:49
готовый тип чей-то готовый тип которым
01:27:52
мы будем пользоваться и
01:27:55
в этом готова теперь нам указали
01:27:59
вызовите у него метод под названием car
01:28:01
and то есть я ставлю точку и вот он
01:28:04
метод под названием car and
01:28:07
да и потом еще вызывается next in ну то
01:28:12
есть а
01:28:14
потом мне говорят поставлю еще раз точку
01:28:16
и вызови на expand ставлю точку и
01:28:20
вызываю на extend вот лишив что на
01:28:22
extent of несколько пустые пустой если
01:28:26
пустой отдастся скорее всего что любое
01:28:29
число не в диапазоне
01:28:31
inbound я не знаю что это такое это надо
01:28:33
почитать что сюда дают и вот вот этот
01:28:37
это наш тот которые два числа мы даем от
01:28:39
и до я
01:28:43
сейчас укажу вот смотрите если мы не
01:28:46
знаем что это такое
01:28:47
укажу я сюда спится дало что-то одно для
01:28:51
того чтобы у меня именно тот метод
01:28:54
вызвался а теперь смотрите когда я на
01:28:56
него навожу идет его описание этого
01:28:59
метода и вот здесь из этого описания я
01:29:02
копирую вот этот текст то есть вот и
01:29:05
и
01:29:06
теперь иду в google переводчик то есть
01:29:09
вот такой формат если вы не знаете как
01:29:11
отрабатывает метод идем google
01:29:13
переводчик вставляем
01:29:15
возвращает
01:29:18
очень интерес псевдо всех до рандомное
01:29:21
значение in the между нулём включительно
01:29:25
и указанной границей исключительно то
01:29:28
есть от 0 до
01:29:30
и мы вот сюда указали до скольки то есть
01:29:32
чисто теоретически это если указано вот
01:29:36
смотрите это указано и указанной границы
01:29:40
верхняя исключительно то есть она не
01:29:43
будет учтено данном то нам идеально
01:29:46
подходит мы можем поставить сюда 9
01:29:49
потому что у нас от 0 до 8 включительно
01:29:53
до 9 не включительно нам нужно было
01:29:56
указать да не включительно вот мы
01:29:58
указали да не включительно
01:30:01
то есть на вилле и вот у вас есть полное
01:30:04
описание этого метода карен тоже на
01:30:07
вилле у тоже есть описание что
01:30:09
возвращают на тут не слона оказывается
01:30:12
возвращает
01:30:13
текущий поток текущий поток
01:30:18
вот мы сгенерировали рандомный индекс
01:30:25
мы сгенерировали рандомный индекс
01:30:28
колонки ой строки но теперь же нам надо
01:30:32
генерировать еще один индекс потому что
01:30:34
это мы сгенерировали yandex вот этот а
01:30:36
теперь нам надо сгенерировать yandex вот
01:30:39
этот
01:30:40
соответственно мы просто копируем эту
01:30:42
строчку и вставляем ниже еще раз здесь
01:30:46
тоже индексы колонка тоже до 9 только
01:30:49
здесь мы уже подписываем рэндом calls
01:30:52
предположим колонку дом пол пол яндекс
01:30:57
яндекс яндекс колонки
01:31:01
и
01:31:08
вот нам дали индекс строки индекс
01:31:11
колонки и теперь по этому индексу строке
01:31:14
yandex колонки в этом двухмерном массиве
01:31:16
присваиваем -1 то есть fields по yandex
01:31:22
рэндом ров индекс а во вторых родов гол
01:31:28
индекс
01:31:29
равняется -1 для нас обозначения минус 1
01:31:34
будет обозначением бомбочки
01:31:45
но это
01:31:47
это мы сделали для одной бомбочки а
01:31:51
сколько нам надо всего
01:31:53
10 и у нас есть вариант либо скопировать
01:31:57
и вставить код 10 раз by по цифрам
01:32:00
зациклить эти 3 строчки чтобы они
01:32:03
повторили 10 раз и я предлагаю конечно
01:32:07
же цыган зациклить поэтому я перед этими
01:32:12
тремя тремя строками вот здесь начнут
01:32:15
цикл фон в
01:32:17
круглые скобки тела и
01:32:20
вот эти 3 строчки
01:32:23
вырежу и вставлю соответственно сюда и
01:32:29
здесь специально назвал переменную не ой
01:32:33
она звук переменную имена
01:32:38
потому что
01:32:41
получается так int
01:32:45
мина равняется нулю
01:32:48
пока миль на меньше 10
01:32:52
мин а плюс плюс у нас крутится вот это 1
01:32:57
2 3 4 так получается 10 мин расставляем
01:33:23
[музыка]
01:33:25
минус один это мы присваиваем на наше
01:33:29
поле значение бомбочки это минус 1 это
01:33:32
будет у нас обозначение бомбочки я бы
01:33:35
сейчас запущу в режиме творога и
01:33:38
дэбак режим поставлю вот специально вот
01:33:41
здесь когда мы уже подключим сканер
01:33:44
спросим введенную строку а дальше уже
01:33:46
будем добавлять
01:34:00
вот меня программа написала получается
01:34:02
выберите уровень игры и дальше создала
01:34:06
сканер и остановилась вот здесь добрых
01:34:09
пойнта я соответственно вбиваю
01:34:11
предположим просто единичку
01:34:13
нажимаю enter сейчас сюда сохранится
01:34:17
единичка спросится ифом единичка их мало
01:34:20
dance кажется да то есть я нажимаю enter
01:34:23
вот она спросила единичка и quill один
01:34:27
она говорит да
01:34:29
дальше создается полем длиной 9 на 9
01:34:33
следующий шаг и вот у нас field field
01:34:37
если я разверну вот он получается 9 на 9
01:34:40
полностью заполнены ноликами вот первая
01:34:43
строка в ней двухмерным дней массив 9-го
01:34:47
вторая строка в ней массив 9 потому что
01:34:49
я говорила это это же нулевой этаж 1 2 3
01:34:53
и так далее вот мы видим 2-мерный массив
01:34:55
дальше мы говорим не на равняется нулю с
01:35:00
мне одной не заполнили 0 меньше десяти
01:35:02
до
01:35:04
берем рандомный яндекс
01:35:07
яндекс рандомный мы взяли четыре
01:35:10
сгенерировался берем 2 рандомный индекс
01:35:13
колонки он сгенерировался 2 получается
01:35:17
42 мы говорим поле под индексом 4 2
01:35:21
присвоить значение -1 и вот теперь вот
01:35:25
здесь вот появился в -1 потому что как
01:35:28
раз таки ноль один два три четыре и
01:35:31
колонка 012 все теперь берем мина плюс
01:35:37
плюс следующую мину
01:35:39
генерируем рандомный индекс строки
01:35:42
рандомной индекс колонки вышел у нас
01:35:45
восемь и шесть и мы присваиваем на
01:35:48
ячейку под названием 86 вот -1 вот на
01:35:52
второе меню расставили и
01:35:54
делаем следующий круг третью мину теперь
01:35:57
прошло
01:35:58
взяли индекс tracker индекс колонки
01:36:01
вышла на ios
01:36:03
6
01:36:06
и 3 и
01:36:07
присвоили соответственно вот 63 понятен
01:36:11
смысл ребят то есть вот таким образом мы
01:36:14
получается 4 минус 5 минус 6 и минус
01:36:19
сделали седьмую люмен у 8 9 и 10 все и
01:36:26
вот у нас получается везде нолики но там
01:36:30
где мины растопились -1 рандомно
01:36:33
полностью и мы как программисты java
01:36:37
независимо от этого рандомом ним и его
01:36:39
придумали поэтому мы никак не можем
01:36:41
может сказать подставить что-то здесь
01:36:44
всегда будет каждым разом по-разному
01:36:52
это получается мы расставили
01:36:55
только для
01:36:57
получается уровня 1 уровня 1 давайте
01:37:02
теперь получается вот здесь
01:37:05
ниже
01:37:10
вот здесь соответственно сейчас я
01:37:12
поставлю мы к тому где комментарии здесь
01:37:15
будет у нас еще уровень 2 уровень 3 и
01:37:18
уровень 4 но вот здесь ниже сразу я
01:37:21
сделаю кусочек у то который печатной
01:37:23
минное поле вот так напишу печатаем
01:37:27
поле с минами
01:37:36
то есть будет один и в потом второй и в
01:37:40
третий четвертый и печатаем поле с
01:37:42
минами
01:37:45
здесь вот это это тоже важный момент
01:37:48
доступа к вашему минному полю нет
01:37:51
объясню почему потому что вот эта часть
01:37:53
это называется объявление переменной
01:37:56
field и там где она объявлена в каком
01:38:00
теле она объявлена здесь и и область
01:38:03
видимости то есть она живет вот эта
01:38:05
переменная она живет от этой фигурные
01:38:08
скобочки до этой здесь она не видно если
01:38:11
мы бы хотели бы пользоваться вот этой
01:38:14
переменной field вот здесь нам нужно увеличить ее
01:38:19
область видимости
01:38:20
увеличить область видимости то есть вот
01:38:23
эту часть объявления вынести предположим
01:38:26
перед ифом чтобы она была видна оно было
01:38:30
видно и вот здесь поняли смысл
01:38:34
соответственно вот эту часть объявления
01:38:37
я копирую и выношу перед ифом и
01:38:44
предположим просто ставлю точку с
01:38:47
запятой на нее ничего не лажу потому что
01:38:50
положить здесь я не могу а вот здесь
01:38:53
когда мы сказали что уловил это единица
01:38:56
мы уже просто на эту переменную
01:38:59
присваиваем дальше значению то есть мы
01:39:01
вот эту одну строчку разбили на две
01:39:03
строки для того чтобы увеличить область
01:39:06
видимости
01:39:08
и теперь вот здесь там где подписано
01:39:11
печатаем поле с минами у нас есть босс
01:39:14
topfield
01:39:15
печатаем поле с минами значит у нас
01:39:17
будет цикл в цикле которые проходятся
01:39:20
генерирует индексы строк яндекс и
01:39:22
колонок форм круглые скобки тело
01:39:28
and a и равняется нулю
01:39:33
пока а и меньше а здесь мы точно должны
01:39:37
сказать количество строк потому что
01:39:40
количество строк может быть разной и
01:39:43
может быть 9 на 9 если выбрал новичок и
01:39:48
дальше может быть большая правильно
01:39:49
поэтому в этот момент времени может быть
01:39:52
разное поэтому мы обязательно говорим
01:39:55
фильм . винкс
01:40:28
здесь энтой равняется нулю пока а и
01:40:33
меньше
01:40:34
fields . link
01:41:04
я плюс плюс .
01:41:08
links а
01:41:10
теперь смотрите вот такой момент что
01:41:14
здесь перепишет чтобы не было никогда
01:41:17
ошибки ошибка может быть если вдруг
01:41:20
венцу нему нет вот этой строчке
01:41:23
заполнения то он говорит о том что фильм
01:41:26
переменная обязана быть присвоены на ней
01:41:29
какое-то значение а если вот этот момент
01:41:32
времени мы не можем присвоить какое-то
01:41:34
значение потому что мы не мы не знаем
01:41:36
какое оно еще должно быть 9 на 9 16 на
01:41:38
16 так далее тогда мы присваиваем пустое
01:41:41
место
01:41:42
поскольку это ссылочный уже тип мы как
01:41:45
бы потому что примитивный тип это просто
01:41:48
and a massive это уже ссылочный тип но
01:41:50
все ссылочные типы если мы хотим на них
01:41:53
присвоить пустое место мы присваиваем
01:41:55
вот такие слова ну ну это пусто там
01:41:59
примитивный тип на пустоту соваться не
01:42:02
может это только преимущество ссылочных
01:42:05
типов но это то же самое что я вам
01:42:07
говорю у меня есть предположим сестра
01:42:12
сюзанна вот сюзанна эта ссылка которая
01:42:16
может либо соваться на объект либо не
01:42:18
ссылаться если я вас обманула значит
01:42:20
ссылка сюзанна ссылается на пустое место
01:42:23
ссылка есть а сюзанны как человека нет и
01:42:26
вот здесь то же самое мы указали что это
01:42:30
будет сюзанна только ссылочки пока
01:42:32
никуда не светят а вот здесь мы ей
01:42:34
присваиваем уже значением но теперь
01:42:37
отношении ругается
01:42:40
таким образом мы сгенерировали себе
01:42:42
яндекс и строк дальше мы внутренней
01:42:45
делаем цикл for который генерирует
01:42:47
индексы к ломик
01:42:50
точно также int j равняется нулю пока
01:42:55
джей меньше
01:42:57
fields по yandex .
01:43:02
links
01:43:04
не пишешь то
01:43:06
все все замечательно j + + и
01:43:12
здесь мы печатаем текущую ячейку давайте
01:43:15
так если в ячейке мина то мы печатаем
01:43:20
предположим
01:43:21
звездочку а
01:43:24
если в ячейке ними на давай печатаем
01:43:27
пустое место то есть пробел
01:43:29
соответственно у нас будет идти iv и
01:43:32
lc
01:43:37
если в ячейке мина значит мы говорим
01:43:41
если fields по индексу а и
01:43:45
j
01:43:48
это равно равно -1 потому что мы -1
01:43:52
говорили о том что это минут если в
01:43:55
текущей ячейки мина тогда делаем систему
01:44:00
спринт лент
01:44:03
звездочку и пробел для того чтобы
01:44:06
выровнился ход или давайте сделаем
01:44:10
пробел звездочка пробел вот так пробел
01:44:12
звездочка пробел
01:44:16
если мина а если ними на система printer
01:44:21
and при пробел и сделайте три пробела то
01:44:24
есть будет печататься пустое место и
01:44:28
вот здесь удалим для того чтобы была
01:44:32
печать в одну строку а
01:44:35
переход на вторую строку он будет
01:44:38
соответственно после внутреннего циклов
01:44:41
а вот здесь системах bring л.с.
01:44:47
будет соответственно вот так
01:44:58
есть
01:45:01
давайте запустим в обычном режиме и
01:45:09
выберем сейчас либо слова новичок либо
01:45:12
единичку
01:45:27
я выбираю предположим новичок и
01:45:35
вот напечаталась мне поле вот такое
01:45:39
почему поле вот такой напечаталась как
01:45:41
раз таки вот это это печатается пустое
01:45:44
место а вот так печатается если мина
01:45:46
была год мина была
01:45:48
увидели минное поле
01:45:51
вместо пустого места что-то поставить
01:45:55
вместо пустого места наверное тире можно
01:45:58
поставить или плюсик давайте тереку
01:46:01
исполнит
01:46:09
давайте новичок на единичку ну вот
01:46:13
деревья поставила вот теперь видно вот
01:46:15
где где мин раз два три 4 5
01:46:20
кстати еще одно задам задания со
01:46:23
звездочками и мы ещё не закончили у нас
01:46:25
10 минут
01:46:28
задание со звездочкой кто хочет подумать
01:46:31
и проэкспериментировать смотрите какое
01:46:34
видите я запустила сколько у нас цикл
01:46:37
фон у нас цикл for крутится от 0 до 10
01:46:42
то есть логично что 10 мин а
01:46:45
теперь считаем 1 2 3 4 5 6 7 8
01:46:51
почему 8 а теперь если запустить вот
01:46:55
предположим опять говорю новичок теперь
01:46:58
считаю раз два три 4 5 6 7 8 9
01:47:04
кто понял прикола
01:47:09
не в цикле делаем а знаете в чем рэндом
01:47:13
все нормально ребята мы смогли
01:47:16
сгенерировать 2 раза 1 уже числа то есть
01:47:19
там уже бомбочка было а мы еще раз туда
01:47:22
бомбочку вот вот этот эффект происходит
01:47:24
и в нашем случае из десяти раз один раз
01:47:28
по лимонад у клеточку где уже было
01:47:30
бомбочка поэтому кто хочет задание со
01:47:32
звездочкой пожалуйста вот то есть можете
01:47:37
сделать так чтобы у нас
01:47:40
чтобы у нас всегда 10 выпадало чтобы у
01:47:45
нас всегда 10 и давайте теперь поскольку
01:47:48
еще есть время давайте еще сделаем
01:47:51
уровень любитель а уровень профессионал
01:47:54
и особые у вас будет надо
01:47:57
любитель то есть нам нужно скопировать
01:48:00
вот этот и вот этот и здесь получается
01:48:05
без вот этого фильтра вот этот iv
01:48:08
копируем вставляем его сразу же вот
01:48:12
здесь ниже и
01:48:14
редактируем если level 2 или любитель
01:48:23
и теперь иду с этого сайта я вам кстати
01:48:25
этот сайт отправлял почему бы нет
01:48:29
чтобы вы увидели как реализованы там
01:48:37
здесь нажимаем любитель вот я считаю
01:48:40
сколько получается строк раз два три 4 5
01:48:43
6 7 8 9 10 12 14 16 пусть у нас идет 16
01:48:53
раз два три 4 5 шесть 7 8
01:48:57
напрасно 16
01:49:00
да и 40 мин
01:49:04
если 40 мин то здесь до 40
01:49:07
соответственно под правильным а все
01:49:09
остальное то же самое то есть вот такой
01:49:11
уровень любитель
01:49:25
данный отец
01:49:27
не на 15 а здесь указали до верхнего
01:49:31
предела не включительно верхний предел
01:49:34
значит до 16 потому что 15 нам еще нужно
01:49:37
индекс 15 до 16 до хорошо согласно
01:49:51
давайте 2
01:49:54
вот так
01:49:56
в принципе я верю что примерно такой же
01:50:00
мы сто процентов вы знаем что здесь
01:50:02
меньше 40 бомбочек потому что два раза
01:50:04
могли наступить на какую-то одну из но в
01:50:07
целом заполняет правильно все ок то что
01:50:10
у вас будет немножечко сложнее
01:50:12
профессионала понятно что здесь как бы
01:50:14
легко а вот особые вам нужно запросить
01:50:17
соответственно количество строк
01:50:20
количество колонок и количество мин и в
01:50:23
чем будет проблем к ваша сразу говорю в
01:50:25
чем будет проблемы то что то что
01:50:27
пользователь вводит
01:50:29
он будет вводить формате текста а ваша
01:50:32
задача чтобы если вы хотите чтобы она
01:50:34
работала вам надо перевести его в число
01:50:36
и как перевести в число вы досматривайте
01:50:39
в интернете из текста в число
01:50:41
преобразовываете и 100 и потому что вот
01:50:44
это это это этот текст вы с ней можете
01:50:47
работать как с текстом с этой переменной
01:50:48
с ней нельзя будет плюс минус делить нам
01:50:51
и так далее
01:50:52
это уже как в домашки кто решит так и
01:50:56
сделает как угодно главное мы задачу
01:50:59
говорю что просто будет браться от число
01:51:02
получается и
01:51:04
это еще скорее всего не вся будет
01:51:08
домашкой а еще если будет я вам ее
01:51:10
сброшу хорошо
01:51:17
профессионал я скинула самим надо
01:51:20
посчитать хорошо
01:51:25
тот кто хочет идти еще глубже вперед вы
01:51:29
конечно же можете дальше сакура писать в
01:51:31
том плане что подумать как он может быть
01:51:33
но вообще в рамках занятий может быть
01:51:35
там где-то на занятие десятом
01:51:37
одинадцатом и собора этого допишем то
01:51:40
есть сейчас вы просто его начали дальше
01:51:41
мы возможный дефолт по возможно допишем
01:51:44
его потому что это в принципе довольно
01:51:46
таки интересно и для разработки экрана
01:51:50
вопросики 10 ребят
01:51:53
[музыка]
01:51:57
домашки я 3 скрина получается сброшу да
01:52:01
хорошо я еще раз сформулирую запишу что
01:52:04
вам нужно доделать ok еще раз формулирую
01:52:07
запишу и мы встречаемся с вами в
01:52:09
понедельник понедельник
01:52:11
1930 все те кто она не есть вопросы
01:52:15
ребят
01:52:18
замечательно замечательно все тогда до
01:52:21
понедельника

Описание:

На этой странице вы можете по ссылке скачать медиафайл «Занятие 4 (08.06.22) Java (основы) поток 32» максимально возможного качества БЕЗ каких-либо ограничений на количество загрузок и скорость скачивания.

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Занятие 4 (08.06.22) Java (основы) поток 32"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Занятие 4 (08.06.22) Java (основы) поток 32" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Занятие 4 (08.06.22) Java (основы) поток 32"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Занятие 4 (08.06.22) Java (основы) поток 32" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Занятие 4 (08.06.22) Java (основы) поток 32"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Занятие 4 (08.06.22) Java (основы) поток 32"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.