Bij het bestuderen van Java, nam ik een stuk code door voor een spel met de computer. Dit code laat 3 bots een getal raden, totdat een bot op juiste getal komt. Dan krijg je de melding dat de juiste getal tussen 1 en 10 geraden is. De code werkt als volgt:
Dit levert de volgende output op:
1. Regel 21: "while(true)" {. k vraag mij af waarom er 'true' staat? Er wordt namelijk niet aan een definitie voldaan waardoor het 'true' zou zijn, en de code dus niet zou moeten draaien?
2. Regel 11: int guessp1 = 0; > Er wordt een 0 toegewezen aan guessp1/2/3. Hoe kan dit getal dan veranderen met guessp1? Dat zie ik in de code niet terug.
Iemand die mij uit de verwarring kan helpen?
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| public class GuessGame { Player p1; Player p2; Player p3; [b](3 player objecten dus)[/b] public void startGame() { p1 = new Player(); p2 = new Player(); p3 = new Player();[b](Er worden 3 player objecten gecreërd)[/b] int guessp1 = 0; int guessp2 = 0; int guessp3 = 0; [b](de drie variabelen voor de drie spelers)[/b] boolean p1isRight = false; boolean p2isRight = false; boolean p3isRight = false; int targetNumber = (int) (Math.random() * 10); System.out.println("I'm thinking of a number between 0 and 9...";); while(true) {[b](Ik vraag mij af waarom er 'true' staat? Er wordt namelijk niet aan een definitie voldaan, waardoor het 'true' is, en de code dus niet zou moeten draaien)[/b] System.out.println("Number to guess is " + targetNumber); p1.guess(); p2.guess(); p3.guess(); guessp1 = p1.number; System.out.println("Player one guessed " + guessp1); guessp2 = p2.number; System.out.println("Player two guessed " + guessp2); guessp3 = p3.number; System.out.println("Player three guessed " + guessp3); if (guessp1 == targetNumber) { p1isRight = true; } if (guessp2 == targetNumber) { p2isRight = true; } if (guessp3 == targetNumber) { p3isRight = true; } if (p1isRight || p2isRight || p3isRight) { System.out.println("We have a winner!"); System.out.println("Player one got it right? " + p1isRight); System.out.println("Player two got it right? " + p2isRight); System.out.println("Player three got it right? " + p3isRight); System.out.println("Game is over."); break; [b](spel is over, daarom wordt het hier afgebroken)[/b] } else { [b](spel gaat door, totdat iemand juiste getal geraden heeft)[/b] System.out.println("Players will have to try again."); } // end if/else } // end loop } // end method } // end class |
Dit levert de volgende output op:
Voor overzichtelijkheid nogmaals mijn vragen:%java GameLauncher
I'm thinking of a number between 0 and 9...
Number to guess is 7
I'm guessing 1
I'm guessing 9
I'm guessing 9
Player one guessed 1
Player two guessed 9
Player three guessed 9
Players will have to try again.
Number to guess is 7
I'm guessing 7
I'm guessing 5
I'm guessing 0
Player one guessed 7
Player two guessed 5
Player three guessed 0
We have a winner!
Player one got it right? true
Player two got it right? false
Player three got it right? false
Game is over.
1. Regel 21: "while(true)" {. k vraag mij af waarom er 'true' staat? Er wordt namelijk niet aan een definitie voldaan waardoor het 'true' zou zijn, en de code dus niet zou moeten draaien?
2. Regel 11: int guessp1 = 0; > Er wordt een 0 toegewezen aan guessp1/2/3. Hoe kan dit getal dan veranderen met guessp1? Dat zie ik in de code niet terug.
Iemand die mij uit de verwarring kan helpen?
[ Voor 3% gewijzigd door BtM909 op 19-07-2013 00:07 ]