使用MVC模式实现的小棋盘游戏

1. 棋盘一共9个位置, A玩家、B玩家轮流执棋,若是有三子在一条横线、竖线、斜线,则该玩家取胜。

2. 程序使用MVC设计模式,ChessModel使用观察者模式,若有model变化,会更新view。ChessView打印提示信息,获取用户输入;ChessController使用获取的数据改变model。

3. 程序代码如下:

ChessModel:

import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by niweimin on 2014/12/26.
 */
public class ChessModel {
    private int [] [] chessBoard = new int[3][3];
    private ArrayList<ModelListener> lisArr = new ArrayList<ModelListener>();
    public ChessModel(){
        for(int i = 0; i < 3; i++)
            for(int j = 0; j < 3; j++)
                chessBoard[i][j] = 0;
    }
    public void register(ModelListener listener){
        lisArr.add(listener);
    }
    public void setChess(int row, int column, int player) {
        this.chessBoard[row][column] = player;
        chessBoardChanged();
        if(checkGameOver()) gameOver();
    }

    public void clear(){
        for(int i = 0; i < 3; i++)
            for(int j = 0; j < 3; j++)
                chessBoard[i][j] = 0;
        chessBoardChanged();
    }

    private boolean checkGameOver() {
        //check row and column
        for(int i = 0; i < 3; i++){
            boolean row = true;
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值