聂玉宽《拼图游戏》.doc
文本预览下载声明
一、题目描述二、分析三、系统设计
1程序总体结构
图2 拼图的总体结构图
2.界面设计
图3 拼图游戏的界面 图4 拼图游戏的界面
图5 拼图游戏的界面
3.设计.重要数据的数据结构设计int matrix[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int inspect(int matrix[3][3])//判断成功
5.函数设计
文件中函数的功能如下:
文件名函数原型函数功能函数处理描述location(int) 计算位置 判断是否为可移动模块 inspect(int) 检查成功与否 检验是否完成游戏
四、、经过一个星期的上机实践学习,我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。功能说明#includestdio.h#includetime.h#includestdlib.h
void main()
{
void print(int matrix[3][3]);
//打印拼图
int location(int number,int matrix[3][3]);
//计算位置
int inspect(int matrix[3][3]);
//检查成功没
int i,temp,n,place,ninePlace,suffix1,suffix2,suffix3,suffix4;
int matrix[3][3]={{1,2,3},{4,5,6},{7,8,9}};
srand((unsigned)time(NULL));
//把时间设为随机数种子
for(i=0;i10;i++)
//循环十次随机打乱矩阵里面的数
{
suffix1=rand()%3;
suffix2=rand()%3;
suffix3=rand()%3;
suffix4=rand()%3;
temp=matrix[suffix1][suffix2];
matrix[suffix1][suffix2]=matrix[suffix3][suffix4];
matrix[suffix3][suffix4]=temp;
}
printf(拼图游戏,有空位才能移动\n);
print(matrix);
while(inspect(matrix))
{
printf(移动的数:);
scanf(%d,n);
place=location(n,matrix);
//移动数的位置
ninePlace=location(9,matrix);
//9的位置
if((place-ninePlace==1||place-ninePlace==-1||place-ninePlace==3||place-ninePlace==-3)
!((place==3||place==4)(ninePlace==3||ninePlace==4))
!((place==6||place==7)(ninePlace==6||ninePlace==7)))
//这个条件判断能不能移动
{
//能移动就交换
temp=matrix[place/3][place-place/3*3-1];//根据位置知道下标
matrix[place/3][place-place/3*3-1]=matrix[ninePlace/3][ninePlace-ninePlace/3*3-1];
matrix[ninePlace/3][ninePlace-ninePlace/3*3-1]=temp;
print(matrix);
}else
{
printf(不能交换\n);
}
}
printf(恭喜!您成功了!);
scanf(%d,n);
}
int location(int number,int matrix[3][3])
//查找位置
{
int j,k;
for(j=0;j3;j++)
{
for(k=0;k3;k++)
{
if(matrix[j][k]==number)
return j
显示全部