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+ }