Programujemy grę Sliding Puzzle w JavaScript

Поделиться
HTML-код
  • Опубликовано: 13 янв 2025

Комментарии • 57

  • @macccc
    @macccc 9 месяцев назад +1

    Bardzo dobry i ciekawy film naprawdę sie wiele można nauczyć

  • @kamilrichert8446
    @kamilrichert8446 Год назад +1

    27:20 przykładowym uproszczeniem mogłoby być policzenie różnicy w ixach i igrekach między pustym a klikniętym polem i sprawdzić, czy suma tych dwóch różnic daje nam 1

  • @katarzynamaciejewska9823
    @katarzynamaciejewska9823 4 года назад +2

    Bardzo wartościowy film! Podoba mi się sposób, w jaki tłumaczysz, bo nie od razu podajesz ostateczną wersję gry tylko pokazujesz jak dochodziłeś do poszczególnych rozwiązań i jak je ulepszałeś.
    Muszę popracować nad umiejętnością rozwiązywania problemów programistycznych i rozkładania ich na czynniki pierwsze.
    Spróbuję napisać podobną grę nie zaglądając do Twojego kodu :)

  • @mateusz100c
    @mateusz100c 3 года назад +6

    Bardzo dobry kanał, mnóstwo przydatnej wiedzy, oby było tego więcej :)

  • @Luke__Skywalker
    @Luke__Skywalker 2 месяца назад

    Powiem Jedno ZAJEBISTE
    NAPRAWDĘ ZAJEBISTE ! ! ! 😜

  • @klqs2220
    @klqs2220 2 года назад +5

    Hej, sory za odkop, ale czy ktoś może mi wytłumaczyć w jaki sposób działają te ify z 25:25, skoro jeśli if nieważne czy zwraca true czy false to wykonują się dokładnie te same czynności? Dokładniej chodzi o linijke 49 i 63 - przed i za else jest ten sam kawałek kodu. No chyba że ja czegoś nie widzę :D

  • @robertlancman32
    @robertlancman32 4 года назад +1

    Świetne! Jako początkujący jestem zaskoczony jak można "poniewierać" DOMem przez js...
    i jak ważne w tym zawodzie jest myślenie abstrakcyjne. Sam bym nie wpadł na ten sposób zrealizowania gry.
    Róbcie wiyncyj!

    • @JZP
      @JZP  4 года назад +1

      Super, że film Ci się spodobał! Dzięki za dobre słowo.
      Jeśli chciałbyś mieć trochę większy wpływ na treści naszych filmów, to zapraszamy na naszą grupę na FB. Co jakiś czas pytamy się tam o to co interesuje naszych widzów!
      Pozdro,
      Kacper

  • @aki1840
    @aki1840 2 года назад +1

    Super materiał i ciekawe tipy!
    Daje suba i będę Was odwiedzał chłopaki!

  • @toszi6325
    @toszi6325 4 года назад +6

    Super, większość podstawowych komend już znam a nie wpadłbym na uczenie się ich w ten sposób. Czekam na więcej

  • @mcgregor5130
    @mcgregor5130 4 года назад +2

    Super film! Czekam na więcej takich poradników :)

    • @JZP
      @JZP  4 года назад +1

      Super! Cieszę się, że film Ci się podobał :)

  • @myjagy1532
    @myjagy1532 Год назад +1

    Chciałem dodać swój obrazek do gry. Zmieniłem mu wartości: 300px na 300px. Po wpisaniu tych dwóch linijek kodu na końcu: column.style['background-position-x'] = `-${rowIndex * 100}px`;
    column.style['background-posiotion-y'] = `-${columnIndex * 100}px` widzę jedynie część mojego obrazka powielonego w kilku kawałkach zamiast całego. Czegoś tu nie wychwyciłem.

  • @luiseduardosalcedoaya9064
    @luiseduardosalcedoaya9064 2 года назад +2

    dziękuję człowieku, uratowałeś mi życie

  • @piotrek27135
    @piotrek27135 Год назад +1

    Polecam ustawić font-size: 0px; dla .tile

  • @akinorewakinorew2085
    @akinorewakinorew2085 2 года назад +1

    Hej, oglądnęłam już kilka filmów z Waszego kanału, zrobiłam z Wami CV. Chciałam teraz zrobić tę grę ale już na początku utknęłam. Po wpisaniu nic mi się automatycznie nie uzupełnia dalej. Jestem zupełnie początkująca więc będę wdzięczna za wskazówkę co robię źle. Może to w ustawieniach VSC?

  • @TheRockBandPL
    @TheRockBandPL 4 года назад +1

    Fajnie, spróbuję jutro :)

    • @JZP
      @JZP  4 года назад +1

      Cieszę się. Powodzenia ;)

  • @lukaszqw
    @lukaszqw 3 года назад +2

    mam pytanie to tzreba robic wszystko po kolei jak pan ?

    • @JZP
      @JZP  3 года назад +1

      Cześć! W materiale staram się iść krok po kroku, tak aby najłatwiej było zrozumieć co robię. Oczywiście, możesz robić materiał szybciej albo samemu implementować poszczególne partie jeśli wiesz co robisz ;)
      Pozdro!

  • @lukaszqw
    @lukaszqw 3 года назад

    11:23 Niestety ale gameTiles u mnie nie dziala prawdopodobnie przez to ze zle stawiam nawiasy, ale nie wiem jak one maja byc dokladnie postawione

    • @JZP
      @JZP  3 года назад

      A jesteś w stanie udostępnić swój kod na githubie albo na codepenie, żeby podpowiedzieć Ci co poprawić?

    • @lukaszqw
      @lukaszqw 3 года назад

      @@JZP Akurat z tym sobie poradziłem już sam, ale tutaj 15:34 kiedy naciskam na cos pisze ,,undefined undefined"
      const gameTiles = document.querySelectorAll('.tile');
      const gameBoard = document.querySelector('#game-board');
      const gameState = [
      [gameTiles[0], gameTiles[1], gameTiles[2]],
      [gameTiles[3], gameTiles[4], gameTiles[5]],
      [gameTiles[6], gameTiles[7], gameTiles[8]],
      ];
      gameBoard.addEventListener('click', (event) => {
      const target = event.target;

      let x, y;
      gameState.forEach((row, rowIndex) => {
      row.forEach((column, columnIndex) => {
      if (column === target) {
      x = rowIndex;
      y = columnIndex;
      }
      });
      });

      console.log(x, y);
      });

    • @JZP
      @JZP  3 года назад

      @@lukaszqw Zrobiłem sobie potrzebną strukturę (#game-board i 9 .tile w nim). Potem skopiowałem Twój kod i działa poprawnie. Zobacz, czy masz odpowiednio ułożony HTML i czy w tablicy gameState faktycznie znajdują się wszystkie elementy a nie 9 razy "undefined".

  • @piotrburak9067
    @piotrburak9067 3 года назад +1

    A co jeżeli css html i js zapisuja sie jaka oddzielne pliki?

    • @JZP
      @JZP  3 года назад

      Nie bardzo rozumiem, czy mógłbyś rozwinąć? W tutorialu kod HTML, CSS I JS są w oddzielnych plikach.

    • @piotrburak9067
      @piotrburak9067 3 года назад

      Html i js sie zapisuja normalnie a css w formie notatnika, przez co kod nie dziala

    • @JZP
      @JZP  3 года назад

      @@piotrburak9067 A jakiego edytora używasz?

    • @piotrburak9067
      @piotrburak9067 3 года назад

      @@JZP visual studio code

    • @JZP
      @JZP  3 года назад

      @@piotrburak9067 Spróbuj użyć funkcji Plik -> Zapisz jako i upewnij się, że wpisujesz rozszerzenie .css po nazwie pliku.

  • @rmateooo
    @rmateooo 2 года назад

    Rozumiem że jak przekazujemy do funkcji obiekt to działami na tym obiekcie w pamięci i modyfikujemy go tak?
    Bo jak to jest że robiąc appendChild mamy jakby zerowanie aktualnych dzieci że dodaje się 9 nowych a nie że mamy np. 18 itd?

    • @JZP
      @JZP  2 года назад

      Zgadza się

    • @rmateooo
      @rmateooo 2 года назад

      @@JZP ale jak to się dzieje że te elementy dzieci się nie powielają skoro dodajemy 9 nowych ale poprzednie też są w DOM?

    • @JZP
      @JZP  2 года назад

      @@rmateooo Zobacz, że render wywoływane jest tylko raz. Potem już po prostu przesuwamy elementy.

  • @warriorpriest3344
    @warriorpriest3344 Год назад

    No fajnie tylko żeby zacząć grę to elementy muszą być pomieszane i za każdym startem gry inaczej. Jak to zrobić?

    • @JZP
      @JZP  Год назад

      Jest to dość skomplikowany problem. Można randomowo wykonywać dostepne ruchy i tak pomieszać planszę albo zaimplementować specjalny algorytm mieszający. Tutaj opisane jak to zrobic developerslogblog.wordpress.com/2020/04/01/how-to-shuffle-an-slide-puzzle/

  • @pawes.3096
    @pawes.3096 4 года назад +1

    Bardzo ciekawy projekt. Mam jedną prośbę, czy jesteś wstanie dograć film, w którym ten projekt, będzie posiadał możliwość automatycznego i losowego mieszania kostek Puzzli ? Pozdrawiam

    • @JZP
      @JZP  4 года назад

      Cieszę się, że Ci się podobało! W pierwotnej wersji planowałem, aby gra miała opcję automatycznego mieszania. Nie dodałem jej bo okazuje się, że nie jest to takie proste i film rozciągnąłby się pewnie dwukrotnie. Jest na to kilka metod - tutaj jest fajny opis developerslogblog.wordpress.com/2020/04/01/how-to-shuffle-an-slide-puzzle/. Mamy już zaplanowane kilka filmów w przód. Nie mogę nic obiecać, ale może taki film kiedyś się pojawi. Bardzo zachęcam Cię do użycia mojego kodu z Githuba i spróbowania napisania tego samemu! Może to być świetny projekt. Jeśli się zdecydujesz, to nie zapomnij podzielić się efektami!

    • @pawes.3096
      @pawes.3096 4 года назад +1

      @@JZP Dziękuję za odpowiedź i podpowiedź. Uczę się od 4 miesięcy front-endu i powoli zamierzam zrobić swój projekt, zainspirował mnie wasz projekt. Poza możliwością mieszania Puzzli ,chcę zrobić możliwość wybory obrazka oraz wielkości Sliding Puzzle, a połączenie całości ze stoperem zliczającym czas rozwiązywania Puzzli, wydaje się ciekawym projektem. Jednak zastanawiam się czy zdołam sobie z tym poradzić w najbliższym czasie. Pozdrawiam.

    • @JZP
      @JZP  4 года назад

      @@pawes.3096 Super, brzmi jak świetny projekt. Ja bym do tego podszedł w takiej kolejności:
      1. Zmiana wielkości puzzla,
      2. Wybranie obrazka,
      3. Mieszanie,
      4. Mierzenie czasu.
      Jestem przekonany, że jeśli będziesz konsekwentne dążył do celu, uczył się, spędzisz sporo czasu nad rozwiązaniem zadania to na bank Ci się uda. A ile się przy tym jeszcze nauczysz! Powodzenia i nie zapomnij podzielić się wynikami :)

    • @pawes.3096
      @pawes.3096 4 года назад

      @@JZP Dzięki za potwierdzenie kolejności bo w głowie miałem tą kolejność :) Gdy projekt będzie gotowy na pewno się podzielę. Obecnie pracuję nad stroną (dodatek do CV i umieszczę tam cztery projekty. Puzzle będzie największym). Pozdrawiam i czekam na kolejne Wasze filmy.

    • @MultiPlayerHardcore
      @MultiPlayerHardcore 3 года назад

      @@pawes.3096 i jak? Zrobiłeś losowanie? Chciałbyś się może podzielić jeśli ci się udało?

  • @ahagranie312
    @ahagranie312 Год назад

    W konsoli nie pokazywalo mi sie nic

  • @lipa71sqad
    @lipa71sqad 2 года назад

    tylko jak zrobić żeby tile były pomieszane od początku?

    • @JZP
      @JZP  2 года назад

      Są na to przynajmniej dwa sposoby - prosty i wolny oraz szybki i trudny ;) Przychodzi Ci jakieś potencjalne rozwiązanie do głowy?

  • @kacperwisniewski9648
    @kacperwisniewski9648 4 года назад +1

    ja bym chciał link tego programu w którym ty to robisz ale no naprawdę to mi się przyda

    • @JZP
      @JZP  4 года назад +1

      Siema! Program nazywa się Visual Studio Code jest dostępny za darmo. Dodatkowo mam zainstalowany plugin Prettier, który formatuje mi kod ;)

    • @kacperwisniewski9648
      @kacperwisniewski9648 4 года назад

      Bardzo dziękuję

  • @BartoszRybacki0
    @BartoszRybacki0 4 года назад +1

    Uwaga oto BUG wywołany metodą COPY-PASTE: ruclips.net/video/dOxrZ3F_gu8/видео.html
    na szczęście późniejsze zmiany wszystko naprawiły...

  • @diegoalejandropradoprieto9822
    @diegoalejandropradoprieto9822 2 года назад

    Kiedy kurs angielskiego

  • @heasterian2508
    @heasterian2508 Год назад

    x + y == emptyX + emptyY - 1 || x + y == emptyX + emptyY + 1

  • @mialacouture8740
    @mialacouture8740 2 года назад

    nie zrozumiałem, nie znam polskiego