欢迎来到天天文库
浏览记录
ID:20956315
大小:1.39 MB
页数:18页
时间:2018-10-18
《c语言编程-五子棋》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、YUST卢文虎五子棋编程序的时候着手点是什么?1.我们要输出什么2.我们要输入什么3.中间环节应该怎么做输入输出-page1-那么我这个程序的着手点在哪里?就是输出环节~一开始我们就会清楚地了解自己想要输出什么-page2-我们要输出的无非就是以下结果。。。但现阶段我只会用C语言,并且不会graphic的情况下能不能做到呢?为此我花了不少心思~-page3-1.棋盘2.棋盘旁边的数字3.棋子4.PlayerXiswinner-page4--page5-1.棋盘利用数组与坐标系的微妙关系终端中很容易把二维数组输出成第四区这种
2、样子,我们可以把每个数组元素看成是坐标系的每一个点一区二区三区四区2.棋盘旁边的数字数字用来表示坐标,这个怎么办?很简单,只要把原点设定在左上角(0.0)位置,而真实棋盘是以(7.7)为起始点的内部长方形,而且这么做还有一个理由,会在稍后给大家解释(0.0)(7.7)(0.22)(22.22)(22.0)棋盘-page6-0.0113422343.棋子这里我没能使用什么比较高明的办法,只用1和2来表示玩家1和玩家2的棋子-page7-把1和2赋值给数组元素,再用printf输出出来就可以了4.playerXiswinner大家
3、玩这个游戏的时候都知道一方出现3个连续棋子以后另一方至少要防住3个连续棋子的一端,不然会在2步内失败,而电脑需要知道这一点吗?其实,电脑根本不需要知道这一点,电脑只需要知道的信息就是某个玩家输入以后那个玩家的棋子是否是连续的5个棋子,只要有一名玩家输入棋子后出现了连续的5个棋子,那名玩家便会被系统认知为胜出,输出最后棋盘的样子,输出playerXisWinner后结束游戏-page8-4.playerXiswinner那么,如何判断一名玩家输入后有连续的5个棋子?这便是这个程序的核心模块,检索判断部分-page9-我们都知道,
4、用两个for文重叠可以把二维数组中每个元素赋值或者输出,其实这时候,在每一个点,两个变量x和y被for文调整之后,就可以确定一个点a【x】【y】,之后以a【x】【y】为中心,检查4个点是否为Player1或者Player2的棋子(1或2)如果是的话,输出:player1iswinner!之后结束程序-1号-4.playerXiswinner-page10--2号--3号--4号--5号-4.playerXiswinner-6号--7号--8号--page11-顺序检查1-8号检索模块,顺序检查8个模块这个过程就是检索模式4.p
5、layerXiswinner这样,我们就对一个元素进行了检查,之后,随着双重for文的继续,我们就可以对棋盘中每一个点都进行顺序检查,这时候我们才知道,之前没有把(0.0)元素设为起始点是正确的,这样就不会出现数据溢出。而要是把a【0】【0】元素设为棋盘初始点,刚才1号检查的4个紫色元素将不会存在,出现数据溢出error棋盘-1号--page12-有关细节-page13-核心部分已经明确,以下就是细节部分。1.棋盘旁边的数字要放在刚才棋盘的空位部分,这个如何合理做到2.应该什么时候清屏3.Terminal中显示文字并不是方形,
6、而是长方形!-page14-1.棋盘旁边的数字要放在刚才棋盘的空位部分,这个如何合理做到1234567891K23456789就这样,0.0元素不赋值,一开始18个元素被赋值一次,之后输出在屏幕上的时候,就可以显示坐标了,我们看到的图中的数字不是被放在方形里面,而是旁边的坐标点。当然,我们输入坐标后不能直接按照玩家输入的坐标来给元素赋值,而是x和y都要加上现在棋盘上K点的x,y值来赋值给指定元素-page15-2.应该什么时候清屏Do-while文循环清屏,显示棋盘,提示玩家1输入玩家1输入坐标,之后进入检索模式清屏,显示棋盘
7、,提示玩家2输入玩家2输入坐标,之后进入检索模式主函数中设置Mainmenu,用来进入游戏和退出terminal流程图中没有mainmenu部分主函数中设置棋盘的数组a【】【】-page16-3.Terminal中显示的文字并不是方形,而是长方形!11111111111111111111111111111111111如图,一个文字是以长方形的模式显示在终端中,南北方向是东西方向的2倍,所以,其实我们编写这个程序的时候理论上的数组是矩形而不是正方形,东西方向的元素个数是南北方向的2倍(二维数组的a【y】【x】),(x为y的2倍)
8、,而编写检索模式部分时,也要考虑这一点来做。图中1就是可赋值部分,而空白部分要留着用来平衡棋盘的形状建议与改进YUST卢文虎
此文档下载收益归作者所有