由于文章较长,↑↑↑点击目录快速移动到想看的部分↑↑↑(好像只有电脑版csdn才能快速定位)
用一个框架写了不少棋类小游戏(其中包含一个我自创的四子棋小游戏),初学者可以学习体会一下各个程序之间相似的结构和其中的不同,写了新的棋类游戏的话我也会在这里收录。
游戏支持键盘下棋和鼠标下棋两种下棋方式
围棋吃子的判定较为复杂,故需要三个m文件组成完整函数,目前还没写判定胜负和禁手模块,有待更新。
%按键函数初始化设置: %初始化前清除原有图像: %棋子棋盘数值初始化:我自创的一种棋,在特殊格子内下棋,先连成四子为胜,开局黑棋先手且有禁手限制。
目前游戏只支持键盘下棋:
%按键函数初始化设置: global turn; %下棋方,值为1时黑方下,值为0时白方下 %每次初始化前删除之前图像: %棋子棋盘数值初始化: %用来绘制棋子红叉的函数初始化: case '游戏规则',msgbox({'游戏规则:';' 在棋盘内落子,当横竖或斜着连成四子即为胜利 ';... '';'禁手规则:';' 第一步棋不能下在棋盘颜色较暗的格子内'}); %使红叉不超出棋盘范围: %删除第一步的禁手限制:走四棋在乡下是一种全民性游戏,简单易行,老少皆宜。
玩法:在地上画一棋盘,纵横线各四条,每人执四个棋子(多用石块、砖块、木块等代替)对阵摆布。
走子时,纵横进退,但每次只许走一步。若一方两棋子相邻,且与对方的一棋子在同一条直线上,且线上再无别的棋子时,则“吃”掉对方一棋子。若一方只剩下一个棋子,无法对阵时为输。
只支持鼠标操作,鼠标点击棋子,会出现可走的位置,再点击可走位置即可移动棋子。
注:绿圈的位置即为可行位置。
游戏支持键盘下棋和鼠标下棋两种下棋方式
围棋和五子棋的结合,被围住的棋子会改变颜色,连成五子胜利。
游戏支持键盘下棋和鼠标下棋两种下棋方式
与五子棋不同的是,六子棋黑方先手第一步可下一子,之后双方轮流下棋每次可下两子
%按键函数初始化设置: %初始化前清除原有图像: %棋子棋盘数值初始化:对弈双方各有九个棋子,轮流下到特殊棋盘的空位上。
当有己方三子连成一线时,可吃掉对方未连成一线的棋子。
当所有棋子被摆放到棋盘上时,双方轮流移动棋子(向棋子相邻方向),并通过移动棋子将三子连成一线来吃对方棋子。
当一方只剩三颗棋子时,移动方向可以是棋盘上的任意空位。
当将对手的棋子吃到只剩两颗即为获胜。
%按键函数初始化设置: %初始化前清除原有图像:能看到这里也是辛苦了,毕竟这么长一个文章,大家可以将文中的代码复制下来运行一下,看看其中相似的结构部分,和为了迎合不同功能做出的改变。
欢迎大家指出程序中的问题,之后可能会尝试写一些国际象棋,跳棋之类的棋类游戏,敬请期待。
五子棋禁手,指对局中禁止先行一方(黑方)使用的战术,具体包括黑方一子落下时同时形成双活三、双四或长连等三种棋形。禁手只对黑方有效,白方无禁手。黑方禁手的位置称为禁手点。
禁手分为三三禁手、四四禁手、长连禁手:
三三禁手:黑棋一子落下同时形成两个活三,此子必须为两个活三共同的构成子;
四四禁手:黑棋一子落下同时形成两个或两个以上的冲四或活四;
长连禁手:黑棋一子落下形成一个或一个以上的长连。
对黑方的行棋加以限制,从对局的实际棋力的发挥来看,对双方是比较公平的。五子棋是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏。
通常双方分别使用黑白两色的棋子,轮流下在棋盘竖线与横线的交叉点上,先形成五子连线者获胜。在专业五子棋竞赛规则中,另有交换、禁手等规定,用于限制先行方优势。起源于东亚地区,主要流行于华人和汉字文化圈的国家。
棋盘可用木料、硬纸、塑料、布料、石料或环保材料等制成。棋盘由横纵各15条等距离,垂直交叉的平行线构成,在棋盘上,横纵线交叉形成了225个交叉点为对弈时的落子点。邻近两个交叉点的距离要略大于棋子的直径。