最简单的c语言迷宫游戏实验报告

最简单的c语言迷宫游戏实验报告
最简单的c语言迷宫游戏实验报告

一、内容:

1、本游戏主要实现了人控制键盘方向键使小人(*)走出迷宫。

2、具有的功能:

1)、在游戏菜单里人可以选择不同难度的游戏进行游戏;

2)、在游戏过程中,可以通过键盘方向键使小人移动,走出迷宫;

3)、在游戏过程中,当人碰到墙壁(#)的时候小人过不去;

4)、当人顺利完成游戏之后,输出“========you are win!======”字样,30秒钟后自动返回到游戏菜单;

5)、在游戏过程中,人可以通过按Esc键返回游戏菜单;也可以可以按0直接退出游戏;

6)、在游戏菜单里,按0键可以退出游戏。

3、具体应用:

1)、人主要同过键盘的1,2,3数字键来选择游戏难度;

2)、在游戏中通过Esc键来返回菜单;

3)、同过0键退出游戏。

二、上机环境

操作系统:windows7

开发工具:VC6.0

三、函数调用关系图

四、各函数功能说明

main() 主函数;

menu() 游戏菜单;

roadcake() 消去小人路径;

introduce() 游戏介绍;

system(“cls”) 消屏函数;

exit(0) 退出游戏;

drawmg1() 画初级难度迷宫;

drawmg2() 画中级难度迷宫;

drawmg3() 画高级难度迷宫;

control1() 控制初级难度游戏;

control2() 控制中级难度游戏;

control3() 控制高级难度游戏;

五、算法流程图

首先定义三个全局数组mg1[20][20]、mg2[30][30]、mg3[30][30]用于画出迷宫的地图;1表示墙(#),0表示空地();

Introduce( )函数里如果按Enter键,则调用menu( )函数,从键盘中输入相应的提示数字,进入难度不同的游戏;游戏的执行在此只初级难度进行描述,其余的难

度与其类似;

选了1后调用system(”cls”)进行清屏;drawmg1()函数进行迷宫的地图的绘

制,for(i=0;i<20;i++)

{

printf("\t\t\t");

for(j=0;j<20;j++)

{

ch=mg1[i][j];

switch(ch)

{

case 4: printf("*");break;

case 0: printf(" ");break;

case 1: printf("#");break;

}

if(num++%20==0) /*每行只能输出20个字符*/

printf(”\n”);

}

}

之后调用控制函数control1()进行控制小人移动路径,在control1()函数里用do—while()语句进行循环,while(1)进行死循环,再定义四个整型a,b,m,n即:

for(n=0;n<30;n++)

for(m=0;m<30;m++)

if(mg3[n][m]==4)

{

a=n; /*为后面调用roadcake()实现消除小人路径进行初始赋值*/

b=m;break;

}

用switch()语句选择方向键,在调用roadcake()函数进行消除小人路径

void roadcake(int *i,int *j)

{

int temp;

temp=*i; /*进行值交换,即数组值为0和值为4进行交换

*i=*j;

*j=temp;

}

完成第一个控制之后进行清屏和画新的游戏状态图,若在游戏进行中要退出游戏,只需按0键,调用exit(0)函数结束;若要返回游戏菜单,按Esc键掉用menu ()函数即可,重复以上步骤,直达游戏结束,此时掉用menu()函数自动返回菜单。

六、程序运行效果图

开始执行程序:

按Enter键后:

选择2后进入中级难度游戏:

按键盘方向键进行游戏,当顺利结束后:

与游戏菜单相同,选择不同的级别进行游戏。

七、总结

本次课设在设计算法和运用语言在一定程度上遇到困难,同时有些以前不知道的函数和算法,在这次实习中通过查找资料学到了许多;觉得紧紧学好语言是不够

的,得要知道怎样运用,即算法很重要;

八、参考文献

李春葆曾平喻丹丹《c语言程序设计(第2版)》清华大学出版社2011 九、程序清单

#include

#include

#include

#include

void drawmg1(void);

/*定义画迷宫函数*/

void drawmg2(void);

void drawmg3(void);

void control1(void);

/*定义控制函数*/

void control2(void);

void control3(void);

void roadcake(int *i,int *j);

/*定义交换函数*/

void menu(void);

/*定义菜单函数*/

void introduce(void);

/*定义游戏介绍函数*/

int

mg1[20][20]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} ,

{4,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1},

{1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,1},

{1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,1,0,0,1},

{1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,0,0,1},

{1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1},

{1,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,1},

{1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1},

{1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1},

{1,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1},

{1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1},

{1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1},

{1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1},

{1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1},

{1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,1},

{1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1},

{1,0,0,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1},

{1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1},

{1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,3},

{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, };

int

mg2[30][30]={{1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1},

{1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0, 1,1,0,0,1},

{1,0,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,0, 1,0,0,0,1},

{1,0,0,0,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,0, 1,0,1,0,1},

{1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,0, 1,0,1,0,1},

{1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0, 0,1,1,0,1},

{1,0,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,0, 1,1,0,0,1},

{1,0,1,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1, 1,1,0,1,1},

{1,0,0,0,0,1,1,1,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0, 0,0,0,0,1},

{1,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1, 1,0,1,1,1},

{1,0,0,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1, 1,0,1,1,1},

{1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0, 0,0,0,0,1},

{1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,0, 0,1,1,0,1},

{1,1,1,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1, 1,0,0,0,1},

{1,1,1,0,0,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,0, 0,0,1,1,1},

{1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0, 1,1,1,1,1},

{1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0, 1,1,1,1,1},

{1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0, 0,0,0,0,1},

{1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1, 1,1,1,0,1},

{1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1,0,1, 1,1,1,0,1},

{1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1, 0,0,0,0,1},

{1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1, 0,1,1,1,1},

{1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1, 0,0,0,0,1},

{1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1, 0,1,1,0,1},

{1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0, 0,0,1,0,1},

{1,0,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1},

{1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0, 0,1,0,0,1},

{1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1, 1,0,0,1,1},

{1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0, 0,0,1,1,1},

{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1, 1,1,1,1,1},

};

int

mg3[30][30]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1, 1,1,1,1,1,1,1,1,1,1},

