All language subtitles for 19. Resetting the Game

af Afrikaans
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian Download
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 1 00:00:01,330 --> 00:00:04,610 Welcome to the last lecture of this project 2 2 00:00:04,610 --> 00:00:06,490 and of this section. 3 3 00:00:06,490 --> 00:00:08,330 And in this one, we're gonna implement 4 4 00:00:08,330 --> 00:00:11,260 the functionality of resetting the game 5 5 00:00:11,260 --> 00:00:13,123 at any point in time. 6 6 00:00:14,530 --> 00:00:16,070 So what we're looking for, 7 7 00:00:16,070 --> 00:00:18,490 when we click on this button here, 8 8 00:00:18,490 --> 00:00:20,540 is to remove the the winner class 9 9 00:00:20,540 --> 00:00:23,090 and to set all the scores 10 10 00:00:23,090 --> 00:00:26,180 of all the players here back to zero. 11 11 00:00:26,180 --> 00:00:29,510 So all the total scores, this and this, 12 12 00:00:29,510 --> 00:00:34,430 and all the current scores should also be put back to zero. 13 13 00:00:34,430 --> 00:00:36,590 So essentially, we need to set back 14 14 00:00:36,590 --> 00:00:39,690 all the initial conditions of the game. 15 15 00:00:39,690 --> 00:00:41,890 Now, we already did something similar 16 16 00:00:41,890 --> 00:00:44,240 to this in our first game, 17 17 00:00:44,240 --> 00:00:46,630 and so maybe this is a good opportunity 18 18 00:00:46,630 --> 00:00:49,250 to leave this as a challenge for you. 19 19 00:00:49,250 --> 00:00:51,590 And this one will be a little bit more difficult 20 20 00:00:51,590 --> 00:00:54,650 than the one in the Guess My Number project. 21 21 00:00:54,650 --> 00:00:57,180 But you can still try to do it. 22 22 00:00:57,180 --> 00:00:59,500 So what I want you to do is when we click 23 23 00:00:59,500 --> 00:01:02,190 on this button, as I just mentioned, 24 24 00:01:02,190 --> 00:01:05,890 reset all the initial conditions of the game. 25 25 00:01:05,890 --> 00:01:07,750 And it doesn't matter if your solution 26 26 00:01:07,750 --> 00:01:11,350 will be dramatically different from mine, okay? 27 27 00:01:11,350 --> 00:01:12,840 I just want you to try, 28 28 00:01:12,840 --> 00:01:15,630 and I want you to write code on your own. 29 29 00:01:15,630 --> 00:01:18,190 No matter if you'll actually achieve the goal 30 30 00:01:18,190 --> 00:01:23,030 in the end or not, that is not point right now. 31 31 00:01:23,030 --> 00:01:24,790 So just pause the video here, please. 32 32 00:01:24,790 --> 00:01:28,763 And try to do at least part of this on your own. 33 33 00:01:30,270 --> 00:01:33,980 So hopefully, you had a great time doing that. 34 34 00:01:33,980 --> 00:01:38,980 And so let's now go back together here and do it ourselves. 35 35 00:01:39,600 --> 00:01:42,250 So we need this btnNew, 36 36 00:01:42,250 --> 00:01:46,683 and so once more, we will add an event handler on there. 37 37 00:01:49,100 --> 00:01:51,617 So that's btnNew.addEventListener 38 38 00:01:57,610 --> 00:02:01,600 waiting for a click, and then we want to execute 39 39 00:02:03,730 --> 00:02:06,203 whatever happens here. 40 40 00:02:07,520 --> 00:02:11,580 So as I said, we need to reset all the scores. 41 41 00:02:11,580 --> 00:02:13,790 So let's start with that. 42 42 00:02:13,790 --> 00:02:16,593 And I guess I already selected these up here. 43 43 00:02:18,380 --> 00:02:21,303 So that is scoreEl0 and score1El, okay? 44 44 00:02:25,770 --> 00:02:29,170 So these two scores, we want to set them back to zero. 45 45 00:02:29,170 --> 00:02:31,623 Now actually, we already did that here, 46 46 00:02:32,790 --> 00:02:35,923 so let's just copy it for now. 47 47 00:02:38,570 --> 00:02:39,870 Okay. 48 48 00:02:39,870 --> 00:02:41,270 Then we also need to set 49 49 00:02:41,270 --> 00:02:43,563 all the current scores back to zero. 50 50 00:02:44,520 --> 00:02:46,370 So that is current0El and current1El. 51 51 00:02:52,680 --> 00:02:57,680 So current0El equal zero, 52 52 00:02:57,900 --> 00:03:01,040 and then current1El also back to zero. 53 53 00:03:06,760 --> 00:03:10,470 Next up, we need to remove the winner class, 54 54 00:03:10,470 --> 00:03:14,340 so this dark class that we have here, 55 55 00:03:14,340 --> 00:03:16,720 and now it's gonna disappear because as I move out 56 56 00:03:16,720 --> 00:03:20,080 from this window, it will save and then it will reload. 57 57 00:03:20,080 --> 00:03:21,770 So I'll only go half. 58 58 00:03:21,770 --> 00:03:25,060 But you see this dark class, the winner class, 59 59 00:03:25,060 --> 00:03:26,233 needs to disappear. 60 60 00:03:27,090 --> 00:03:29,360 And so let's do that. 61 61 00:03:29,360 --> 00:03:32,413 And so that should be player0El.classList.remove 62 62 00:03:41,910 --> 00:03:45,240 and player winner. 63 63 00:03:45,240 --> 00:03:49,200 Now of course, we do not know which player won the game. 64 64 00:03:49,200 --> 00:03:53,393 And so we have to do this on both the player elements, okay? 65 65 00:03:55,410 --> 00:03:57,720 And that's not problem at all. 66 66 00:03:57,720 --> 00:04:01,120 So we already know that only one of these two elements 67 67 00:04:01,120 --> 00:04:05,180 will have this class, but we can still tell JavaScript 68 68 00:04:05,180 --> 00:04:08,023 to remove a class even if it's not there. 69 69 00:04:08,910 --> 00:04:11,540 JavaScript will happily do that. 70 70 00:04:11,540 --> 00:04:13,970 Then, next up, we also need to remove 71 71 00:04:13,970 --> 00:04:17,250 the active classes on both players, 72 72 00:04:17,250 --> 00:04:19,950 because again, we do not know at this point 73 73 00:04:19,950 --> 00:04:22,280 which one is the active player. 74 74 00:04:22,280 --> 00:04:25,080 So let's just remove them too. 75 75 00:04:25,080 --> 00:04:26,363 Now, just copy it. 76 76 00:04:27,760 --> 00:04:32,370 So player winner here is both active. 77 77 00:04:32,370 --> 00:04:35,650 And then, we also need to set the first player 78 78 00:04:35,650 --> 00:04:37,650 to be the active player. 79 79 00:04:37,650 --> 00:04:39,420 So let's do that. 80 80 00:04:39,420 --> 00:04:42,880 And in fact, let me just change the code here 81 81 00:04:42,880 --> 00:04:46,210 in this line, because there's no need to remove it 82 82 00:04:46,210 --> 00:04:49,400 from player zero, because, well, 83 83 00:04:49,400 --> 00:04:52,980 player zero should be the active player in the beginning. 84 84 00:04:52,980 --> 00:04:55,090 And so there's no need of removing it 85 85 00:04:55,090 --> 00:04:56,690 and then adding it back. 86 86 00:04:56,690 --> 00:05:00,240 So I will simply add it, all right? 87 87 00:05:00,240 --> 00:05:01,770 And if it was already there, 88 88 00:05:01,770 --> 00:05:05,690 then JavaScript will not add it again, okay? 89 89 00:05:05,690 --> 00:05:07,880 So just like with removing. 90 90 00:05:07,880 --> 00:05:09,410 So if the class is not there, 91 91 00:05:09,410 --> 00:05:12,580 but we are still telling JavaScript to remove it, 92 92 00:05:12,580 --> 00:05:14,360 it will not give us an error. 93 93 00:05:14,360 --> 00:05:15,940 It will simply do nothing. 94 94 00:05:15,940 --> 00:05:18,970 And if we add a class that's already there, 95 95 00:05:18,970 --> 00:05:20,800 it will not add a second one. 96 96 00:05:20,800 --> 00:05:23,070 And so here, it's not a problem. 97 97 00:05:23,070 --> 00:05:25,640 So even if the class is already there 98 98 00:05:25,640 --> 00:05:28,440 by saying add a player active, 99 99 00:05:28,440 --> 00:05:31,123 we will not add another one, okay? 100 100 00:05:32,150 --> 00:05:35,700 All right, and that's it for the visible part 101 101 00:05:35,700 --> 00:05:37,470 of the user interface. 102 102 00:05:37,470 --> 00:05:41,670 So we changed classes here and we manipulated the content. 103 103 00:05:41,670 --> 00:05:43,530 But of course, we also need to set 104 104 00:05:43,530 --> 00:05:47,493 our internal state variables back to the initial state. 105 105 00:05:48,630 --> 00:05:51,770 So basically, what we need to do, 106 106 00:05:51,770 --> 00:05:55,400 is to add these scores back to zero, 107 107 00:05:55,400 --> 00:05:57,553 set the current score back to zero, 108 108 00:05:58,460 --> 00:06:01,200 set the active player back to the first player, 109 109 00:06:01,200 --> 00:06:04,810 and also basically start the game again 110 110 00:06:04,810 --> 00:06:07,440 by setting playing back to true. 111 111 00:06:07,440 --> 00:06:09,690 So what should we do here? 112 112 00:06:09,690 --> 00:06:12,220 Should I simply take this code 113 113 00:06:12,220 --> 00:06:14,750 and copy it to the other function? 114 114 00:06:14,750 --> 00:06:19,320 And you already know the answer to this question, don't you? 115 115 00:06:19,320 --> 00:06:21,260 So, of course not. 116 116 00:06:21,260 --> 00:06:23,540 Instead, we will create a function 117 117 00:06:23,540 --> 00:06:26,720 which contains this code, together with the code 118 118 00:06:26,720 --> 00:06:30,160 that is already down here, okay? 119 119 00:06:30,160 --> 00:06:33,730 And then we will create a new function with all of these. 120 120 00:06:33,730 --> 00:06:36,060 And I'm gonna call this function init, 121 121 00:06:36,060 --> 00:06:38,530 which stands for initialization. 122 122 00:06:38,530 --> 00:06:40,883 So let me cut this code here, 123 123 00:06:41,840 --> 00:06:45,023 and create this function here. 124 124 00:06:46,930 --> 00:06:51,112 So again, calling init, which stands for initialization. 125 125 00:06:51,112 --> 00:06:54,370 And this is once again just the function 126 126 00:06:54,370 --> 00:06:58,160 that serves as a reusable piece of code, 127 127 00:06:58,160 --> 00:06:59,860 so we need to know arguments here. 128 128 00:07:01,880 --> 00:07:04,910 Okay, so this is the init function, 129 129 00:07:04,910 --> 00:07:06,970 which will initialize our game. 130 130 00:07:06,970 --> 00:07:10,750 And now, we also want this code in there as well. 131 131 00:07:10,750 --> 00:07:12,880 And in fact, we want all of these code. 132 132 00:07:12,880 --> 00:07:14,980 So all of the starting conditions 133 133 00:07:14,980 --> 00:07:19,420 should now be set here in this init function. 134 134 00:07:19,420 --> 00:07:22,963 So let's grab this and paste it here. 135 135 00:07:24,000 --> 00:07:27,650 Okay, and now, these two are duplicate. 136 136 00:07:27,650 --> 00:07:29,960 So they're already down here. 137 137 00:07:29,960 --> 00:07:31,810 So this is the same as this and this, 138 138 00:07:32,772 --> 00:07:34,363 so let's remove it from here, 139 139 00:07:35,500 --> 00:07:38,393 and then let's move this one down a little bit. 140 140 00:07:41,070 --> 00:07:45,350 Okay, and again I used option or Alt + arrow down 141 141 00:07:45,350 --> 00:07:46,823 to move the line like that. 142 142 00:07:47,740 --> 00:07:52,720 Give it some space here, and okay. 143 143 00:07:52,720 --> 00:07:56,010 So this is our initializing function. 144 144 00:07:56,010 --> 00:08:00,170 Now, when do we want this function here to be executed? 145 145 00:08:00,170 --> 00:08:02,670 We want it in two situations. 146 146 00:08:02,670 --> 00:08:05,940 So whenever we load the page for the very first time 147 147 00:08:05,940 --> 00:08:08,420 or also when that button is clicked 148 148 00:08:08,420 --> 00:08:11,260 that we were just working on, right? 149 149 00:08:11,260 --> 00:08:14,350 So, of course, we need these scores 150 150 00:08:14,350 --> 00:08:17,550 to be zero at the beginning, together with the current score 151 151 00:08:17,550 --> 00:08:20,270 and the active player and all of that. 152 152 00:08:20,270 --> 00:08:24,140 And so we used to have this code outside of any function. 153 153 00:08:24,140 --> 00:08:28,130 And so it was executed right when the file was loaded. 154 154 00:08:28,130 --> 00:08:31,350 But now, this code is inside of this function. 155 155 00:08:31,350 --> 00:08:33,230 And right now, we are not calling 156 156 00:08:33,230 --> 00:08:35,080 this function here at any point. 157 157 00:08:35,080 --> 00:08:36,690 And so this code in here 158 158 00:08:36,690 --> 00:08:40,880 will not get executed as the page loads, okay? 159 159 00:08:40,880 --> 00:08:43,380 So right now, as we load the page, 160 160 00:08:43,380 --> 00:08:46,880 you will see that it has this weird starting conditions 161 161 00:08:46,880 --> 00:08:51,270 that it had initially, showing these random numbers 162 162 00:08:51,270 --> 00:08:53,050 and showing the dice, 163 163 00:08:53,050 --> 00:08:57,870 and nothing is gonna work now if I click any of this. 164 164 00:08:57,870 --> 00:09:00,300 And so that's because our initial variables here 165 165 00:09:00,300 --> 00:09:05,170 are not set, because this function does not run on its own. 166 166 00:09:05,170 --> 00:09:07,250 And so as you might guess, 167 167 00:09:07,250 --> 00:09:09,653 the solution to that is to simply run it. 168 168 00:09:10,920 --> 00:09:13,670 So as we now load this script, 169 169 00:09:13,670 --> 00:09:17,860 then JavaScript will find this function definition, 170 170 00:09:17,860 --> 00:09:20,520 and then it will find this line of code 171 171 00:09:20,520 --> 00:09:22,490 which runs the function. 172 172 00:09:22,490 --> 00:09:25,070 And so then, by that time, all of this code here 173 173 00:09:25,070 --> 00:09:29,770 will be executed and then our game will work just fine. 174 174 00:09:29,770 --> 00:09:31,120 So let me show that to you. 175 175 00:09:31,980 --> 00:09:34,550 And so now, we are back to looking normal 176 176 00:09:34,550 --> 00:09:36,113 and our game should work. 177 177 00:09:37,240 --> 00:09:39,163 Oh, and actually, nothing is working. 178 178 00:09:40,420 --> 00:09:43,730 So let's take a look at the console. 179 179 00:09:43,730 --> 00:09:47,890 But I can already guess what is happening, okay? 180 180 00:09:47,890 --> 00:09:51,410 And so, yeah, we see here from these errors 181 181 00:09:51,410 --> 00:09:53,660 that these variables are not defined. 182 182 00:09:53,660 --> 00:09:56,990 Playing is not defined, and yeah. 183 183 00:09:56,990 --> 00:09:59,680 But it's not the only variable that is not defined. 184 184 00:09:59,680 --> 00:10:01,603 And so let me show you the error here. 185 185 00:10:02,750 --> 00:10:04,610 So this error comes from something 186 186 00:10:04,610 --> 00:10:08,060 that we already talked about very briefly before, 187 187 00:10:08,060 --> 00:10:10,230 but I didn't really go into yet. 188 188 00:10:10,230 --> 00:10:12,020 That's because in the next section, 189 189 00:10:12,020 --> 00:10:16,820 we will really get deep into something called scoping, okay? 190 190 00:10:16,820 --> 00:10:19,510 But let me just explain to you right now 191 191 00:10:19,510 --> 00:10:22,480 that these variables that I defined here, 192 192 00:10:22,480 --> 00:10:27,210 they're only available inside of this init function, okay? 193 193 00:10:27,210 --> 00:10:31,140 So again, these scores, this current score, 194 194 00:10:31,140 --> 00:10:33,840 this active play, and this playing, 195 195 00:10:33,840 --> 00:10:36,990 all of these variables, I declared them in here, 196 196 00:10:36,990 --> 00:10:38,570 inside of this function. 197 197 00:10:38,570 --> 00:10:42,320 And so because of that, they are not accessible 198 198 00:10:42,320 --> 00:10:44,680 outside of the function. 199 199 00:10:44,680 --> 00:10:48,400 So we say that they are scoped to this init function, 200 200 00:10:48,400 --> 00:10:50,820 because this is where I declared them. 201 201 00:10:50,820 --> 00:10:54,910 And so the solution is to declare these variables 202 202 00:10:54,910 --> 00:10:58,860 outside of any function but without any value. 203 203 00:10:58,860 --> 00:11:00,940 And so it's then in the init function 204 204 00:11:00,940 --> 00:11:05,800 where they will really be declared, okay? 205 205 00:11:05,800 --> 00:11:08,320 And if that doesn't make 100% sense, 206 206 00:11:08,320 --> 00:11:10,870 it will make after the next section 207 207 00:11:10,870 --> 00:11:13,550 where we will really understand deeply 208 208 00:11:13,550 --> 00:11:16,630 how scoping like this works. 209 209 00:11:16,630 --> 00:11:21,150 Anyway, let's now declare these four variables here outside. 210 210 00:11:21,150 --> 00:11:24,210 So I will use let now for all of them. 211 211 00:11:24,210 --> 00:11:25,480 So scores. 212 212 00:11:25,480 --> 00:11:27,730 And then remember, as we already did 213 213 00:11:27,730 --> 00:11:29,290 in the fundamental section, 214 214 00:11:29,290 --> 00:11:31,970 we can define a bunch of empty variables 215 215 00:11:31,970 --> 00:11:33,670 by using commas here. 216 216 00:11:33,670 --> 00:11:36,957 So currentScore, activePlayer, and playing. 217 217 00:11:41,920 --> 00:11:46,660 So now, these variables, they basically live outside here. 218 218 00:11:46,660 --> 00:11:47,820 And so what we do here then 219 219 00:11:47,820 --> 00:11:51,470 is to essentially reassign them a value. 220 220 00:11:51,470 --> 00:11:54,320 So we need to get rid of these lets here, 221 221 00:11:54,320 --> 00:11:58,040 because that would then create new variables here. 222 222 00:11:58,040 --> 00:12:00,240 But again, that's not what we want. 223 223 00:12:00,240 --> 00:12:04,100 We want the variables, basically, to live out here. 224 224 00:12:04,100 --> 00:12:05,670 And then, in the init function, 225 225 00:12:05,670 --> 00:12:08,450 we only reassign their values. 226 226 00:12:08,450 --> 00:12:09,790 So that's very different. 227 227 00:12:09,790 --> 00:12:12,610 So declaring a variable is not the same 228 228 00:12:12,610 --> 00:12:16,140 as assigning them a value, okay? 229 229 00:12:16,140 --> 00:12:19,760 And so right now here, we only assign them a value, 230 230 00:12:19,760 --> 00:12:22,040 but they still live outside here, 231 231 00:12:22,040 --> 00:12:24,250 and that's why they are then accessible 232 232 00:12:24,250 --> 00:12:27,960 in every function everywhere, all right? 233 233 00:12:27,960 --> 00:12:30,290 And now, just to finish, we also need to use 234 234 00:12:30,290 --> 00:12:35,290 this init function, of course, on the reload function. 235 235 00:12:36,500 --> 00:12:38,660 So on this event handler here. 236 236 00:12:38,660 --> 00:12:40,500 And so, just like before, 237 237 00:12:40,500 --> 00:12:45,040 here, we now do not declare this anonymous function, 238 238 00:12:45,040 --> 00:12:49,350 but instead, we pass in the init function, 239 239 00:12:49,350 --> 00:12:51,773 which again is really just a value, 240 240 00:12:52,730 --> 00:12:55,680 and so it's perfectly okay to pass this value 241 241 00:12:55,680 --> 00:12:58,300 into this other function. 242 242 00:12:58,300 --> 00:13:00,780 And just keep in mind that we do not call 243 243 00:13:00,780 --> 00:13:02,220 this function here. 244 244 00:13:02,220 --> 00:13:05,520 It is JavaScript who will call the init function 245 245 00:13:05,520 --> 00:13:08,650 as soon as the user clicks on the new button. 246 246 00:13:08,650 --> 00:13:12,093 And so now, everything will work just fine. 247 247 00:13:14,700 --> 00:13:17,943 So we get five, we get five down here. 248 248 00:13:19,420 --> 00:13:20,680 And let's hold it now. 249 249 00:13:20,680 --> 00:13:22,883 And indeed, we moved to the other side. 250 250 00:13:24,480 --> 00:13:26,460 And with this, we should win the game now. 251 251 00:13:26,460 --> 00:13:27,723 So let's see. 252 252 00:13:29,180 --> 00:13:31,890 Hold and indeed. 253 253 00:13:31,890 --> 00:13:34,740 And now, here comes the test to see if this button works. 254 254 00:13:35,930 --> 00:13:39,930 And indeed, it does, and we can restart the game 255 255 00:13:39,930 --> 00:13:40,933 just like this. 256 256 00:13:41,930 --> 00:13:45,110 This time, let's player two win the game here 257 257 00:13:46,200 --> 00:13:48,100 just to see if it works there as well. 258 258 00:13:50,840 --> 00:13:52,163 So that's enough points. 259 259 00:13:53,370 --> 00:13:56,310 And indeed, it works. 260 260 00:13:56,310 --> 00:13:57,920 But what matters is now that 261 261 00:13:57,920 --> 00:14:00,290 as we click the new game button, 262 262 00:14:00,290 --> 00:14:02,090 everything is back to normal 263 263 00:14:02,090 --> 00:14:06,673 and player one is back to being the current player. 264 264 00:14:07,890 --> 00:14:09,440 All right, great. 265 265 00:14:09,440 --> 00:14:11,973 And with that, we actually finished the game. 266 266 00:14:12,930 --> 00:14:14,150 Almost finished. 267 267 00:14:14,150 --> 00:14:19,150 Let's set the threshold here back to actually 100 points. 268 268 00:14:19,570 --> 00:14:22,120 So that is the limit here 269 269 00:14:22,120 --> 00:14:24,860 on which we want this game to finish. 270 270 00:14:24,860 --> 00:14:26,830 But with that, the game is ready 271 271 00:14:26,830 --> 00:14:29,310 and feature complete and yeah. 272 272 00:14:29,310 --> 00:14:31,020 I hope you're happy with it. 273 273 00:14:31,020 --> 00:14:32,770 So congratulations. 274 274 00:14:32,770 --> 00:14:37,340 Great job for making it to the end of this section. 275 275 00:14:37,340 --> 00:14:39,740 That's already a really great achievement 276 276 00:14:39,740 --> 00:14:41,660 and I hope that you can see 277 277 00:14:41,660 --> 00:14:45,390 that you already learned a lot of new stuff here. 278 278 00:14:45,390 --> 00:14:47,790 And now, you can go ahead and play this game 279 279 00:14:47,790 --> 00:14:50,350 with your friends, and you can tell them 280 280 00:14:50,350 --> 00:14:53,580 that actually, you coded this by yourself. 281 281 00:14:53,580 --> 00:14:55,970 So the code you wrote on your computer 282 282 00:14:55,970 --> 00:14:58,570 is what made this program possible. 283 283 00:14:58,570 --> 00:15:02,370 It's what makes this really come to life, so to say. 284 284 00:15:02,370 --> 00:15:04,450 So how cool is that? 285 285 00:15:04,450 --> 00:15:05,690 And maybe even your friend 286 286 00:15:05,690 --> 00:15:07,880 will then become interested in programming, 287 287 00:15:07,880 --> 00:15:10,180 and you can do this journey together. 288 288 00:15:10,180 --> 00:15:11,640 But anyway, with this, 289 289 00:15:11,640 --> 00:15:16,060 we now really finished the fundamentals part of this course. 290 290 00:15:16,060 --> 00:15:18,290 And once again, I really hope 291 291 00:15:18,290 --> 00:15:20,860 that you can see that you already learned 292 292 00:15:20,860 --> 00:15:25,460 a lot of new contents here in this last couple of hours. 293 293 00:15:25,460 --> 00:15:27,610 So congratulations once again 294 294 00:15:27,610 --> 00:15:29,520 and I'll see you in the next section, 295 295 00:15:29,520 --> 00:15:32,040 which is really important, because there, 296 296 00:15:32,040 --> 00:15:33,660 you're gonna learn how JavaScript 297 297 00:15:33,660 --> 00:15:35,993 actually works behind the scenes. 25556

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.