import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

abstract class Game {
  public boolean gameover = false;
  public long time = 100;
  public String name;
  public String description;
  public BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  static final Scanner INPUT = new Scanner(System.in);

  public abstract void init();
  public abstract void render();
  public abstract void input();
  public abstract void update();
  public abstract void endgame();

  public final void gameloop() {
    while (!gameover) {
      render();
      input();
      update();
      try {
        Thread.sleep(time);
      } catch (InterruptedException exception) {
        Thread.currentThread().interrupt();
        gameover = true;
      }
    }
  }

  public final void play() {
    init();
    gameloop();
    endgame();
  }
}