Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

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;
                }
            }
     
        }

1

回答

6245

閲覧

1件の回答

評価

0

なんで試してみないの?

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。