C语言课程设计实验报告-
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:C语言课程设计
实验项目:五子棋游戏设计
专业班级:计专1502
姓名:孙奇学号:********* 实验室号:实验组号:
实验时间:批阅时间:
指导教师:*绩:
沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:计专1502 学号:248150203 姓名:孙奇实验名称:五子棋游戏设计
4.程序运行结果(1)规则界面
(2)对弈界面
(3)获胜界面
5.出现的问题及解决方法
(1)游戏开始时,棋子原来初始在棋盘中央,一旦中央落子后,初始棋子与已有棋子重叠,为了解决问题将初始棋子移动到棋盘左上方棋盘以外。
(2)棋子都为空心圆,在棋盘不好区分正在控制的棋子,改为已确定落子的棋子为实心圆,正在控制的棋子为空心圆。
附件A 沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:计专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 19
int box[SIZE][SIZE];
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);
textbackground(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 the 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, 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++)
box[x1][y1]=0;
}
void draw_circle(int x,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);
pieslice(x,y,0,360,8);
setcolor(color);
}
void judgekey()
{
int i;
int j;
switch(key)
{
case LEFT :
if(step_x-1<0)
break;
else
{
for(i=step_x-1,j=step_y;i>=1;i--)
if(box[i][j]==0)
{
draw_circle(step_x,step_y,LIGHTBLUE);
break;
}
if (i<1) break;
step_x=i;
judgewho(step_x,step_y);
break;