0

そこで、デッキから 10 枚のカードをランダムに選んで表示するプログラムを作成しています。ただし、ランダムカードを保存するために使用する配列を、カードを印刷するメソッドに渡す方法がわかりません。これは私のコードです:

import java.awt.Graphics;
import java.awt.Color;
import java.awt.Image;
import java.applet.Applet;
import java.lang.Math;
import java.util.Random;

public class unit12Assignment extends Applet
{
    Image card1 ... card52;

public void init()
{
    card1 = getImage( getDocumentBase(), "c1.gif" );
        ...
    card52 = getImage( getDocumentBase(), "sk.gif" );
}

public void getCards(String[] cardSelection)
{
    String cardNumber; 
    double cardRandom;
    int cardRandomNumber;
    Random ran = new Random();
            cardSelection = new String[10]

    for (int number = 0; number <=  9; )
    {
        cardRandom = ran.nextInt(52) + 1;
        cardRandomNumber = (int) Math.round( cardRandom );

        if ( cardRandomNumber > 0 && cardRandomNumber <= 52 )
        { 
            cardNumber =  "card" + cardRandomNumber;
            number++;
        }
    }   
}

    // i wanna pass it to this method
public void paint(Graphics g)
{
    setBackground( Color.green );
    g.drawImage( cardSelection[0], 10, 10, this);
    g.drawImage( cardSelection[1], 90, 10, this);
    g.drawImage( cardSelection[2], 170, 10, this);
    g.drawImage( cardSelection[3], 250, 10, this);
}

}

単純な問題のように思えますが、その方法を完全に忘れていました。どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

0

paintメソッドが を受け入れるようにする必要がありString[]ます。次に、を呼び出すときに配列を渡すことができますpaint

例えば:

public void main(String[] args) {
  String[] myArray = makeArray();
  printArray(myArray);
}   

public String[] makeArray() {
  return new String[] {"element0", "element1", "element2"};
}   

public void printArray(String[] array) {
  for (String element : array) {
    System.out.println(element);
  }   
}
于 2012-09-03T15:10:49.993 に答える
0

インスタンス変数として宣言String[] cardSelection;します (クラス宣言の隣)。

次に、getCards() メソッドで配列をインスタンス化します。

cardSelection = new String[10];
于 2012-09-03T15:12:32.587 に答える