マインスイーパをCUIで作っていまして開けた場所が0だった場合その周りを開ける。その中に0があったらまた、周りを開けていくメソッドを作りました。
li :前回開けたx,y座標が半角スペース区切りで入ります。
map_open : 開いたところは1が入ります.
ans_map : 爆弾や周囲の爆弾の数が入ります。
Java
1public void open_arround(ArrayList<String>li) { 2 ArrayList<String>new_li=new ArrayList<>(); 3 for(String s:li){ 4 String st[] =s.split(" "); 5 int x = Integer.parseInt(st[0]); 6 int y = Integer.parseInt(st[1]); 7 for(int i = -1;i<2;i++){ 8 for(int j = -1;j<2;j++){ 9 try{//<<<<<<========疑問 10 if(map_open[x+i][y+j]!=1&&ans_map[x+i][y+j].equals("0")){//端っこのほうは範囲外を参照しようとしてエラーが出るよ 11 int a = x+i; 12 int b = y+j; 13 new_li.add(a+" "+b); 14 map_open[x+i][y+j]=1; 15 }else if(map_open[x+i][y+j]!=1){ 16 int a = x+i; 17 int b = y+j; 18 map_open[x+i][y+j]=1; 19 } 20 } 21 catch(ArrayIndexOutOfBoundsException e){} 22 } 23 } 24 } 25 if(new_li.size()>0){open_arround(new_li);} 26 else{return;} 27 } 28コード
こういった書き方はやめたほうがいいのでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。