001: package org.jboss.seam.example.numberguess;
002:
003: import java.io.Serializable;
004: import java.util.ArrayList;
005: import java.util.List;
006: import java.util.Random;
007:
008: import org.jboss.seam.ScopeType;
009: import org.jboss.seam.annotations.Create;
010: import org.jboss.seam.annotations.Name;
011: import org.jboss.seam.annotations.Scope;
012:
013: @Name("numberGuess")
014: @Scope(ScopeType.CONVERSATION)
015: public class NumberGuess implements Serializable {
016:
017: private int randomNumber;
018: private Integer currentGuess;
019: private int biggest;
020: private int smallest;
021: private int guessCount;
022: private int maxGuesses;
023: private boolean cheated;
024:
025: @Create
026: public void begin() {
027: randomNumber = new Random().nextInt(100);
028: guessCount = 0;
029: biggest = 100;
030: smallest = 1;
031: }
032:
033: public void setCurrentGuess(Integer guess) {
034: this .currentGuess = guess;
035: }
036:
037: public Integer getCurrentGuess() {
038: return currentGuess;
039: }
040:
041: public void guess() {
042: if (currentGuess > randomNumber) {
043: biggest = currentGuess - 1;
044: }
045: if (currentGuess < randomNumber) {
046: smallest = currentGuess + 1;
047: }
048: guessCount++;
049: }
050:
051: public boolean isCorrectGuess() {
052: return currentGuess == randomNumber;
053: }
054:
055: public int getBiggest() {
056: return biggest;
057: }
058:
059: public int getSmallest() {
060: return smallest;
061: }
062:
063: public int getGuessCount() {
064: return guessCount;
065: }
066:
067: public boolean isLastGuess() {
068: return guessCount == maxGuesses;
069: }
070:
071: public int getRemainingGuesses() {
072: return maxGuesses - guessCount;
073: }
074:
075: public void setMaxGuesses(int maxGuesses) {
076: this .maxGuesses = maxGuesses;
077: }
078:
079: public int getMaxGuesses() {
080: return maxGuesses;
081: }
082:
083: public int getRandomNumber() {
084: return randomNumber;
085: }
086:
087: public void cheated() {
088: cheated = true;
089: }
090:
091: public boolean isCheat() {
092: return cheated;
093: }
094:
095: public List<Integer> getPossibilities() {
096: List<Integer> result = new ArrayList<Integer>();
097: for (int i = smallest; i <= biggest; i++)
098: result.add(i);
099: return result;
100: }
101:
102: }
|