問題
あなたは、ゲームに登場するプレイヤーのスコアを管理するクラス Player
を設計しようとしています。
このクラスには次の2つの目的があります:
- 各プレイヤーが持つ個別のスコアを保持する
- 全体での最高スコア(high score)を記録し、共有する
プレイヤーがスコアを更新するたびに、新しいスコアがそれまでの最高スコアを超えていれば、クラス全体の最高スコアも更新されるようにしてください。
以下のような出力になるように実装してください:
Alice のスコア: 50(現在の最高スコア: 50)
Bob のスコア: 80(現在の最高スコア: 80)
Alice のスコア: 100(現在の最高スコア: 100)
要件
Player
クラスを作成すること- インスタンス変数:
name
,score
を定義すること - static変数:
highScore
を定義し、すべてのプレイヤー間で共有すること setScore(int newScore)
メソッドで、スコア更新とhighScore
の自動更新を行うことdisplay()
メソッドで、名前 + スコア + 現在の最高スコア
を出力すること- 出力には
System.out.println
を使用すること
テストコード(Main.java)
public class Main {
public static void main(String[] args) {
Player p1 = new Player("Alice");
Player p2 = new Player("Bob");
p1.setScore(50);
p1.display();
p2.setScore(80);
p2.display();
p1.setScore(100);
p1.display();
}
}
ヒント
highScore
はすべてのプレイヤーで共有される static 変数setScore()
の中で、if (newScore > highScore)
で比較・更新display()
はname
,score
,highScore
を1行で表示する