情報処理2z(Java version) 課題7:複数の物体の移動 |
というようにしてみよう。
C で配列変数を使うことができるように、 Java でも同じように配列変数を使うことができます。 ただ最初の宣言の仕方が少し異なります。 new というキーワードに注目して下さい。
public class kadai703 extends java.applet.Applet implements Runnable { int x[] = new int[3]; /* int 型配列変数 3個分の領域確保 */ int y[] = new int[3]; int dx[] = new int[3]; int dy[] = new int[3]; public void init(){ x[0] = 50; x[1] = 30; x[2] = 10; /* 配列変数への初期値代入 */ など。 barx = 170; bary = 80; bardy = 0; } private void ballprint(){ /* ボール描きメソッド */ for(int i = 0; i < 3; i++){ /* 配列の 0 から 2 まで */ ofscr_g.drawRect(x[i], y[i], 10, 10); } } public void run(){ int i; while(true){ /* 無限ループ */ /* 時間かせぎ */ ............. /* 以下ボール処理 */ for(i = 0; i < 3; i++){ /* ボールの処理ループ */ x[i] = x[i] + dx[i]; y[i] = y[i] + dy[i]; if(x[i] < 10){ x[i] = 10; dx[i] = -dx[i]; } 等 } repaint(); /* paint メソッド呼び出し */ } } } |
配列はこの様に new を使って宣言します。 また、宣言と同時に初期値を代入する方法もあります。 上のプログラムをその様にする場合は以下の様にします。
int x[] = {50, 30, 10}; int y[] = {80, 180, 130}; int dx[] = {2, 1, 3}; int dy[] = {3, 4, 2};
これをフィールド変数として宣言します。
多次元配列も宣言できます。
例えば 2 次元配列は以下の様に宣言します。
int ball[][] = { {50, 30, 10}, {80, 180, 130}, {2, 1, 3}, {3, 4, 2} };
この 2 次元配列には以下の様な値が代入されています。
配列の順番は「0 番目」から始まることに注意して下さい。
ball[0][0] == 50 , ball[0][1] == 30 , ball[1][2] == 130 , ball[2][0] == 2
To: report
cc: 自分のログイン名
Subject: 2z7
です。
Subjectを間違えないよう注意しましょう。
次回は音を鳴らします。サウンドファイルを配布するので、
フロッピーディスクドライブを持ってきてください。
事前にダウンロードしておくのも良いでしょう。