質問内容
質問を評価する
(0ポイント)
|
下記メソッドの戻り値が知りたいのですが checkpoint(1,1,1); を入れた場合戻り値はどう帰ってくるのでしょうか? trueでもfalseでもない値が戻ってきてるような気がす るんですが分かりません
boolean checkpoint(int x,int y,int p){ //盤外なら無効 if(x<1||x>8||y<1||y>8){ return false; } //既にコマがあったら無効 else if(map[x][y]!=0){ return false; } //ひっくり返せるかの判定 if(put(x,y,p)){ //置ける状態だったため置く map[x][y]=p; if(p==1) { cnt[0] += count+1; cnt[1] -= count; WhiteLabel.setText("白:" + cnt[0]); BlackLabel.setText("黒:" + cnt[1]); }else{ cnt[1] += count+1; cnt[0] -= count; BlackLabel.setText("黒:" + cnt[1]); WhiteLabel.setText("白:" + cnt[0]); } return true; } return false; } /** * 挟んでいるコマをひっくり返すメソッ ド * ただし1個もひっくり返せなかった場 合無効とする * @param x 置く座標x * @param y 置く座標y * @param p 置くコマの種類 */ boolean put(int x,int y,int p){ count =0; for(int i=-1;i<=1;i++){ for(int s=-1;s<=1;s++){ if(map[x+s][y+i]==-p) putt(x+s,y+i,p,s,i); } } return (count>0)?true:false; } /** * 再帰によってひっくり返せるコマを探 索するメソッド * @param x 探索中の座標 * @param y 探索中の座標 * @param p 自分のコマの色 * @param hx 探索方向x * @param hy 探索方向y * @return */ boolean putt(int x,int y,int p, int hx,int hy){ if(x<1||x>8||y<1||y>8||map[x] [y]==0) return false; //自コマを見つけたら探索終了 if(map[x][y]==p){ return true; } //引き続き相手のコマなら探索続行 else{ if(putt(x+hx,y+hy,p,hx,hy)==true){ count++; map[x][y]*=-1; if(map[x][y]==white){ button[x] [y].setIcon(iconWhite); return true; }else if(map[x][y]==black) { button[x] [y].setIcon(iconBlack); return true; } return true; }else{ return false; } } }
|