WEBVTT

1
00:00:01.100 --> 00:00:03.630
<v tutor>All right.So let's now implement</v>

2
00:00:03.630 --> 00:00:06.620
the last missing functionality in our game,

3
00:00:06.620 --> 00:00:08.463
which is the high scores.

4
00:00:09.880 --> 00:00:12.550
And to really understand how the high score

5
00:00:12.550 --> 00:00:14.280
should work in this game,

6
00:00:14.280 --> 00:00:17.283
let's take a look at the demo again.

7
00:00:18.420 --> 00:00:20.880
So let's reload the game.

8
00:00:20.880 --> 00:00:21.993
And let's start here.

9
00:00:23.770 --> 00:00:26.983
And so you see that the score starts at 19.

10
00:00:29.610 --> 00:00:33.733
So let's try a couple of times to a low score.

11
00:00:37.440 --> 00:00:40.950
Okay, so correct number two score is 10.

12
00:00:40.950 --> 00:00:44.370
And the high score is now also set to 10.

13
00:00:44.370 --> 00:00:46.330
Because this was my first game,

14
00:00:46.330 --> 00:00:49.810
and so now this is also my new high score.

15
00:00:49.810 --> 00:00:51.423
But now as I play again,

16
00:00:52.390 --> 00:00:55.560
my score is of course, resetted to 20.

17
00:00:55.560 --> 00:00:59.400
But now, if I do a better score, than this 10 here,

18
00:00:59.400 --> 00:01:01.813
then that will become my new high score.

19
00:01:02.760 --> 00:01:07.300
Okay, and that is going to happen as soon as I win the game.

20
00:01:07.300 --> 00:01:08.563
So let's play again.

21
00:01:13.350 --> 00:01:15.893
And to wish for a quick result.

22
00:01:18.320 --> 00:01:22.270
And great, so now my score is 17.

23
00:01:22.270 --> 00:01:25.660
And since that is more than the 10, that I had before,

24
00:01:25.660 --> 00:01:28.060
that is now also my highest score.

25
00:01:28.060 --> 00:01:31.690
Okay. Again because the current score is larger

26
00:01:31.690 --> 00:01:33.540
than the previous high score.

27
00:01:33.540 --> 00:01:35.970
And so that is now the new high score.

28
00:01:35.970 --> 00:01:38.670
Okay. Now, right. And so basically,

29
00:01:38.670 --> 00:01:42.653
what we just store here is now what we need to implement.

30
00:01:43.840 --> 00:01:45.580
First off, we're gonna to need a

31
00:01:45.580 --> 00:01:48.440
variable for the high score.

32
00:01:48.440 --> 00:01:51.960
Right. So just like for the regular score,

33
00:01:51.960 --> 00:01:55.223
we also need to store the high score in a variable.

34
00:01:56.600 --> 00:01:59.110
So let, high score

35
00:02:00.150 --> 00:02:03.010
and let's start this one at zero.

36
00:02:03.010 --> 00:02:05.720
This way, the first score is always gonna be

37
00:02:05.720 --> 00:02:06.780
the highest score,

38
00:02:06.780 --> 00:02:09.803
because it's always going to be greater than zero.

39
00:02:11.570 --> 00:02:15.590
Okay.So where do you think we should check

40
00:02:15.590 --> 00:02:17.270
for the high score?.

41
00:02:17.270 --> 00:02:19.560
So basically, if the current score

42
00:02:19.560 --> 00:02:21.940
is greater than the high score?.

43
00:02:21.940 --> 00:02:25.240
Well, remember that here the high score was set

44
00:02:25.240 --> 00:02:27.780
as soon as the player won the game.

45
00:02:27.780 --> 00:02:29.633
And so where is that in our code?

46
00:02:30.640 --> 00:02:33.223
Well, it's here in this if block.

47
00:02:34.420 --> 00:02:37.233
Okay, and so this is where we will check.

48
00:02:38.130 --> 00:02:39.860
And to check that we will do,

49
00:02:39.860 --> 00:02:41.780
as I explained previously,

50
00:02:41.780 --> 00:02:46.777
is to ask whether the score is greater

51
00:02:48.430 --> 00:02:50.203
than the current high score.

52
00:02:51.290 --> 00:02:53.510
Right. And if it is,

53
00:02:53.510 --> 00:02:57.200
so if our score of the current game is greater

54
00:02:57.200 --> 00:02:59.380
than the highest score that we already had,

55
00:02:59.380 --> 00:03:01.670
well, then the highest score will become

56
00:03:01.670 --> 00:03:03.203
this new current score.

57
00:03:04.050 --> 00:03:08.673
Right. So high score,equal score.

58
00:03:10.450 --> 00:03:11.710
And that's it.

59
00:03:11.710 --> 00:03:13.890
Now all we have to do is to display

60
00:03:13.890 --> 00:03:18.460
that new high score here, in this element.

61
00:03:18.460 --> 00:03:21.990
And actually, of course in our version of the game.

62
00:03:21.990 --> 00:03:23.053
So right here.

63
00:03:24.250 --> 00:03:26.873
So let's check the class name.

64
00:03:27.720 --> 00:03:31.810
And it is called the highest score here.

65
00:03:31.810 --> 00:03:33.773
So just this span,

66
00:03:35.290 --> 00:03:40.290
So, document dot query selector.

67
00:03:42.040 --> 00:03:45.100
And do remember, you should always write all of this here

68
00:03:45.100 --> 00:03:48.720
by hand, to really put it into your brain.

69
00:03:48.720 --> 00:03:53.720
So document dot query selector and dot high score.

70
00:03:55.920 --> 00:03:58.283
And I have a problem writing score, apparently.

71
00:03:59.130 --> 00:04:04.130
So text content, and this will be set to high score.

