接上期。传送门:
http://liuxinyumo.cn/index.php?s=/Home/Index/content/id/6.html
项目仓库地址:https://github.com/liuxinyumocn/LittleGame
现在已经实现了辅助器跟随鼠标移动、给出落点等基本功能,接下来需要独立建设五子棋逻辑模块,注意,在设计逻辑模块时需脱离视图部分,将游戏逻辑独立出来,至于将来从视图上所展现是需要在两者中间增加接口(MVC)。
现在我们脱离Canvas坐标单独研究游戏逻辑(GameCore),该部分我们目前采用Javascript语言完成,而实际上为保证游戏公平性,在未来服务器端也需要有相同的判断逻辑,这里是为了满足制作非联网五子棋的小伙伴。
五子棋游戏逻辑非常简单,建立15*15大小二维数组用于代表每一个落子点,默认元素值为0,1为黑子,2为白子。Javascript中并没有直接定义二维数组方式,因此我们采用分步法创建一个默认值为0的15*15二维数组。
var GameCore = function(){ //游戏逻辑核心
this.Data = null;
this.Init();
}
GameCore.fn = GameCore.prototype = {
Init:function(){ // 两层循环初始化15*15长度的二维数组
this.Data = new Array();
for(var i = 0;i<15;i++){
this.Data[i] = new Array();
for(var n=0;n<15;n++){
this.Data[i][n] = 0;
}
}
}
}
之后是2个基本功能,落子以及胜负判断,我一并给出完整代码,其中注释很清晰&#