私は学校のプロジェクト用のゲームを作成しています。PiecesandPowersという2つのクラスがあり、サブクラスはPiece_Yellow、Piece_Blue ...、Power_Explode、Power_ChangeColorなどです。
私は列挙型でそれを行っていましたが、このWebサイトの誰か(より正確にはmikera)がそれを変更し、ピースとパワーとのより良い相互作用を作成するのを手伝ってくれました。
しかし今、私は古いコードを変更する必要があります、そして私はこのようにやっていたのでそれで問題があります:
int x = 10, y = 5;
for (int i=0; i<10; i++) {
if (pecas[x][y] == null)
pecas[x][y] = new Piece(arrayPecas.get(rand.nextInt(arrayPecas.size())));
}
このように、私の配列は部分的に異なる色のオブジェクトで10個の新しいピースで満たされ(ただし、パワーがないため、問題でした)、すべてのオブジェクトに異なるハッシュコードがありました(後でピースを検索、比較、削除するため)...
しかし、抽象クラスを初期化することはできないので、この問題に対して私が見つけた唯一の解決策は、これを行うことでした:
int x = 10, y = 5;
for (int i=0; i<10; i++) {
if (pecas[x][y] == null)
pecas[x][y] = arrayPecas.get(rand.nextInt(arrayPecas.size()));
}
このようにオブジェクトはまだ追加されていますが、1つの問題があります:1-同じ色のピースからのすべてのハッシュコードは同じです...これを解決する方法が本当にわかりません。ハッシュコードメソッドをオーバーライドできることを読みましたが、それらを区別するための情報がありません(そして、ピースが位置を変更するたびに位置を変更する必要があったため、位置を保存できません)。