001 /*
002 * Copyright 2004 The Apache Software Foundation
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017 /*
018 * Originally written by Jason Hunter, http://www.servlets.com.
019 */
020
021 package num;
022
023 import java.util.*;
024
025 public class NumberGuessBean {
026
027 int answer;
028 boolean success;
029 String hint;
030 int numGuesses;
031
032 public NumberGuessBean() {
033 reset();
034 }
035
036 public void setGuess(String guess) {
037 numGuesses++;
038
039 int g;
040 try {
041 g = Integer.parseInt(guess);
042 }
043 catch (NumberFormatException e) {
044 g = -1;
045 }
046
047 if (g == answer) {
048 success = true;
049 }
050 else if (g == -1) {
051 hint = "a number next time";
052 }
053 else if (g < answer) {
054 hint = "higher";
055 }
056 else if (g > answer) {
057 hint = "lower";
058 }
059 }
060
061 public boolean getSuccess() {
062 return success;
063 }
064
065 public String getHint() {
066 return "" + hint;
067 }
068
069 public int getNumGuesses() {
070 return numGuesses;
071 }
072
073 public void reset() {
074 answer = Math.abs(new Random().nextInt() % 100) + 1;
075 success = false;
076 numGuesses = 0;
077 }
078 }