A* Pathfinding Algorithm (Coding Challenge 51 - Part 1)

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 6. 07. 2024
  • In this multi-part coding challenge, I attempt an implementation of the A* Pathfinding Algorithm to find the optimal path between two points in a 2D grid. Code: thecodingtrain.com/challenges...
    đŸ’» Github Repo: github.com/CodingTrain/AStar
    đŸ•č p5.js Web Editor Sketch: editor.p5js.org/codingtrain/s...
    Other Parts of this Challenge:
    đŸ“ș A* Algorithm - Part 2: ‱ Coding Challenge 51.2:...
    đŸ“ș A* Algorithm - Part 3: ‱ Coding Challenge 51.3:...
    đŸŽ„ Previous video: ‱ Coding Challenge #50.1...
    đŸŽ„ Next video: ‱ Random Walker in p5.js...
    đŸŽ„ All videos: ‱ Coding Challenges
    References:
    📘 Artificial Intelligence: A Modern Approach: aima.cs.berkeley.edu/
    🗄 A* Search Algorithm on Wikipedia: en.wikipedia.org/wiki/A*_sear...
    đŸ’» Online demo: codingtrain.github.io/AStar/
    Live Stream Archive:
    🔮 Live Stream #72: ‱ Live Stream #72: A* Pa...
    Related Coding Challenges:
    🚂 #10 Maze Generator: ‱ Coding Challenge #10.1...
    🚂 #162 Self Avoiding Walk: ‱ Coding Challenge 162: ...
    Timestamps:
    0:00:00 Introduction
    0:01:26 A* Pathfinder
    0:09:39 Coding a Grid
    0:13:09 A* Pathfinder Algorithm
    0:22:07 Choosing Best Available Path
    0:27:05 Finding New Nodes
    0:38:30 Adding Heuristic
    0:41:50 Tracing Back
    0:46:49 Using Better Heuristics
    Editing by Mathieu Blanchette
    Animations by Jason Heglund
    Music from Epidemic Sound
    🚂 Website: thecodingtrain.com/
    đŸ‘Ÿ Share Your Creation! thecodingtrain.com/guides/pas...
    đŸš© Suggest Topics: github.com/CodingTrain/Sugges...
    💡 GitHub: github.com/CodingTrain
    💬 Discord: / discord
    💖 Membership: czcams.com/users/thecodingtrainjoin
    🛒 Store: standard.tv/codingtrain
    đŸ–‹ïž Twitter: / thecodingtrain
    📾 Instagram: / the.coding.train
    đŸŽ„ Coding Challenges: ‱ Coding Challenges
    đŸŽ„ Intro to Programming: ‱ Start learning here!
    🔗 p5.js: p5js.org
    🔗 p5.js Web Editor: editor.p5js.org/
    🔗 Processing: processing.org
    📄 Code of Conduct: github.com/CodingTrain/Code-o...
    This description was auto-generated. If you see a problem, please open an issue: github.com/CodingTrain/thecod...
    #aalgorithm #pathfinding #heuristic #p5js #javascript

