私は楽しみのためにサッカーシミュレーターを書いていますが、プレーヤーの属性評価を整理する方法がわかりません。ゲームを改善するにつれて、属性の数が変わることを知っています。それぞれに個別にアクセスする必要があります。
SoccerPlayer.getSpeed()
SoccerPlayer.getShooting()
また、全体的な評価を得るために、単一の関数でそれらを平均化できるようにしたいとも思っています。
SoccerPlayer.getOverall()
私の最初の傾向は、リストまたは配列を使用し、定数を使用して配列内の各属性のインデックスを定義することです。
static final int SPEED_INDEX = 0;
static final int SHOOTING_INDEX = 1;
static final int NUM_ATTRIBUTES = 2;
int[] attributes = new int[NUM_ATTRIBUTES];
int getSpeed() {
return attributes[SPEED];
}
int getOverall() {
int total = 0;
for (int i : attributes) {
total += i;
}
return (total / attributes.length);
}
そうすれば、新しい属性を追加するたびに、合計定数を変更し、新しいインデックス定数を追加するだけで、合計関数が常に機能します。しかし、これを行うためのより良い方法はありますか?