Тёмный

Шахматы на React и TypeScript С НУЛЯ. Практикуем ООП 

Ulbi TV
Подписаться 305 тыс.
Просмотров 145 тыс.
50% 1

В этом ролике мы разработаем свои шахматы на React и typescript. Попрактикуем ООП. Шахматы на Javascript.
Мой курс "Продвинутый Frontend. В production на React" - ulbitv.ru/frontend
Initial шаблон для проекта с фигурками и финальный исходный код здесь - t.me/ulbi_tv/74
Курс по ООП - • ООП на простых примера...
Patreon/boosty (доступ к бонусам) - boosty.to/ulbitv
Конференция по кибербезопасности Positive Hack Days, 18-19 мая 2022
- Доклады и кейсы от экспертов кибербеза;
- Хакерские соревнования;
- 30-часовая кибербитва The Standoff.
Приходите на бесплатную трансляцию!
event.phdays.com/ru
Телеграм канал конференции
t.me/TheStandoffNews
Телеграм канал инвестиций
t.me/positive_investing
Таймкоды:
00:00 ➝ Введение
00:50 ➝ Реклама
02:40 ➝ Начало разработка. Инициализация React приложения
07:20 ➝ Создаем ООПшные классы для шахмат. Инициализируем клетки шахматной доски
17:17 ➝ Расставляем фигуры
23:50 ➝ Координаты доски. Х Y
29:10 ➝ Логика игры. Подсвечиваем доступные для хода клетки
40:20 ➝ canMove. Движение фигур. Ферзь, слон, ладья
51:00 ➝ Движение коня и пешки
56:10 ➝ Перезапуск игры. Передача хода
59:40 ➝ Список съеденных фигур. Таймер
01:09:40 ➝ Итоги. План на будущее. Лайки и комментарии :)
Поддержать меня и мой канал вы можете по ссылкам ниже.
Patreon/boosty (доступ к бонусам) - boosty.to/ulbitv
Qiwi кошелек - qiwi.com/n/BODYE821
Яндекс деньги - yoomoney.ru/to/4100116193037469

Наука

Опубликовано:

 