{1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0, 1,1,0,0,1},

{1,0,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,0, 1,0,0,0,1},

{1,0,0,0,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,0, 1,0,1,0,1},

{1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,0, 1,0,1,0,1},

{1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0, 0,1,1,0,1},

{1,0,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,0, 1,1,0,0,1},

{1,0,1,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1, 1,1,0,1,1},

{1,0,0,0,0,1,1,1,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0, 0,0,0,0,1},

{1,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1,

1,0,1,1,1},

{1,0,0,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1, 1,0,1,1,1},

{1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0, 0,0,0,0,1},

{1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,0, 0,1,1,0,1},

{1,1,1,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1, 1,0,0,0,1},

{1,1,1,0,0,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,0, 0,0,1,1,1},

{1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0, 1,1,1,1,1},

{1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0, 1,1,1,1,1},

{1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0, 0,0,0,0,1},

{1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1, 1,1,1,0,1},

{1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1,0,1, 1,1,1,0,1},

{1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1, 0,0,0,0,1},

{1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1, 0,1,1,1,1},

{1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1, 0,0,0,0,1},

{1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1, 0,1,1,0,1},

{1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0, 0,0,1,0,1},

{1,0,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0, 1,1,1,0,1},

{1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0, 0,1,0,0,1},

{1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1, 1,0,0,1,1},

{1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0, 0,0,0,0,4},

{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1},

};

int road[20][20];

void main()

{

introduce();

}

/*-----------------------------------------------------------------------------*/

/*初级游戏控制函数*/

void control1(void)

{

int a,b,m,n;

char num;

do /*循环取得空制键*/

{

for(n=0;n<20;n++)

for(m=0;m<20;m++)

if(mg1[n][m]==4)

{

a=n;

b=m;break;

}

num=getch();

switch(num)

{

case 72:if(mg1[a-1][b]!=1)

{

roadcake(&mg1[a][b],&mg1[a-1][b]);

system("cls");

drawmg1();

break;

}

case 80:if(mg1[a+1][b]!=1)

{

roadcake(&mg1[a][b],&mg1[a+1][b]);

system("cls");

drawmg1();

break;

}

case 75:if(mg1[a][b-1]!=1)

{

roadcake(&mg1[a][b],&mg1[a][b-1]);

system("cls");

drawmg1();

break;

}

case 77:if(mg1[a][b+1]!=1)

{

roadcake(&mg1[a][b],&mg1[a][b+1]);

system("cls");

drawmg1();

break;

}

case 27:system("cls");

menu();break;

case 48:exit(0);

}

if(mg1[18][19]==4)

{printf("\n\t------------------you are win!--------------------\n\n\n");

menu();

}

}

while(1); /*直到出口*/

}

/*-----------------------------------------------------------------------------*/

/*中级游戏控制函数*/

void control2(void)

