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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档