Learn JavaScript by Building 7 Games - Full Course

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

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

  • @kevinvikan3609
    @kevinvikan3609 Год назад +375

    Great video, learning by practicing is so much better. Even if all you do is copying a few lines of code that you see in each lesson. Much more effective than just taking notes.
    I know this because I tried everything and the only way I could learn (and retain what I learned) was when I started doing that.
    Once a friend suggested me a few books with interactive content, that made me practice what I learned at each chapter.
    Edit: For those asking about the books I mentioned, these are the best ones:
    "Javascript In Less than 50 Pages"
    "Head First Javascript Programming"
    If you are into learning Python, "Smarter Way to Learn Python".

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

      onclick="fun()" it works but in addeventlis it does not work whyy ??

    • @StaticBlaster
      @StaticBlaster 8 месяцев назад +1

      Indeed. Doing is what makes you learn. Passively taking notes won't get you very far.

  • @brunocadilhe8027
    @brunocadilhe8027 2 года назад +817

    Great job on this Ciri, I'm sure father Geralt would be proud of you.

  • @aniakubow
    @aniakubow 2 года назад +807

    Thanks everyone in the FreeCodeCamp community for being so awesome! Hope you enjoy the video 😄
    Instagram: instagram.com/aniakubow
    RUclips: ruclips.net/user/aniakubow

    • @d4tset785
      @d4tset785 2 года назад +6

      You are a great teacher!

    • @aldeen9190
      @aldeen9190 2 года назад +39

      @@d4tset785 She is not a teacher she is mother of dragons

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

      You are doing great job 👍 can u provide all the resources for web development i mean road map

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

      Thanks for your free quality content 😍👏🏻

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

      Thank you Ania! I learned a lot from your video tutorials

  • @gnes04
    @gnes04 Год назад +25

    I've tried so many coding tutorials and understood nothing from them, but you make everything so easy and fun! This is the first time i've genuinely followed along, and I even added my own extra features and UI. Love the way you teach.

  • @PareshMathur
    @PareshMathur Год назад +37

    Day 2 of following this course. I have made 2 games in 2 days, I have never been this productive!!

    • @KiraYoshikage555
      @KiraYoshikage555 7 месяцев назад +2

      You don't made 2 games in 2 days you copy code of 2 games in 2 days this is different things

    • @PareshMathur
      @PareshMathur 7 месяцев назад +1

      @@KiraYoshikage555 sorry shaktimaan

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

      @@KiraYoshikage555 how is your progress this year

  • @arandomname8292
    @arandomname8292 2 года назад +105

    Using this tutorial, when breakout was done i was able to make my own flappy bird. So it is not just following along, it is super helpful. TY Ania

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

      How'd you make infinite blocks

    • @programmers_sanctuary
      @programmers_sanctuary 11 месяцев назад +1

      @@piersStreet I'm guessing it's by using a Math.random for a random height and putting that past the end of a user's screen at intervals.

  • @marcscamander3593
    @marcscamander3593 2 года назад +19

    for those who's struggling with the Whac-a-mole, there should be a comma between 'mousedown' and the ( ) on line 21 1:24:38

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

      THANK YOU

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

      Thank you so much

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

      Thank you.

    • @420troll4
      @420troll4 Год назад +1

      lol. if you can't figure this out, you'r NOT a programmer. you're a regurgitator.

    • @hassansyed6087
      @hassansyed6087 Год назад +4

      @@420troll4 Stop discouraging people just because you have no faith in your abilities. Goof.

  • @PareshMathur
    @PareshMathur Год назад +17

    Day 3 of following the course. I saw the entire whack a mole section, then I had to do something else. That was great as when I came back I remembered the concepts but not the approach taken. Getting the game to work my own way was very satisfying.

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

      Bro its begginer friendly this tutorial ??

    • @brightlight3129
      @brightlight3129 Год назад +4

      @@gabrielcarmnn let me tell you. go watch the basic to javascript first then this will be more easy to understand

  • @techtaley
    @techtaley 2 года назад +12

    Thank you Anita. I’ve rarely explored coding for making games but recently had a project and realized how important it is to challenge myself to creating games and how important it is to learn some of those hidden gems in JS and upping my skills.

  • @JaimeBlanco10
    @JaimeBlanco10 2 года назад +17

    I enjoyed quite a lot building the Space Invaders. It blows my mind how many logic can we have behind animation. :D Love your videos Ania and the way you teach them. Rock on!!

  • @ardhisasongko
    @ardhisasongko 2 года назад +10

    Thank you very much Miss, you are my superwoman for my learning journey to get a programming job

  • @Isa-dw7wo
    @Isa-dw7wo 2 года назад +26

    3:44:25 emmet is built into vscode so you can just type div*n to get that many divs at, 3:45:15 instead of manually adding the class you can instead make 42 plain divs then add the other 7 with the class using emmet like so, div#taken*7

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

    I would tackle checking for winners by checking 4 ranges from the piece you just played (if you're including diagonals: vertical, horizontal, two diagonals). You would go 3 units out in each direction to obtain your ranges ie: (3 to the left, 3 to the right -- since the piece you just played could complete the 4th if placed at the end of a contiguous line) then you would check the range you obtain to see if there are at least 4 contiguous pieces that match the current player that just dropped their piece.
    This would allow for any sized board, as well as any amount of players given that you're only checking for the current player that just dropped their piece.

  • @ManishKumar-th3cw
    @ManishKumar-th3cw 2 года назад +22

    Thanks for sharing such videos, it's always great to see how to build multiple things

  • @Loops-1
    @Loops-1 Год назад +4

    I'm only on the breakout section (and it's killing me) but just wanted to say how amazing this course is. I have been learning using Udemy and there are hours of theory and not enough practicing fully functioning code. It was hard for me to grasp the functionality of certain aspects of JS in a practical sense. But this has been so useful in helping me determine what I do understand, what I don't understand, and what I thought I didn't understand but actually do when context is added.
    It's also really nice to see you code in real time and make mistakes. I used to think I was an idiot for forgetting to actually call my function, or forgetting to declare a variable but it's really encouraging to see that even the experts make these little mistakes.

  • @TinyMaths
    @TinyMaths 2 года назад +8

    Just finished my first 'game' using JavaScript.
    Actually I was following a JavaScript tutorial (the 7+ hour FreeCodeCamp one, here on YT), which had the game blackjack in it. But after dropping the tutorial (for several months) after getting discouraged; I took it back up recently, and decided to take the game much further than the initial tutorial, which only had numbers displayed. I put card images in there, and gave them the illusion of flipping over from back to front when selected. Introduced a dealer so you played against the dealer, and added a whole host of other stuff; different sounds for winning, losing and when you tied with the dealer and a few other scenarios. Also, word prompts on screen for what play options you had next.
    The process was full of joys, frustrations, headaches and mini victories; but mainly exciting to work on.. but I learned so much, and had several 'punching the air' glory moments when I got parts of the game to work. I say this not to boast, but to encourage any of you who are learning JS to push past the pain so you can get that little 'hit' from the reward of solving a problem. It is REALLY worth it. You'll be so proud of yourself. My code is messy, but I'm figuring out how to clean it up and make it more efficient and readable; but just the fact that it works, makes me feel deep satisfaction.
    This video is going onto my dev playlist so I can learn these games and flesh them out. This learning process has been so much fun and has happened largely due to FreeCodeCamp's herculean efforts to give away free tutorials. Ever grateful.

  • @MrWolf2595
    @MrWolf2595 2 года назад +7

    In the Memory Game, there's a little bug still when you click on the same image: the alert shows up, the cards' choice gets reset, but you still win a point for a match. One way to solve it is by having the conditional statement itself reset the cardsChoice & Id, AS WELL AS typing "return;" at the end to prevent the checkMatch() function from running further.
    Hope it helps folks!

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

      I solved that bug by making the "found a match" an ...) else if (... so the computer wouldn't read it once it went through the first "if".

  • @nicholasrobbins921
    @nicholasrobbins921 2 года назад +9

    As I'm following along with these tutorials I find myself wondering why certain elements or functions are used at certain instances and feel, as others have stated, if Ania could explain the 'why' behind why we're putting a for loop here, or a using this.topRight over there or why certain elements are doing what they're doing it would greatly help. I understand that there is some assumptions going into this that the watchers already have some familiarity with JavaScript, but even as someone that's gone through the entire JS curriculum on FCC's website, I still was struggling here and there to fully follow along and had to rewind and rewatch many moments. I think stating out loud why you're doing what you're doing, even if it's simply a brief refresher can help us newbies out substantially. Regardless though, awesome content and building these projects was a lot of fun and a great way to dive deeper into JavaScript! Thank you Ania and FCC for another great tutorial!

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

      Same issue I'm facing here.. lol.

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

      i have a strong suspicion that someone else prepares her code for her, and that she knows only basic syntax. every video of hers is just her copy pasting or copy-typing the code from somewhere else, with little explanations, and her whole personality looks fake and scripted. can't follow any of her tutorials because of this.

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

      @@briggskvngzyt7305 yeah, me too

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

      true, i also found that what would help (as you mention why) is before even explaining the code, explain the logic process. "what is needed and therefore i will need to create this function which will do this so it has to communicate with, which means i need to have this..". having to rewind i guess also helps us connect the dots and learn

  • @thedapperfoxtrot
    @thedapperfoxtrot 2 года назад +26

    Awesome! Can't wait to get cracking on this one. Love these tutorials

  • @stillpickinganame5350
    @stillpickinganame5350 Год назад +2

    You explain everything so beautifully! Thank you so much for this amazing tutorial! Lots of love

  • @shifronim8950
    @shifronim8950 2 года назад +16

    Thank you, Ania for your help with studying JS 💖💖💖

  • @blurryface616
    @blurryface616 2 года назад +72

    The explanation is so clear and precise. Thank you freeCodeCamp and Ania for the providing this course.

  • @squirrelcarla
    @squirrelcarla 2 года назад +16

    Such incredible value as always. Thanks Ania and Freecodecamp!

  • @treyGivens1
    @treyGivens1 2 года назад +92

    It would be nice if you gave more of a explanation for whats happening with the code.

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

      videos are desined so as to let you ask this question, and understand that you have to paye the course for having more insights about the stuff discussed in these free incomplete tutorials.

  • @Xoundz
    @Xoundz 2 года назад +8

    You are truly an amazing teacher. Love n respect for you. Stay blessed. ❣️

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

      Love 😏

  • @wheezycheezy6214
    @wheezycheezy6214 2 года назад +105

    A tip for anyone coding the rock vs papers vs scissors challenge.
    When she begins to type out the conditions for the winner, you only have write conditions for the player has won, otherwise the computer won.
    This will reduce the amount of if-statements.

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

      why didn't she just do ceil instead of floor and that plus 1?

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

      not only that but she could write an array with rps , and the random will return what is in that index

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

      @@whyrulikedis8248 With "floor", the computer never chooses '"paper". You have to use "ceil" to get that result.

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

      you also have to add an if statement forr a draw

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

      Here is my solution, less lines of code more easy:
      const computerChoice = document.getElementById('computer-choice');
      const userChoice = document.getElementById('user-choice');
      const result = document.getElementById('result');
      const rock = document.getElementById('rock');
      const paper = document.getElementById('paper');
      const scissor = document.getElementById('scissor');
      const arr = ["Rock", "Paper", "Scissor"];
      rock.addEventListener('click', function(){
      userChoice.innerHTML = ' Rock';
      let randomChoice = arr[Math.floor(Math.random() * 3)];
      computerChoice.innerHTML = randomChoice;
      if (computerChoice.innerHTML === 'Paper'){
      result.innerHTML = " Computer Win";
      } else if (computerChoice.innerHTML === 'Scissor') {
      result.innerHTML = " User Win";
      } else {
      result.innerHTML = " Draw";
      }
      });
      paper.addEventListener('click', function(){
      userChoice.innerHTML = ' Paper';
      let randomChoice = arr[Math.floor(Math.random() * 3)];
      computerChoice.innerHTML = randomChoice;
      if (computerChoice.innerHTML === 'Rock'){
      result.innerHTML = " User Win";
      } else if (computerChoice.innerHTML === 'Scissor') {
      result.innerHTML = " Computer Win";
      } else {
      result.innerHTML = " Draw";
      }
      });
      scissor.addEventListener('click', function(){
      userChoice.innerHTML = ' Scissor';
      let randomChoice = arr[Math.floor(Math.random() * 3)];
      computerChoice.innerHTML = randomChoice;
      if (computerChoice.innerHTML === 'Paper'){
      result.innerHTML = " User Win";
      } else if (computerChoice.innerHTML === 'Rock') {
      result.innerHTML = " Computer Win";
      } else {
      result.innerHTML = " Draw";
      }
      });

  • @3polygons
    @3polygons 2 года назад +5

    Thanks a gazillion for helping learning JS for game dev :)

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

    vscode Pro tip to copy the current row and place it under or above the original row:
    hold shift + alt + arrow down/up
    no need to select the row then go to the end and press enter AND theeen ctrl + v.
    bonus: holding alt while pressing arrow down/up will move that row up or down a step.

  • @rs.wright
    @rs.wright 2 года назад +13

    For the breakout game, I found it was much simpler to make a changeDirectionX and changeDirectionY function for each. On a hit, you just determine which is applicable and call only that function.

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

      I have strange things happening with my breakout game. the coordinates that she gives puts my blocks on the bottom of the grid, so I came up with my own that put them where they should be. I can get it to work, but it doesn't register when it hits the actual blocks, it registers the location they would be if i'd used her coordinates!

  • @unkn0wnrge189
    @unkn0wnrge189 2 года назад +9

    Have done this course years ago, amazing it is remake, it will help kids develop their html & css & javascript dynamics, with that stack being well developed limits are low, you can build anything, next step is making requests to API, learn basic architeture and some framework for js.

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

      not just kids - i'm 64 and having a blast :-)

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

      Do you think after this course you can learn react

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

      I know JavaScript fundamentals but I still lucking of how to use them in project 🤣 that's why I watched this course

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

      @@jeklo3713If you master js vanilla like she does in this lesson, you can basically shape the UI in real project like anything you want. Years ago I had clients laughing cause I did almost every insane feature in the UI laughing. Mostly because a feature in a real project is is nothing compared to a game! And other devs said omg you used react, angular!!!? How the hell you done this stuff??? You are using a framework, and actually people dont get it how powerful vanilla js can be, later I used JS for tracking criminals.

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

      @@unkn0wnrge189 so you mean I need to be good at it the people I meet on discord said that if I know a JavaScript fundamentals I should move to react and also they said that I can learn React while learning JavaScript that's wwhat they said 😅

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

    For the breakout game, instead of manually inserting all the block positions, I wrote a simple function that inserts them for you:
    function initBlocks(a, b) {
    for (let i = 0; i < 3; i++) {
    let c = a, d = b - (i * 30);
    blocks.push(new Block(c, d))
    for (let i = 0; i < 4; i++) {
    c += 110
    blocks.push(new Block(c, d))
    }
    }
    }
    initBlocks(10, 270)

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

      very simple yes very simple

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

      Yes I very much appreciate her tutorials and I'm somewhat of a beginner so please tell me if I'm wrong but the breakout one seemed to be convoluted and I feel like this works much better for the collision detection:
      function checkForWallCollisions() {
      if (ballCurrentPosition[0] + ballDiameter >= boardWidth || ballCurrentPosition[0] = boardHeight) {
      yDirection *= -1;
      } else if (ballCurrentPosition[1]

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

      @@civilroman Yep that is similar to what I did, nice job.

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

      Do you think after this course you can learn reac.js?

  • @falamaismarvel144
    @falamaismarvel144 Год назад +5

    If anyone is having problem with the memory game when clicking on the same image twice makes you "match", just change the if(cardsChosen[0] == cardsChosen[1]) to a 'else if' instead of an 'if'

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

    A nice shortcut for all using VS Code. Type in your blank html document ! followed by TAB creats the standard html layout. So you don't need to write it yourself

  • @Smokie880
    @Smokie880 2 года назад +82

    Thanks to the FreeCodeCamp because of your tutorials and some practise I can finally say proudly I am a developer thanks guys you are the one who teaches for free not even a single penny ! You deserve subs and likes I will try my best to share these awesome tutorials with my friends and mates ☺

    • @aniakubow
      @aniakubow 2 года назад +14

      ❤️

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

      @@shivani9840 fresher , yes I made some

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

      @@aniakubow thnx mam

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

      @@Smokie880 How long did it take u to master js or are u still learning on the go

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

      @@ashutoshtiwary9605 he's not really a developer he works at walmart still only commentating to get his video recognize.

  • @grothe.dominik
    @grothe.dominik 2 года назад +1

    Had to know javascript among other things for my web technology project in my studies. This course has supported me incredibly well, thank you!

  • @alyster8397
    @alyster8397 Год назад +4

    Thank you, Mrs Kubów, to teaching us some very helpfull technicals skills. I m happy to follow your sessions :)

  • @kimika53
    @kimika53 3 месяца назад

    I have watched a few project videos on RUclips. Yours are quite beginner-friendly and so easy to follow. Thank you.

  • @kapilbillore452
    @kapilbillore452 2 года назад +20

    Hi Queen , one suggestion, whenever u make project videos, it is very good if you give us a demo of all the functionalities u have added to it so that we have clear picture of what are we going to implement. It helps us to understand the way u are thinking while coding. It's good for learning for the noobs like us. Thanks

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

      Queen? Tf bro

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

      She is the mother of dragons bro. 😂

    • @funku2527
      @funku2527 2 года назад +6

      @@kapilbillore452 don't ever simp bro.

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

      "Queen" 😬😬😬

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

    Just what I needed right now, thankyou very much!!

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

    I really enjoyed this course, worth watching and I really learning something new from it. The way of her teaching is super cute.

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

    2:12:00 it's better to make two separate methods to check for vertical and horizontal collision, then pass it as an argument to "changeDirection" method. In change direction method, there's no need to do all the ifs. You can just use xDirection = -xDirection

  • @youngwolf1009
    @youngwolf1009 2 года назад +10

    I really like your tutorials and this video made me discover your channel but i think you should explain a little bit more like for exemple ''why did we put this here'' and things like that
    Your videos are really good but i think they are more for upper intermediate than for begginers, i will continue to learn and then i will come back to do the rest of the projects because i was lost a little bit

    • @annalarge2437
      @annalarge2437 2 года назад +6

      Ditto! I knew some basics, but am definitely still a beginner and even the first game was too fast and lost me quite quickly - I would love a version of this video where you explain in more detail the 'why' on absolutely everything so I could really learn while doing but there is still a too much assumed prior knowledge in this one for me

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

      Same! Seems like most of the coding beyond HTML and CSS is just everyone saying "put this here, add this, put this there" and there's never really any good explanation of why you're doing what you're doing. I felt like this was just a lesson in speed typing trying to keep up with what she was doing. If asked to duplicate this on my own, I would be able to create a js file and that's about it.

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

      All of her videos are not for beginners at all.. even for myself that I am in an intermediate level is hard to follow...

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

    on Breakout, I was able to use a 'mousemove' event listener to control the game with my mouse instead of arrow keys!

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

      I was thinking about to do that same thing. So cool! :)

  • @the777john
    @the777john 2 года назад +8

    Simple games are honestly the best way to learn to code. I learned when I bought Flash back in the day and discovered actionscript. I went out and bought a book that taught me how to code a few simple games, it clicked, and I learned to code in about a week.

    • @hectormejia5090
      @hectormejia5090 2 года назад +6

      bruh you dont learn how to code in a week. but the point still stands. games are a great way to learn

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

    The best course to learn Javascript ... Why? Ania❤

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

    this is awesome thx FCC!

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

    You are an absolute champ, I learnt more in a few hours with this video that with an entire year of JS courses

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

    New here looking forward to starting my coding journey, won't be giving up my day job anytime soon

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

    Thank you very much ania your explanation was very clear and easily understandable

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

    For the Whac-A-Mole game, for the following code section:
    squares.forEach(square => {
    square.addEventListener('mousedown' () => {
    if (square.id == hitPosition) {
    result++
    score.textContent = result
    hitPosition = null
    }
    })
    })
    I'm getting an 'Uncaught SyntaxError:

    • @christopher-leesantos794
      @christopher-leesantos794 2 года назад

      You need to add a "," after the 'mousedown' event.
      square.addEventListener('mousedown', () => { etc etc.
      Took me a bit to figure out why I was getting that error too because the video showed it was working without the comma, but it didn't look right to me in the code. It shows the correct syntax later in the video.

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

      @@christopher-leesantos794 by any chance did you have a problem where result kept increasing by clicking anywhere! for some reason it keeps memory of every square it hit before, and it reaches a point where any click on any square increases the result anyway

    • @christopher-leesantos794
      @christopher-leesantos794 2 года назад

      @@memmudmemmed3022 I think you have to check where you declared your hitposition ID. It may either be in the wrong place or not correctly defined.

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

      @@christopher-leesantos794 Thanks for the fix!!

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

    thanks to this tutorial I was able to build a hotline miami clone from scratch

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

    squares.forEach(square => {
    square.addEventListener('mousedown' () => {
    if (square.id == hitPosition) {
    result++
    score.textContent = result
    hitPosition = null
    }
    })
    })
    I getting a ton of errors in this and I don't know why.

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

      Hi, i think you forgot a comma right after 'mousedown'. The code should run like this:
      squares.forEach(square => {
      square.addEventListener('mousedown', () => {
      if (square.id == hitPosition) {
      result++
      score.textContent = result
      hitPosition = null
      }
      })
      })

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

      Thank you so much!!!!

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

    Lovely simple for me as a beginner. And such a lovely teacher

  • @critical_awareness7587
    @critical_awareness7587 Год назад +6

    it is so hard to follow or trouble shoot code when you cut screens as you cut and copy something. The constant jumping around to put a line here, a line there, without showing the code in its entirety is a really scattered approach. Is it not possible to show the completed code fully at any time? I get that you dont want copy/paste code but its having to rewatch the video over and over to find a 3 second clip, is extremely defeating. I am writing code as she jumps from the top to the bottom constantly, and I have no idea where she just jumped to!! this just reiterates to me how confusing code camp education really is. Ive made leaps and bounds with other sites over fcc, while fcc is constantly confusing in its assignments, this video proves it continues. I honestly didnt relize it was an fcc video. However, I am not surprised.

  • @davek1728
    @davek1728 6 месяцев назад

    Stumbled on this video after doing some basic html, css and javascript courses and i was looking for more challenges. I like these projects. So far i've built them but i always try to understand the logic and then built it myself. For example i've used a counter in the Memory game project while checking the conditions. I did like the idea of pushing the clicks inside an array... this is a usefull technique wich i will implement in other projects! Thanks you for this usefull video!

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

    Nice video!
    However, I would like to mention that the trick used to randomly shuffle the array for the memory game in 29:25 is really a kind of "dirty shortcut". For small arrays and small games like this, it's probably perfectly fine, but for more serious applications and larger arrays, this method is not sufficient, as the probabilities and distribution are very biased.

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

      if you don't mind, for us still trying to learn, can you explain that further or drop a link. thank you... i thought shuffling it was a good way to go about it

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

      could you maybe explain that further, cuz I'm trying to learn code and I would like to know the 'why'

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

    big fan of yours Ania, love your other game related videos. Keep up the good work!

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

    In the memory game code I can still click on the same card twice and that will trigger the cardsChosen[0] === cardsChosen[1] condition. We do blank the images and reset everything BUUUUT the code still goes through the second if statement inside our checkMatch function. I did a quick fix which is to empty both cardsChosen[0] and cardsChosen[1] upon detecting the user clicked on the same image, like so:
    if (optionOneId == optionTwoId) {
    alert('You have clicked the same image!');
    cardsChosen[0] = [];
    cardsChosen[1] = [];
    cards[optionOneId].setAttribute('src', 'images/blank.png')
    cards[optionTwoId].setAttribute('src', 'images/blank.png')
    }

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

    This was a truly Amazing Tutorial, Thank You!

  • @PwrSrg
    @PwrSrg 2 года назад +6

    Gorgeous. 🧡 Makes me want to learn JavaScript.

    • @TheStickofWar
      @TheStickofWar 2 года назад +16

      love the creeps coming out

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

      @@TheStickofWar Says the creepiest avatar EVER. 🤣👍 #punctuationmatters

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

      well am here, might as well learn it

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

    Amazing! after all the tutorials on the web, this with real example step by step is the best help possible!!!

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

      can I watched this 😆 I finished my JavaScript course I understand the fundamentals of it but I don't know what kind of project I should do

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

      I think it's good to watch this right 😆

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

      @@jeklo3713 I think we are all a bit like that haha, I just trying to learn a bit from different parts of Javascript, I don't want to go in 20 languages. but different parts for example as I liked this game thing I start with canvas, with looks amazing for gaming. just enjoy the time coding and continue!!!

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

      @@jeklo3713 yes! and tryto modify it, not only copy it!! :D

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

      @@rubenruben3808 did you try the 30 days vanilla javascript

  • @kiravd5392
    @kiravd5392 2 года назад +7

    Projects to start adding to my portofolio 🙂

    • @aniakubow
      @aniakubow 2 года назад +8

      Yes!!! Hope you can share :)

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

    Thanks so much Ania, for the great tutorial.

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

    thank you very much for this!!! so much to learn:)
    I just went through the Memory Game and noticed that clikcing the same card would trigger two alerts (same card and finding a match) - I changed a line 82 from the video (checking a match for chosen cards) to if(cardsChosen[0] == cardsChosen[1] && optionOneId != optionTwoId){.. so it gets blank and does not clear out to white.png.

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

    On the memory game if you click fast enough you can select 3 images and the third card will remain displayed , to solve that setTimeout( checkMatch, 90) on function flipCard()

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

      Add if (cardsChosen.length < 3) before setAttribute

  • @u.p.n1203
    @u.p.n1203 2 года назад +4

    I feel soo inspiring when I see female programmers and SE as well as IT lecturers🥺❤❤❤

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

    Thank you for uploading this video, I am very much a complete beginner even so I managed to understand some of it! You are a great teacher Thank you

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

    Ok Ania seems good but I felt sometimes lost because you are not commenting on your code as well you were making such a long file that I was completely lost but in the end, it a really good lesson and we also want to you made us a kind of prototype of your programs in that like blueprints, to be honest, will be helpful as I told you I was lost by the end thank you so much for your great lessons.

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

    Thank you Ania !! you are awesome 👑✨🏆😎 your explanation is very clear and helpful

  • @CarlosGonzalez-ll6xx
    @CarlosGonzalez-ll6xx 2 года назад +12

    The problem with these types of courses is that they are more of a workshop, you hardly learn anything, you just follow instructions without foundation

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

      what would you reccomend?

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

      @@cicada3312 Yeah like, how the hell else you supposed to do it? Death by PowerPoint?

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

      This types of courses are not ment to build foundations. These are more of practice types. They expect you to have foundation in JS.

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

      Thats because your supposed to go into it with already some knowledge of javascript. Then you do these project tutorials, already having an idea of what shes doing, and you further memorize the syntax and logic which is the whole point.

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

    For the Rock paper scissors, I keep getting 'undefined' for my Computer Choice but I'm pretty sure I have everything written the same as her....

  • @anyaozioma9583
    @anyaozioma9583 2 года назад +7

    I really don't know how to say thank you to freecodecamp and to you. This is really what I need, a learning by application program

  • @vojislavstefanovic3806
    @vojislavstefanovic3806 7 месяцев назад

    Completed, the course was amazing

  • @denisdenak
    @denisdenak 2 года назад +15

    Don't preface the video by saying it's beginner friendly when it's clearly not. You're literally not explaining anything you're doing.

    • @devonharvey8414
      @devonharvey8414 8 месяцев назад +4

      She did say you need the fundamentals

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

    You are awesome!! thank you very much!

  • @codypeterson8524
    @codypeterson8524 2 года назад +23

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

      I want to get in touch with her ?

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

      investments with portfolio expert like, alice marcella assure you that in few months your account will be more than you dream.

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

      best feeling is knowing you're going to make a gain today and tomorrow, and you're 100% sure,alice marcella, you're a Genius

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

      Great skills and knowledge about the market. I enjoy full profits and easy withdrawal with no complains, trade with the best.

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

      spam scam lmao

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

    Thank you Ania ,your explanation is very clear.

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

    At 18:30 it would be helpful to know the verbose method as well as the best practice as learning the right way is the best way

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

    excellent course - many thanks, Ania, for sharing your knowledge

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

    this is so helpful learning by doing. Thanks a lot Ania❤

  • @rakshajaiswal9345
    @rakshajaiswal9345 Месяц назад

    Completed 3 games and now building the 4th One.😍😍

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

    very nicely paced for a beginner ! Thankyou

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

    ✨👏🏾🥺 just in time!! Thank you for this awesome video!!!

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

    Very nice! At last, I can fallow your JavaScript tutorial in this summer holidays :) 💥

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

    Thank you Ania! I will start after work 👨‍🚀

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

      🙌🙌🙌

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

      @@aniakubow wow your actual channel

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

    Love the way you express things ❤️

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

    successfully implemented Rock, Paper and Scissors. Its really easy and cool (y)

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

    Nice job. Easy to understand. Thanks.

  • @syedismail4896
    @syedismail4896 8 месяцев назад +1

    59:05 you need to use if (optiononeId==optionTwoId){} followed by else if() & not if again.

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

    Just love her eys and teaching as well :)

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

    Thank you very much for your tutorial. I have learnt many diffrent and new things. Regards!!!

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

    For all the Big Bang Theory fans, we need a game of Rock-Paper-Scissors-Lizard-Spock. Thanks for this excellent video.

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

    Thank you! Can't wait to do this one!

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

    The comma that wasn't there in Whac-a-mole drove me insane for about 10 minutes. Loved it ! Thanks.

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

    Direct from Brazil. Congratulations on the channel. Very didactic.

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

    Thank you so much! I did go along and finished all the lessons.

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

    i just finished the video and thanks a lot for your effort this really helped me a lot

  •  2 года назад

    SO FAR SO AWESOME!! I've learend a lot... this is my first approach coming from Python

  • @caribbeanman3379
    @caribbeanman3379 8 месяцев назад +1

    A more concise generateComnputerChoice code could be:
    const randomNumber = Math.floor(Math.random() * 3)
    computerChoice = ['Rock', 'Paper', 'Scissors'][randomNumber];

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

    what a great idea! full stack dev so dont really have use for this but i do wish i started with something like this, games a great way to deeply understand logic and data manipulation. much more valuable than learning outdated classic dom manipulation.