私はプログラミングとjavascriptを初めて使用しています。私は疑問を抱いています。私はカードゲームを構築しようとすると、フォーマット(カード#、スーツ、例えば5、ハーツ)のカード表現を返すカードオブジェクトを持っている。私はプログラムの開始時にカードを扱い、そのカードが一意である(すなわち、まだ使用されていない)ことを確認する。私は以下の構造を持っています:カードアレイで一意の値を取得できません
var usedCards= [];
function dealCards() {
for (i = 0; i < 3; i++)
{
var card = createUniqueCard();
usedCards.push(card.cardRepresentation);
}
}
function createUniqueCard() {
do {
var newCard = new Card();
}
while (usedCards.indexOf(newCard.cardRepresentation) != -1);
return newCard;
}
これは私のusedCards配列に私の重複したカードを返します。誰も私の論理エラーを指摘できますか?
おかげ
umの代わりに.indexOf()がよく聞こえます。私はそれをすることを学ぶことができる場所に私を指摘できますか? –
あなたはすべての可能なカードを事前に生成してからランダムに選択するほうが良いと思います。新しいカードを生成するのではなく、それらのカードへの参照を保存すると、それらを比較したり、 '.indexOf()'を使うことができます。あなたの 'Card'と' cardRepresentation'オブジェクトの構造を教えてください。簡単な例で私の質問を更新することができます。 – nnnnnn