敵の石を裏返す

開発目標

このページの目標は、裏返せる石を、裏返すルールを実装することです。

挟んだ石を裏返す

挟んだ石を裏返す処理を加えます。

ReversiView.java

package com.hp3200.boco.reversi;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;

class ReversiView extends View {
    …略…
    
    //置いて裏返す
    void reverse(int myCoin, int p) {
        int yourCoin = PLAYER;
        int i, j, k;
        
        if(myCoin==PLAYER) yourCoin = COM;

        board[p] = myCoin;
        for(i=0;i<8;i++) {
            if(board[p+MOVE[i]]==yourCoin) {
                for(j=2;j<8;j++) {
                    if(board[p+MOVE[i]*j]==myCoin) {
                        for(k=1;k<j;k++) {
                            board[p+MOVE[i]*k] = myCoin;
                        }
                        break;
                    } else if(board[p+MOVE[i]*j]==yourCoin) {
                    } else {
                        break;
                    }
                }
            }
        }
    }
    
    …略…
}

開発結果

これでリバーシのルールがまた1つ実装できました。実行してみます。

うん。ちゃんと動いているみたいです。次回は、パスの処理と、結果の表示を作成します。