Komentáƙe • 613

  • @drlipnose
    @drlipnose Pƙed 2 lety +377

    I ended up here while trying to fix my own version of A* code for a personal project. Although in a completely different language, I figured following the logic from start to finish would help. I am happy to say that after watching this twice, clocking in at a near 2 hours of of the most energetic coding I've ever observed, I realized one of my i's were a j.

    • @TheCodingTrain
      @TheCodingTrain  Pƙed 2 lety +48

      This is an amazing story!!

    • @rya7886
      @rya7886 Pƙed rokem +5

      I feel your pain before notepad++ we had notepad... it was as fun as you described!

    • @greatcesari
      @greatcesari Pƙed rokem +7

      I got intense nausea reading that last part.

    • @arcalypse1101
      @arcalypse1101 Pƙed rokem

      ​@rya7886 I you just took me way back lol thanks for that.

    • @nightwintertooth9502
      @nightwintertooth9502 Pƙed 5 měsĂ­ci

      This is the problem with monospace font glyphs and bad vision. 😂

  • @kim15742
    @kim15742 Pƙed 7 lety +1038

    I like it how you show the result at the beginning. Otherwise, I always have to go to the end and see if that is something I want to learn.

    • @TheCodingTrain
      @TheCodingTrain  Pƙed 7 lety +159

      Yes, I hope to keep doing this with future challenges!

    • @ilyaexo2005
      @ilyaexo2005 Pƙed 7 lety +3

      Sometimes it is obvious from description what are you going to do. So, please don't show final result until it really hard to understand!

    • @Twurl
      @Twurl Pƙed 5 lety +10

      I personally hate it when he shows the end result at the beginning. At least give a spoiler warning or a timestamp to skip it. For me, seeing the exact end result removes nearly all motivation to watch through an hour long two-part tutorial. I would rather watch the project organically come together as he builds it, without knowing exactly what to expect.

    • @tx6723
      @tx6723 Pƙed 4 lety +2

      I agree to an extent I like the excitement and motivation of not knowing

    • @luckylove72
      @luckylove72 Pƙed 3 lety

      You are impatient.

  • @psyrinx
    @psyrinx Pƙed 4 lety +26

    I love all your Coding Challenge videos. I'd love to see you make a multi-part series of you putting a lot of code and detail into a project.

  • @user-wo6qp2mo4o
    @user-wo6qp2mo4o Pƙed 5 lety +32

    Man, thank to you again!! I'm so interesting in algorithms and ML, but didn't know where to start. And your lectures are such a good place to start and go far! It's really great, new level, so different to compare with usual front-end JS, it's real science, it's interesting, it's improve you. Thank you!

  • @CodingWithUnity
    @CodingWithUnity Pƙed 5 lety +21

    I know this is a pretty old video, but for anyone watching. The reason it wasnt giving his expected results with no walls and no diagonals is because you need to add tiebreaking in. You can do this simply by changing
    for (int i = 0; i < openSet.Count; i++)
    {
    if (openSet[i].F < openSet[winner].F)
    winner = i;
    }
    Too
    for (int i = 0; i < openSet.Count; i++)
    {
    if (openSet[i].F < openSet[winner].F)
    winner = i;
    else if (openSet[i].F == openSet[winner].F)//tie breaking
    if (openSet[i].H < openSet[winner].H)
    winner = i;
    }

  • @akshay2012rdts
    @akshay2012rdts Pƙed 9 měsĂ­ci +5

    People like you do more for students than many universities around the world. Cheers to learning 🎉

  • @anshum1675
    @anshum1675 Pƙed 5 lety +12

    Best explanation of A* on the internet! By the way, you could have added neighbours to a spot just before looping through its neighbours. This way if you didn't need to check the neighbours of some spots, you wouldn't need to add neighbours to it. They could just be added to closed set without neighbours. This would save a lot of memory when you're dealing with many spots

  • @taradis5659
    @taradis5659 Pƙed 6 lety +84

    If I had more professors who teach like you I was a better engineer now !

    • @neotodsoltani5902
      @neotodsoltani5902 Pƙed 3 lety +14

      Yeah, the problem is, many of the university teachers are bunch of morons.

    • @MrTrollo2
      @MrTrollo2 Pƙed 3 lety +7

      if teachers would teach like this you'd need longer days. Of course it's easy to understand when you already know how it's done.

    • @justarandomlol
      @justarandomlol Pƙed 2 lety

      @@MrTrollo2 ikr

  • @dumbcalamitychild
    @dumbcalamitychild Pƙed 3 lety +5

    I honestly don't know what I would do without you.

  • @viggzta
    @viggzta Pƙed 7 lety +1

    This was super helpful for actually learning A*. I have tried to do it multiple times in C# but never got it working, but ~3 days ago i figured it out thanks to this video. You rock!

  • @amazingstudiotechnology6513
    @amazingstudiotechnology6513 Pƙed 7 lety +3

    You are one of the best teacher online and with a great personality .You have help me a lot with processing. We need more people like you in the world ,thank you.

  • @simonec3511
    @simonec3511 Pƙed 2 lety +14

    This guy is a genius! It looks so straight forward every single step. Amazing đŸ€©

  • @sennabullet
    @sennabullet Pƙed 2 lety +4

    I have been binge watching your videos over the holiday vacation...and I just don't know how I can express my gratitude for making these amazing videos. Your enthusiasm, presentation style...makes what would be a tough process (learning to program) a VERY enjoyable learning process. A massive thank you for sharing your incredible knowledge. You just got a new member.

    • @TheCodingTrain
      @TheCodingTrain  Pƙed 2 lety +1

      Thank you Rico! Did you fill out the google form and link your account to Discord?

    • @sennabullet
      @sennabullet Pƙed 2 lety +1

      @@TheCodingTrain...notbyet! Will do!! Did buy some Coding Train Merch though!
      What I love the most about the videos you make...is that you don't edit out your mistakes. 'this dot' et all. They are mistakes all of us noobs will make and you show us that even pros make mistakes...and the debugging method is education in itself

    • @codingtraintwitcharchive3277
      @codingtraintwitcharchive3277 Pƙed 2 lety

      @@sennabullet Thanks, I really appreciate this feedback!

  • @petergriffith9468
    @petergriffith9468 Pƙed 5 lety +1

    Thanks to your inspiration I finally managed to implement an object oriented version of Astar for Codewars. Keep up the good work!

  • @Stickman-yw3nu
    @Stickman-yw3nu Pƙed 7 lety +186

    It is fantastic how this guy has so muck inspiration and energy to program,and a lot of that anergy actually hi is giving to us , BIG THANKS YO HIM :D

    • @Nickoking12
      @Nickoking12 Pƙed 5 lety +8

      Tbh his overly childish display of energy is kind of annoying

    • @FeLiNe418
      @FeLiNe418 Pƙed 4 lety +9

      @@Nickoking12 you must be fun at parties

    • @BloodyClash
      @BloodyClash Pƙed 4 lety +2

      Also like his energy and paired with it his intelligence you can hear and see

    • @kavinbharathi
      @kavinbharathi Pƙed 3 lety +1

      @@Nickoking12 there are always people that does not want someone be themselves, aren't there...

    • @skmgeek
      @skmgeek Pƙed 2 lety

      @@kavinbharathi yep

  • @douggale5962
    @douggale5962 Pƙed 2 lety +4

    25:20 Array's splice method removes one or more elements from an array, closes the gap, and reduces the length. It makes an array of the removed elements, if any, and returns them. You can also insert zero or more new elements in that position by passing them as the subsequent parameters after removal range base and length.

  • @benzokiller1
    @benzokiller1 Pƙed 5 lety +1

    Absolutely amazing video! Your energy for coding is absolutely amazing and got me coding in p5

  • @scottk5083
    @scottk5083 Pƙed 5 lety +1

    found out about this channel afew days ago. your videos and walkthroughs are amazing.

  • @canitbeapplied2500
    @canitbeapplied2500 Pƙed 4 lety +9

    Translating this into C# for unity is... interesting. Tough to find a good tutorial on pathfinding, luckily this seems to be working for me so far. Love the videos keep up the great work : )

    • @smolboye1878
      @smolboye1878 Pƙed 2 lety

      I had to translate my js code for A* to C for my robotics team a couple of years ago. Great way to learn about pointers and dynamic memory.

  • @markell1172
    @markell1172 Pƙed 2 měsĂ­ci

    This channel always when i don’t know what to do when i want to code something gives me motivation and ideas, pretty cool.

  • @hassaanfarooq9803
    @hassaanfarooq9803 Pƙed 5 lety +3

    Best tutorial seen so far on A* algorithm

  • @YADA70073
    @YADA70073 Pƙed 3 lety

    I'm really love the way you showing the coding... fun and relax.... with the great result.

  • @sulochandhungel
    @sulochandhungel Pƙed 6 lety +1

    So after a mess and 2 hours you finished it? You are BRILLIANT my friend!

  • @shubhamagarwal797
    @shubhamagarwal797 Pƙed 5 lety +1

    You saved my semester! Brilliant work. You sir, are awesome!

  • @tanmayagarwal8513
    @tanmayagarwal8513 Pƙed 4 lety +2

    Really Really Really!!!! Fantastic Video. I really love his energy while he was teaching!! Wish I could have this man as my professor. Amazing!!

  • @aliceorwell7541
    @aliceorwell7541 Pƙed 7 lety +1

    I absolutely love these coding challenges! Keep being awesome.

  • @gordonmctague1723
    @gordonmctague1723 Pƙed 3 měsĂ­ci

    So cool to watch you programming, I've been learning C# for the past few months and it's cool to watch you working in Java but still understanding what you're doing. I'm going to have a go at doing this in C#.

  • @jchenji
    @jchenji Pƙed 7 lety +5

    Dan, you are one of the only CS instructors I've enjoyed listening to. Even when I'm not in a mood to program, watching your videos always makes me want to start something of my own. I've always struggled with finding motivation, and you have helped me find it again. Thanks a bunch! I'm glad I found your channel.

  • @historian2
    @historian2 Pƙed 5 lety +1

    BInary heap implementation of Dijkstra Algorithm runs in O(E)+|V|log|V| time which isn't particularly slow. Together with Hoare's Quicksort Algorithm, Dijkstra Algorithm must rank in the top 2 algorithm of the last century!
    Excellent job on your videos, you are a great teacher!

  • @elpsycongree1132
    @elpsycongree1132 Pƙed 2 lety

    Awesome video!

  • @nicholask9251
    @nicholask9251 Pƙed 7 lety

    Please keep making these vids, and thank you for teaching us

  • @premnathd
    @premnathd Pƙed 4 lety

    Thanks for showing result at the beginning of the video. Awesome

  • @claudiameneghesso1843
    @claudiameneghesso1843 Pƙed 3 lety +1

    Very well explained, thanks! Love your enthusiasm for teaching!

  • @TeamUnpro
    @TeamUnpro Pƙed rokem

    dude, I f*ing LOVE your website!

  • @noutkleef4458
    @noutkleef4458 Pƙed 7 lety +3

    yesss A*!! awesome

  • @christianjt7018
    @christianjt7018 Pƙed 4 lety

    Great video as always :)

  • @dtymnn
    @dtymnn Pƙed 11 měsĂ­ci

    I'm in web dev and watching this. Idk why but this is refreshing some good memories lol

  • @bronsonsedeno8064
    @bronsonsedeno8064 Pƙed 7 lety +8

    I did this a few years ago in one of my intro classes to programming. Was hell, still have the file though :)

  • @taihatranduc8613
    @taihatranduc8613 Pƙed 3 lety

    Thank you a lot. Why are you always the best person to explain things

  • @BukovTervicz
    @BukovTervicz Pƙed 2 lety

    Holy crap what a good A* explanation at the beginning

  • @matiasvlevi6647
    @matiasvlevi6647 Pƙed 5 lety +9

    1:42 "needle in a haystack"
    *Non-premium spotify user's ptsd intensifies*

  • @ipwnzyanoobz
    @ipwnzyanoobz Pƙed 6 lety +3

    For any of you wondering, this is the kind of algorithm top down view rpgs and mobas use like league, runescape, fallout etc

  • @youssefsoliman3341
    @youssefsoliman3341 Pƙed 3 lety +1

    iam happy to see this work !

  • @MR_KALI_YT_007
    @MR_KALI_YT_007 Pƙed 3 lety

    OMG đŸ˜±đŸ˜±đŸ˜ amazing challenge

  • @maxtaniepetitdol9986
    @maxtaniepetitdol9986 Pƙed 7 lety +3

    Dude you're just amazing. Programming is so great!!!

  • @abdlbasetsaci4488
    @abdlbasetsaci4488 Pƙed 7 lety

    thanks you are awsome man !!.we need more complicated videos

  • @KaisarAnvar
    @KaisarAnvar Pƙed 3 lety

    Hahahahaha love your videos!!!

  • @asphaltproject3392
    @asphaltproject3392 Pƙed 4 lety +1

    Thanks !!! You helped me a lot, and that works for Hex grids! (Of course just have to change neighbors conditions)

  • @pactube8833
    @pactube8833 Pƙed 3 lety

    I love the energy he has
    Love you bro

  • @freeidaho-videos
    @freeidaho-videos Pƙed 2 měsĂ­ci

    Looks just like a robot finding an optimal path through a building. ;)

  • @bitworld2848
    @bitworld2848 Pƙed 6 lety +2

    I like how you explain what's going on, and what you're going to do next, and why.

  • @Tordek
    @Tordek Pƙed 7 lety +9

    I built an A* PF viz in Processing the other day, and I was *this* close to tearing my hair out until I realized how I could simplify away almost half of the code I had written to fix edge cases by just... making a smarter Neighbors() function.

  • @camelcase9225
    @camelcase9225 Pƙed 7 lety +1

    I watched this live stream. Must have been the hardest one to edit yet. Probably why part 1 wasn't released until 2 days after haha. Love your channel man, I swear I've put in at least 60 hours watching many of your vids. Btw, I started Frogger today in P5, I think you should consider it for a coding challenge. It's a long and tedious one though!

  • @benamiomer7819
    @benamiomer7819 Pƙed 7 lety

    I don't even code but your videos are really fun to watch it makes me want to learn it

  • @adityakulshrestha7033
    @adityakulshrestha7033 Pƙed 2 lety

    I love your videos because it builds logic 😊

  • @jacobmpp
    @jacobmpp Pƙed 7 lety +48

    you should make 2048

  • @jordanbao2835
    @jordanbao2835 Pƙed 7 lety +1

    Thanks to this channel I moved all my draw engine of my project to p5 :D

  • @_melts
    @_melts Pƙed rokem

    Web dev trying to build a game as a hobby project, such a good tutorial - thank you!

  • @Ganamite
    @Ganamite Pƙed 3 lety

    Amazing

  • @djxfade90
    @djxfade90 Pƙed 7 lety +14

    I know this is an old video, but a more effective way of removing a specific element from an array could be written as:
    var myArr = ["foo", "bar", "bas"]
    var element = myArr[2] //"bas"
    function removeFromArray(arr, el) {
    let i = arr.indexOf(el)
    if (i > -1) {
    arr.splice(i, 1)
    }
    return arr
    }
    myArr = removeFromArray(element)

    • @xerxius5446
      @xerxius5446 Pƙed 4 lety

      use filter instead
      // remove 2 from array
      [1,2,3].filter(i => i !== 2)
      I would personally use a linked list if random access is not needed and there is a lot of insertion / deletion happening

    • @mannyc6649
      @mannyc6649 Pƙed 4 lety

      In this case your function is definitely better and faster. But it's not equivalent to what he wrote in general. If an array has duplicate elements his function will remove all of them while yours only the first occurrence (assuming that indexOf returns the first occurrence). I just wanted to point that out.

    • @mannyc6649
      @mannyc6649 Pƙed 4 lety

      @@xerxius5446 I agree. I was referring to the code in the parent comment, not yours :)

    • @chrismanning5232
      @chrismanning5232 Pƙed 4 lety +1

      The most effective way is just to use the winner variable, which already had the index of the item (and he instantly forgot that). Just openSet.splice(winner,1)

  • @Humance
    @Humance Pƙed 7 lety +3

    i don't understand any of that but i find it fascinating!

  • @hjjol9361
    @hjjol9361 Pƙed 6 lety

    I loved it, espescially the way that without diagonal or obstacle, each way take same time to travel, your grid is 25 by 25, if it go down, right alternativly it will take 25 down and 25 right move to the other side, just like to go on the edge of the grid is 25 down + 25 right :D !
    You helped me take the code train thank you prof. i would have kill to got prof like you in college.

    • @phizc
      @phizc Pƙed 4 lety

      Problem is that it's not actually A*. It's breadth first due to bugs. A* Would only need to check alternately going right down, right down etc or down right down right etc.
      It found an optimal path but it checked all 625 cells doing it. A* would also find an optimal path, but would need to check fewer cells.

  • @Grizix
    @Grizix Pƙed 7 lety +3

    To remove a value from an array in javascript, the two main solutions I know are .filter and .splice(.indexOf)

  • @birnenkopf89
    @birnenkopf89 Pƙed 4 lety

    you are wonderfull, very entertaining see your coding process.

  • @ChrisFotosMusic
    @ChrisFotosMusic Pƙed 3 lety +15

    31:39 "some other life that you have"
    buddy i barely have one life as it is

  • @nouhazouaghi7862
    @nouhazouaghi7862 Pƙed 4 lety

    love your energy

  • @tylerhanson133
    @tylerhanson133 Pƙed 4 lety

    Thanks this helped me solve a real world problem!

  • @simonepellegrini3740
    @simonepellegrini3740 Pƙed 3 lety

    great video

  • @adamjc86
    @adamjc86 Pƙed 5 lety +1

    at 25:48 you create a function to find the index of the `current` element, but you already know that value, it is the value stored in `winner`, so I think you could just do `openSet.splice(winner, 1)`, or without side effects: `openSet = openSet.slice(0, winner).concat(openSet.slice(winner + 1, openSet.length))`

  • @baltazar0007
    @baltazar0007 Pƙed 7 lety

    FANCY stuff. i really like your videos. how about trying to make a tut on creating 2d map from a camera or two could be fun

  • @jesseefcf3268
    @jesseefcf3268 Pƙed 5 lety +4

    4:36 "The algorithm is typically written with a formula. The formula's actually quite simple, although any time you write a formula, it starts to be like, 'Oh my god, is this really what we're doing today?' "
    haha ily dan

  • @uni.corn.gallery
    @uni.corn.gallery Pƙed 3 lety

    Love it

  • @timeslongpast
    @timeslongpast Pƙed 7 lety

    I found your channel about a month before your channel name changed from coding rainbow to Daniel Shiffman to coding train and I got really confused as to why the super awesome intro you had was all blurred out. Now I understand though. Anyway you are doing a great job and I love seeing your processing videos.

    • @TheCodingTrain
      @TheCodingTrain  Pƙed 7 lety

      I'm wondering if I should have left the channel name to "Daniel Shiffman" even if the name name is "Coding Train" . .

    • @kenan2386
      @kenan2386 Pƙed 3 lety

      Keep it as Coding Train

  • @prakashale1627
    @prakashale1627 Pƙed 5 lety

    Brilliant

  • @AshishNallana
    @AshishNallana Pƙed 3 lety

    This algorithm project is very interesting & amazing

  • @yt.mhasan
    @yt.mhasan Pƙed 5 lety +4

    When I will go to USA, I will meet you no matter what. I love you, man ❀

  • @codingblocks3495
    @codingblocks3495 Pƙed 4 lety

    You deserve MORE MORE MORE Subscribers

  • @YoutubeAdministrator
    @YoutubeAdministrator Pƙed 7 lety

    Well done on the editing. Watched the livestream and felt sorry for the editor. But nice result.

  • @tillroberg1730
    @tillroberg1730 Pƙed 7 lety

    Thaaaaaanks a lot! You are a genius! Well explained and easy to follow. Thanks to you I finally understood what A* is actually doing and I got this big piece of homework done. Thanksthankthanks and did I thank you already?

  • @madsgundersen4507
    @madsgundersen4507 Pƙed 7 lety +50

    Your beard is majestic

  • @MarkusBurrer
    @MarkusBurrer Pƙed 7 lety +1

    This is a good video about A* pathfinding, but there are a lot of videos for simple 2d grids. What I miss are tutorials how I can implement A* in a 3d voxel world like Minecraft or Minetest, including jumping, fall height and so on. This is far more complex than the basic 2d grid algorithm

  • @sudoaj
    @sudoaj Pƙed 7 lety

    the joy of codingis to see the end result.....imaging dancing to that path as it finds its way to the end.

  • @endoscopisis
    @endoscopisis Pƙed 7 lety +2

    I love this channel

  • @tonylim1225
    @tonylim1225 Pƙed 4 lety +1

    What a lecture.
    Easy to understand even though i live in non-english country.
    Would love to see whole lectures
    😁😁

  • @matthewrice7590
    @matthewrice7590 Pƙed 7 lety

    Wow. Just started studying computer science in college in the past year, and with most of your challenges I am able to follow along pretty well and feel comfortable with my understanding of your processes. This on the other hand...first time watching is kind of a mind f***.

  • @expeng5861
    @expeng5861 Pƙed 4 lety

    wonderful challenge coding game.

  • @muabyt7333
    @muabyt7333 Pƙed 7 lety +8

    Chapter 10 of the "Nature of Code" Book would be nice :D

  • @ChiniMini-ChujuMuju
    @ChiniMini-ChujuMuju Pƙed 3 lety

    Thanks, man !! You saved my day. I was struggling with this algorithm and your video helped me a lot. One thing I want to ask you. What could be other good heuristics methods we can use here (except euclidean and manhattan)?

  • @MassimoCarloMoscardi
    @MassimoCarloMoscardi Pƙed 3 lety

    Beautifull video very nice to view your channel is Very wonderfull go again

  • @maths4all0
    @maths4all0 Pƙed 3 lety

    nice ❀

  • @MR_KALI_YT_007
    @MR_KALI_YT_007 Pƙed 3 lety

    Amazing 😍 video âŁïžđŸ‘Œ

  • @igniculus_
    @igniculus_ Pƙed 7 lety +41

    Name of this channel was different ... I like the new name though !!!

    • @kuskus_th13
      @kuskus_th13 Pƙed 7 lety +1

      He had trademark issues with Reading Rainbow, so he changed it.

    • @manuelbonet
      @manuelbonet Pƙed 7 lety +3

      KusKusPL Wasn't it coding rainbow?

    • @AsifMehedi
      @AsifMehedi Pƙed 7 lety

      Yes, but it was too similar.

    • @igniculus_
      @igniculus_ Pƙed 7 lety

      Actually ... Even before that ... The channel name was his own name ... "Daniel Shiffman".

    • @manuelbonet
      @manuelbonet Pƙed 7 lety +2

      Ani H.​ The channel had always been named Daniel Shiffman, but when he referred to his channel, he called it Coding Rainbow

  • @likhithakommuri5524
    @likhithakommuri5524 Pƙed 3 lety

    Nice

  • @coolbreeze2974
    @coolbreeze2974 Pƙed 2 lety

    I wish you were my teacher, and thank you for teaching me how to code

  • @nofacee94
    @nofacee94 Pƙed 7 lety

    I recommend using arrRows.forEach(function(row, i){ row.forEach(function(col, j){ console.log(row, i, col, j) } }); e.g. for the grid.

  • @afzalmahmudd8365
    @afzalmahmudd8365 Pƙed 2 lety

    interesting sir.❀

  • @katiesilva7651
    @katiesilva7651 Pƙed 7 lety +3

    first tried to do this without a tutorial. I started at (1, 1)(on a grid) and tried to get to (1, 2). let's just say it went to (-1, 0) then had an infinite loop

  • @teeraucher
    @teeraucher Pƙed 7 lety

    I already wrote A* in vb.net to learn how it works. (Tip: Don't write it recursive. The Stack will overflow.) But I started watching this video so see how some one would explain it. But now I am more interested in the p5* framework xD. (btw. very entertaining video #Like)

  • @RetroFanEnt
    @RetroFanEnt Pƙed 7 lety

    THANK YOU MISTER SHIFFMAN

  • @sonnguyenthai8990
    @sonnguyenthai8990 Pƙed 4 lety

    I had studied c++ for 2 months, i'm 15 years old Vietnamese student, i had try to slove this in Back Tracking