72
00:04:06.164 --> 00:04:08.430
Okay, that's it.

73
00:04:08.430 --> 00:04:10.890
This is the translation of the logic

74
00:04:10.890 --> 00:04:13.130
that I just explained earlier.

75
00:04:13.130 --> 00:04:15.330
So we need to have a high score variable,

76
00:04:15.330 --> 00:04:17.380
so that we can keep track of it.

77
00:04:17.380 --> 00:04:19.600
And then whenever our game finishes,

78
00:04:19.600 --> 00:04:21.840
we check if the current score is

79
00:04:21.840 --> 00:04:23.540
greater than the high score.

80
00:04:23.540 --> 00:04:26.950
And if it is, that will become the new high score.

81
00:04:26.950 --> 00:04:29.130
And so we set or high score variable

82
00:04:29.130 --> 00:04:31.243
to the current score here.

83
00:04:32.790 --> 00:04:33.653
Okay.

84
00:04:35.020 --> 00:04:38.330
That's just to make sure we load it here.

85
00:04:38.330 --> 00:04:42.070
And then let's play too high,Correct.

86
00:04:44.020 --> 00:04:46.180
Oh now we have a very high score,

87
00:04:46.180 --> 00:04:48.680
because we did it in our second guess.

88
00:04:48.680 --> 00:04:51.040
Let me actually reload this page here.

89
00:04:51.040 --> 00:04:54.500
So I want a really low, high score.

90
00:04:54.500 --> 00:04:55.823
So let's try it again.

91
00:04:57.550 --> 00:05:01.203
So I click a couple of times to decrease the current score.

92
00:05:03.780 --> 00:05:06.930
Oh, and now we have a score of 14.

93
00:05:06.930 --> 00:05:09.660
And you see the new high score is now 14.

94
00:05:09.660 --> 00:05:11.340
Because it used to be zero,

95
00:05:11.340 --> 00:05:13.330
but of course, 14 is greater.

96
00:05:13.330 --> 00:05:16.023
And so 14 becomes our new high score.

97
00:05:17.990 --> 00:05:20.450
Okay, and now as I click again,

98
00:05:20.450 --> 00:05:24.520
everything will reset, except for the high score.

99
00:05:24.520 --> 00:05:27.200
So that was the goal of having this button here.

100
00:05:27.200 --> 00:05:29.070
So that we can play the game again,

101
00:05:29.070 --> 00:05:30.750
but keeping the high score.

102
00:05:30.750 --> 00:05:33.500
Because of course, if we reload the whole page,

103
00:05:33.500 --> 00:05:35.310
then everything will be lost.

104
00:05:35.310 --> 00:05:37.540
So the whole code will then run again,

105
00:05:37.540 --> 00:05:40.070
and everything will reset.

106
00:05:40.070 --> 00:05:43.203
But here, we now keep our high score, right.

107
00:05:44.380 --> 00:05:48.690
So let's play again, and try to get a,

108
00:05:48.690 --> 00:05:50.600
a better score here.

109
00:05:50.600 --> 00:05:51.973
So that's too low,

110
00:05:56.900 --> 00:06:01.180
17, maybe, and, yeah, now we get an even better score,

111
00:06:01.180 --> 00:06:05.143
because of course, 18 is even greater than 17.

112
00:06:06.150 --> 00:06:10.460
One last time now with a lower score,

113
00:06:10.460 --> 00:06:14.960
just to see that it will then not become the new high score.

114
00:06:14.960 --> 00:06:17.760
So we always need to test for all the scenarios

115
00:06:17.760 --> 00:06:19.440
that we implemented in the code.

116
00:06:19.440 --> 00:06:21.863
Just to make sure that everything works.

117
00:06:23.170 --> 00:06:27.280
All 15 again, and so you see that the score was now 12.

118
00:06:27.280 --> 00:06:30.990
But the highest score, of course, remained at 18.

119
00:06:30.990 --> 00:06:34.923
Because this part here is now not true. Right?

120
00:06:36.400 --> 00:06:40.080
Okay, so we implemented that as well.

121
00:06:40.080 --> 00:06:43.990
And now our game is actually functional, it works just fine.

122
00:06:43.990 --> 00:06:46.550
And you can show this now to a friend

123
00:06:46.550 --> 00:06:49.690
and tell them that you built this on your own

124
00:06:49.690 --> 00:06:51.910
with the power of JavaScript.

125
00:06:51.910 --> 00:06:54.070
So how great is that?

126
00:06:54.070 --> 00:06:58.200
So again, congratulations for making it to this point,

127
00:06:58.200 --> 00:07:02.400
and for building really your first game using code.

128
00:07:02.400 --> 00:07:05.100
Now, it's not really a sophisticated game,

129
00:07:05.100 --> 00:07:08.510
but I still think it's a great achievement.

130
00:07:08.510 --> 00:07:09.820
Now in the next video,

131
00:07:09.820 --> 00:07:13.583
we will finish up and clean this code a little bit.

132
00:07:14.567 --> 00:07:19.567
For example, this code here that we have in this scenario,

133
00:07:19.690 --> 00:07:21.200
where the guess is too high,

134
00:07:21.200 --> 00:07:25.080
is almost the same as we have here.

135
00:07:25.080 --> 00:07:27.290
And so we can change that a little bit

136
00:07:27.290 --> 00:07:29.680
to eliminate some of this duplicate codes.

137
00:07:29.680 --> 00:07:33.130
There's also some other duplicate code

138
00:07:33.130 --> 00:07:35.090
that we can get rid of.

139
00:07:35.090 --> 00:07:39.000
And so yeah, let's do that in the next lecture,

140
00:07:39.000 --> 00:07:42.020
because it's also important to really finish up

141
00:07:42.020 --> 00:07:45.023
all applications and not just make them work.

