Предположим, у игры в кости есть класс EyesHaveIt.Объект игры - человек-игрок против компьютера.Я пытаюсь вести счет с помощью методов get и set, но у меня проблемы с тем, чтобы мой счет за ход не сбрасывался после того, как компьютер людей пять (или меньше) ходов.
Я не ищу точного ответа, просто полезные советы, потому что это опыт обучения для меня.Имейте в виду, что следующий код находится в стадии разработки, потому что я активно работаю над ним.Большое спасибо за любую помощь, советы или информацию о настройке / получении счетчиков для добавления очков / ходов.
public class EyesHaveIt {
Scanner kb = new Scanner(System.in);
private int turnScore;
private int gameScore;
private int computerTotalScore;
private int playerTurnScore;
private int computerTurnNumber;
private int playerTurnNumber;
public int roundPoints;
private String userName;
public void playGame() {
computerTurn();
}
public void init(String name) {
userName = name;
}
public void computerTurn() {
turnScore=0;
System.out.println("Computer's turn: ");
while (turnScore < 20) {
rollTheDice();
computerTurnNumber++;
getComputerTotalScore(turnScore);
}
getGameScore();
enterToContinue();
}
public void enterToContinue(){
System.out.print("\nPress ENTER to continue ...");
try {
System.in.read();
} catch (Exception e) {
e.printStackTrace();
}
playerTurn();
}
public void playerTurn() {
System.out.println(userName + "'s turn:");
for (int i=0;i < 5;i++) {
rollTheDice();
playerTurnNumber++;
System.out.println("Roll again? (y/n) ");
char continueGame = kb.next().charAt(0);
continueGame = Character.toUpperCase(continueGame);
if (continueGame == 'Y') {
rollTheDice();
} else {
getGameScore();
}
}
computerTurn();
}
public void rollTheDice() {
PairOfDice dieOne = new PairOfDice();
PairOfDice dieTwo = new PairOfDice();
int die1 = dieOne.getDieOneValue();
int die2 = dieTwo.getDieOneValue();
System.out.println("\tRolled: " + die1 + " and " + die2);
whatWasRolled(die1, die2);
}
public void whatWasRolled(int die1, int die2) {
if (die1 == 1 && die2 == 1) {
System.out.println("\t Rolled snake eyes! All turn points will be doubled.");
roundPoints = (die1 + die2 * 2);
setScore(roundPoints);
} else if (die1 == 6 && die2 == 6) {
System.out.println("\t Rolled box cars! All points are gone now!");
roundPoints = 0;
gameScore = 0;
setScore(roundPoints);
} else if (die1 == die2) {
System.out.println("\t Rolled double. . . lose all turn points.");
roundPoints = 0;
setScore(roundPoints);
} else {
roundPoints = die1 + die2;
setScore(roundPoints);
getTurnScore();
}
}
public void setScore(int roundPoints) {
turnScore = turnScore + roundPoints;
gameScore += roundPoints;
}
public int getTurnScore() {
System.out.println("\tCurrent score for this turn:" + turnScore);
return turnScore;
}
public int getGameScore() {
System.out.println("CURRENT GAME SCORE: Computer: " + computerTotalScore + "\t" + userName + ": ");
return gameScore;
}
public int getComputerTotalScore(int turnScore){
computerTotalScore = turnScore + computerTotalScore;
return computerTotalScore;
}