{

int a,b,m,n;

char num;

do /*循环取得空制键*/

{

for(n=0;n<30;n++)

for(m=0;m<30;m++)

if(mg2[n][m]==4)

{

a=n;

b=m;break;

}

num=getch();

switch(num)

{

case 72:if(mg2[a-1][b]!=1)

{

roadcake(&mg2[a][b],&mg2[a-1][b]);

system("cls");

drawmg2();

break;

}

case 80:if(mg2[a+1][b]!=1)

{

roadcake(&mg2[a][b],&mg2[a+1][b]);

system("cls");

drawmg2();

break;

}

case 75:if(mg2[a][b-1]!=1)

{

roadcake(&mg2[a][b],&mg2[a][b-1]);

system("cls");

drawmg2();

break;

}

case 77:if(mg2[a][b+1]!=1)

{

roadcake(&mg2[a][b],&mg2[a][b+1]);

system("cls");

drawmg2();

break;

}

case 27:system("cls");

menu();break;

case 48:exit(0);

}

if(mg2[29][15]==4)

{printf("\n\t------------------you are win!--------------------\n\n\n");

menu();

}

}

while(1); /*直到出口*/

}

/*-----------------------------------------------------------------------------*/

/*高级游戏控制函数*/

void control3(void)

{

int a,b,m,n;

char num;

do /*循环取得空制键*/

{

for(n=0;n<30;n++)

for(m=0;m<30;m++)

if(mg3[n][m]==4)

{

a=n;

b=m;break;

}

num=getch();

switch(num)

{

case 72:if(mg3[a-1][b]!=1)

{

roadcake(&mg3[a][b],&mg3[a-1][b]);

system("cls");

drawmg3();

break;

}

case 80:if(mg3[a+1][b]!=1)

{

roadcake(&mg3[a][b],&mg3[a+1][b]);

system("cls");

drawmg3();

break;

}

case 75:if(mg3[a][b-1]!=1)

{

roadcake(&mg3[a][b],&mg3[a][b-1]);

system("cls");

drawmg3();

break;

}

case 77:if(mg3[a][b+1]!=1)

{

roadcake(&mg3[a][b],&mg3[a][b+1]);

system("cls");

drawmg3();

break;

}

case 27:system("cls");

menu();break;

case 48:exit(0);

}

if(mg3[0][15]==4)

{printf("\n\t------------------you are win!--------------------\n\n\n");

menu();

}

}

while(1); /*直到出口*/

}

/*--------------------------------------------------------------------------------*/

/*画初级谜宫函数*/

void drawmg1(void)

{

int i,j,ch,num=1;

for(i=0;i<20;i++)

{

printf("\t\t\t");

for(j=0;j<20;j++)

{

ch=mg1[i][j];

switch(ch)

{

case 4: printf("*");break;

case 0: printf(" ");break;

case 1: printf("#");break;

}

if(num++%20==0)

printf("\n");

}

}

}

/*--------------------------------------------------------------------------------*/

/*画中级谜宫函数*/

void drawmg2(void)

{

int i,j,ch,num=1;

for(i=0;i<30;i++)

{

printf("\t\t\t");

for(j=0;j<30;j++)

{

ch=mg2[i][j];

switch(ch)

{

case 4: printf("*");break;

case 0: printf(" ");break;

case 1: printf("#");break;

}

if(num++%30==0)

printf("\n");

}

}

}

/*--------------------------------------------------------------------------------*/

/*画高级谜宫函数*/

void drawmg3(void)

{

int i,j,ch,num=1;

for(i=0;i<30;i++)

{

printf("\t\t\t");

for(j=0;j<30;j++)

{

ch=mg3[i][j];

switch(ch)

{

case 4: printf("*");break;

case 0: printf(" ");break;

case 1: printf("#");break;

}

if(num++%30==0)

printf("\n");

}

}

}

/*---------------------------------------------------------------------------*/

/*交换函数*/

void roadcake(int *i,int *j)

{

int temp;

temp=*i;

*i=*j;

*j=temp;

}

/*---------------------------------------------------------------------------*/

/*游戏介绍函数*/

void introduce(void)

{ char ch;

printf("\t>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>welcome<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n\n");

printf("\t这是一个迷宫小游戏,你可以选择不同的难度进行游戏\n\n");

printf("\t具体游戏操作如下:\n\n");

printf("\t\t通过键盘方向↑→←↓来控制小人(*)上、右、左、下移动;\n");

printf("\t\t在游戏过程中可以按Esc键返回菜单栏,按0键结束游戏!\n\n");

printf("\t\t\t\t\t\t\t请按Enter键进入游戏\n");

ch=getch();

if(ch==13)

system("cls");

menu();

}

/*----------------------------------------------------------------------------*/

