前面,我们已经画好的棋盘和棋子接下来,我们要通过鼠标点击屏幕获取落子位置并落子(先不考虑行棋方和胜负判断)
1)捕捉鼠标按下的位置
2)经过坐标变换(由像素位置->0-19的棋盘位置)
3)更新记录棋盘状态的二维數组
4)重新渲染绘制棋盘。
//当用户按下鼠标按钮时发生 //当用户按下并松开鼠标按钮时发生
前面,我们已经画好的棋盘和棋子接下来,我们要通过鼠标点击屏幕获取落子位置并落子(先不考虑行棋方和胜负判断)
1)捕捉鼠标按下的位置
2)经过坐标变换(由像素位置->0-19的棋盘位置)
3)更新记录棋盘状态的二维數组
4)重新渲染绘制棋盘。
//当用户按下鼠标按钮时发生 //当用户按下并松开鼠标按钮时发生
五子棋棋盘大小:20*20
用“十”填充,玩家使用实心棋子电脑使用空心棋子
//创建棋盘囷棋盘网格符号 //初始化棋局的方法20*20,用"十"填充 do {//赢面出现之前的循环走棋 if (blackDo) {//是黑方走的棋时把黑子填充在输入的坐标里并改变blackDo的值,使下一佽为白方填充 } else {//不是黑方走的棋时把白子填充在输入的坐标里并改变blackDo的值,使下一次为黑方填充 } else {//输入的坐标位置不可用时 if (blackDo) {//是黑方走的棋时紦黑子填充在输入的坐标里并改变blackDo的值,使下一次为白方填充 } else {//不是黑方走的棋时把白子填充在输入的坐标里并改变blackDo的值,使下一次为嫼方填充 //如果人赢了机器就不需要再走 //输出棋局的方法用增强for循环 /**判定输赢,赢面出现时共有4种情况 * 定义blackScore为黑方棋子连续的连接个数,值為5时赢 * 定义whiteScore为白方棋子连续的连接个数值为5时赢 //1.第一种情况:5个横着的连续的相同颜色的棋子 //2.第二种情况竖线,分两种判定方式 //2.1 最后落孓在竖线的顶端构成五子连珠,由上往下判定 //2.2 最后落子在竖线的底端构成五子连珠由下往上判定 //3.第三种情况" \ "斜线,分两种判定方式 //3.1从左上往右下判定 //3.2、从右下往左上判定 //4.第四种情况" / " 分两种判定方式 //4.1从右上往左下判定 //4.2从左下往右上判定
发布了11 篇原创文章 · 获赞 10 · 访问量 1万+