1 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 308   
@unicoxr5tj417
@unicoxr5tj417 2 года назад
у русского фронт енд -кодерского сообщества новый король-мистер Улби) Материалы-мощь
@programming5944
@programming5944 2 года назад
Ждали, ждали! Курс по созданию шахмат на javascript typescript react ооп и еще больше больше слов для продвижения ролика в рекоммендации
@pashastrayt8928
@pashastrayt8928 2 года назад
Продвигаем видосик в рекомендации!
@Evgeny..
@Evgeny.. 2 года назад
Тимур, ты идешь в историю со своим контентом. Я поражаюсь качеству твоего контента. Он безупречен.
@TsArtemi
@TsArtemi 2 года назад
ну меня немного тригернуло генерация id через math.random. А так спасибо за контент.
@redhook777
@redhook777 Год назад
@@TsArtemi частенько через new Date делают
@user-rv1gn7qn3s
@user-rv1gn7qn3s 2 года назад
Ты делаешь очень крутой контент, без лишних движений, очень чистый) Шахматы для меня пока слишком сложно, пойду смотреть прошлые уроки про реакт) спасибо
@alexforw5545
@alexforw5545 2 года назад
Спасибо, только начал смотреть, но уже понимаю, что всё просто волшебно!
@edgarharoyan2934
@edgarharoyan2934 2 года назад
ну ты даешь, такой полезный материал и бесплатно тебе огромное уважение что до сих пор бесплатно выкладываешь все что нужно и без воды и глупостей, желаю удачи и всего доброго, в русскоязычном ютубе ты один из лучших по IT курсам, если не лучший.
@user-bc8fd3eo2r
@user-bc8fd3eo2r 2 года назад
Мощный урок, много подумал, почерпнул ))) Не задумывался никогда о реализации шахмат... оч интересно. Спасибо Тимур!
@Vladislav0Art
@Vladislav0Art 2 года назад
Сразу лайк, не глядя ставлю)) У тебя отличный контент! Много нового для себя узнаю, когда смотрю твои видео. Еще комменты ниже пролайкал, надеюсь, это поможет продвижению канала. Удачи!
@user-iu2ci1cv1w
@user-iu2ci1cv1w 2 года назад
Вот это подгон!) Очень рад новому ролику!
@user-bf1nx2lg1l
@user-bf1nx2lg1l 2 года назад
Спасибо за уроки! Интересно было бы увидеть реализацию CRM-системы, со списками, напоминаниями, автоматическим удалением по истечению определённого времени
@alextotun
@alextotun 2 года назад
Супер! Отличное изложение, логика, все понятно, и приходит азарт решить оставшиеся задачи.) Спасибо!
@Iamizart
@Iamizart 2 года назад
Наконец то новое видео) Улби лучший! Продвигаем видосик в рекомендации!
@aleksandr1277
@aleksandr1277 2 года назад
Спасибо! Как всегда интересно и познавательно. Так держать и удачи!
@djekzibert6059
@djekzibert6059 2 года назад
Спасибо братан! долго ждали ) ВЕЛИКОЛЕПНО!!!!
@filippkotenko851
@filippkotenko851 2 года назад
бро спасибо) твои труды бесценны мы очень ценим )
@a-sher
@a-sher 2 года назад
Обязательно посмотрю курс )) Спасибо !
@luxorylife5746
@luxorylife5746 2 года назад
Ну тут лайк не глядя. Когда слышу твой голос, понимаю - следующие несколько часов пройдут офигенно
@sergeysamius1128
@sergeysamius1128 2 года назад
Очередное отличное видео, будем посмотреть! Спасибо тебе!
@Ireile
@Ireile 2 года назад
Отлично! Обязательно посмотрю!
@Evgeny..
@Evgeny.. 2 года назад
В этом ролике мы разработаем свои шахматы на React и typescript. Попрактикуем ООП. Шахматы на Javascript. для продвижения
@user-zs9qk8se9y
@user-zs9qk8se9y 2 года назад
Приветствую. Спасибо за старания и качественный контент! Лайк однозначно
@aleksandrzelenskiy4000
@aleksandrzelenskiy4000 2 года назад
Ещё не делал, но уверен что полезно. Спасибо 👍
@natalyamurashko125
@natalyamurashko125 2 года назад
Супер! Спасибо. Ждём ролика по Angular! :)
@tagnati5585
@tagnati5585 2 года назад
Как же мне повезло начать изучать js одновременно со стартом этого канала. На столько плавного и эффективного обучения у меня в жизни никогда еще не было.
@itmodern2386
@itmodern2386 2 года назад
Оооо, крутяк, я так хотел чтобы они появились на канале)
@hlebhlebowski
@hlebhlebowski 2 года назад
спасибо, побольше бы подобных видео с проектами интересными
@charliebrown5554
@charliebrown5554 2 года назад
Спасибо, Ульбич)
@sergsergey4251
@sergsergey4251 2 года назад
Спасибо, будем смотреть)
@user-dw2zt2tv8o
@user-dw2zt2tv8o 2 года назад
Как же долго я ждал это видео))
@user-tn1sj9zn9q
@user-tn1sj9zn9q 2 года назад
Лайк не глядя) Потом обязательно посмотрю)
@Александр-Беляев
@Александр-Беляев 2 года назад
Спасибо за урок. Переписал проект, немного изменил стили и фигуры. Надо ещё подумать как: - Реализовать проход пешки в ферзи (ладью, слона и коня) - Взятие пешки на проходе (После первого хода на две клетки, пешку может взять вражеская пешка, пройдя за её "спиной" ) - Запрет хода, если ты этим ходом ты ставишь своего короля под удар - Рокировку в длинную и короткую сторону
@user-mu2lr9zc7d
@user-mu2lr9zc7d 2 года назад
Забыл ещё один пункт: научить компьютер играть в шахматы :)
@ram0973
@ram0973 2 года назад
@@user-mu2lr9zc7d готовые движки есть, надо только подключить как-то
@codingjerk
@codingjerk Год назад
@@ram0973 доски тоже готовые есть) Движки писать очень интересно
@shujin9027
@shujin9027 2 года назад
Только начал смотреть, но уже лайк. Красава, контент лучший
@fallenstar358
@fallenstar358 2 года назад
Неплохой курс знатно попотел, давно так не кодил, благодарю
@Polite_person_
@Polite_person_ 2 года назад
О! Круто, спасибо! Тимур лучший!
@jleenvanyes5219
@jleenvanyes5219 2 года назад
Ролик в реки!!!
@user-pt7oi3qp6g
@user-pt7oi3qp6g 2 года назад
Воу, огромное спасибо за курс
@romankrytski8687
@romankrytski8687 Год назад
Спасибо большое за данный видос. Давно хотел написать шахматы, а ты ещё тут и столько простора для фантазии, рефакторинга и доработок оставил, что по завершению проекта - джуновский пост точно должен ждать)
@ricckyff
@ricckyff 2 года назад
Ура , ждал видео , как всегда годнота
@IlyaLee-qf2lv
@IlyaLee-qf2lv 2 года назад
Очень хочется посмотреть !!!) но нельзя… посмотрю после того, как сделаю свои шахматы, чтобы не получилось копирование твоих идей)
@vladisvlavvlasenko
@vladisvlavvlasenko 2 года назад
Ооо, молитвы людей учлышаны) Большое спасибо за курс. Обязательно посмотрю)
@Evgeny..
@Evgeny.. 2 года назад
ОЧЕНЬ КРУТО! Спасибо) Шахматы на React и TypeScript С НУЛЯ. Практикуем ООП
@user-sd9je7ov8o
@user-sd9je7ov8o 2 года назад
Тимур, потрясный урок!!! Спасибо!
@vityaost
@vityaost 2 года назад
Крутоооо. Учу реакт. Уже жду когда смогу начать практику)
@Evgeny..
@Evgeny.. 2 года назад
Огромное спасибо за видео, пришла идея отработать ООП на создании какой-нибудь игры)
@alexeiprogram2348
@alexeiprogram2348 2 года назад
Спасибо! Максимально полезно. Как раз изучил ООП в JS и разобрался с основами TS. Красавчик!
@user-iz7ug7iz5k
@user-iz7ug7iz5k 2 года назад
Здорово👍🏼 я пока вообще ничего не понимаю, но поддержу канал 💪🏽
@chapka-feed-4564
@chapka-feed-4564 2 года назад
Вот прикол, как раз на прошлой неделе закончился but camp, где мы делали шахматы)))
@helenit4365
@helenit4365 2 года назад
Смотрю и это очень интересно!!!
@Peterblr
@Peterblr 2 года назад
Спасибо огромное за курс. Попробовал все через styled-component сделать - так еще интереснее (хотя явно чувствуется - что это лишнее). Еще раз огромное спасибо автору! Дай Бог тебе здоровья!!!
@ragnenet
@ragnenet 2 года назад
В твоих видео столько полезных микромоментов. Спасибо за это
@abdulaxad316
@abdulaxad316 2 года назад
Супер!!! Ждём курс про CRM систеы))
@gasiecaseero6066
@gasiecaseero6066 4 месяца назад
Мегахорош) Отличное видео, никакой воды. Осталось только доделать игру до конца. Спасибо!!!
@user-vf5ez7jy9m
@user-vf5ez7jy9m 2 года назад
Спасибо за контент, продолжай в том же духе
@warioddly
@warioddly 2 года назад
Круто
@user-iy7rm7dt8x
@user-iy7rm7dt8x 2 года назад
Круто. Лайк поставил. Жду новых видео.
@eunicsi
@eunicsi 2 года назад
Лучший контент, спасибо тебе!
@daenur548
@daenur548 2 года назад
Ура! Мы ждали
@user-jv5jn4kk8w
@user-jv5jn4kk8w 2 года назад
Спасибо за уроки!
@anton-vr5xw
@anton-vr5xw 2 года назад
мужик, спасибо тебе большое 🙌
@Sobanim
@Sobanim 2 года назад
Было бы интересно увидеть и послушать как ты рассуждаешь за архитектуру, как анализируешь задачу что уже сходу знаешь какую файловую структуру создавать
@Evgeny..
@Evgeny.. 2 года назад
Тимур ты вообще отличный парень!))
@kostaskryarov4628
@kostaskryarov4628 2 года назад
Было интересно, спасибо 🙏
@pashastrayt8928
@pashastrayt8928 2 года назад
Очень рад, что в роликах стала появляться реклама, наконец хоть какое то денежное вознаграждение за твои труды)) Честно, не встречал ещё таких каналов, где так много годноты и очень полезных и простых в освоении уроков. Ты потрясающий учитель, ютубер и самое главное разработчик! Безумно счастлив, что когда то наткнулся на твой канал, ибо теперь с него вообще не слезаю)))
@UlbiTV
@UlbiTV 2 года назад
Спасибо за столь теплую поддержку! Ценю!
@user-hl8qh8kb9k
@user-hl8qh8kb9k 2 года назад
@@UlbiTV вы гений.
@mohnatus
@mohnatus 2 года назад
Очень круто, спасибо!
@helenit4365
@helenit4365 2 года назад
Ждала!💥👍
@dmytrofiialo4818
@dmytrofiialo4818 2 года назад
Спасибо, очень полезное видео.
@adelinaromanova8353
@adelinaromanova8353 2 года назад
Ура!!! Обожаю шахматы!!!!
@user-we2rb4es8b
@user-we2rb4es8b 2 года назад
Спасибо за видео!
@user-hs1jg3mr2t
@user-hs1jg3mr2t Год назад
Спасибо большое, на выходном залип на 6 часов, сейчас послеработы доделал! Очень интересно
@juliawave7478
@juliawave7478 2 года назад
Чёрт возьми, мне как раз нужен TypeScript для работы! Обязательно буду смотреть ролик)
@greenman3396
@greenman3396 2 года назад
Если ты так просишь, то он обязательно тебя возьмёт! Поосторожнее с шаблонными фразами, смысла которых ты недопонимаешь! В некоторых из них есть прямой запрос! А как известно, что просишь - то и получаешь!
@juliawave7478
@juliawave7478 2 года назад
Написала шахматы, но вместо дефолтных картинок с фигурками взяла ассеты из Among us. Теперь мои друзья называют их "Амогмуты" ඞ
@user-nn8uo8zp6y
@user-nn8uo8zp6y 2 года назад
Вот это интересно. Как раз хотел тайпскрипт узнать получше) А тут ещё и реакт с ООП 👍👍👍
@chupa00
@chupa00 2 года назад
Что бы узнать получше, есть доки?)
@user-nn8uo8zp6y
@user-nn8uo8zp6y 2 года назад
@@chupa00 а зачем себя ограничивать? Можно доки почитать, посмотреть видео, послушать подкаст с опытными программистами, почитать книжку. Но самое главное применить на практике)
@user-rx1dg3tk8c
@user-rx1dg3tk8c 2 года назад
Этому парню надо памятник ставить при жизни как лучшему преподу
@Shad0w5m00h
@Shad0w5m00h 2 года назад
Отличный курс, больше спасибо!
@marvinheemeyer7027
@marvinheemeyer7027 2 года назад
Класс, спасибо 🦾
@user-wd3tl2rx9p
@user-wd3tl2rx9p Год назад
Спасибо, классный ролик, показал на практике пользу от ООП и реализацию все на React с хуками. Круто)
@alivePunk
@alivePunk 6 месяцев назад
Спасибо большое, Тимур, за твой труд!))
@user-mu2lr9zc7d
@user-mu2lr9zc7d 2 года назад
Это видео шикарно! ООП подход рулит)
@user-xp8xb1eo4y
@user-xp8xb1eo4y 5 месяцев назад
Ипать, это очень круто. Очень доступно и интересно. Я долго не хотел смотреть это видео и делать этот проект из-за того, что думаю все устарело, а там вообще с этим никаких проблем. Еще и на ts, что вообще лбве ошибки на нет списывает. Спасибо🎉😮😊
@StarLiNe-ji5nf
@StarLiNe-ji5nf Год назад
Интересно было понаблюдать за разработкой👍
@oleggrunov5806
@oleggrunov5806 2 года назад
Выявил у себя явные проблемы с математикой :) Все остальное очень понятно, отличная подача материала, спасибо тебе!
@barbatage5078
@barbatage5078 2 года назад
Обещал - сделал! Респектище)
@bebeto123g
@bebeto123g 2 года назад
ЗА ролик спасибо, НО есть конструктивная критика) Нету ни слова про оптимизацию. Каждый onSelect рендерит дважды каждую ячейку, т.е. 128 раз!!!, что ни есть круто. Т.е. реализация ООП прям норм, но работа с самим Реактом тут скорее антипоказательная. Я подрубил православнй Mobx и React.memo для клеток, ибо самому было лень делать весь функционал, теперь идет перерендер только тех клеток, которые меняют состояние. Если сделаешь продолжение, где средствами только Reacta будет мемоизация - то будет супер респект)
@v.demchenko
@v.demchenko Год назад
Если у вас такая ошибка Cannot find module '../../assets/black-king.png'., нужно создать файл react-app-env.d.ts в папке src с контентом: declare module "*.png"; declare module "*.svg"; declare module "*.jpeg"; declare module "*.jpg";
@user-fw9hc5lg9f
@user-fw9hc5lg9f Год назад
Лучший, братишка!)
@patrickjaworski2787
@patrickjaworski2787 2 года назад
Как любитель шахмат(1300 в рапиде) оч надеялся на подобный выпуск. Спасибо, долждался)
@trickingOOmix
@trickingOOmix 2 года назад
Все, я полностью просмотрел канал Просто гигантский труд, Вы выполнили Большое спасибо!
@UlbiTV
@UlbiTV 2 года назад
Респект и спасибо за поддержку!
@desson8178
@desson8178 2 года назад
Еще толком даже не начал изучать js, ну так, немного понимаю что есть слушатели события, циклы, переменные, ну в целом полнейший новичок :) Понял я примерно процентов 15 из этого ролика, НО! всю суть, и что вообще происходит в коде я как-будто бы понимал, благо объяснение можно сказать на пальцах. Не люблю часовые видео, но это видео просмотрел на одном дыхании. Спасибо, было очень интересно :)
@semionrutshtein1745
@semionrutshtein1745 2 года назад
Безупречный контент. Мое почтение. 👍
@oncologist63
@oncologist63 2 года назад
Как всегда. Ты - ЛУЧШИЙ
@hachipoli822
@hachipoli822 2 года назад
Великолепно! понравилась работа с классами и конкструкторами, хочу так же научиться делать с легкой руки
@user-mq2gd3wg3h
@user-mq2gd3wg3h Год назад
Закончил ещё одно прекрасное видео с тобой. Даже не знаю, как благодирить за такую практику. Делал все вместе с тобой, после окончания полез проверять коменты и гит, чтобы найти готовые ответы на оставщийся функционал, но ничего не смог найти, так что пришлось садиться делать все самому. Честно, по началу думал, что ничего не выйдет. По итогу сделал проверки на шах и мат, король научился ходить только на не битые поля и делать ракировку, добавил проверку на пат, а также победу по окончанию времени, также научил пешки превращаться в любую фигуру и добавил модальное окно выбора. Из внешних изменений добавил только мобильную версию, объявление шаха и модальные окна победы, пата и выбора фигуры для пешкию Если кому-то будет нужно, то вы можете взять код у меня в гите StasKobles (буду благодарен за звездочку). Тимур, ещё раз низкий поклон тебе за все, что ты делаешь. Твой канал это кладезь для меня P.S. Обещаю подписаться на твой бусти , как устроюсь на работу)
@UlbiTV
@UlbiTV Год назад
Очень круто!!
@user-im3nr6he9m
@user-im3nr6he9m Год назад
Вдохновил
@Es_nova
@Es_nova 2 года назад
Было бы круто увидеть развитие этого проекта до полноценного приложения с сессией на два юзера. Помимо бека, заодно можно будет затронуть и реализацию websockets
@taraszas
@taraszas 2 года назад
Ну тут лайкос не глядя)!!!
@abilitydrafter
@abilitydrafter Год назад
Спасибо за Ваш труд!
@alexeytichakov2078
@alexeytichakov2078 8 месяцев назад
Супер подача🥰. Интерсно сколко вы готовите такие ролики. Взял данную модель немного прееделал и уже получилась совсем другая настолка. Спасибо огромное.
@oleksiishkulipa1626
@oleksiishkulipa1626 2 года назад
если кому-то интересно как реализовать что бы ходил король, то: в классе class King extends Figure ``` canMove(target: Cell): boolean { if(target.figure?.name === FigureNames.KING && target.figure?.color) console.log(target); if(!super.canMove(target)) return false; const isVerticalMove = (target.y === this.cell.y + 1 || target.y === this.cell.y - 1) && target.x === this.cell.x; const isHorizontalMove = (target.x === this.cell.x + 1 || target.x === this.cell.x - 1) && target.y === this.cell.y; const isLeftDiagonal = ( (target.x === this.cell.x + 1 && target.y === this.cell.y + 1) || (target.x === this.cell.x - 1 && target.y === this.cell.y - 1) ) const isRightDiagonal = ( (target.x === this.cell.x + 1 && target.y === this.cell.y - 1) || (target.x === this.cell.x - 1 && target.y === this.cell.y + 1) ) if(isVerticalMove || isHorizontalMove || isLeftDiagonal || isRightDiagonal) return true; return false; } ``` что бы запретить ходить на клетки которые под боем(для короля), то надо надо в class Cell реализовать такой метод: ``` whichCellsIsUnderAttack(target: Cell): any[] { /** * @info * получаем все клетки которые находятся под боем других фигур(противоположного цвета) * и потом когда ходит король, то сделать условие что клетка куда походит король - нету в этом массиве */ console.log(this.board.cells.length); return []; } ``` то есть условие например cellsUnderAttacckEnemy. findIndex(клеткаПодБоемПротивника => клеткаПодБоемПротивника.x === target.y && клеткаПодБоемПротивника.y === this.cell.y + 1) >= 0 (то это условие значит что клетка (target.x, this.cell.y + 1 - то есть на 1ну клетку вверх) если найдет индекс больше 0я или 0 - значит клетка есть в массиве) типо что-то такого к условию: ``` if(isVerticalMove || isHorizontalMove || isLeftDiagonal || isRightDiagonal) return true; ``` было честно лень реализовывать дальше) просто даю подсказку так же добавил координаты для каждой клетки и оси в верстке, так как сложно было ориентироватся, может кому-то поможет, ссылка на репу: гитХабТочкаКом/Shkulipa/ulbitv-oop-chess ссылка вставлять не буду, так как бывали моменты что коммент удалялся если в нем присутствывала ссылка надеюсь кому-то поможет накидайте плз. лайков что бы в топ вывести, и другие могли увидеть как хотя бы короля реализовать, спасибо Автору видео, как всего громаднешое спасибо за контент
@yuraa7834
@yuraa7834 Год назад
Спасибо!
@white-listochechki
@white-listochechki Год назад
Красава
@neluhile5004
@neluhile5004 Год назад
Понимаю, что комментарий оставлен уже давно, так что отвечаю просто для всех новопришедших в комментарии) Гораздо более простая реализация движения короля: canMove(target: Cell): boolean { if (!super.canMove(target)) return false; const dx = Math.abs(this.cell.x - target.x); const dy = Math.abs(this.cell.y - target.y); return dx
@dimalukashenko4865
@dimalukashenko4865 2 года назад
Ух ты интересненько
@777Vasya77
@777Vasya77 2 года назад
Что бы уже совсем игра была законченной, надо еще добавить 00 и 000 (рокировки - длинную и короткую)
@maximbuldov9437
@maximbuldov9437 2 года назад
Сначала лайк, потом смотреть
@asg5511
@asg5511 Год назад
Супер урок получился!!!
Далее
▼КОРОЛЬ СОЖРАЛ ВСЕХ 👑🍗
29:48
Просмотров 464 тыс.
TypeScript - Быстрый Курс за 70 минут
1:08:00
CI CD наглядные примеры
22:08
Просмотров 279 тыс.
iPhone 16 - 20+ КРУТЫХ ИЗМЕНЕНИЙ
5:20
Лучший браузер!
0:27
Просмотров 803 тыс.