C语言课程设计报告实验报告-

上传人:工**** 文档编号:503174003 上传时间:2022-08-29 格式:DOC 页数:16 大小:82KB
返回 下载 相关 举报
C语言课程设计报告实验报告-_第1页
第1页 / 共16页
C语言课程设计报告实验报告-_第2页
第2页 / 共16页
C语言课程设计报告实验报告-_第3页
第3页 / 共16页
C语言课程设计报告实验报告-_第4页
第4页 / 共16页
C语言课程设计报告实验报告-_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C语言课程设计报告实验报告-》由会员分享,可在线阅读,更多相关《C语言课程设计报告实验报告-(16页珍藏版)》请在金锄头文库上搜索。

1、.实验报告课程名称: C语言课程设计实验项目:五子棋游戏设计专业班级:计专1502姓 名:奇学 号:248150203实验室号:实验组号:实验时间:批阅时间:指导教师:成 绩:工业大学实验报告适用计算机程序设计类专业班级:计专1502 学号:248150203 :奇实验名称:五子棋游戏设计1.实验容:1掌握C语言的基本语法结构、程序设计方法和一些常见的算法;2掌握对程序排查错误的能力。2.实验容:1实现双人对战的简单步骤和规那么,能够判断输赢;2双方轮流使用键盘的“、“、“、“键控制棋子在屏幕上的位置,按“空格键放置棋子,判断棋子应放置在棋盘围且不能已经有棋子,否那么使用扬声器提示不能放置;3

2、当一方的棋子数在行、列或对角线上连续达到5个无禁手判断,那么为胜方,在屏幕上显示胜利一方,按任意键退出程序。3. 实验方案程序设计说明1算法设计思路棋盘设计为1919格,初始状态光标在棋盘的左上,黑棋先走,轮流落子,当一方连成五子或下满棋盘时,游戏结束。当游戏一方胜利后显示胜利信息。从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是0代表无棋子,1代表黑棋,2代表白棋。这样程序的主要工作是接收棋手按键操作,双方轮流使用键盘的“、“、“、“键控制光标移动,空格键表示落子。一旦接收到空格键,说明棋手落子,

3、先判断是否是有效位置,也就是说棋子应在棋盘或棋盘的空位置上,无效位置时利用扬声器发声警示。落子成功后,马上判断以该位置为中心的八个方向相邻的是否有相同颜色的棋子连成五子,如果连成五子,那么游戏结束,输出胜利一方的信息。如果想在对弈的过程中退出游戏,可以按Esc键。2程序功能流程图4程序运行结果1规那么界面2对弈界面3获胜界面5出现的问题及解决方法1游戏开始时,棋子原来初始在棋盘中央,一旦中央落子后,初始棋子与已有棋子重叠,为了解决问题将初始棋子移动到棋盘左上方棋盘以外。2棋子都为空心圆,在棋盘不好区分正在控制的棋子,改为已确定落子的棋子为实心圆,正在控制的棋子为空心圆。附件A 工业大学实验报告

4、适用计算机程序设计类专业班级: 计专1502 学号:248150203 : 奇实验程序:本程序在Windows XP SP3操作系统及Turbo C 2.0开发环境下调试通过。#include#include#include#include#include#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b#define SPACE 0x3920#define BILI 20#define JZ 4#define JS 3#define SIZE 19int b

5、oxSIZESIZE;int step_x,step_y;int key;int flag=1;void attentoin();void draw_box();void draw_cicle(int x,int y,int color);void draw_slice(int x,int y,int color);void change();void judgewho(int x,int y);void judgekey();int judgeresult(int x,int y);void attention()char ch;window(1,1,80,25);textbackgroun

6、d(LIGHTBLUE);textcolor(YELLOW);clrscr();gotoxy(15,4);printf(Play Rules:);gotoxy(15,8);printf(1.Press Left,Right,Up,Down Key to move Piece);gotoxy(15,12);printf(2.Press Space to place the Piece);gotoxy(15,16);printf(3.DO NOT press Space outside of the chessboard);gotoxy(15,20);printf(Do you accept th

7、e above Playing Rules Y/N:);while(1)gotoxy(60,20);ch=getche();if (ch=Y | ch=y)break;else if(ch=N | ch=n)window(1,1,80,25);textbackground(BLACK);textcolor(LIGHTGRAY);clrscr();exit(0);gotoxy(51,12);printf( );void draw_box()int x1,x2,y1,y2;setbkcolor(LIGHTBLUE);setcolor(YELLOW);gotoxy(7,2);printf(Left,

8、 Right, Up, Down KEY to move, Space to put, ESC-quit.);for(x1=1,y1=1,y2=18;x1=18;x1+)line(x1+JZ)*BILI,(y1+JS)*BILI,(x1+JZ)*BILI,(y2+JS)*BILI);for(x1=1,y1=1,x2=18;y1=18;y1+)line(x1+JZ)*BILI,(y1+JS)*BILI,(x2+JZ)*BILI,(y1+JS)*BILI);for(x1=1;x1=18;x1+)for(y1=1;y1=18;y1+)boxx1y1=0;void draw_circle(int x,

9、int y,int color)setcolor(color);setlinestyle(SOLID_LINE,0,1);x=(x+JZ)*BILI;y=(y+JS)*BILI;circle(x,y,8);void draw_slice(int x,int y,int color)x=(x+JZ)*BILI;y=(y+JS)*BILI;setcolor(color) ;setfillstyle(SOLID_FILL,color);circle(x,y,8);floodfill(x,y,color);setcolor(color);setfillstyle(SOLID_FILL,color);p

10、ieslice(x,y,0,360,8);setcolor(color);void judgekey()int i;int j;switch(key)case LEFT :if(step_x-1=1;i-)if(boxij=0)draw_circle(step_x,step_y,LIGHTBLUE);break;if (i18)break;elsefor(i=step_x+1,j=step_y;i18) break;step_x=i;judgewho(step_x,step_y);break;case DOWN :if(step_y+1)18)break;elsefor(i=step_x,j=

11、step_y+1;j18)break;step_y=j;judgewho(step_x,step_y);break;case UP :if(step_y-1)=1;j-)if(boxij=0)draw_circle(step_x,step_y,LIGHTBLUE);break;if(j=1 & step_x=1 & step_y=18)if(boxstep_xstep_y=0)boxstep_xstep_y=flag;if (flag = 1) draw_slice(step_x, step_y, BLUE);elsedraw_slice(step_x, step_y, WHITE);if (judgeresult(step_x,step_y)=1)sound(1000);delay(100

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号