用AS3.0制作五子棋
2015-11-14 22:01
239 查看
因为自己刚做了一个五子棋懂得还不是很多,这里写点自己的心得,如果哪里写的不对或者不好希望大家多指点指点。
首先讲讲棋子怎么下在棋盘上。我是自己画了个12*12的棋盘并且设定好棋盘的坐标。
我这里是设置在(50,100)棋盘大小是500*500所以棋盘每个节点之间间距就是45.5,再通过对鼠标的监听获取鼠标点击屏幕位置的坐标。这个获取到的坐标再通过计算就可以得到点击的位置属于哪个节点的区域和它的虚拟坐标。找到这个坐标我们就容易下这颗棋子了。
我事先把棋子做成影片剪辑并设置好AS链接。下面是生成棋子到相应位置的代码:
Plain Text code
?
写代码的时候千万别忘了判断鼠标点出界时候的情况以免出现程序出错。讲了添加棋子再讲讲怎么删棋子。利用removeChildAt()和numChildren两个函数就可以轻松的解决这个问题。当你每下一颗棋子的时候numChildren就会自动+1。假设你下了n颗棋子numChildren就为n,然后在用removeChildAt(n),就可以删掉刚刚下过的那颗棋子,再用个循环就可以全删光了。这两个函数一般重新开始和悔棋功能里面会有用到。
接下来就是输赢的判断,我把每个棋子下的位置都用数组arr【】【】表示出来,空子为0,黑子为1,白子为2。这里我引用一个别人的思路。用字符串对比,落棋后,以横向为例,从当前点(i-4)到(i+4)一共9个点,将从arr数组中取出的int值合并为字符串str,(请注意处理数组越界空指针问题)若str.indexof(“11111”)> 0,则表示在str字符串中存在连续5个棋子,即五子连珠,即可判断输赢。
因为时间不多所以只能写了这么一点剩下的下次补上。(PS:因为第一次写所以写的不是很好希望大家多多指点!)
首先讲讲棋子怎么下在棋盘上。我是自己画了个12*12的棋盘并且设定好棋盘的坐标。
我这里是设置在(50,100)棋盘大小是500*500所以棋盘每个节点之间间距就是45.5,再通过对鼠标的监听获取鼠标点击屏幕位置的坐标。这个获取到的坐标再通过计算就可以得到点击的位置属于哪个节点的区域和它的虚拟坐标。找到这个坐标我们就容易下这颗棋子了。
我事先把棋子做成影片剪辑并设置好AS链接。下面是生成棋子到相应位置的代码:
Plain Text code
?
接下来就是输赢的判断,我把每个棋子下的位置都用数组arr【】【】表示出来,空子为0,黑子为1,白子为2。这里我引用一个别人的思路。用字符串对比,落棋后,以横向为例,从当前点(i-4)到(i+4)一共9个点,将从arr数组中取出的int值合并为字符串str,(请注意处理数组越界空指针问题)若str.indexof(“11111”)> 0,则表示在str字符串中存在连续5个棋子,即五子连珠,即可判断输赢。
因为时间不多所以只能写了这么一点剩下的下次补上。(PS:因为第一次写所以写的不是很好希望大家多多指点!)
相关文章推荐
- sort方法的使用、随机数的产生
- Linux平台上搭建apache+tomcat负载均衡集群
- 04_树4_判断是否为同一二叉搜索树
- Linux高级编程之Linux程序地址布局
- hdoj 1312 Red and Black【bfs】
- 成绩判定
- Junit初级编码(一)第一个Junit测试程序
- 常见排序算法
- 从事科研项目的心得
- HDOJ 5562 Clarke and food(贪心,水)
- JAVA Executor简介
- BIOS工程师手边事--SMM模式
- hdoj 2151 Worm【dp】
- 使用NGINX反向代理做小偷站
- prepare
- c++ 枚举的定义、设置值、取值范围
- 【数据库5】过滤查询
- hdoj Worm 2151 (DP)
- hdu--1198
- Looper、Handler、Message以及消息队列模型