アプレットを勉強している初心者です。
落ちものゲームを作ろうと思い、本に載っているサンプルを分かるところから書いていこうとしています。
そうしたら(もちろんまだ全体の途中、というか始めたばかりですが)タイトルのようなエラーが出てしまいました。
今の段階でのソースを載せるので、もし分かる方がいたら、よろしくお願いします。
import java.applet.Applet;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
public class jisaku extends Applet{
int square = 8;
int nw = 23;
int nh = 24;//ブロック位置の最大数
int block[][] = new int[4][4];//動くブロックの形
int board[][] = new int[nh+1][nw+1];//盤面にあるブロックの有無
Dimension d;//表示スクリーン
Image offs;//オフスクリーン
Graphics grf;
public void init(){
//********盤面のブロックの初期化(board[][]の初期化(=フィールドと枠)だけ)************
//フィールドにはブロックはない
for(int i = 0; i <= nh; i++){
for(int j = 0; i <= nw; j++){
board[i][j] = 0;//盤面にはブロックはない
}
}
//左右下の固定ブロック
for(int i = 0; i <= nh; i++){
for(int j = 0; j <= nw; j++){
board[i][j] = 2;
board[i][nw-j] = 1;
}
}
for(int i = 0; i < 3; i++){
for(int j = 0; j <= nw; j++){
board[nh-i][j] = 2;
}
}
//************オフスクリーンの設定*********
d = getSize();
offs = createImage(d.width, d.height);
grf = offs.getGraphics();
}
public void paint(Graphics g){
update(g);
}
public void update(Graphics g){
//[grf]はオフスクリーンのグラフィックスオブジェクト(というのかな?)
//バックをオレンジで塗る
grf.setColor(Color.orange);
grf.fillRect(0,0,d.width,d.height);
//ブロックを描く
grf.setColor(Color.blue);
for(int i = 0; i <= nh; i++){
for(int j = 0; j <= nw; j++){
if(board[i][j] >= 1){
grf.fillRect(j*square, i*square, square, square);
}
}
}
//左右下の枠を描く
grf.setColor(Color.red);
for(int i = 0; i <= nh; i++){
for(int j = 0; j <3; j++){
grf.fillRect(j*square, i*square, square, square);
grf.fillRect((nw-j)*square, i*square, square, square);
}
}
for(int i =0; i < 3; i++){
for(int j = 0; j <= nw; j++){
grf.fillRect(j*square, (nh-i)*square, square, square);
}
}
g.drawImage(offs, 0, 0, this);
}
}
No.1ベストアンサー
- 回答日時:
んー、俺のところでは言われたエラーは出ないけどな。
変わりにjava.lang.ArrayIndexOutOfBoundsExceptionは出たがな。
なんだろなーって考えたらここだ。
//フィールドにはブロックはない
for(int i = 0; i <= nh; i++){
//良く見ると終了条件でnwと比較しているのはjじゃなくてiだ!
for(int j = 0; i <= nw; j++){
board[i][j] = 0;//盤面にはブロックはない
}
これ以外の場所だったらもう一回考えてくる
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# ポインタの型変換、どうやるんでしたっけ? 2 2022/03/28 11:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
式の型は配列型で int に解決済...
-
javaのエラーの意味がわかりま...
-
Javaで素数の表を表示させたい...
-
java spring でエラーが出て困...
-
ある年月の月間日数を取得する...
-
分を表す数字(int型)を時間形...
-
Java3Dで円錐台を描く方法を教...
-
行の途中から読み込む方法
-
javaでカレンダー作成
-
javaでcsvファイル読込時の改行...
-
初心者ですが、今javaで簡単な...
-
(Swing)JTextFieldを半角のみ入...
-
C#で、デリゲートからその関数...
-
Javaでポインタ的なことはでき...
-
Javaのファイル名チェックについて
-
javaの課題・・
-
偶数奇数の判定
-
C#で「型または名前空間名 'int...
-
javaのRandomで『a~z』までの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
式の型は配列型で int に解決済...
-
「配列定数は、イニシャライザ...
-
javaでcsvファイル読込時の改行...
-
java spring でエラーが出て困...
-
javaでカレンダー作成
-
Javaで電卓を作りたい
-
SwingでJtableのヘッダ行が表示...
-
JAVA エラー 式の開始が不正で...
-
JAVAでCの関数ポインタのような...
-
C#で実行時にメソッドの返り値...
-
(Swing)JTextFieldを半角のみ入...
-
c# デリゲート関連の命名について
-
Javaでポインタ的なことはでき...
-
複数のボタンを配置し、それぞ...
-
JUnit4のアノテーションについて
-
javaのエラーの意味がわかりま...
-
intが負の時に投げる例外はあり...
-
sin曲線とcos曲線を描くプログ...
-
C++からC#のdllを参照する際、...
-
Java 初心者 int型の取り扱い方
おすすめ情報