/*游戏菜单函数*/

void menu(void)

{

char ch;

printf("\n\n\n请选择游戏难度:");

printf("\t\t1:初级\n\n");

printf("\t\t\t2:中级\n\n");

printf("\t\t\t3:高级\n\n");

printf("\t\t\t0:退出\n\n");

scanf("%d",&ch);

switch(ch)

{

case 1:system("cls");

drawmg1();

/*初级游戏*/

control1();

break;

case 2:system("cls");

drawmg2(); /*中级游戏*/

control2();break;

case 3:system("cls");

drawmg3(); /*高级游戏*/

control3();break;

case 0:exit(0);

}

}

/*------------------------------------------------------------------------------*/

还有很多功能么有实现,惭愧啊……

大一上期C语言实验报告1熟悉实验环境

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include void main() {printf(”Hello World”);} (2)#include void main() {int x=5,y=2; int s,d,p,q; s=x+y; d=x-y; p=x*y; q=x/y; printf(“和:%d差:%d积%d商:%d“,s,d,p,q);}

(3)#include void main() {int a,b,c.sum; float ave; Printf(“Please enter the a,b,c:”); scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=(float)sum/3; printf(“sum=%d,ave=%f\n”,sum,ave);} 4.运行结果 (1) (2) (3)输入18、46、69测试得出答案如下

游戏C语言实验报告完整版

游戏C语言实验报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录

一、实验目的和要求 (1)使用C语言编写2048这款游戏。 (2)能够正常运行,拥有游戏界面。 (3)能正常进行游戏从开始到结束。? (4)用户操作方便。 二、实验环境、内容和方法 实验内容:1、游戏开始时随机产生两个数值为2/4的方格,其中一个方格置于4个角中的一个位置,另一个方格随机的置于其他位置,其他方格置于0。 2、每次按方向键(w,s,a,d)后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。 3、每合并一次格子,将其值累计到游戏总分中。 4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。 5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。 6、2出现的概率为70%,4出现的概率为30%。 实验方法: 通过上机操作完成各内容。 实验环境: 实验用PC机一台,使用操作系统为Windows 7/ Windows 8/ Windows10,安装 vc++或v2008等编译软件 三、程序设计 Y

四、源代码 #include<> #include<> #include<> #include<> #define M 2048 void up(); n"); printf(" 玩家可以选择上(w)下(s)左(a)右(d)四个方向,若棋盘内的数字出现位移或合并,视为有效移动.\n"); printf(" 若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并.\n"); printf(" 合并所得的所有新生成数字想加即为该步的有效得分.\n"); printf(" 玩家选择的方向行或列前方有空格则出现位移.\n"); printf(" 每有效移动一步,棋盘的空位(无数字处)随机出现一个数字(依然可能为2或4).\n"); printf(" 棋盘被数字填满,无法进行有效移动,判负,游戏结束.\n"); printf(" 棋盘上出现2048,判胜,游戏结束"); printf("\n\n\n"); printf(" \t\t\t按回车开始游戏.\n"); getchar(\n);

c语言小游戏编程

程序设计实践 大作业 学号:20100302XXXX 姓名:XXX 班级:信息10-3班 实验题目:射击类飞机游戏 页脚内容1

成绩: 一.实验题目: 射击类飞机游戏 二.实验目的: 通过c语言编写一个射击类的打飞机小游戏,可以通过键盘来进行游戏,操作方法是“a”“d”“w”或者“←”“↑”“→”来控制,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次生还机会,游戏结束后可选择是否重新开始游戏…… 三.对游戏的改进: 这个游戏是我对一个小游戏进行的改造升级版,添加了颜色函数、终止函数,选择类函数,使游戏实现了可以终止,不再是分数、死亡数一直增加但是没有结束的情况;增加了颜色函数,使得游戏看起来更加的舒适;增加了终止函数,使游戏在死亡三次后自动结束游戏,并且可以选择是否重新开始游戏;另外增添了设置函数,使得可以对游戏进行设置,改变游戏大小,调整飞机运行速度等等,是游戏更加的人性化…… 四.实验内容 页脚内容2

编写出c语言代码,运行程序,并调试程序,最终实现游戏的功能。本程序主要包含游戏控制函数、设置是否继续游戏函数、输出函数、子弹移动函数、敌机移动函数、设置函数、菜单函数等7个主要函数,包含了不同的功能,对原来的程序作出了很大的改进,用到的主要语句有getche语句、for语句、while语句、printf语句、switch语句等等,添加了颜色函数,实现了诸多功能。可以在页面上显示制作人的主要信息等等…… 【流程图见打印版】 五.源程序: #include 页脚内容3

