C#五子棋


因为要得找工作了,不得不写些文章让HR更多的了解到我,同时能帮到别的同学也是好的。因为接触Unity时间不是特别久,所以这里先帖出早期开发的C#游戏,然后再帖Unity游戏。

另外提醒,我的所有作品都是自己开发的,绝无抄袭(程序代码和编程思想绝没超抄过别人的),最多也就是高仿别人的游戏(贪吃蛇算吗?俄罗斯方块算吗?炸弹超人算吗?五子棋算吗?)。

转载请标明出处!!



游戏说明:

1.这是我开发的第二个游戏(那天有培训机构想招人,说你们学了这么久编程能写出五子棋什么什么的不,当晚我就把这个程序写出来了。。500行代码还是我加了一些其他功能后的,其实核心代码没几行)

2.一个界面,一期版本是用鼠标点击操作,这个是后来改为可两人玩,都用键盘操作的。黑棋用1,2,3,5,+,来操作,没小键盘的孩子没法玩了。。当时没考虑到小屏幕笔记本玩家

3.可设置白棋、黑棋、随机三种下子顺序,可设置棋盘上落子数,黑白比分,清零。

4.上一步刚刚落子的棋子中心有个红十字来标示,很方便玩家的小功能



开发思想:

1.依然是二维数组来表示棋盘落子状态,没落子是0,白子是1,黑子是2。

2.每一次落子后,横向,纵向,斜向检查是否有五子连珠。拿横向来举例,数组下标0-14,先检查0-4是否全是1,用一个循环或者专门写个函数就好了。如果中间有0或2,那检查1-5,以此类推。如果全是1那白就赢了,或者判断刚刚落子的是哪一方,随意。当然,这里面有2个效率小问题,有兴趣的可以优化。这只是一行的判断,要判断14行,完了要判断14列,还要判断不知道多少行的斜向情况。提醒一下,斜向五子连珠的检测算法是个大坑,自己去想,想不通了再看我的代码。

3.补种一种五子连珠的检测算法,很简单:每一次落子后,以落子位置为中心,向八个方向逐个连续扫描5个点,如果5个点相同,那就赢了。唯一需要注意的是向外扩散检测时不要超出数组下标。这样每次只用8次循环里面嵌套5个点检测循环的步骤就好了,尤其对大棋盘很有优势。

4.如果用键盘控制,那肯定要有个“光标”表示将要落子位置,那问题来了(不要跟我提蓝翔!!),按了落子后,是要显示白色的棋子的,那光标呢?没了啊!!因为每一个棋子都是一张picturebox,Image属性显示了棋子,光标是没法显示的,即使Image资源有透明背景,一样会被压下去。所以,其中一个解决办法是再做一个有棋子和光标同时存在的Image图片。。。然后你会发现,凑!MD有黑子,黑子+黑光标,黑子+红十字,黑子+红十字+黑光标,黑子+白光标,黑子+红十字+白光标。。。黑子的终于完了,还有白子。。这么多图片资源。。。键盘控制就是这么D疼,我就是这么干的。。想简单点就写鼠标点击落子吧



完整项目包下载地址:http://download.csdn.net/detail/q594076608/8044717



下面这个版本就更简单了,设计模式里的享元模式做的,鼠标点击落子


享元模式五子棋下载地址:http://download.csdn.net/detail/q594076608/8054419


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值