#include void map1();

void map2();

void map3();

void show();

void move();

void main(int argc,char*argv[])

{

time_t a,b;

time(&a);

system("color 1E");

loop1:{

system("cls");//刷屏

printf("\n\n\n\n\n\n\t\t\t\t欢迎进入推箱子游戏\n\n\t\t\t\t 请按a b c选择游戏\n\n\t\t\t\t 按 d 键 结束");

int t=getch();

if(t==d)

{

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

}

else

{

if(t==a)

{

map1();

goto loop1;

}

if(t==b)

{

map2();

goto loop1;

}

if(t==c)

{

map3();

goto loop1;

}

else

{

printf("\n\n\t\t\t\t 请重新输入:");

goto loop1;

}

}

}

time(&b);

printf("\n\n\n\n\t\t\t\t 游戏总共用时%.3d秒\n\t\t\t ",b-a);

getch();//等待读取回车符以结束程序

}

void map1()

{

time_t p,q,o;

time(&p);

int i=4,j=4,m=6,n=2,t=1,k=3;

system("cls");//刷屏

system("color 2E");

int x=1,y=7;

char z,a[9][9]=

{ /*为背景设置初始资料*/

{#,#,#,#,#,#,#,#,#},

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

{#,#, 0 , 0 , 0 ,#, 0 ,#,#},

{#, 0 , 0 ,#, 0 , 0 , 5 , 0 ,#},

{#, 0 , 5 , 5 , 3 , 0 , 0 , 0 ,#},

{#,#, 0 ,#, 0 , 0 ,#,#,#},

{#,#, 3 , 0 , 0 , 0 ,#,#,#},

{#,#,#,#,#,#,#,#,#},

{#,#,#,#,#,#,#,#,#}

};

show(a);//调用输出函数

loop://语句标号

move(a,&x,&y,i,j,m,n,t,k,&z);

if(a[i][j]==!&&a[m][n]==!&&a[t][k]==!)

{

system("cls");//刷屏

show(a);

printf("\t\t\t\t YOU ARE WIN!\n");

time(&q);

printf("\t\t\t\t\t 用时%.3d秒\n",q-p);

printf("\t\t\t\t*******回车重 新选择*******\n\t\t\t\t");

getch();

}

else

{

time(&o);

if(z==d)

{

return;

}

if(o-p>30)

{

loop1:system("cls");//刷屏

printf("\t\t\t\t时间已过请重新回车选关!");

int g=getch();

if(g==13)//判断是否为回车符

{

return;

}

else

{

goto loop1;

}

}

system("cls");//刷屏

show(a);//调用输出函数

goto loop;

}

}

void map2()

{

time_t p,q,o;

time(&p);

int i=2,j=1,m=1,n=3,t=4,k=6;

system("cls");//刷屏

system("color 2E");

int x=4,y=1;

char z,b[9][9]=

{ /*为背景设置初始资料*/

{#,#,#,#,#,#,#,#,#},

{#,#,#, 3 , 0 ,#,#,#,#},

{#, 3 ,#, 0 , 0 , 0 , 0 ,#,#},

{#, 0 , 5 , 0 ,#,#, 0 , 0 ,#},

{#, 1 , 0 , 5 , 0 , 0 , 3 , 0 ,#},

{#, 0 , 0 , 0 , 0 , 0 , 0 ,#,#},

{#,#,#, 0 , 0 , 5 ,#,#,#},

{#,#,#,#, 0 , 0 ,#,#,#},

{#,#,#,#,#,#,#,#,#}

};

show(b);//调用输出函数

loop://语句标号

move(b,&x,&y,i,j,m,n,t,k,&z);

if(b[i][j]==!&&b[m][n]==!&&b[t][k]==!)

{

system("cls");//刷屏

show(b);

printf("\t\t\t\t YOU ARE WIN!\n");

time(&q);

printf("\t\t\t\t\t 用时%.3d秒\n",q-p);

printf("\t\t\t\t*******回车重 新选择*******\n\t\t\t\t");

getch();

}

else

{

time(&o);

if(z==d)

{

return;

}

if(o-p>30)

{

loop1:system("cls");//刷屏

printf("\t\t\t\t时间已过请重新回车选关!");

int g=getch();

if(g==13)//判断是否为回车符

{

return;

}

else

{

goto loop1;

}

}

system("cls");//刷屏

show(b);//调用输出函数

goto loop;

}

}

void map3()

{

time_t p,q,o;

time(&p);

int i=2,j=1,m=6,n=2,t=7,k=6;

system("cls");//刷屏

system("color 2E");

int x=3,y=6;

char z,c[9][9]=

{ /*为背景设置初始资料*/

{#,#,#,#,#,#,#,#,#},

{#,#,#,#,#, 0 , 0 , 0 ,#},

{#, 3 ,#, 0 , 0 , 0 , 0 , 0 ,#},

{#, 0 , 5 , 0 , 5 ,#, 1 ,#,#},

{#, 0 , 0 , 0 , 0 , 0 , 5 , 0 ,#},

{#,#, 0 , 0 , 0 , 0 , 0 , 0 ,#},

{#,#, 3 , 0 ,#, 0 ,#, 0 ,#},

{#,#,#, 0 , 0 , 0 , 3 ,#,#},

{#,#,#,#,#,#,#,#,#}

};

show(c);//调用输出函数

loop://语句标号

move(c,&x,&y,i,j,m,n,t,k,&z);

if(c[i][j]==!&&c[m][n]==!&&c[t][k]==!)

{

system("cls");//刷屏

show(c);

printf("\t\t\t\t YOU ARE WIN!\n");

time(&q);

printf("\t\t\t\t\t 用时%.3d秒\n",q-p);

printf("\t\t\t\t*******回车重 新选择*******\n\t\t\t\t");

getch();

}

else

{

time(&o);

if(z==d)

{

return;

}

if(o-p>30)

{

loop1:system("cls");//刷屏

printf("\t\t\t\t时间已过请重新回车选关!");

int g=getch();

if(g==13)//判断是否为回车符

{

return;

}

else

{

goto loop1;

}

}

system("cls");//刷屏

show(c);//调用输出函数

goto loop;

}

}

void show(char b[9][9])

{

printf("\t\t\t\t***************************\n");

printf("\t\t\t\t 推箱子游戏 ");

printf("\n\t\t\t\t***************************\n");

printf("\t\t\t\t 人:★ 墙:■\n\t\t\t\t 箱子:◎ 目的地:□\n\t\t\t\t 按 d 键 退出游戏\n\t\t\t\t 限时30秒!");

printf("\n\t\t\t\t***************************\n");

int i;

int k;

for(i=0;i<9;i++) //使用循环将地图转换输出

{

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

for(k=0;k<9;k++)

{

if(b[i][k]==#)

{

printf("■");

}

else

{

if(b[i][k]==3)

{

printf("□");

}

else

{

if(b[i][k]==5)

{

printf("◎");

}

else

{

if(b[i][k]==1)

{

printf("★");

}

else

{

if(b[i][k]==0)

{

printf(" ");

}

else

{

if(b[i][k]==!)

{

printf("⊙");

}

else

printf("%c ",b[i][k]);

}

}

}

}

}

}

printf("\n");

}

printf("\t\t\t\t***************************\n");

}

void move(char c[9][9],int *x,int *y,int X,int Y,int A,int B,int N,int M,char *t)

{

*t=getch();//用getch()得到上下左右键,要调用二次getch(),上键72,下键80,左键75,右键77.

if(*t==d){}//遇到d返回

if(*t==75)//左键

{

if(c[*x][*y-1]==#||c[*x][*y-1]==5&&c[*x][*y-2]==5

||c[*x][*y-1]==5&&c[*x][*y-2]==!){}//遇到墙或推两个箱子

else

{

if(c[*x][*y-1]==!)//把箱子推出目的地

{

if(c[*x][*y-2]!=0){}

else

{

c[*x][*y]=0;

*y-=1;

c[*x][*y]=1;

c[*x][*y-1]=5;

}

}

else

{

if(c[*x][*y-1]==5&&c[*x][*y-2]!=#)//推箱子

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]

||c[*x][*y]==c[N][M]) //推着箱子离开目的地

{

c[*x][*y]=3;

*y-=1;

c[*x][*y]=1;

c[*x][*y-1]=5;

}

else

{

c[*x][*y]=0;

*y-=1;

c[*x][*y]=1;

c[*x][*y-1]=5;

}

}

else

{

if(c[*x][*y-1]==5&&c[*x][*y-2]==#){}//推不动箱子

else

{

if(c[*x][*y-1]==c[X][Y]||c[*x][*y-1]==c[A][B]

||c[*x][*y-1]==c[N][M])//进到目的地

{

c[*x][*y]=0;

*y-=1;

c[*x][*y]=1;

}

else

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]

||c[*x][*y]==c[N][M]) //离开目的地

{

c[*x][*y]=3;

*y-=1;

c[*x][*y]=1;

}

else //走到空地

{

c[*x][*y]=0;

*y-=1;

c[*x][*y]=1;

}

}

}

}

}

}

if(c[X][Y]==5||c[A][B]==5||c[N][M]==5)//箱子推到目的地

{

c[*x][*y-1]=!;

}

}

if(*t==77)//右键

{

if(c[*x][*y+1]==#||c[*x][*y+1]==5&&c[*x][*y+2]==5

||c[*x][*y+1]==5&&c[*x][*y+2]==!){}//遇到墙或推两个箱子

else

{

if(c[*x][*y+1]==!)//把箱子推出目的地

{

if(c[*x][*y+2]!=0){}

else

{

c[*x][*y]=0;

*y+=1;

c[*x][*y]=1;

c[*x][*y+1]=5;

}

}

else

{

if(c[*x][*y+1]==5&&c[*x][*y+2]!=#)//推箱子

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]

||c[*x][*y]==c[N][M]) //推着箱子离开目的地

{

c[*x][*y]=3;

*y+=1;

c[*x][*y]=1;

c[*x][*y+1]=5;

}

else

{

c[*x][*y]=0;

*y+=1;

c[*x][*y]=1;

c[*x][*y+1]=5;

}

}

else

{

if(c[*x][*y+1]==5&&c[*x][*y+2]==#){}//推不动箱子

else

{

if(c[*x][*y+1]==c[X][Y]||c[*x][*y+1]==c[A][B]

||c[*x][*y+1]==c[N][M])//进到目的地

{

c[*x][*y]=0;

*y+=1;

c[*x][*y]=1;

}

else

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]

||c[*x][*y]==c[N][M]) //离开目的地

{

c[*x][*y]=3;

*y+=1;

c[*x][*y]=1;

}

else //走到空地

{

c[*x][*y]=0;

*y+=1;

c[*x][*y]=1;

}

}

}

}

}

}

if(c[X][Y]==5||c[A][B]==5||c[N][M]==5)//箱子推到目的地

{

c[*x][*y+1]=!;

}

}

if(*t==72)//上键

{

if(c[*x-1][*y]==#||c[*x-1][*y]==5&&c[*x-2][*y]==5

||c[*x-1][*y]==5&&c[*x-2][*y]==!){}//遇到墙或推两个箱子

else

{

if(c[*x-1][*y]==!)//把箱子推出目的地

{

if(c[*x-2][*y]!=0){}

else

{

c[*x][*y]=0;

*x-=1;

c[*x][*y]=1;

c[*x-1][*y]=5;

}

}

else

{

if(c[*x-1][*y]==5&&c[*x-2][*y]!=#)//推箱子

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]

||c[*x][*y]==c[N][M]) //推着箱子离开目的地

{

c[*x][*y]=3;

*x-=1;

c[*x][*y]=1;

c[*x-1][*y]=5;

}

else

{

c[*x][*y]=0;

*x-=1;

c[*x][*y]=1;

c[*x-1][*y]=5;

}

}

else

{

if(c[*x-1][*y]==5&&c[*x-2][*y]==#){}//推不动箱子

else

{

if(c[*x-1][*y]==c[X][Y]||c[*x-1][*y]==c[A][B]

||c[*x-1][*y]==c[N][M])//进到目的地

{

c[*x][*y]=0;

*x-=1;

c[*x][*y]=1;

}

else

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]

||c[*x][*y]==c[N][M]) //离开目的地

{

c[*x][*y]=3;

*x-=1;

c[*x][*y]=1;

}

else //走到空地

{

c[*x][*y]=0;

*x-=1;

c[*x][*y]=1;

}

}

}

}

}

}

if(c[X][Y]==5||c[A][B]==5||c[N][M]==5)//箱子推到目的地

{

c[*x-1][*y]=!;

}

}

if(*t==80)//下键

{

if(c[*x+1][*y]==#||c[*x+1][*y]==5&&c[*x+2][*y]==5

||c[*x+1][*y]==5&&c[*x+2][*y]==!){}//遇到墙或推两个箱子

else

{

if(c[*x+1][*y]==!)//把箱子推出目的地

{

if(c[*x+2][*y]!=0){}

else

{

c[*x][*y]=0;

*x+=1;

c[*x][*y]=1;

c[*x+1][*y]=5;

}

}

else

{

if(c[*x+1][*y]==5&&c[*x+2][*y]!=#)//推箱子

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]

||c[*x][*y]==c[N][M]) //推着箱子离开目的地

{

c[*x][*y]=3;

*x+=1;

c[*x][*y]=1;

c[*x+1][*y]=5;

}

else

{

c[*x][*y]=0;

*x+=1;

c[*x][*y]=1;

c[*x+1][*y]=5;

}

}

else

{

if(c[*x+1][*y]==5&&c[*x+2][*y]==#){}//推不动箱子

else

{

if(c[*x+1][*y]==c[X][Y]||c[*x+1][*y]==c[A][B]

||c[*x+1][*y]==c[N][M])//进到目的地

{

c[*x][*y]=0;

*x+=1;

c[*x][*y]=1;

}

else

{

if(c[*x][*y]==c[X][Y]||c[*x][*y]==c[A][B]

||c[*x][*y]==c[N][M]) //离开目的地

{

c[*x][*y]=3;

*x+=1;

c[*x][*y]=1;

}

else //走到空地

{

c[*x][*y]=0;

*x+=1;

c[*x][*y]=1;

}

}

}

}

}

}

if(c[X][Y]==5||c[A][B]==5||c[N][M]==5)//箱子推到目的地

{

c[*x+1][*y]=!;

}

}

}

C语言正反比例函数代码格式,c语言推箱子代码.doc相关推荐

  1. c语言实验七 函数实验报告,C语言实验七函数实验报告.doc

    C语言实验七函数实验报告 C语言程序设计 实 验 报 告 实验题目 实验七 函数 实验目的 掌握函数定义的方法: 掌握函数实参与形参的对应关系,以及值传递的方式. 掌握函数的嵌套调用和递归调用的方法: ...

  2. vue应用axios.get请求的代码格式(2种)- 代码篇

    vue应用axios.get请求的代码格式(2种)- 代码篇 代码: axios.get(this.serverPath+'/supermarket/fruits/options?id='+id, { ...

  3. 世嘉新人培训教材学习_第一章 (推箱子代码)

    第一章 第一个游戏--"推箱子" 自己也把代码实现一遍. 游戏程序,就是获取输入,将输入反映到游戏世界,显示结果这三项 的无限循环.这个过程称为游戏循环或者主循环. while(t ...

  4. 推箱子、纯前端实现推箱子、推箱子代码

    推箱子.纯前端实现推箱子.推箱子代码 今天分享一款非常经典的HTML5小游戏,一款考验你智力的推箱子游戏,这个游戏很常见,你应该是玩过的,这次我们用HTML5来重写了这款推箱子游戏,游戏设置和很多关卡 ...

  5. c语言如何让函数一直执行,C语言如何实现在每天某个特定时间执行某个函数?

    慕仙森 Windows提供了定时器,帮助编写定期发送消息的程序.定时器一般通过一下两中方式通知应用程序间隔时间已到.⑴ 给指定窗口发送WM_TIMER消息,也就是下面的给出在窗口类中使用的方法.⑵ 调 ...

  6. c语言推箱子代码_C语言烂大街的东西都学不会!C语言多关卡推箱子制作教程

    C语言多关卡推箱子,兄台了解一下?没错,C语言完整简单项目实战 很高兴你能光临小编寒舍 首先感谢百忙之中你能从万千文章中点小编得专属页面.这不是娱乐篇,这是学习道场.开始前,小编就做一个简单得自我介绍 ...

  7. c语言中的函数的组成,c语言函数由哪几部分组成

    c语言函数由哪几部分组成 发布时间:2020-07-16 15:46:42 来源:亿速云 阅读:476 作者:Leah 这篇文章将为大家详细讲解有关c语言函数由哪几部分组成,文章内容质量较高,因此小编 ...

  8. vscode代码格式排列_vscode 一键规范代码格式的实现

    使用vscode的过程中 自己或者push代码以后 代码的格式可能会出现错乱, 作为一个成熟的开发 , 当然应该遵守一些代码规范, 首先代码整洁度应该排在第一位 使用vscode 格式化代码 在少量的 ...

  9. C语言 const 修饰函数返回值 - C语言零基础入门教程

    目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 二.const 修饰在函数名前面 三.const 修饰在函数名后面 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : ...

最新文章

  1. python GUI编程( 二 ) (基于PyQt5)
  2. html,css,javascript之间的关系是什么?各是负责哪方面工作的?
  3. 前端需要了解的 Cookies 和 WebStorage
  4. 大数据挖掘在销售管理中的应用价值
  5. taskset设置CPU affinity
  6. mysql主从从配置详解_MySQL主从配置详解
  7. 《Python Cookbook 3rd》笔记(2.19):实现一个简单的递归下降分析器
  8. matlab sizeof size,使用Matlab进行MEXing C时,size_t和mwSize之间的差异
  9. audio_policy.conf说明(翻译)
  10. 让/etc/profile文件修改后立即生效
  11. mysql查看当前连接数据
  12. fer2013人脸表情数据实践
  13. 单片机原理及应用第四版林立课后选择题
  14. EXCEL VBA入门(课堂随机点名系统)
  15. 嵌入式 Linux 入门(一、Linux 基本介绍及文件结构)
  16. python输入个人所得税计算_python实例个税计算
  17. PAT Basic 1031
  18. 我为什么放弃网易博客
  19. 工作之外的闲暇时光(玩魔方)
  20. manjaro 安装的艰辛历程,常用软件安装以及踩坑

热门文章

  1. 巴菲特自述:我那500亿的决定
  2. UE(ultral edit)快捷键 -- 用键盘快速移动光标(适用其他文本编译器)
  3. 【老生谈算法】matlab实现LMS算法源码——LMS算法
  4. 我的个人时间管理方法
  5. 基于SSM疫情防控系统【附源码+论文】
  6. 打印多张分页图片工具类
  7. windows密码抓取的多种方法
  8. 数据结构时间复杂度测试
  9. 5.3.2 rqt常用插件rqt_graph
  10. D3D中的网格(Mesh)