Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,150 --> 00:00:04,110
Onwards, the part two in this lesson you're going to get, these are two, three numbers and you're
2
00:00:04,110 --> 00:00:07,380
going to make a function that checks if the user won or lost.
3
00:00:10,040 --> 00:00:16,520
We're going to start using the familiar scanner to get user input, so by virtue of just writing a scanner
4
00:00:17,030 --> 00:00:21,950
and choosing the first option, it's going to auto import scanner and allow me to use it.
5
00:00:22,700 --> 00:00:29,720
Now, I'm going to set a variable scan equal to a new instance of scanner that receives input from the
6
00:00:29,720 --> 00:00:31,430
system system in.
7
00:00:34,230 --> 00:00:38,160
And before we forget, let's add scandal close to the end of the code.
8
00:00:43,800 --> 00:00:47,820
The user needs to enter three numbers to start the game off, so I'm going to start by removing the
9
00:00:47,820 --> 00:00:53,970
last three print line statements and before rolling the dice and ask the user to enter three whole numbers
10
00:00:53,970 --> 00:00:59,250
between one and six print, enter three numbers between one and six.
11
00:01:07,770 --> 00:01:13,800
OK, now we're going to add three, scan the next integer methods to pick up three numbers.
12
00:01:28,260 --> 00:01:29,790
Think we're ready to run our code?
13
00:01:42,110 --> 00:01:48,620
Enter three numbers for two and three, and we're looking good, and if you remember from our previous
14
00:01:48,620 --> 00:01:52,370
discussion, it doesn't matter how much space you put in between the three numbers.
15
00:01:55,070 --> 00:02:01,370
Scandal next and skips the delimiter, it skips the white space and it reads the next input, even if
16
00:02:01,370 --> 00:02:07,400
you put an entire line of space between the three members Scandi next and skips all the white space
17
00:02:07,580 --> 00:02:09,080
and reads the next input.
18
00:02:09,919 --> 00:02:13,670
All of these methods skip the delimiter and read the next input.
19
00:02:13,670 --> 00:02:16,580
Rescanned Eskandar next line just reads the entire line.
20
00:02:17,570 --> 00:02:19,660
In any case, this table is inside your cheek.
21
00:02:19,670 --> 00:02:20,150
It's.
22
00:02:23,110 --> 00:02:28,420
Now, what if the user enters a no outside the range of one to six, if either of the three numbers
23
00:02:28,420 --> 00:02:33,700
then or is not between one and six, we need to exit the game and hope this made you think of the or
24
00:02:33,700 --> 00:02:37,960
operator such that we're going to check if the first number is less than one.
25
00:02:39,740 --> 00:02:42,770
Or if the second number is less than one.
26
00:02:44,510 --> 00:02:47,240
Or if the third number is less than one.
27
00:02:51,270 --> 00:02:57,750
If either of these numbers is less than one, we're going to print numbers cannot be less than one.
28
00:03:01,900 --> 00:03:03,190
Shutting the game down.
29
00:03:08,920 --> 00:03:12,430
And we're going to use system that exit zero to shut the application down.
30
00:03:19,680 --> 00:03:24,930
And now, if none of the numbers are less than the minimum value, we need to check if either one of
31
00:03:24,930 --> 00:03:26,910
them exceeds the maximum value.
32
00:03:28,830 --> 00:03:34,410
So we're going to check if the first number is bigger than six or if the second number is bigger than
33
00:03:34,410 --> 00:03:34,950
six.
34
00:03:37,560 --> 00:03:40,230
Or if the third number is bigger than six.
35
00:03:45,980 --> 00:03:47,030
Then we're going to print.
36
00:03:50,530 --> 00:03:54,370
Numbers cannot be higher than six, shutting the game down.
37
00:04:00,110 --> 00:04:04,250
And once again, we're going to use system that exit zero to shut the application down.
38
00:04:08,380 --> 00:04:10,240
OK, we're ready to run our code.
39
00:04:18,420 --> 00:04:24,450
Let's enter a number outside the range, let's say negative two, and we'll put three and five.
40
00:04:25,620 --> 00:04:29,890
Numbers cannot be less than one shunning the game down, the user entered a bad number.
41
00:04:29,950 --> 00:04:31,470
So we shut the program down.
42
00:04:32,070 --> 00:04:35,880
The first condition is designed to check if any of the numbers are less than one.
43
00:04:36,300 --> 00:04:37,870
The first number is less than one.
44
00:04:37,980 --> 00:04:42,000
So the entire condition is true and that runs the system, that exit code.
45
00:04:42,870 --> 00:04:45,210
What if the user enters a number above six?
46
00:04:45,700 --> 00:04:46,620
Let's try it out.
47
00:04:52,910 --> 00:04:55,310
I'm going to put six, three and seven.
48
00:04:58,990 --> 00:05:04,860
And numbers cannot be higher than six, shutting the game down, the last number is outside the range,
49
00:05:04,870 --> 00:05:06,100
so the program shuts down.
50
00:05:06,700 --> 00:05:11,820
Our trio of numbers is going to get past the first condition because none of them are less than one.
51
00:05:12,430 --> 00:05:17,620
But the second condition is designed to check if any of the numbers are higher than six, since the
52
00:05:17,620 --> 00:05:19,360
third number is higher than six.
53
00:05:19,570 --> 00:05:24,640
The condition is true and a system that exit zero runs shutting the application down.
54
00:05:25,830 --> 00:05:30,300
Now, if the user follows the rules, none of the statements should run and we should get to this part
55
00:05:30,300 --> 00:05:30,840
of the code.
56
00:05:31,320 --> 00:05:34,730
In that case, you can add all the numbers and add all the dice rolls.
57
00:05:35,250 --> 00:05:40,650
So I'm going to say into some of numbers is equal to all three numbers that you chose.
58
00:05:43,660 --> 00:05:47,110
And we'll say into some of roles, some of Dyce roles.
59
00:05:49,310 --> 00:05:52,340
Is going to equal all of the dice rolls.
60
00:05:56,740 --> 00:05:57,700
Then I'm going to print.
61
00:05:59,290 --> 00:06:00,460
The day some.
62
00:06:05,150 --> 00:06:08,480
Is equal to the sum of days, rose.
63
00:06:10,760 --> 00:06:12,050
And the number some.
64
00:06:18,730 --> 00:06:21,820
Is equal to the sum of numbers that you chose.
65
00:06:27,600 --> 00:06:30,260
OK, we can test our code once more.
66
00:06:33,930 --> 00:06:40,080
I'm going to make sure to follow the rules this time and enter three numbers between one and six days,
67
00:06:40,080 --> 00:06:42,450
some 14, no sum equals 10.
68
00:06:42,480 --> 00:06:44,070
All right, we're doing well so far.
69
00:06:44,820 --> 00:06:50,460
And since none of the numbers are smaller than one or bigger than six, Java skips the statements.
70
00:06:50,460 --> 00:06:53,440
Then the code adds all the numbers and stories.
71
00:06:53,470 --> 00:06:59,100
The result in some of numbers, the code adds every dice roll and it stores the result in some of dice
72
00:06:59,100 --> 00:07:02,640
rolls and our print statement runs cool.
73
00:07:05,280 --> 00:07:08,430
OK, so now we're going to wrap up the game by checking if the user won.
74
00:07:11,000 --> 00:07:15,890
I just want to remind you of what the rules are, the these are wins if the sum of dice rolls is smaller
75
00:07:15,890 --> 00:07:21,500
than the sum of numbers that they choose and with an emphasis on the end, the difference between the
76
00:07:21,500 --> 00:07:22,980
two numbers is less than three.
77
00:07:23,660 --> 00:07:30,530
So if the user chooses four, three and five and happens to roll three, four, and for the user would
78
00:07:30,530 --> 00:07:34,390
win because the sum of dice rolls is smaller than the sum of numbers.
79
00:07:35,030 --> 00:07:39,080
And in this case, the difference between the two numbers is less than three.
80
00:07:40,180 --> 00:07:42,610
So I think we're ready to define this task in a function.
81
00:07:44,460 --> 00:07:45,480
It's going to be public.
82
00:07:48,150 --> 00:07:54,270
I'm going to make it void for now, I'm going to address that in a second and I'll name the function,
83
00:07:54,270 --> 00:08:00,300
check one, because it's going to check if the user one and this function is going to take two parameters,
84
00:08:00,300 --> 00:08:02,460
it's going to take the sum of dice rolls.
85
00:08:08,770 --> 00:08:10,420
And the sum of numbers.
86
00:08:13,730 --> 00:08:20,750
And according to the rules, the user wins if the numbers they choose are bigger than the dice rolls.
87
00:08:20,780 --> 00:08:23,720
That is, if no some is bigger than dice some.
88
00:08:31,290 --> 00:08:37,289
And assuming this first comparison is true, such that the numbers you chose are indeed bigger than
89
00:08:37,289 --> 00:08:38,409
the dice rolled.
90
00:08:38,730 --> 00:08:42,960
We need to make sure that the difference between the two sums, some of numbers.
91
00:08:45,580 --> 00:08:47,260
Minus some of dice rolls.
92
00:08:48,810 --> 00:08:49,980
Is less than three.
93
00:08:54,690 --> 00:08:57,810
If both comparisons are true, we're going to print.
94
00:09:00,200 --> 00:09:01,130
Congrats.
95
00:09:04,780 --> 00:09:05,560
You win.
96
00:09:08,630 --> 00:09:09,470
Otherwise.
97
00:09:14,850 --> 00:09:16,680
Sorry, Youlus.
98
00:09:25,120 --> 00:09:29,080
The very last step is to call the function and pass the twosomes as arguments, so we're going to check
99
00:09:29,080 --> 00:09:35,500
if the user one check when by passing in the sum of dice rolls and the sum of numbers that they chose.
100
00:09:37,900 --> 00:09:39,670
I think we're ready to run our code.
101
00:09:43,630 --> 00:09:51,460
I'm going to enter three numbers and dang it, I lost the numbers, I chose add up to 12, but the dice
102
00:09:51,460 --> 00:09:53,730
rolls, whatever they are, they added up to 13.
103
00:09:54,370 --> 00:09:58,690
So the first comparison was false, meaning that the entire condition became false.
104
00:09:58,930 --> 00:10:00,640
And the Elkader runs.
105
00:10:03,480 --> 00:10:06,010
Now, here's another scenario that could have happened as well.
106
00:10:06,570 --> 00:10:11,790
We could have called the check win function and let's assume it passes in a December four and then no,
107
00:10:11,790 --> 00:10:12,660
some of 12.
108
00:10:13,380 --> 00:10:15,750
In this case, we have a higher number, some.
109
00:10:15,930 --> 00:10:19,920
But the if statement is false because the difference between the numbers is higher than three.
110
00:10:20,460 --> 00:10:23,820
So once again, the statement would run and I would lose the game.
111
00:10:24,660 --> 00:10:27,460
But so far I'm really happy with how this game is turning out.
112
00:10:27,700 --> 00:10:28,380
Try your luck.
113
00:10:28,380 --> 00:10:29,700
You might win a few times.
114
00:10:32,840 --> 00:10:35,580
Now, I know it might seem like we're done, but we're not actually done yet.
115
00:10:35,600 --> 00:10:41,480
There's one thing that's really bothering me, Chuck, when it's void, when it shouldn't be a function,
116
00:10:41,480 --> 00:10:44,600
should only perform its intended task and nothing more.
117
00:10:45,220 --> 00:10:48,700
Chuck, when should only check if the user won or not?
118
00:10:49,190 --> 00:10:52,780
It should not bear the responsibility of printing messages to the user.
119
00:10:53,360 --> 00:10:59,000
In that case, I should just rename the function to check when and print random messages.
120
00:11:02,130 --> 00:11:04,030
But we're definitely not doing that.
121
00:11:04,470 --> 00:11:08,590
You might be saying, hey, Erin, it's not calculating anything, so it should be void.
122
00:11:09,090 --> 00:11:09,930
Be careful.
123
00:11:10,050 --> 00:11:12,420
A calculation doesn't have to involve numbers.
124
00:11:12,720 --> 00:11:17,160
I like to think of a calculation as it uses some logic to come up with a value.
125
00:11:17,880 --> 00:11:20,720
This condition, in some ways, it's a calculation.
126
00:11:21,210 --> 00:11:25,410
It uses the logical operator and to perform two comparisons.
127
00:11:25,740 --> 00:11:28,330
And the result is a boolean, true or false.
128
00:11:28,740 --> 00:11:34,260
So it makes sense to just return the boolean that it computed because the Boolean is a result of your
129
00:11:34,260 --> 00:11:35,030
calculation.
130
00:11:35,700 --> 00:11:38,520
So I'm going to change the return type of check into to Boolean.
131
00:11:41,140 --> 00:11:43,810
And then I'm going to return the result of this condition.
132
00:11:55,870 --> 00:12:01,390
In this case, Chuck Wen is performing its intended task and nothing more, it's returning a boolean
133
00:12:01,390 --> 00:12:08,370
that indicates whether the user won or lost and now inside mean the function call is going to hold this
134
00:12:08,380 --> 00:12:09,130
return value.
135
00:12:09,160 --> 00:12:14,980
So we need to make an if statement that checks if that return value is true, if the result from calling
136
00:12:14,980 --> 00:12:15,670
check wen.
137
00:12:18,180 --> 00:12:20,130
What these arguments end up being true.
138
00:12:22,750 --> 00:12:23,680
We're going to print.
139
00:12:27,080 --> 00:12:28,730
Congrats, you win.
140
00:12:37,630 --> 00:12:39,280
Sorry, Youlus.
141
00:12:45,840 --> 00:12:51,810
And with this final line of code, I like to proudly announce that we're all done, let's run our code.
142
00:12:58,190 --> 00:13:01,280
And there you go, I won and this is also much better.
143
00:13:01,490 --> 00:13:06,920
I like that we get the same output and that Szechwan is only performing its intended task this time.
144
00:13:06,920 --> 00:13:09,260
The arguments being passed in are 12 and 13.
145
00:13:09,740 --> 00:13:14,390
Both comparisons are true because my number is bigger than the sum of dice rolls and the difference
146
00:13:14,390 --> 00:13:17,660
is smaller than three, which means the entire condition is true.
147
00:13:17,840 --> 00:13:20,690
And that boolean result is a return to the function.
148
00:13:20,690 --> 00:13:25,490
Call and send out the statement which holds the function call is going to be true.
149
00:13:25,910 --> 00:13:28,070
The code inside runs and I win the game.
150
00:13:31,190 --> 00:13:33,680
I'm going to try and run the code now so that I can lose.
151
00:13:35,660 --> 00:13:36,830
I guess I'm on a roll.
152
00:13:36,920 --> 00:13:37,690
Let's try again.
153
00:13:42,250 --> 00:13:48,160
I guess today's my lucky day, I was going to try to rerun this and finally I lose.
154
00:13:49,680 --> 00:13:55,560
This time around, Chetwyn receives a copy of these values as parameters, it performs the two comparisons,
155
00:13:56,070 --> 00:14:00,720
and the resulting bullion from this condition is going to be false because although my numbers sum is
156
00:14:00,720 --> 00:14:04,070
greater than the Decem, the difference is bigger than three.
157
00:14:04,380 --> 00:14:10,080
So it returns false to the function call, which means the statement which holds my function call is
158
00:14:10,080 --> 00:14:15,000
going to be false and the false code is going to run, in which case I lose once again.
159
00:14:15,530 --> 00:14:16,070
All right.
160
00:14:16,080 --> 00:14:18,490
It seems that we built a pretty robust game.
161
00:14:21,490 --> 00:14:24,010
Congratulations, you built your first Java game.
162
00:14:25,820 --> 00:14:31,400
The first part of this code prompts the user to enter three values, the second part of the code generates
163
00:14:31,400 --> 00:14:32,860
three random values.
164
00:14:33,320 --> 00:14:39,350
Then you took the sum of each and finally check one receives each sum and returns the result in the
165
00:14:39,350 --> 00:14:40,450
form of a boolean.
166
00:14:40,820 --> 00:14:45,980
And we use that boolean to determine if the user won or lost, that's all.
167
00:14:46,040 --> 00:14:50,360
Not only did you learn about functions, but we gave them some pretty complex functionality.
168
00:14:51,240 --> 00:14:56,190
The next challenge is coming up, so I hope you're ready if you ever have any questions, just ask me
169
00:14:56,190 --> 00:14:56,790
on this court.
170
00:14:56,790 --> 00:14:57,570
I'm always there.
16888
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.