整数 黑图,白图,执棋;文本 棋组[256];消息框类 信息(风格=$80,实例=$400000)
小程序 窗体消息(整数 窗口,整数 消息,整数 参数,整数 数据)
判断(消息)
为 窗口关闭 {停止(0)}
为 单击左键{左键点击(参数,数据)}
否则{处理窗口(窗口,消息,参数,数据)}
结束;
小程序 窗体启动
整数 左边,上边=4,编号=0;
循环在(上边<565){
左边=4
循环在(左边<565){
创建窗口(0,"Static",0,$5000010E,左边,上边,36,36,窗体,编号,0,0);
左边+40;编号++}上边+40;}绘制棋盘
信息.内容="恭喜!你赢了"
黑图=载入位图($400000,1)
白图=载入位图($400000,2)
读取消息
结束;
小程序 绘制棋盘
整数 设备,位置=20;
设备=取设备(窗体)
循环(15){
移到(设备,位置,20,0)
画线(设备,位置,580)
移到(设备,20,位置,0)
画线(设备,580,位置)
位置+40;}
结束;
小程序 左键点击(整数 参数,整数 数据)
如果(棋组(参数)=0){
如果(执棋){棋组(参数)=1;
五子检查(参数,1)
执棋=假;参数=白图
改窗口字(窗体,"黑方执棋")}
否则{棋组(参数)=2;
五子检查(参数,2)
执棋=真;参数=黑图;
改窗口字(窗体,"白方执棋")}
发送消息(数据,$172,0,参数)}
结束;
小程序 五子检查(整数 参数,整数 黑白)
整数 左,上,右,下,数,列,行;
上=参数 / 15;下=上;
左=参数 % 15;右=左;
如果(黑白=1){信息.图标=103;信息.标题="白方执棋"}
否则{信息.图标=101;信息.标题="黑方执棋"}

数=参数-1;列=参数 % 15;
循环在(列 >0 而且 棋组(数)=黑白)
{数--;列--;}如果(左>列)左=列

数=参数+1;列=参数 % 15
循环在(列 <14 而且 棋组(数)=黑白)
{数++;列++}如果(右<列)右=列

数=参数-15;行=参数 / 15
循环在(行 >0 而且 棋组(数)=黑白)
{数-15;行--}如果(上>行)上=行

数=参数+15;行=参数 / 15
循环在(行 <14 而且 棋组(数)=黑白)
{数+15;行++}如果(下<行)下=行

数=参数-16;列=参数 % 15;行=参数 / 15
循环在(列 >0 而且 行>0 而且 棋组(数)=黑白)
{数-16;列--;行--}如果(左>列)左=列

数=参数+14;列=参数 % 15;行=参数 / 15
循环在(列>0 而且 行 <14 而且 棋组(数)=黑白)
{数++;列--;行++}如果(左>列)左=列

数=参数-14;列=参数 % 15;行=参数 / 15
循环在(行 >0 而且 列<14 而且 棋组(数)=黑白)
{数-14;列++;行--}如果(右<列)右=列

数=参数+16;列=参数 % 15;行=参数 / 15
循环在(行 <14 而且 列<14 而且 棋组(数)=黑白)
{数+16;列++;行++}如果(右<列)右=列

如果(右-左 >3 或者 下-上 >3)消息框(信息)
结束;


费先生
1 声望0 粉丝