2017-12-07 26 views
0

greenfootを使用しています。何かを繰り返し処理しようとしているので、よりクリーンです。 cardsPileリストは、廃棄パイルの現在のカードです。私はよりオブジェクト指向にしようとしており、ArrayListに複数を追加する方法に苦労しています。また、Cardオブジェクトの内部でメソッドを呼び出そうとしています。 私は以下のプロセスを反復可能にしようとしています。カード1以来同じクラスのオブジェクト内で同じメソッドを繰り返す

card1.setLocation(100,200); 
cpu2.setLocation(100,200); 
card2.setLocation(100,200); 
cpu3.setLocation(100,200); 

、などがなどの上に定義されています。

Card card1 = cards.get(1); 
Card card2 = cards.get(2); 
Card card3 = cards.get(3); 
Card card4 = cards.get(4); 
Card cpu1 = cpuCards.get(1); 
Card cpu2 = cpuCards.get(2); 
Card cpu3 = cpuCards.get(3); 
Card cpu4 = cpuCards.get(4); 

私も

cardsPile.add(curCard); 
cardsPile.add(card1); 
cardsPile.add(card2); 
cardsPile.add(card3); 
cardsPile.add(card4); 
cardsPile.add(cpu1); 
cardsPile.add(cpu2); 
cardsPile.add(cpu3); 
cardsPile.add(cpu4); 

任意のアイデアを次のようにオブジェクトによってそれらを追加することによって、cardPile ArrayListにそれらを追加しようとしていますCardオブジェクトの呼び出しメソッドを反復する方法については、高く評価されています。ありがとうございました!

答えて

0

すべてのあなたの変数を反復処理するには、このように、配列またはコレクションのいくつかの種類に保存する必要があります

see here

ArrayList<Card> alCard = new ArrayList<Card>(); 
    for(int cardIdx = 1; cardIdx <= 4; cardIdx++) { 
     alCard.add(cards.get(cardIdx)); 
    } 
    ArrayList<Card> alCpu = new ArrayList<Card>(); 
    for(int cardIdx = 1; cardIdx <= 4; cardIdx++) { 
     alCpu.add(cards.get(cardIdx)); 
    } 

    ArrayList<Card> cardsPile = new ArrayList<Card>(); 
    cardsPile.add(curCard); 
    for(int cardIdx = 0; cardIdx < alCard.size(); cardIdx++) { 
     cardsPile.add(alCard.get(cardIdx)); 
    } 
    for(int cardIdx = 0; cardIdx < alCpu.size(); cardIdx++) { 
     cardsPile.add(alCpu.get(cardIdx)); 
    } 
関連する問題