1
+ /*
2
+ (Game: scissor, rock, paper) Programming Exercise 3.17 gives a program that
3
+ plays the scissor-rock-paper game. Revise the program to let the user continuously
4
+ play until either the user or the computer wins more than two times than its
5
+ opponent.
6
+ */
7
+ import java .util .Scanner ;
8
+
9
+ public class Exercise_05_34 {
10
+ public static void main (String []args ) {
11
+ Scanner input =new Scanner (System .in );
12
+
13
+ int computerWins ,// Counts he number of computer Wins
14
+ userWins ;// Counts the number of users Wins
15
+ computerWins =userWins =0 ;// Set acummulators to 0
16
+
17
+ do {
18
+ // Generate a random integer 0, 1, or 2
19
+ int computer = (int )(Math .random () *3 );
20
+
21
+ // Prompt the user to enter a number 0, 1, or 2
22
+ System .out .print ("scissor (0), rock(1), paper (2): " );
23
+ int user =input .nextInt ();
24
+
25
+ System .out .print ("The computer is " );
26
+ switch (computer )
27
+ {
28
+ case 0 :System .out .print ("scissor." );break ;
29
+ case 1 :System .out .print ("rock." );break ;
30
+ case 2 :System .out .print ("paper." );break ;
31
+ }
32
+
33
+ System .out .print (" You are " );
34
+ switch (user )
35
+ {
36
+ case 0 :System .out .print ("scissor" );break ;
37
+ case 1 :System .out .print ("rock" );break ;
38
+ case 2 :System .out .print ("paper" );break ;
39
+ default :System .out .println (
40
+ "disqualified for entering an invalid number." );
41
+ System .exit (1 );
42
+ }
43
+
44
+ // Display result
45
+ if (computer ==user )
46
+ System .out .println (" too, It is a draw" );
47
+ else
48
+ {
49
+ boolean win = (user ==0 &&computer ==2 ) ||
50
+ (user ==1 &&computer ==0 ) ||
51
+ (user ==2 &&computer ==1 );
52
+ if (win )
53
+ {
54
+ System .out .println (". You won" );
55
+ computerWins ++;// Increment computer wins
56
+ }
57
+ else
58
+ {
59
+ System .out .println (". You lose" );
60
+ userWins ++;// Increment user wins
61
+ }
62
+
63
+ }
64
+ // Print Score
65
+ System .out .println ("Computer wins: " +computerWins +
66
+ "\n User wins: " +userWins );
67
+
68
+ // If either the user or the computer wins
69
+ // are less than or equal to 2 continue play.
70
+ }while (Math .abs (computerWins -userWins ) <=2 );
71
+ }
72
+ }