五子棋过程中用到的知识【flash as3 】

总结一下编写五子棋过程中用到的知识:

1.落子:

在棋盘上添加一个鼠标监听事件chess.addEventListener(MouseEvent.MOUSE_DOWN,MouseDown);MouseDown函数中可获取当前鼠标点击的像素坐标event.stageXevent.stageY,并转换为15*15的棋盘坐标,然后再转回像素坐标,此坐标正好位于棋盘十字叉上,再在此处addChild(Piece);就实现了放置Piece。设一个标志位flag,单数放白棋,双数放黑棋。

2.判输赢:

算法大概是当前棋子(ij检测4个方向,当前棋子所在的行、列、撇、捺,有没有连续的同色棋子,设黑棋b=-1,白棋b=1,无棋子b=0,和为5赢。

行检测:i不变,j0加到14

列检测:j不变,i0加到14

撇检测:如果i+j<14ii+j减到0j0加到i+j

        如果i+j>14i14减到i+j-14ji+j-14加到14

行检测:如果i-j>0ii-j加到14j0加到14-i+j

        如果i-j<0i0加到14-i+jjj-i加到14; 

3.悔棋功能:

 chess1.removeChildAt(num-1);//num是当前棋子个数,移除最后下的那颗棋子,同时需要把棋子标志位删除、移除相应的坐标。

 

4.replay功能:

 while((chess1.numChildren)-1)

            {
     chess1.removeChildAt(1);//只要还有棋子就移除最底下的那个child
          }


5.复盘:

如果退出游戏是点击保存,就把先行棋的颜色,两个用户名,棋子的坐标保存在本地,下次打开本程序时若点击back则进入上次残局。保存在本地的方式是txt。

 var txtLoad:URLLoader = new URLLoader();//txt.txt文本以UTF-8的编码保存。
     var txtURL:URLRequest = new URLRequest("cuplayer.txt");
     txtLoad.addEventListener(Event.COMPLETE, showContent);
     txtLoad.load(txtURL);
     function showContent(evt:Event):void{

data_string= evt.target.data;
dataArray=data_string.split(",");//将
先行棋色(0或1),用户名和棋子坐标储到数组


 gotoAndStop(2); 
}





  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值