五子棋过程中用到的知识【flash as3 】
总结一下编写五子棋过程中用到的知识: 1.落子: 在棋盘上添加一个鼠标监听事件chess.addEventListener(MouseEvent.MOUSE_DOWN,MouseDown);在MouseDown函数中可获取当前鼠标点击的像素坐标event.stageX和event.stageY,并转换为15*15的棋盘坐标,然后再转回像素坐标,此坐标正好位于棋盘十字叉上,再在此处addChild(Piece);就实现了放置Piece。设一个标志位flag,单数放白棋,双数放黑棋。 2.判输赢: 算法大概是当前棋子(i,j)检测4个方向,当前棋子所在的行、列、撇、捺,有没有连续的同色棋子,设黑棋b=-1,白棋b=1,无棋子b=0,和为5赢。 行检测:i不变,j从0加到14, 列检测:j不变,i从0加到14, 撇检测:如果i+j<14,i从i+j减到0,j从0加到i+j; ????????如果i+j>14,i从14减到i+j-14,j从i+j-14加到14; 行检测:如果i-j>0,i从i-j加到14,j从0加到14-i+j; ????????如果i-j<0,i从0加到14-i+j,j从j-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的编码保存。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |