Yeah....again, let him figure it out. He probably just wants to ensure the entered character equals p, r, or s. I assume it's for an assignment, so trying to only hint at a solution. On 11/24/10, black ares <matematicianu2003@xxxxxxxxxxx> wrote: > more over, he says there, that the soft exit if the user presses any key > other than r, p, s. > But with that while, the software does not exit if you press a for example. > > ----- Original Message ----- > From: "Dave" <davidct1209@xxxxxxxxx> > To: <programmingblind@xxxxxxxxxxxxx> > Sent: Thursday, November 25, 2010 6:12 AM > Subject: Re: Java problem > > >> Yeah...trying to let him figure it out. CompareTo for strings does a >> lexical comparison...so "a" < "b" < ... "z". >> >> In the condition as is, the loop continues if the character entered >> (or any string for that matter) is < "s" (not including "s"). >> >> On 11/24/10, black ares <matematicianu2003@xxxxxxxxxxx> wrote: >>> Even knowing what compareto is doing, >>> it is not the case. >>> because in this code, has I understand, the while must loop while the >>> user >>> press R, P or S. >>> The compare method returns 3 values >>> -1, 0, 1. >>> And comparing to see if compare to is <0 is not the case here. >>> I guess that in the while you wana see if the user choice is equal tor, >>> or >>> p, or s! >>> Isn't it? >>> >>> ----- Original Message ----- >>> From: "Gilbert Neiva" <gneiva@xxxxxxx> >>> To: <programmingblind@xxxxxxxxxxxxx> >>> Sent: Wednesday, November 24, 2010 10:36 PM >>> Subject: Re: Java problem >>> >>> >>>> I'm still having problems with my Rock Paper Scissors application. I >>>> changed the program code in the driver class as follows. >>>> >>>> import java.util.Scanner; >>>> >>>> public class RockPaperScissorsDriver >>>> { >>>> public static void main(String[] args) >>>> { >>>> RockPaperScissors userGame; // Holds user's enumeration value >>>> RockPaperScissors compGame; // Holds computer's enumeration value >>>> final String TITLE = "Rock, Paper, Scissors"; // Game chant >>>> final String PAPERCOVERS = "Paper covers rock:"; >>>> final String SCISSORSCUTS = "Scissors cuts paper:"; >>>> final String ROCKSMASH = "Rock smashes scissors:"; >>>> final String IWIN = "I win!"; >>>> final String YOUWIN = "You win!"; >>>> String userChoice; // Holds user's choice >>>> int compChoice; // Holds computer's choice >>>> int wins = 0; // Holds user's number of wins >>>> int ties = 0; // Holds number of ties between user and computer >>>> Scanner inData = new Scanner(System.in); // Scanner object >>>> >>>> do >>>> { >>>> // Print statement asks user to enter choice >>>> System.out.println("Enter r for rock, p for paper, or s for scissors " + >>>> "or any other key to quit:"); >>>> userChoice = inData.nextLine(); // Get userChoice >>>> userChoice = userChoice.toLowerCase(); // Switch userChoice to lowercase >>>> >>>> // Computer makes choice >>>> compChoice = (int)(3.0 * Math.random()) + 1; >>>> >>>> // If user chooses r and computer chooses 2 >>>> if ((userChoice.equals("r")) && (compChoice == 2)) >>>> { >>>> userGame = RockPaperScissors.rock; // Change value of userGame >>>> compGame = RockPaperScissors.paper; // Change value of compGame >>>> >>>> // Print statement tells user his or her choice >>>> System.out.println("You chose " + userGame + "."); >>>> >>>> // Print statement tells user computer's choice >>>> System.out.println("I chose " + compGame + "."); >>>> System.out.println(TITLE); // Print game chant >>>> System.out.println(PAPERCOVERS); // Print Paper covers rock >>>> >>>> // Print statement tells user computer wins >>>> System.out.println(IWIN); >>>> } >>>> >>>> // If user chooses p and computer chooses 3 >>>> else if ((userChoice.equals("p")) && (compChoice == 3)) >>>> { >>>> userGame = RockPaperScissors.paper; // Change value of userGame >>>> compGame = RockPaperScissors.scissors; // Change value of compGame >>>> >>>> // Print statement tells user his or her choice >>>> System.out.println("You chose " + userGame + "."); >>>> >>>> // Print statement tells user computer's choice >>>> System.out.println("I chose " + compGame + "."); >>>> System.out.println(TITLE); // Print game chant >>>> System.out.println(SCISSORSCUTS); // Print scissors cuts paper >>>> >>>> // Print statement tells user computer wins >>>> System.out.println(IWIN); >>>> } >>>> >>>> // If user chooses s and computer chooses 1 >>>> else if ((userChoice.equals("s")) && (compChoice == 1)) >>>> { >>>> userGame = RockPaperScissors.scissors; // Change value of userGame >>>> compGame = RockPaperScissors.rock; // Change value of compGame >>>> >>>> // Print statement tells user his or her choice >>>> System.out.println("You chose " + userGame + "."); >>>> >>>> // Print statement tells user computer's choice >>>> System.out.println("I chose " + compGame + "."); >>>> System.out.println(TITLE); // Print game chant >>>> System.out.println(ROCKSMASH); // Print rock smashes scissors >>>> >>>> // Print statement tells user computer wins >>>> System.out.println(IWIN); >>>> } >>>> >>>> // If computer chooses 1 and user chooses p >>>> else if ((compChoice == 1) && (userChoice.equals("p"))) >>>> { >>>> compGame = RockPaperScissors.rock; // Change value of compGame >>>> userGame = RockPaperScissors.paper; // Change value of userGame >>>> >>>> // Print statement tells user his or her choice >>>> System.out.println("You chose " + userGame + "."); >>>> >>>> // Print statement tells user computer's choice >>>> System.out.println("I chose " + compGame + "."); >>>> System.out.println(TITLE); // Print game chant >>>> System.out.println(PAPERCOVERS); // Print paper covers rock >>>> >>>> // Print statement tells user he or she wins >>>> System.out.println(YOUWIN); >>>> wins++; // Increment wins by 1 >>>> } >>>> >>>> // If computer chooses 2 and user chooses s >>>> else if ((compChoice == 2) && (userChoice.equals("s"))) >>>> { >>>> compGame = RockPaperScissors.paper; // Change value of compGame >>>> userGame = RockPaperScissors.scissors; // Change value of userGame >>>> >>>> // Print statement tells user his or her choice >>>> System.out.println("You chose " + userGame + "."); >>>> >>>> // Print statement tells user computer's choice >>>> System.out.println("I chose " + compGame + "."); >>>> System.out.println(TITLE); // Print game chant >>>> System.out.println(SCISSORSCUTS); // Print scissors cuts paper >>>> >>>> // Print statement tells user he or she wins >>>> System.out.println(YOUWIN); >>>> wins++; // Increment wins by 1 >>>> } >>>> >>>> // Ifcomputer chooses 3 and user chooses r >>>> else if ((compChoice == 3) && (userChoice.equals("r"))) >>>> { >>>> userGame = RockPaperScissors.rock; // Change value of userGame >>>> compGame = RockPaperScissors.scissors; // Change value of compGame >>>> >>>> //Print statement tells user his or her choice >>>> System.out.println("You chose " + userGame + "."); >>>> >>>> //Print statement tells user computer's choice >>>> System.out.println("I chose " + compGame + "."); >>>> System.out.println(TITLE); // Print game chant >>>> System.out.println(ROCKSMASH); // Print rock smashes scissors >>>> >>>> // Print statement tells user he or she wins >>>> System.out.println(YOUWIN); >>>> wins++; // Increment wins by 1 >>>> } >>>> >>>> else if (userChoice.compareTo("r") > 0 or userChoice.compareTo("p") > 0 >>>> or >>>> >>>> userChoice.compareTo("s") > 0) >>>> { >>>> //Print statement ending game >>>> System.out.println("Thanks for playing."); >>>> } >>>> else // Otherwise >>>> { >>>> // Print statement tells user is tied with computer >>>> System.out.println("We are tied!"); >>>> ties++; // Increment ties by 1 >>>> } >>>> } >>>> >>>> // Until user chooses r, p, or s >>>> while (userChoice.compareTo("r") > 0 or userChoice.compareTo("p") > 0 or >>>> userChoice.compareTo("s") > 0); >>>> >>>> // Print statement tells user number of wins and number of ties >>>> System.out.println("You have " + wins + " wins and " + ties + " ties."); >>>> } >>>> } // End of class >>>> >>>> The enum class is still the same. >>>> >>>> // Enumeration RockPaperScissors contains fields for the game rock, >>>> // paper, scissors. >>>> public enum RockPaperScissors { rock, paper, scissors } >>>> >>>> When I try to compile the application, I get the following error. >>>> >>>> C:\Users\user\Desktop\COMP268\Practice\RockPaperScissors\src>javac >>>> *.java >>>> RockPaperScissorsDriver.java:143: ')' expected >>>> else if (userChoice.compareTo("r") > 0 or userChoice.compareTo("p") > 0 >>>> or userChoice.compareTo("s") > 0) >>>> ^ >>>> RockPaperScissorsDriver.java:154: illegal start of expression >>>> } >>>> ^ >>>> RockPaperScissorsDriver.java:157: ')' expected >>>> while (userChoice.compareTo("r") > 0 or userChoice.compareTo("p") > 0 or >>>> userCho >>>> ice.compareTo("s") > 0); >>>> ^ >>>> 3 errors >>>> >>>> C:\Users\user\Desktop\COMP268\Practice\RockPaperScissors\src> graphic >>>> 827 >>>> >>>> I am totally stumped on what to do. Can someone help me out with this >>>> problem? Thanks. >>>> >>>> Gilbert Neiva >>>> >>>> ----- Original Message ----- >>>> From: "Dave" <davidct1209@xxxxxxxxx> >>>> To: <programmingblind@xxxxxxxxxxxxx> >>>> Sent: Wednesday, November 24, 2010 10:42 AM >>>> Subject: Re: Java problem >>>> >>>> >>>>> First issue is check the way you're comparing string; are you >>>>> comparing string object references or performing a case-sensitive >>>>> character match/case-insensitive match? Read up on it if that didn't >>>>> make sense (either below or in any intro java book under any >>>>> discussion of strings). >>>>> >>>>> http://leepoint.net/notes-java/data/strings/12stringcomparison.html >>>>> >>>>> On 11/24/10, Gilbert Neiva <gneiva@xxxxxxx> wrote: >>>>>> I am recreating the game Rock Paper Scissors, but there is a problem. >>>>>> The >>>>>> game doesn't run properly. I get an infinate loop, and the game >>>>>> doesn't >>>>>> tell >>>>>> me my or it's choise. Here is what happens when I run it. >>>>>> >>>>>> Enter r for rock, p for paper, or s for scissors or any other key to >>>>>> quit: >>>>>> >>>>>> r >>>>>> >>>>>> Thanks for playing. >>>>>> >>>>>> We are tied! >>>>>> >>>>>> Enter r for rock, p for paper, or s for scissors or any other key to >>>>>> quit: >>>>>> >>>>>> s >>>>>> >>>>>> Thanks for playing. >>>>>> >>>>>> We are tied! >>>>>> >>>>>> Enter r for rock, p for paper, or s for scissors or any other key to >>>>>> quit: >>>>>> >>>>>> p >>>>>> >>>>>> Thanks for playing. >>>>>> >>>>>> We are tied! >>>>>> >>>>>> Enter r for rock, p for paper, or s for scissors or any other key to >>>>>> quit: >>>>>> >>>>>> P >>>>>> >>>>>> Thanks for playing. >>>>>> >>>>>> We are tied! >>>>>> >>>>>> Enter r for rock, p for paper, or s for scissors or any other key to >>>>>> quit: >>>>>> >>>>>> S >>>>>> >>>>>> Thanks for playing. >>>>>> >>>>>> We are tied! >>>>>> >>>>>> Enter r for rock, p for paper, or s for scissors or any other key to >>>>>> quit: >>>>>> >>>>>> q >>>>>> >>>>>> Thanks for playing. >>>>>> >>>>>> We are tied! >>>>>> >>>>>> Enter r for rock, p for paper, or s for scissors or any other key to >>>>>> quit: >>>>>> >>>>>> >>>>>> >>>>>> I have two class files, one with an enum class and the other is the >>>>>> driver >>>>>> class. Here is the code for the enum class. >>>>>> >>>>>> >>>>>> >>>>>> // Enumeration RockPaperScissors contains fields for the game rock, >>>>>> >>>>>> // paper, scissors. >>>>>> >>>>>> public enum RockPaperScissors { rock, paper, scissors } >>>>>> >>>>>> >>>>>> >>>>>> Here is the source code for the driver class. >>>>>> >>>>>> >>>>>> >>>>>> import java.util.Scanner; >>>>>> >>>>>> public class RockPaperScissorsDriver >>>>>> >>>>>> { >>>>>> >>>>>> public static void main(String[] args) >>>>>> >>>>>> { >>>>>> >>>>>> RockPaperScissors rockPaperScissors; // Holds enumeration value >>>>>> >>>>>> final String TITLE = "Rock, Paper, Scissors"; // Game chant >>>>>> >>>>>> final String PAPERCOVERS = "Paper covers rock:"; >>>>>> >>>>>> final String SCISSORSCUTS = "Scissors cuts paper:"; >>>>>> >>>>>> final String ROCKSMASH = "Rock smashes scissors:"; >>>>>> >>>>>> final String IWIN = "I win!"; >>>>>> >>>>>> final String YOUWIN = "You win!"; >>>>>> >>>>>> String userChoice; // Holds user's choice >>>>>> >>>>>> int compChoice; // Holds computer' >>>>>> >>>>>> int wins = 0; // Holds user's number of wins >>>>>> >>>>>> int ties = 0; // Holds number of ties between user and computer >>>>>> >>>>>> Scanner inData = new Scanner(System.in); // Scanner object >>>>>> >>>>>> do >>>>>> >>>>>> { >>>>>> >>>>>> // Print statement asks user to enter choice >>>>>> >>>>>> System.out.println("Enter r for rock, p for paper, or s for scissors " >>>>>> >>>>>> + >>>>>> >>>>>> "or any other key to quit:"); >>>>>> >>>>>> userChoice = inData.nextLine(); // Get userChoice >>>>>> >>>>>> >>>>>> // Computer makes choice >>>>>> >>>>>> compChoice = (int)(3.0 * Math.random()) + 1; >>>>>> >>>>>> >>>>>> // If user chooses R >>>>>> >>>>>> if (userChoice == "r") >>>>>> >>>>>> { >>>>>> >>>>>> userChoice = userChoice.toLowerCase(); // Switch userChoice to >>>>>> lowercase >>>>>> >>>>>> rockPaperScissors = RockPaperScissors.rock; // Change value of >>>>>> rockPaperScissors >>>>>> >>>>>> >>>>>> //Print statement tells user his or her choice >>>>>> >>>>>> System.out.println("You chose " + rockPaperScissors + "."); >>>>>> >>>>>> } >>>>>> >>>>>> >>>>>> // If user chooses p >>>>>> >>>>>> else if (userChoice == "p") >>>>>> >>>>>> { >>>>>> >>>>>> userChoice = userChoice.toLowerCase(); // Switch userChoice to >>>>>> lowercase >>>>>> >>>>>> rockPaperScissors = RockPaperScissors.paper; // Change value of >>>>>> rockPaperScissors >>>>>> >>>>>> >>>>>> // Print statement tells user his or her choice >>>>>> >>>>>> System.out.println("You chose " + rockPaperScissors + "."); >>>>>> >>>>>> } >>>>>> >>>>>> >>>>>> // If user chooses s >>>>>> >>>>>> else if (userChoice == "s") >>>>>> >>>>>> { >>>>>> >>>>>> userChoice = userChoice.toLowerCase(); // Switch userChoice to >>>>>> lowercase >>>>>> >>>>>> rockPaperScissors = RockPaperScissors.scissors; // Change value of >>>>>> rockPaperScissors >>>>>> >>>>>> >>>>>> // Print statement tells user his or her choice >>>>>> >>>>>> System.out.println("You chose " + rockPaperScissors + "."); >>>>>> >>>>>> } >>>>>> >>>>>> else // Otherwise >>>>>> >>>>>> { >>>>>> >>>>>> // Print statement ending game >>>>>> >>>>>> System.out.println("Thanks for playing."); >>>>>> >>>>>> compChoice = 0; // Reset compChoice to 0 >>>>>> >>>>>> } >>>>>> >>>>>> >>>>>> // If computer chooses 1 >>>>>> >>>>>> if (compChoice == 1) >>>>>> >>>>>> { >>>>>> >>>>>> rockPaperScissors = RockPaperScissors.rock; // Change value of >>>>>> rockPaperScissors >>>>>> >>>>>> >>>>>> // Print statement tells user computer's choice >>>>>> >>>>>> System.out.println("I chose " + rockPaperScissors + "."); >>>>>> >>>>>> } >>>>>> >>>>>> >>>>>> // If computer chooses 2 >>>>>> >>>>>> else if (compChoice == 2) >>>>>> >>>>>> { >>>>>> >>>>>> rockPaperScissors = RockPaperScissors.paper; // Change value of >>>>>> rockPaperScissors >>>>>> >>>>>> >>>>>> // Print statement tells user computer's choice >>>>>> >>>>>> System.out.println("I chose " + rockPaperScissors + "."); >>>>>> >>>>>> } >>>>>> >>>>>> >>>>>> // If computer chooses 3 >>>>>> >>>>>> else if (compChoice == 3) >>>>>> >>>>>> { >>>>>> >>>>>> rockPaperScissors = RockPaperScissors.scissors; // Change value of >>>>>> rockPaperScissors >>>>>> >>>>>> >>>>>> // Print statement tells user computer's choice >>>>>> >>>>>> System.out.println("I chose " + rockPaperScissors + "."); >>>>>> >>>>>> } >>>>>> >>>>>> // If user chooses r and computer chooses 2 >>>>>> >>>>>> if ((userChoice == "r") && (compChoice == 2)) >>>>>> >>>>>> { >>>>>> >>>>>> System.out.println(TITLE); // Print game chant >>>>>> >>>>>> System.out.println(PAPERCOVERS); // Print Paper covers rock >>>>>> >>>>>> // Print statement tells user computer wins >>>>>> >>>>>> System.out.println(IWIN); >>>>>> >>>>>> } >>>>>> >>>>>> // If user chooses p and computer chooses 3 >>>>>> >>>>>> else if ((userChoice == "p") && (compChoice == 3)) >>>>>> >>>>>> { >>>>>> >>>>>> System.out.println(TITLE); // Print game chant >>>>>> >>>>>> System.out.println(SCISSORSCUTS); // Print scissors cuts paper >>>>>> >>>>>> // Print statement tells user computer wins >>>>>> >>>>>> System.out.println(IWIN); >>>>>> >>>>>> } >>>>>> >>>>>> // If user chooses s and computer chooses 1 >>>>>> >>>>>> else if ((userChoice == "s") && (compChoice == 1)) >>>>>> >>>>>> { >>>>>> >>>>>> System.out.println(TITLE); // Print game chant >>>>>> >>>>>> System.out.println(ROCKSMASH); // Print rock smashes scissors >>>>>> >>>>>> >>>>>> // Print statement tells user computer wins >>>>>> >>>>>> System.out.println(IWIN); >>>>>> >>>>>> } >>>>>> >>>>>> // If computer chooses 1 and user chooses p >>>>>> >>>>>> else if ((compChoice == 1) && (userChoice == "p")) >>>>>> >>>>>> { >>>>>> >>>>>> System.out.println(TITLE); // Print game chant >>>>>> >>>>>> System.out.println(PAPERCOVERS); // Print paper covers rock >>>>>> >>>>>> // Print statement tells user he or she wins >>>>>> >>>>>> System.out.println(YOUWIN); >>>>>> >>>>>> wins++; // Increment wins by 1 >>>>>> >>>>>> } >>>>>> >>>>>> // Ifcomputer chooses 2 and user chooses s >>>>>> >>>>>> else if ((compChoice == 2) && (userChoice == "s")) >>>>>> >>>>>> { >>>>>> >>>>>> System.out.println(TITLE); // Print game chant >>>>>> >>>>>> System.out.println(SCISSORSCUTS); // Print scissors cuts paper >>>>>> >>>>>> // Print statement tells user he or she wins >>>>>> >>>>>> System.out.println(YOUWIN); >>>>>> >>>>>> wins++; // Increment wins by 1 >>>>>> >>>>>> } >>>>>> >>>>>> // If computer chooses 3 and user chooses r >>>>>> >>>>>> else if ((compChoice == 3) && (userChoice == "r")) >>>>>> >>>>>> { >>>>>> >>>>>> System.out.println(TITLE); // Print game chant >>>>>> >>>>>> System.out.println(ROCKSMASH); // Print rock smashes scissors >>>>>> >>>>>> // Print statement tells user he or she wins >>>>>> >>>>>> System.out.println(YOUWIN); >>>>>> >>>>>> wins++; // Increment wins by 1 >>>>>> >>>>>> } >>>>>> >>>>>> else // Otherwise >>>>>> >>>>>> { >>>>>> >>>>>> // Print statement tells user is tied with computer >>>>>> >>>>>> System.out.println("We are tied!"); >>>>>> >>>>>> ties++; // Increment ties by 1 >>>>>> >>>>>> } >>>>>> >>>>>> } >>>>>> >>>>>> // Until user chooses r, p, or s >>>>>> >>>>>> while ((userChoice != "r") || (userChoice != "p") || (userChoice != >>>>>> "s")); >>>>>> >>>>>> >>>>>> // Print statement tells user number of wins and number of ties >>>>>> >>>>>> System.out.println("You have " + wins + " wins and " + ties + " >>>>>> ties."); >>>>>> >>>>>> } >>>>>> >>>>>> } // End of class >>>>>> >>>>>> >>>>>> >>>>>> What am I doing wrong? >>>>>> >>>>>> >>>>>> >>>>>> Gilbert Neiva >>>>>> >>>>>> >>>>>> >>>>> __________ >>>>> View the list's information and change your settings at >>>>> //www.freelists.org/list/programmingblind >>>>> >>>> >>>> __________ >>>> View the list's information and change your settings at >>>> //www.freelists.org/list/programmingblind >>>> >>> >>> __________ >>> View the list's information and change your settings at >>> //www.freelists.org/list/programmingblind >>> >>> >> __________ >> View the list's information and change your settings at >> //www.freelists.org/list/programmingblind >> > > __________ > View the list's information and change your settings at > //www.freelists.org/list/programmingblind > > __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind