0

カードゲームがいくつかある学校のプロジェクト用のJavaアプリを書いています。私は最初のものを書いており、私が計画しているすべてのゲームのスケルトンを実装しています。すべてのカード デッキ ロジックを制御し、arrayList に 52 のカード オブジェクトを含むデッキを作成する Deck というクラスがあります。カード デッキを作成すると、プログラムが停止して応答しなくなります。私がオンラインで調べた限りでは、作成しているオブジェクトが多すぎて、プログラムがそれらをクリーンアップしようとしていると書かれています。私はJavaにかなり慣れていないので、この問題を解決する方法について非常に混乱しています。createDeck() メソッドとその結果の LogCat 出力を次に示します。どんな助けや知恵も大歓迎です。前もって感謝します!

public void createDeck() 
{
    for (int i = 1; i <= 13; i++)
    {

        for (int j = 0; j < 4; i++)
        {

            if (j == 0) //If diamond suite
            {
                Card newCard = new Card(i, j);
                cardDeck.add(newCard);
            }

            if (j == 1) //If hearts suite
            {
                Card newCard = new Card(i, j);
                cardDeck.add(newCard);
            }

            if (j == 2) //If clover suite
            {
                Card newCard = new Card(i, j);
                cardDeck.add(newCard);
            }

            if (j == 3) //If spade suite
            {
                Card newCard = new Card(i, j);
                cardDeck.add(newCard);
            }

        }

    }
}

LogCat 出力

WAIT_FOR_CONCURRENT_GC blocked 61ms
GC_CONCURRENT freed 153K, 7% free 3755K/4024K, paused 69ms+25ms total 213ms
4

1 に答える 1

4

小さなバグ:

2 番目のforループの変更では:

for (int j = 0; j < 4; i++)

に:

for (int j = 0; j < 4; j++)

ちなみに、デバッガーを使用するか、印刷してログに記録すると、すぐに見つかります。

于 2012-11-18T08:23:49.983 に答える