五子棋编写思路解剖
此五子棋是用vc2005编写的,v6下可能调试不通,需v6版的可以加入编程技术群
(扬名编程技术92790715),此群以后会被发扬光大的。
此五子棋是纯粹个人思考的结果,没有任何人,任何资料的借鉴。但看着自己的思考编程现实的时候,内心是兴奋的。作为编程的爱好者,只有不断将自己的想法用程序区实现,才会真正做到程序融入生活,才可能不断提升,有机会达到高手状态。
设计思路,界面和算法其实是分开的,也是我的五子棋酝酿了很久才有思路的原因。把界面和算法统一处理的时候,就会显得异常难弄,也就没多大的动力下手了。
总体思路:
1.生成mfc基于对话框的模块。
2.绘制表格,获取对话框的宽度和高度后画线等分。在onpaint函数内操作的,画棋子也是在其中操作的。
3.根据表格的交界和数组对应,就相当于一个点看作一个元素。同时每个点对应的坐标值是可以算出来的,就是等分原理。比如总长100,坐标就是10,20,。。
4.事件映射数组,有一个双击事件,用来获取鼠标的光标值,这个值和网格点的哪个值最接近就算是哪个点被点击了。
5被点击后数组用1,2标志。onpaint里话棋子,如果为1,2就画两种不同的子。
6,算法,就是看数组中子的情况。比如有五个连续的1,那么就提升我赢了。具体判断可以用一个点一个点的if。
7,是倒推的,如果发现电脑自己有4子,就把盘边的子值设置为2.否则发现自己有3子,且可胜也置2.没中情况都写成函数。具体可见程序。
希望对你的编写有启发。
这是初级版的,只能下过一般的菜鸟。但算法还是用了2oo行左右,你可以优化啊。
是本人的劳动成果,转载时不要把这个文档改了啊。
我们都是爱好编程的人,我们都有成为高手的目标,我们需要交流,需要共同奋斗,团体可能提高个人战斗力,希望加入群(扬名编程技术92790715)。