#include #include #include #define N 35 #define up 72 #define left 75 #define right 77 void run();//游戏控制函数 void yn();//设置是否继续游戏函数 void print(int [][N]);//输出函数 void movebul(int [][N]);//子弹移动函数 void movepla(int [][N]);//敌机移动函数 void setting(void);//设置函数 void menu(void);//菜单函数 int scr[22][N]={0},pl=9,width=24,speed=3,density=30,score=0,death=0;//全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡 页脚内容4

纸牌游戏实验报告

纸牌游戏实验报告 篇一:纸牌游戏Go Fish实验报告 纸片游戏Go Fish课程设计 一目的 通过对GO FISH的课程设计,明白数据结构设计理念,理解并掌握链表的操作,进一步的了解数据结构的含义。 二需求分析 决定玩家的数量,先简单化,建立两个玩家,完成设计; 1、确定数据结构模版; 2、建立数据结构类型; 3、完成数据操作; 4、确立算法设计。 三概要设计 1、数据结构设计 该课程设计采用链表和类相结合模式,建立牌堆和牌操作的链表结构: class Card { public: }; 牌堆类:采用整型数组建立牌堆,并用随机数打乱牌序。 class Node { public:

Node(); Node(int value,Node *next);//初始化节点构造函数 int ListLength(Node* L); //链表的计数 int Search(Node* L , int num); //链表的查找Node* head_Insert(Node* head , int num);//从表头插入节点Node* Delete(Node* head , int num); //删除节点 void Print(Node *head);//链表输出 int card_num; char clore; Node *Link; void NewCard();//新建牌 void Shuffle();//洗牌int Licensing(int n);//发牌int CARD_A[52]; private: private: 采用链表结构方式,来构造玩家手牌。用链式结构进行操作进行删除和插入。 2、算法函数 int Scoring(NodePtr &player,int score)//计分; int Players_operations(NodePtr &player1,NodePtr &player2,int Choose,int i,Card CardBign)//玩家操作; 两个函数分别用来计算与进行牌的操作。 2、主函数 main();//主函数 主函数进行数据接收和输出显示。 四详细设计 1、类的构造与实现 类的构造:

C语言实验报告参考答案 原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

C语言实验报告合集

《C语言程序设计》实验报告 专业:班级:学号:学生姓名:实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC++环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h" int main() {int a,b,sum; a=2; b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum); return 0; } 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f,请编写程序把它转换为摄氏温度c。 已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3.将字符串“China”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母 替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

贪吃蛇小游戏实验报告[

软件设计报告 设计题目:贪吃蛇 学院:华北电力大学科技学院 专业班级:软件10K1 学生姓名:张飞 学生学号:101909020122 指导教师:乔玲玲 提交时间: 成绩: - 0 -

目录 一.需求分析 二.概要设计 三.详细设计 四.心得体会 一.需求分析 1.1关于题目 1.1.1题目要求 利用Microsoft Visual C++制作一个贪吃蛇的小游戏,要求: (1)应用MFC单文档制作 (2)能够记录游戏成绩 (3)可根据玩家要求设置游戏速度(级别):初级,中级,高级 (4)可以根据个人喜好更换背景图片,食物图片,障碍物图片,结束图片等 1.1.2选题背景 贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我们,它的制作方法对于以前的我们而言都是很神秘的。我们希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我们的编程能力不是很强,但是我们有信心,在这次学习中我们将从实践和实际的项目中提高自己的编程能力。因此我们选定了这个题目。 1.2关于编译软件 本程序采用Microsoft Visual C++6.0的英文版本进行编译。VisualC++6.0是Microsoft公司推出的基于Windows操作系统的可视化C++编程工具,尽管Microsoft公司推出了.NET平台的集成开发环境,但由于其良好的界面和可操作性,加上支持标准C/C++规范,但仍有相当多的编程人员使用VisualC++6.0进行应用系统的开发。 - 1 -

- 2 - 1.3关于兼容性 本程序经过调试,可以在XP 系统下编译运行,也可以在Vista 下运行,界面稍有不同,但不影响运行结果。 二. 概要设计 2.1软件主要功能设计 2.1.1程序结构 根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、停止游戏,设置游戏级别(速度),设置图片等。具体的程序结构如下面的图1-1所示。 图2-1 贪吃蛇结构图 2.1.2程序流程 根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。贪吃蛇的内容主要包括: 游戏开始,随机出现食物。 贪吃蛇 游 戏开始 游戏设置 游戏结束 开始 初级 中级 高级 结束

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

C语言实验报告

《C语言程序设计实训1》报告 设计题目:基于数组的学生信息管理系统学院名称:信息科学技术学院

专业:计算机科学与技术 班级: 姓名:学号 指导教师: 提交日期: 2014年12月22日 一、实验内容 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件中。在头文件中定义学生信息的结构体类型,包括: 学号、姓名、专业、班级、3门成绩;和符号常量N(学生数)。(同一班 级的学生可以属于不同的专业,同一专业的学生可以属于不同的班级)

二、实验要求 (1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择, 调用相应的函数。 STU student[N]; 函数 #include "" void main() { int i,n,id,num,m,sub,corse;将从文件中读取10个人的信\n"); printf("\n2.您将从文件中随机读取第n(0<=n<=9)个学生的信息\n") printf("\n3.您将根据某一班级某一专业总分超过多少进行查找\n"); printf("\n4.您将求某一课程分数最高的学生序号的下标\n"); printf("\n5.您将对平均成绩由低到高进行简单选择排序法\n ");

printf("\n6.您将对某一个班的平均成绩由低到高进行起泡排序法\n"); printf("\n7.您将对某门专业的学生的某门课程成绩由低到高进行直接插入排序法\n"); printf("\n8.您将把学生信息存入文件\n"); scanf("%d",&id); getchar(); switch(id){ case 1: { printf("\n从文件中读取信息\n"); Input(students,sizeof(students)/sizeof(STU));Sort_select 函数 #include "" void Sort_select(STU * p) { int i,j,k; float sum,ave[N],t; STU tem; for(i=0;i

C语言编程游戏代码

#include #include #include #include #include #define L 1 #define LX 15 #define L Y 4 static struct BLOCK { int x0,y0,x1,y1,x2,y2,x3,y3; int color,next; intb[]={{0,1,1,1,2,1,3,1,4,1},{1,0,1,3,1,2,1,1,4,0},{1,1,2,2,1,2,2,1,1,2},{0,1,1,1,1,0,2,0,2,4}, {0,0,0,1,1,2,1,1,2,3},{0,0,1,0,1,1,2,1,3,8},{1,0,1,1,2,2,2,1,2,5},{0,2,1,2,1,1,2,1,2,6},{0,1,0,2,1,1,1 ,0,3,9},{0,1,1,1,1,2,2,2,3,10},{1,1,1,2,2,1,2,0,3,7},{ 1,0,1,1,1,2,2,2,7,12},{0,1,1,1,2,1,2,0,7,13},{0 ,0,1,2,1,1,1,0,7,14},{0,1,0,2,1,1,2,1,7,11},{0,2,1,2,1,1,1,0,5,16},{0,1,1,1,2,2,2,1,5,17},{1,0,1,1,1, 2,2,0,5,18},{0,0,0,1,1,11,2,1,5,15},{0,1,1,1,1,0,2,1,6,2,0},{0,1,1,2,1,1,1,0,6,21},{0,1,1,2,1,1,2,1,6 ,22},{1,0,1,1,1,2,2,1,6,19}}; static int d[10]={33000,3000,1600,1200,900,800,600,400,300,200}; int Llevel,Lcurrent,Lnext,Lable,lx,ly,Lsum; unsigned Lpoint; int La[19][10],FLAG,sum; unsigned ldelay; void scrint(),datainit(),dispb(),eraseeb(); void throw(),judge(),delayp(),move(0,note(0,show(); int Ldrop(),Ljudge(),nextb(),routejudge(); } main() { char c; datainit(); Label=nextb(); Label=Ldrop(); while(1){ delayp(); if(Label!=0) { Ljudge(); Lable=nextb(); } ldelay--; if(ldelay==0)

游戏实验报告

游 戏 程 序 设 计 计算机科学学院 教育技术学1班 刘文举 41109020114

CF优缺点对比首先,他们都是第一人称射击游戏。 最大的区别,除了各自应用技术不同之外,CS可以看成是一款单机游戏。而CF只能算是网络游戏。假若你要优缺点,就看你是想从哪方面看CS和CF优缺点了。 那么咱们就先从争议最多的武器装备和作弊的方面说吧。从武器装备的选择和分配上看,CF作为一款网络游戏,赚钱是必须的。倘若你花费金钱依旧不能从一定程度上提升实力,那恐怕就不会有人购买你的武器吧?所以,CF武器基本上就分了两类。RMB购买的超武器和平民用的普通武器.两者武器性能比自然不用多说。 由此引出很多争议,有钱就是大爷?很遭歧视。特别是一些会员特权,同样是令人憎恨。可不管怎么说,人家是要钱的.从这个观点的优点讲,CF其实是为肯出钱玩游戏的玩家"优"的。在这里,可以用金钱弥补你的实力差。人家就是收取费用提供服务的.那对于高手而言是没有什么问题的,但是对于小鸟们而言呢,cs相对比较平衡,在大家的印象里,CS差不多刚开始都是在局域网的吧,更多的考验的是你的实力.来不得半点马虎。没有实力,只有挨虐.但也只有被虐了,才能成长。从这个角度看,CS是为提升实力"优"的。它相比较CF,有更公平的游戏环境。 咱们再谈谈作弊。不晓得为什么,CF作弊的很多,很多,很多。但是CS 相比下,却是少的多。就我个人感觉,可能就是因为CF游戏很容易让玩家不平衡。感觉输得不服,而且很多一些,都是实力不错的玩家惨死。原因就是没有那些恐怖的武器。 再来谈谈CF的的新模式,的确,CF的幽灵模式独树一帜。很吸引人.是CS 所没有的。也是CF的主打招牌,也是吸引人的优点,但是倒退十年,CS 本身就是射击类游戏的优点集中。是它开启了射击类游戏的先河,并引导产生并掀起了诸如CF特种部队,彩虹七号,等等以第一人称射击类为主的游戏狂潮。从这点讲,CF仅仅只是CS射击游戏基础上闪亮的一棵果实.而CS,就可能是这棵大树的主干吧。

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

C语言实验报告合集

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验一 熟悉VC++环境 二、实验目的 1. 熟悉C 程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C 程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C 程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h"int main(){int a,b,sum;a=2;b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum);return 0;} 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验二 顺序结构程序设计 二、实验目的 (1)掌握C 语言数据类型以及变量的声明。 (2)掌握C 语言的赋值运算符、赋值表达式、赋值语句。(3)掌握C 语言的整型和字符型的混合运算。(4)掌握C 语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f ,请编写程序把它转换为摄氏温度c 。已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3. 将字符串“China ”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2. 软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码:运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

五子棋游戏实验报告

五子棋游戏实验报告 课程名称计算机程序设计(VB) 学号______________________ 姓名______________________ 班级______________________ 提交时间 五子棋软件设计 一、实验目的 1?通过五子棋软件设计或者自拟题目设计,巩固本课程所学的各个章节重点知识,自拟题目的同学需尽早向教师提岀自己的想法及设计方案。 2?通过开发一个较大的系统,增强软件开发能力。 3?通过调试系统,增强逻辑思维能力。 二、实验内容 1.基本要求: (1)输入两个对手名字,然后进入游戏界面。 (2)用鼠标点击的方式在棋盘上摆放棋子,黑白交替。(棋盘15*15 ) (3)可以悔棋。 (4)五子连在一起的时候能判断胜利,并且显示出胜利者的名字。 (5)能够将棋局的结果保存,保存该棋局

结束的状态、对手名字、棋局名字(棋局名字在保存时由用户在相应的界面下添入)(此功能要求用数据库和文件两种技术实现)。

因为棋盘上空点居多,大部分点的信息为0,因此只需保存有棋子的点的信息 用文件技术进行棋局保存,思路相同。 (7)五子棋恢复棋局 思路:首先从数据库文件中找到要恢复棋局的数据(即曾经保存的数据),然后把这些数据赋值给内存中相应的数组或者变量中,按照这些数据重新绘制棋盘和棋子,即完成了对棋局的恢复。 窗体启动事件应该完成的事情: 组合框中应该显示曾经保存的棋局名。因为每次保存棋局时,都是将棋局所有棋子的记录添加在表的最 后,因此表中关于棋局名的记录只能是类似于aaabbbbccccc的形式,而不可能是abbcacc的形式,根据 这个特点编程序取出表中不同的棋局名。 具体算法: 用一个字符串变量strfile初始值为空,从表的顶端向下依次移动记录指针,如果当前记录的棋局名字段和strfile不相等,说明进入另一个棋局的记录中,将该棋局记录的棋局名赋值给strfile,并加入到组合 框中,一直到表中最后一个记录 因为要从数据库中取岀相关数据到a数组中,因此要将a数组所有数据清零。 要建立一个data控件,与数据库连接起来,而后识别棋局(即表中的棋局名字段与在列表框中选择的棋 局名比较),将数据库该棋局中所有信息都赋值给a数组及相关变量。 刚才仅仅是数据的恢复,即将数据库中已经保存过的数据恢复到内存中,下一步应该根据内存中的数据重新绘制棋盘以及棋子。 重新绘制棋盘是独立的一块功能,因此考虑用全局子过程来实现,该子过程定义在模块中。思路如下: 清屏一绘制棋盘一根据a数组中的每一项的两个下标来决定绘制棋子的位置,根据每一项的值是1还是 2来决定在该位置绘制何颜色的棋子。 决定该黑白方走的blackwhite变量当时没有保存,可以采用在数据库中保存的方式来解决,本例中解决方法是通过数黑白棋子个数来决定恢复棋局后该谁走的。 因此设置了一个变量做计数器,每走一步棋计数器的值加一。 用文件技术实现棋局恢复,思路相同。 (8)悔棋 悔一步棋:用几个变量来表示关于一步棋的几个信息,每次下子都将该子的信息赋值给那几个变量,悔 一步棋即将那几个变量所表示的点的a数组信息清零。而后调用paint ()过程重画。 以上是教师带着学生完成的软件功能。 遗留问题:保存棋手姓名和棋局名并在恢复棋局的时候显示。(需要同学们自己完成)思路:在数据表中多建立两个字段,分别表示两个棋手姓名,同其它数据的保存类似。 三、设计日期 十二月 四、完成日期 十二月 五、实验体会 其实,一开始学习vb我就对它不抱有一定的热情,可能是因为要用到计算机以及编程问题,当时一想到有代码,就会无比的苦恼,但是为了让这门课顺利通过,我还是怀着一颗必须要学的心情。起初,我对待这门新课程和其他课

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116';

C编写的小游戏

C编写的小游戏 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

#i n c l u d e usingnamespacestd; constcharMOUSE='*'; constcharWAY=''; constcharWALL='@'; constcharPASS='.'; constcharIMPASS='X'; classGame{ public: Game(size_tuWidth,size_tuHeight):m_uWidth(uWidth),m_uHeigh t(uHeight),m_pcMaze(newchar[uWidth*uHeight]),m_mouse(0,1){ srand(time(NULL)); char(*pcMaze)[m_uWidth]=reinterpret_cast(m_pcMaze); for(size_ti=0;im_uWidth-5)) pcMaze[i][j]=WAY;

elseif(i==0||i==m_uHeight- 1||j==0||j==m_uWidth-1) pcMaze[i][j]=WALL; else pcMaze[i][j]=rand()%4WAY:WALL; } ~Game(void){ if(m_pcMaze){ delete[]m_pcMaze; m_pcMaze=NULL; } } voidRun(void){ for(Show();!Quit()&&Step();); } private: classMouse{ public: Mouse(size_tx,size_ty):m_x(x),m_y(y){} size_tGetX(void){returnm_x;} size_tGetY(void){returnm_y;} voidStepRight(void){

JAVA编程~~21点游戏源代码

学号11730202 天津城建大学 Java 语言程序设计C 实验报告 实验1:21点游戏 学生姓名杨弘毅 班级卓越七班

实验一21点游戏 一、实验目的 1.掌握使用Java语言进行结构化程序设计; 2.熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 3.熟悉Eclipse开发环境,编写简单的Application程序,并编译和执行。 二、实验要求 1.调试程序、编译,运行后得到正确的结果; 2.写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。 三、实验环境 1.计算机一台; 2.JDK、MyEclipse工具软件。 四、实验内容 编写并运行21点游戏。 具有菜单形式的界面 掌握Random类基本用法 设计胜负判定算法 五、实验步骤 1.了解21点游戏的基本规则 2.用0到53代表52张扑克牌 3.完成洗牌发牌模块 4.设计胜负判定算法 源程序: package a; importjava.util.Scanner; importjava.util.Arrays; public class Play21 { int[] cards,computer,human;//定义一副54张牌,电脑5张,玩家5张 Scanner sr=new Scanner(System.in); public Play21(){//构造方法

cards=new int[54];//定义54个大小的数组表示扑克牌 Arrays.fill(cards,0);//54张牌全赋值零,一旦某一张牌被用了就赋1 computer=new int[5];//电脑5张牌 Arrays.fill(computer,0); human=new int[5];//人5张牌 Arrays.fill(human,0); } public void clear(){//使数组内所有数据赋值0没有用过,用过的赋值1 Arrays.fill(cards,0); Arrays.fill(computer,0); Arrays.fill(human,0); } public void start(){//开始游戏 System.out.println("-------------------------------------"); System.out.println("开始游戏!"); int n=1; for(inti=0;i<1;i++){//电脑和玩家先各抽1张 computer[i]=nextOne(); human[i]=nextOne(); } while(n<5){//牌数小于5时询问是否再要牌 show(human,n,1);//显示现在玩家的牌面

相关文档
最新文档