Re: Java problem

  • From: Dave <davidct1209@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Wed, 24 Nov 2010 20:46:53 -0800

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

Other related posts: