C语言图形五子棋课程设计报告_第1页
C语言图形五子棋课程设计报告_第2页
C语言图形五子棋课程设计报告_第3页
C语言图形五子棋课程设计报告_第4页
C语言图形五子棋课程设计报告_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉赵帅帅何虹达C语言课程设计报告课题名称:游戏五子棋指导教师:尹乾课题组员:罗福莉赵帅帅何虹达院系:信息科学与技术时间:2014315-2014420 1 C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达摘要五子棋是一种两人对弈的纯策略型棋类游戏, 应用 C 语言编写程 序可以在计算机上实现二人对弈五子棋功能。 二人对弈五子棋程序由 欢迎界面显示、游戏界面生成、光标移动与落子、判断胜负、悔棋功 能、提供音效等子程序构成; 程序中应用了结构体、 数组、全局变量、 按键处理和图形编程

2、等元素和语句。程序通过棋盘和棋子图像生成、 二人移子与落子和判断胜负等功能的实现, 在计算机上实现了二人五 子棋对弈。目录摘 要2第 1 章:需求分析 41.1五子棋背景 41.2 五子棋需求分析和流程设计 4第 2 章:概要设计 82.1 各类头文件和全局变量 82.2 画面显示模块 8第 3 章:详细设计 113.1 玩家操作模块 113.2音效提供模块 113.3 胜负判断模块 12第 4 章:调试分析 134.1 图形模块 134.2 玩家操作模块 134.3 胜负判断模块 14第 5 章:用户手册 14第 6 章:小组分工 15第 7 章:结论与心得 16第 8 章 :源程序代码 1

3、6附录一 Color命令的使用说明 2929附录二 ASCII 码表 3 C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达第1章:需求分析1.1五子棋背景传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为18X18 棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先 将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。因为传统五子棋在落子后不能移动或拿掉, 所以也可以用纸和笔 来进行游戏。1.2五子棋需求分析和流程设计本程序设计为人与人对弈,一方执黑棋,一方执白棋,轮流走棋, 每方都试图在游戏结束前让自己的棋子五子相连, 首

4、先实现五子相连 的一方获胜。程序执行过程中,要求棋盘、棋子时时可见,游戏界面 有提示信息轮到何方下棋,人可以通过按键盘按键移动光标, 再点击 enter键摆放棋子,并且每落一子都有系统声音,创新之处是可以提 供悔棋功能。1.2.1 程序需求分析根据功能需求,将程序分为画面显示、玩家操作、音效提供、胜 负判断五个模块,以下分析各模块的需求。画面显示模块: 程序开始运行时,显示制作者和给出欢迎及退出 界面;游戏开始后要求生成18 X 18的棋盘图像,并在棋盘上方显示 欢迎信息“欢迎 play our 五子棋”,棋盘下方游戏显示应该轮到甲方 或者乙方落子,棋盘左右显示双方操作方式,进行过程中,要求实

5、时 显示棋盘上已落下的棋子,甲方为白球,乙方为白圈;分出胜负后, 要求给出游戏结束画面 ,并且询问用户是否需要继续游戏。玩家操作模块: 程序开始时,需玩家确定选择“人人对战”后开 始游戏;游戏过程中,两个玩家通过不同的按键移动光标, 选择落子; 游戏进行过程中,当前玩家下棋后,另一位玩家下棋前,当前玩家可 以悔棋。悔棋提示在棋盘右下方,为按键“ b”。游戏结束时,有玩家 选择是否开始新游戏。音效提供模块: 玩家每落一子,系统提供音效一声,增加下棋的 趣味性。胜负判断模块: 实时监测棋盘上棋子,一旦某一色棋子出现五子 连线,终止游戏程序,并着色连成一线的五子,棋盘下方弹出该色玩 家胜出信息。 5

6、 C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉赵帅帅何虹达1.2.2程序流程设计根据程序需求分析结果,可以得出程序的总体结构图如图1,程序总体流程图如图2。五子棋五子棋游戏模块一:模块二:画面显示玩家操作模块三: 首效提供模块四: 胜负判断 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉赵帅帅何虹达 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉赵帅帅何虹达图1五子棋总体结构图 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉赵帅帅何虹达图2程序总体流程图7C语言课程设计报告五子棋北京师

7、范大学2013级信息科学与技术学院罗福莉赵帅帅何虹达4悔棋开始制作者展示进入菜单界面人人对战?开始游戏En ter甲方获胜?悔棋乙方判断退出游戏甲方判断确认退出?In |En ter乙方获胜?N .ESC显示甲方获胜消息确认退出?显示乙方获胜消息否继续新游退出*游戏图2程序总体流程图#C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉 赵帅帅 何虹达第 2 章:概要设计2.1 各类头文件和全局变量#include <stdio.h> #include<windows.h> #include <stdlib.h>图4主菜单界面图 # C语言

8、课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉 赵帅帅 何虹达图4主菜单界面图 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉 赵帅帅 何虹达#include<conio.h>II使用getch()函数图4主菜单界面图 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉 赵帅帅 何虹达图4主菜单界面图 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉 赵帅帅 何虹达int startchoice;II图4主菜单界面图 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗

9、福莉 赵帅帅 何虹达图4主菜单界面图 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉 赵帅帅 何虹达IIIIint winner;int player;图4主菜单界面图 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉 赵帅帅 何虹达图4主菜单界面图 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉 赵帅帅 何虹达Q200200= 0;IIQ 数组记录旗子图4主菜单界面图 # C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉 赵帅帅 何虹达图4主菜单界面图 # C语言课程设计报告五子棋北京师范

10、大学2013级信息科学与技术学院罗福莉 赵帅帅 何虹达char button;II 读入键盘输入的指令,2.2 画面显示模块画面显示模块由欢迎界面,游戏棋盘界面,确认是否退出对话框界面,以及感谢使用界面组成。画面显示模块函数如下:void Welcome()II 欢迎界面void Draw()II 绘画游戏棋盘界面void Clean()II清除一-运动的轨迹void me nu_choose(char press)/选择是否退出游戏对话框void PutDow n()/显示落子函数void goto_xy(i nt x, i nt y)/ 光标移动函数画面效果图如图3,4,5, 6CAUse

11、 rsXasusXDesktopXH-J-iM.exe欢迎2汕五子棋!作者:小萝莉HE HondaZSSB图3欢迎界面图主菜单>*人入对 战*很 1屮,MW*图4主菜单界面图 11 C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院罗福莉赵帅帅何虹达就迎play our五子棋!甲方|移动:落子:ESC乙方,移动:O上 t 下 ( 左十 右f Enter图5游戏界面图乙方,移动:X下左右涪子:EnST5aSUSd*上:迎play our五子棋!图6确认退出对话框#C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达第 3 章:详细设

12、计3.1 玩家操作模块棋子的移动与落子有键盘上按键控制, 本程序选取甲乙双方按键 都为W、S、f、J、J、T和回车键,“b”,“ESC,分别代表上移、 下移、左移、右移光标和落子,悔棋,退出。在光标移动的过程中, 光标按照玩家按键移动; 在玩家按下落子按键后, 程序自动调用棋子 显示子程序和判断胜负子程序。 当前玩家下棋后, 另一位玩家下棋前, 当前玩家可以悔棋。悔棋提示在棋盘右下方,为按键“b”。甲乙的落子后,程序会为落子处的数组元素赋一个特定值 (玩家甲的棋子赋为 1,玩家乙的棋子赋为 2),用于判定胜负和悔棋。玩家操作模块主要由以下函数构成:void Record()/ 记录棋子的情况v

13、oid go_back(int x1,int y1)/ 悔棋函数void Play(char ch) / 读取键盘的操作 移动光标 下棋和悔 棋操作3.2 音效提供模块为了提高游戏的趣味性,我们为本游戏提供了简单系统音效。程序语句很简单printf("a");/'a' 表示蜂鸣声3.3 胜负判断模块胜负判断模块是程序的关键,该模块的设计直接关系到程序的运 行速率和运行结果的正确与否。 本函数根据每次落子的位置, 分别向 上、下、左、右、左上、左下、右上、右下八个方向判断是否有相同 颜色的棋子连成五子,如果成立,游戏就结束,并显示提示信息,否 则继续落子。以下

14、简析本程序流程: ,由获胜条件可以知,通过判断行、列、斜 边、反斜边方向上是否有连续的 5 个子即可得出是否获胜结果。 在游 戏开始时,将棋盘初始化, 即将棋盘抽象为一个 18*18 的数组, 数组 中每个元素数值设为 0。甲方落子时,将数组内相应坐标处元素赋值 为 2 ;乙方落子时,将数组内相应坐标处元素赋值为 1。通过循环扫 描棋盘数组,经扫描后,如发现在行、列、斜边、反斜边方向上有五 个连续的 2,甲方获胜;如发现在行、列、斜边、反斜边方向上有五 个连续的 1,乙方获胜。胜负判断模块主要由一个函数构成:int Judge() / 判断胜负函数第 4 章:调试分析4.1 图形模块1在图形模

15、块中,因为是第一次使用,所以刚开始时对于棋盘 创建的位置把握有些欠缺。解决方案:参考书本以及google,找出最合适的位置坐标。2. 在构建棋子时候,发现 C 语言中似乎对颜色的处理有些错误, 当棋谱线的颜色为白色时,无法构建黑色棋子,只能画出白色棋子。解决方案:用白圈区别于白球,类似白子和黑子。4.2 玩家操作模块1. 在玩家操作模块中, 出现的最大问题之一就是棋盘已经有棋子 的地方还可以覆盖另一个棋子。解决方案:通过在PutDown()函数中添加if条件语句,判定如果所在位置对应的数组值不等于 0 时,不能落子。2. 另一个问题就是之前提到的, 操作定位框的时候会将定位框移 到棋盘之外造成

16、溢出。解决方案: 通过 if 语句判定,如果操作框超出范围则移动到对 应相反位置,例如移动棋盘最上端,若继续向上移动,则移动至棋盘 最下端对应位置。 15 C语言课程设计报告五子棋北京师范大学2013级信息科学与技术学院 罗福莉赵帅帅何虹达3. 还有一个就是悔棋模块中,通过将现有棋子覆盖与棋盘底色相 同的颜色来覆盖后,棋谱线条部分也会被覆盖。解决方案:在go_back()即悔棋函数。用棋谱线来覆盖棋子(例如:r L卜等)。4.3胜负判断模块1. 在胜负判断中一直没能想到好的办法来数据化判断哪方玩家获得 胜利。解决方案:通过参考书籍并加以优化,得出将棋谱做成数组,定义 甲方落下为1,乙方落下为2

17、,初始为0,这样即不会造成冲突,也很好 的解决了判断问题。2. 另一个问题在于一直不能优化代码做到不每次都扫描整个棋盘来 判断胜负。解决方案:至今尚未解决,尝试过局部扫描,但失败了。第5章:用户手册1. 进入演示程序后,即显示欢迎界面,几秒后,按任何键进入菜 单界面,再选择人人对战可以进入主界面开始游戏或者选择退出键。2. 棋子的移动与落子有键盘上按键控制,本程序选取甲乙方都为和回车键,分别代表上移、下移、左移、右移光标和 落子。在光标移动的过程中,光标按照玩家按键移动;在玩家按下落 子按键后,程序自动调用棋子显示子程序和判断胜负子程序。3. 在当前玩家按下落子按键后,程序自动调用棋子显示子程

18、序 和判断胜负子程序。当前玩家下棋后,另一位玩家下棋前,当前玩家 可以悔棋。悔棋提示在棋盘右下方,为按键“ b”(即backspace)4. 游戏中Esc键可以直接退出游戏。5. 游戏过程中,如果玩家1或者玩家2有一方获得胜利后,程序自动将提示哪一方获得了胜利,并可以选择是否继 续新游戏。6. 游戏结束且玩家选择不再继续后,显示谢谢使用界面,再按任意键退出游戏。第6章:小组分工组长:罗福莉组员:赵帅帅,何虹达具体分工:组员任务分工罗福莉报告书写 程序调试 展示成果赵帅帅胜负判断设计主函数设计何虹达界面制作程序调试17C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福

19、莉 赵帅帅 何虹达第 7 章:结论与心得通过对各子程序的设计与优化, 本程序完成了五子 棋软件的主体的设计与制作,基本达到了使用五子棋软件的 核心要求。然而程序还有一些不足之处,首先,程序的界面 过于简陋, 其次,判断胜后没有显示连成一线的棋子是哪些, 用户使用不便。 最后就是程序法实现人机对战, 缺乏可玩性。第8章:源程序代码/ 五子棋小游戏#include <stdio.h>#include<windows.h>#include <stdlib.h>/Q 数组记录旗子 / 读入键盘输入的指令, 如#include<conio.h> / 使用

20、getch() 函数int startchoice,winner,player,Q200200= 0; char button;struct Pointint x,y; point,game_xy;/ 点坐标的结构体struct Piecestruct Point coord; struct Piece *fore;/ 棋子的坐标记录; # C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达struct Piece *head,*p,*ptr,*ptr1;void goto_xy(int x, int y) / 光标移动函数COORD c;c.X=

21、2*x;c.Y=y;SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c); void Init() / 初始化函数,将记录棋子的数组初始化for(int i=0; i<200; i+)for(int j=0; j<200; j+)Qij=0;startchoice=0;player=1;p=(struct Piece *)malloc(sizeof(struct Piece);head=p;void Welcome() / 欢迎界面system("color 2F"); /#include&l

22、t;windows.h> 2 背景绿色 F 字体亮白色goto_xy(10,3);prin tf(">");goto_xy(17,1);printf("主菜单 ");goto_xy(13,3);printf(" *人人对战 *");goto_xy(13,4);printf(" *退出*") ;point.x=12;point.y=3;goto_xy(0,0);void ShowWho()/ 显示轮到哪一方下棋goto_xy(17,22);if(player=0)printf("轮到甲方落子 &

23、quot;);elseprintf("轮到乙方落子 ");goto_xy(point.x,point.y);void Draw() / 绘画游戏界面game_xy.x=10;game_xy.y=3;system("cls");system("color 3F"); /3 湖蓝色 F 亮白色 goto_xy(15,1);printf(" 欢迎 play our 五子棋! ");/*goto_xy(29,22);printf(" 重新开始 r");*/ goto_xy(1,22);printf(&q

24、uot;悔棋b");goto_xy(1,23);printf("退出ESC");const int i=8; /const 定义的数据不可以被改变 而且修 改数据比较方便const int j=19;const int k=3;goto_xy(game_xy.x-i,game_xy.y+k); / 输出甲方的下棋方法 printf(" 甲方: ");goto_xy(game_xy.x-i,game_xy.y+k+2);printf("移动: 上 T");goto_xy(game_xy.x-i,game_xy.y+k+4);p

25、rintf("下 J");goto_xy(game_xy.x-i,game_xy.y+k+6);prin tf("左");goto_xy(game_xy.x-i,game_xy.y+k+8);prin tf("右");goto_xy(game_xy.x-i,game_xy.y+k+10);printf(" 落子 : Enter");goto_xy(game_xy.x+j,game_xy.y+k);/ 输出乙方的下棋方法prin tf("乙方:O");goto_xy(game_xy.x+j,gam

26、e_xy.y+k+2);printf(" 移动: 上 T ");goto_xy(game_xy.x+j,game_xy.y+k+4);printf("下 J "); 19 C 语言课程设计报告 五子棋罗福莉 赵帅帅 何虹达北京师范大学 2013 级信息科学与技术学院goto_xy(game_xy.x+j,game_xy.y+k+6);prin tf("左");goto_xy(game_xy.x+j,game_xy.y+k+8);prin tf("右");goto_xy(game_xy.x+j,game_xy.y+k

27、+10);printf(" 落子 : Enter");for(int k1=0; k1<200; k1+) 局时有明确的作用for(int k2=0; k2<200; k2+) Qk1k2=0;/ 初始化棋子记录, 在第二for(int i=0; i<18; i+)/ 画棋盘if(i=0)/ 画第一行 goto_xy(10,i+3);printf("i i i i i i i i i i i i i i i i i i "); if(i!=0&&i!=17) goto_xy(10,i+3);printf("if

28、(i=17)goto_xy(10,i+3);printf("point.x=19;point.y=12; goto_xy(19,12);/ 画出中间 16 行");/ 画最后一行i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i").void Clean()/ 清除运动的轨迹goto_xy(10,3).printf(" ").goto_xy(24,3).printf(" ").goto_xy(10,4). 21 C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹

29、达printf(" "); goto_xy(24,4); printf(" ");void menu_choose(char press) / 选择游戏还是退出if(press=72)/ T 的 ASCLL码if(point.y=3)point.y=4;elsepoint.y=3;Clean();goto_xy(10,point.y);prin tf(">");if(press=80)/ J 的 ASCLL码if(point.y=4)point.y=3;elsepoint.y=4;Clean();goto_xy(10,point

30、.y);prin tf(">");if(press=13)/ 13 :回车键的 ASCLL码startchoice=point.y-2;/startchoice 为 1 或 2void go_back(int x1,int y1)/ 悔棋函数goto_xy(x1,y1);if(x1=10)if(y1=3)prin tf("r ");else if(y1=20)prin tf("L");elseprin tf("卜");else if(x1=27)if(y1=3)printf("n ");e

31、lse if(y1=20)printf("");elseprintf("T ");elseif(y1=3)prin tf("");else if(y1=20)prin tf("丄");elseprin tf("+");/ 在数组中将弹出的棋子对应的数据设Qpoint.xpoint.y=0;为0goto_xy(x1,y1);void Record()/记录棋子的情况 23 C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达p->coord.x=p

32、oint.x;p->coord.y=point.y;ptr=p;p=(struct Piece *)malloc(sizeof(struct Piece); p->fore=ptr;ShowWho();Qpoint.xpoint.y=player+1; if(player)player=0;return;player=1;goto_xy(point.x,point.y);/ 显示落子函数/ 先判断该位置是否有棋子/'a' 表示蜂鸣声void PutDown()if(Qpoint.xpoint.y=0)if(player)printf(" ");p

33、rintf("a");Record();elseprin tf("O");printf("a");Record(); goto_xy(point.x,point.y);void Play(char ch)/ 键盘的操作 移动光标 下棋和悔棋操作if(ch=72)/ T的ASCLL码光标上移point.y=20;elsepoint.y-;goto_xy(point.x,point.y);if(ch=75)if(point.x<=10)point.x=27;elsepoint.x-;goto_xy(point.x,point.y);

34、if(ch=77)if(point.x>=27)point.x=10;elsepoint.x+;/ J的ASCLL码光标左移/ 的ASCLL码光标右移if(ch=80)if(point.y>=20)point.y=3;elsepoint.y+;goto_xy(point.x,point.y);/ J的ASCLL码光标下移 if(ch=13)PutDown();/回车键的ASCLL码下棋if(button='b'|button='B') / ptr1=p;if(p!=head)悔棋的操作p=p->fore;goto_xy(point.x,poin

35、t.y);北京师范大学 2013 级信息科学与技术学院free(ptr1); point.x=p->coord.x; point.y=p->coord.y; go_back(point.x,point.y);int Judge()int count=0;int pp=player=0?2:1; / 三目运算for(int c=0; c<200; c+)for(int r=0; r<200; r+)if(Qrc!=pp)continue;/ 检查列int rr=r;int cc=c;while(-cc>=3 &&Qrrcc=pp) count+;cc

36、=c;while(+cc<23 &&Qrrcc=pp) count+;cc=c;if(count>=4)return pp;/ 检查行count=0;while(-rr>=10 &&Qrrcc=pp)count+;rr=r;while(+rr<30 &&Qrrcc=pp) count+;rr=r;if(count>=4)return pp;/ 检查反斜边count=0;cc-;rr-;count+;cc-;rr-;rr=r;cc=c;cc+;rr+;while(cc<23|rr<30) &&

37、;Qrrcc=pp)count+;cc+;rr+;rr=r;cc=c;if(count+1>=5)return pp;/ 检查正斜边count=0;cc+;rr-;while(cc<23|rr>=10) &&Qrrcc=pp)count+;cc+;rr-;rr=r;cc=c;cc-;rr+;while(cc>=3|rr<30) &&Qrrcc=pp)count+;cc-;rr+;rr=r;cc=c;if(count+1>=5)return pp;count=0; 27 C 语言课程设计报告 五子棋北京师范大学 2013 级信息

38、科学与技术学院 罗福莉 赵帅帅 何虹达return 0;int main(void)system("color 4E");printf("n 欢迎 play 五子棋! "); goto_xy(15,3);printf(" 作者:小萝莉 ");goto_xy(17,5);printf(" HE Ho nda");goto_xy(17,7);printf(" ZSSB");Sleep(3000);system("cls");while(1)Init();/ 初始化int winn

39、er=0;Welcome();/ 欢迎界面while(1)/ 读取菜单选项 char choice=getch(); menu_choose(choice);if(startchoice!=0)break;if(startchoice=1)/ 选择人人对战 29 C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达 # C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达Draw();goto_xy(17,22);printf("轮到甲方落子 ");goto_xy(point.x,poi

40、nt.y);while(1)读取键盘的操作 移动光标 下棋和button=getch();Play(button); /悔棋操作if(button=27)/ESC 的 ASCLL码if(MessageBox(NULL,TEXT(" 确 定 退 出 ?"),TEXT(""),MB_ICONQUESTION|MB_OKCANCEL)=IDOK)system("cls");printf("n谢谢使用! n");return 0;if(button=13)/回车键ASCLL码按下后开始判断输赢winner=Judge();

41、if(winner!=0)goto_xy(15,24);if(winner=2)printf("恭喜!甲方赢! n");if(winner=1)printf("恭喜!乙方赢! n");if(winner!=1&&winner!=2)continue;goto_xy(13,22);printf("继续游戏 ?(Y/N): ");while(1)button=getch();if(button='n'|button='N'|button='y'|button='Y&#

42、39;)break;-五子棋if(button='n'|button='N')if(MessageBox(NULL,TEXT(" 确 定 退 "),TEXT(""),MB_ICONQUESTION|MB_OKCANCEL)=IDOK)system("cls");printf("n 谢谢使用! n"); return 0;if(button='y'|button='Y')winner=0;system("cls");break;if(

43、startchoice=2)if(MessageBox(NULL,TEXT(" 确 定 退 "),TEXT(""),MB_ICONQUESTION|MB_OKCANCEL)=IDOK)printf("nn 谢谢使用! n"); return 0;return 0;出?出? 31 C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达附录一 Color 命令的使用说明 # C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达 # C 语言课程设计报告

44、五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达颜色属性由两个十六进制数字指定字可以为以下任何值之一 :- 第一个为背景,第二个则为前景。每个数 # C 语言课程设计报告 五子棋北京师范大学 2013 级信息科学与技术学院 罗福莉 赵帅帅 何虹达0 = 黑色1 = 蓝色2 = 绿色3 = 湖蓝色4 = 红色5 = 紫色6 = 黄色7 = 白色8 = 灰色9 = 淡蓝色 A = 淡绿色 B = 淡浅绿色 C = 淡红色 D = 淡紫色 E = 淡黄色 F = 亮白色附录二 ASCII 码表ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256

45、种可能的 字符。标准 ASCII 码使用 7 位二进制数来表示所有的大写和小写字母, 数字 0 到 9、 标点符号,以及在美式英语中使用的特殊控制字符。目前许多基于 x86 的系统都支 持使用扩展(或“高”)ASCII扩展ASCII码允许将每个字符的第 8位用于确定附 加的 128 个特殊符号字符、外来语字母和图形符号。值 8、9、10 和 13 分别转换为退格、制表、换行和回车字符。它们并没有特定 的图形显示,但会依不同的应用程序,而对文本显示有不同的影响控制字符二进制十进制十六进制 缩写解释0000 0000000NUL空字符 (Null)0000 0001101SOH标题开始0000 0

46、010202STX正文开始0000 0011303ETX正文结束0000 0100404EOT传输结束0000 0101505ENQ请求0000 0110606ACK收到通知0000 0111707BEL响铃0000 1000808BS退格0000 1001909HT水平制表符0000 1010100ALF换行键0000 1011110BVT垂直制表符0000 1100120CFF换页键0000 1101130DCR回车键0000 1110140ESO不用切换0000 1111150FSI启用切换 # C 语言课程设计报告 五子棋罗福莉 赵帅帅 何虹达北京师范大学 2013 级信息科学与技术学院0001 00001610DLE数据链路转义0001 00011711DC1设备控制 10001 00101812DC2设备控制 20001 00111913DC3设备控制 30001 01002014DC4设备控制 40001 01012115NAK拒绝接收0001 01102216SYN同步空闲0001 01112317ETB传输块结束0001 10002418CAN取消0001 10012519EM介质中断0001 1010261ASUB替补0001 1011271BESC溢出0001

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论