Create a simple text-based console game that implements at least three (3) interfaces.
public interface Counter {
boolean addPoints();
boolean subtractPoints();
}
public interface Printer {
void showScore();
void showPrompt();
}
public interface Generator {
int getNumber();
}
import java.util.Random;
import java.util.Scanner;
public class Game implements Counter, Printer, Generator {
private Random random;
private int score;
private int maxNumber = 5;
public Game() {
random = new Random();
score = 10;
}
@Override
public boolean addPoints() {
score += 2;
return score > 19;
}
@Override
public boolean subtractPoints() {
score -= 1;
return score < 0;
}
@Override
public void showPrompt() {
System.out.println("Enter a number in range 1 - " + maxNumber + ": ");
}
@Override
public void showScore() {
System.out.println("Score: " + score);
}
@Override
public int getNumber() {
return random.nextInt(maxNumber) + 1;
}
public static void main(String[] args) {
Game game = new Game();
Scanner in = new Scanner(System.in);
while (true) {
int number = game.getNumber();
while (true) {
game.showPrompt();
int guess = in.nextInt();
if (guess == number) {
break;
}
System.out.println("Incorrect");
if (game.subtractPoints()) {
System.out.println("YOU LOSE!");
return;
}
game.showScore();
}
System.out.println("Correct");
if (game.addPoints()) {
System.out.println("YOU WIN!");
}
game.showScore();
}
}
}
Comments
Leave a comment