c语言游戏编程题经典100例跳棋的C语⾔,跳棋游戏C语⾔程序设计(数据结构课程设
计).doc
跳棋游戏C语⾔程序设计(数据结构课程设计).doc
跳棋程序设计李雄志学号2012214157数学与应⽤数学12-1班1. 问题描述;2. 程序分析;3. 程序算法;4. 思考感悟。⼀,问题描述题⽬要求设计⼀个跳棋程序,要求界⾯友好,可以实现⼈机对弈。游戏规则1. 玩家要先确定⾃⼰的棋⼦坐标;2. 确定完坐标在确定将下的位置,但是只能下对⾓;3. 当对⾓出现对⽅的棋⼦是则,可以将对⽅的棋⼦吃掉并且跳过棋⼦;4. 棋⼦不能向后⾛;5. 如果双⽅其中⼀⽅到对⽅阵地3个就算赢,或者,双⽅其中⼀⽅棋⼦少于3个就算输。⼆,程序分析在设计这个程序之前由于我和同学做了⼀些前期准备⼯作。主功能函数包含了整个游戏程序的函数,调⽤⼀个欢迎界⾯,然后打印棋盘,⼈机对弈的棋盘,然后⼈⾛棋,选择棋⼦(坐标),再选择即将落下地⽅的坐标,电脑⾛棋,如此往复,直⾄游戏结束详细介绍⾸先,先画好棋盘,把棋⼦全部放置好,对⾯是电脑,把玩家棋⼦是A,电脑的棋⼦B,其中空⽩是可⾛的,.是不可⾛的,.放置的⽅法可以是横列坐标之积整除2,即ij20,⽤cout来输出,并且把坐标画上,上⾯数字是列,右边数字是⾏。画好棋盘后,接下来,考虑下棋的步骤,因为还要考虑吃棋⼦,所以先从⾛棋开始,开始玩家先⾛棋,玩家或者电脑选择了棋⼦后,会选择下棋的地⽅,电脑则是随机。玩家则是选择下的坐标,然后是考虑吃棋⼦,电脑是遍历棋⼦,选哪些能否吃棋
⼦,能则吃掉对⽅的棋⼦,并跳过去,玩家则是选择⼀个棋⼦,如果能吃棋⼦则吃。再有,在下棋的过程中,要⽤到清屏,头⽂件stdlib.h,其次,是不断的打印新的棋盘,这样才能观察玩家与电脑的对弈对应的函数成员re_disp。其中遇到的问题,电脑⾛棋时,随机的棋⼦和随机下的地⽅,从右边看是遍历选择,吃棋⼦是,对⾓要有对⽅的棋⼦,⽽且对⽅后⾯没有棋⼦;解决⽅案是,数组将坐标记录下来并且赋值。另外在参考⽹上的程序思路时,我对程序进⾏了⼀些修改,使得游戏的界⾯更清晰美观,并且优化了⼀部分内容。以及⼀开始设计的程序,会出现当玩家输⼊错误之后屏幕显⽰会不断地堆砌提⽰信息,从⽽提⽰信息会占满屏幕,也进⾏了改进。三,程序算法
includestdio.hincludeiostream.hincludeconio.hincludestdlib.hint t1;int n0;表⽰真假class
TGamepublicTGame;print;computer;re_disp;重新显⽰棋盘init_player;game_judge;判断胜负eat_computer;eat_playerint i, int j, int x, int y;privatechar a66;int i,j;char swap;交换int win,failTGameTGamewin0;fail0;TGameprintint s0;cout 0 1 2 3 4 5endl;cout endl;打印棋盘格⼦for i0;i6;iforj0;j6;jifij20cout ;cout.;此处不能⾛aij.;elsecout ;ifi3i2cout ;空⽩可以⾛aij ;ifi4coutA;⼈的棋⼦aijA;else ifi1coutB;电脑的棋⼦aijB;cout s;s;coutendl;ifs5打印棋盘格⼦cout ;coutendl;elsecout ;coutendl;TGameeat_playerint i, int j, int x, int yifaijAif ai-1j-1Xai-1j1Bifaxy ix2jy2swapaxy;axyaij;aijswap;ai-1j-1 ;win;n1;re_disp;else ifaxy ix2jy-
2swapaxy;axyaij;aijswap;ai-1j1 ;win;n1;re_disp;TGameeat_computersystemcls;fori0;i4;iforj5;j0;jifaijBifai2j-2 ai1j-1Aswapai2j-2;ai2j-2aij;aijswap;ai1j-1 ;fail;n1;cout玩家吃掉⼀⼦endl;re_disp;else ifai2j2 ai1j1Aswapai2j2;ai2j2aij;aijswap;ai1j1 ;fail;n1;cout玩家被吃掉⼀⼦endl;re_disp;TGamecomputereat_computer;ifn0int s;fori4;i0;iforj4;j0;jsj;ifai1j-1 aijBint t;tai1j-1;ai1j-
1aij;aijt;break;else ifai1j1 aijBint t;tai1j1;ai1j1aij;aijt;break;ifsjbreak;n0;systemcls;cout电脑⾛了⼀步endl;ifn1cout电脑吃掉了⼀⼦endl;re_disp;TGamere_dispint k;cout 0 1 2 3 4 5endl;cout endl;fori0;i6;iforj0;j6;jcout aij;cout i;ki;k;ifk5coutendl;cout
;coutendl;elsecoutendl;cout ;coutendl;TGameinit_playerint i,j,x,y;cout请选择棋⼦的横纵坐标,之后按回车键继续endl;cinij;cout请选择你将下的位置坐标,之后按回车键继续endl;cinxy;eat_playeri,j,x,y;ifn0ifix1jy-1axy aijAswapaxy;axyaij;aijswap;else ifix1jy1axy aijAswapaxy;axyaij;aijswap;elsesystemcls;re_disp;cout您选择的不是棋⼦请重新选择,或者您落⼦的位置不正确
endl;init_player;n0;re_disp;TGamegame_judgeint ch10,ch20;forj0;j6;jifa0j ch1;ifa5jBch2;ifwin3ch13coutYOU WIN
endl;t0;iffail3ch23coutYOU LOSE endl;t0;textbackgroundsystemcolor a1; return 0;int mainsystemcolor a1;void textbackgroundint color;systemcls;printfn- 数 字 跳 棋 游 戏改进版 n;cout玩家棋⼦是A,电脑棋⼦是B,.表⽰不可⾛。endl;printfnn PRESS ENTER TO START nn;getchar;systemcls;TGame
game;game.print;whilet1game.init_player;puter;game.game_judge;cout PRESS ENTER TO END endl;getchar;cout G A M E O V E R ;getch;return 0;四,思考感悟通过这次课程设计我发现了⾃⼰很多的不⾜,⽐如对课本上的知识认识不够深刻,相关的课外知识积累不⾜等等。同时这次课程设计也让我收获了很多东西,让我知道了⽆论多么困难的事情只要静下⼼来认真去做就会有成功的希望,⽽且沉浸在某件事情⾥⾯充分发挥⾃⼰的才能本⾝也是⼀件很开⼼的事情。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。