OC推箱子
#include<stdio.h> #include<stdlib.h> int main( void ) { char sr; //存储用户输入的指令 //绘制地图 char a[11][20]={ "###################" , "###################" , "### $ $ ###" , "### ##### ###" , "### ###" , "#### #### ### ####" , "### # @ # ###" , "### # @ # ###" , "### ^ ###" , "###################" , "###################" }; // 定义箱子,小人和目的的坐标 int i=1,e=8,f=9,m=7,n=9,x=6,y=9; while (i) { //清屏,给人一种真实游戏的感觉,这是在MAC环境上的,WIN的清屏语句是system("cls") //这个程序所用到的类型和语法除了清屏这句还有清除缓存区都是可以在WIN系统下,VC++6.0里完美运行的 system( "clear" ); printf( "欢迎使用推箱子\n^就代表你,而你的工作就是把@推到$的位置,好好努力吧!\n" ); printf( "对了w代表上,s代表下,a代表左,d代表右,q表示退出,开始吧!\n" ); //判断是否推到目的地 if (m== 2 && n==8) { if (x==2 && y==10) { printf( "恭喜你挑战成功!\n" ); break ; } } if (m==2 && n==10) { if (x==2 && y==8) { printf( "恭喜你挑战成功!\n" ); break ; } } //打印地图 for ( int b=0;b<11;b++) { for ( int c=0;c<20;c++) { printf( "%c" ,a[b][c]); } printf( "\n" ); } //清除缓存区 fpurge(stdin); scanf( "%c" ,&sr); //判断方向 switch (sr) { case 'w' : case 'W' : if (a[e-1][f]== ' ' ) { a[e-1][f]= '^' ; a[e][f]= ' ' ; e-=1; } else if (a[e-1][f]== '@' && a[e-2][f]!= '#' && a[e-2][f]!= '@' ) { if (e-m==1 && f==n) { m-=1; a[m][n]= '@' ; a[e-1][f]= '^' ; a[e][f]= ' ' ; e-=1; } else if (e-x==1 && f==y) { x-=1; a[x][y]= '@' ; a[e-1][f]= '^' ; a[e][f]= ' ' ; e-=1; } } break ; case 's' : case 'S' : if (a[e+1][f]== ' ' ) { a[e+1][f]= '^' ; a[e][f]= ' ' ; e+=1; } else if (a[e+1][f]== '@' && a[e+2][f]!= '#' && a[e+2][f]!= '@' ) { if (m-e==1 && f==n) { m+=1; a[m][n]= '@' ; a[e+1][f]= '^' ; a[e][f]= ' ' ; e+=1; } else if (x-e==1 && y==f) { x+=1; a[x][y]= '@' ; a[e+1][f]= '^' ; a[e][f]= ' ' ; e+=1; } } break ; case 'a' : case 'A' : if (a[e][f-1]== ' ' ) { a[e][f-1]= '^' ; if ((e==2 && f==8)||(e==2 && f==10)) a[e][f]= '$' ; else a[e][f]= ' ' ; f-=1; } else if (a[e][f-1]== '$' ) { a[e][f-1]= '^' ; if ((e==2 && f==8)||(e==2 && f==10)) a[e][f]= '$' ; else a[e][f]= ' ' ; f-=1; } else if (a[e][f-1]== '@' && a[e][f-2]!= '#' && a[e][f-2]!= '@' ) { if (e==m && f-n==1) { n-=1; a[m][n]= '@' ; a[e][f-1]= '^' ; if ((e==2 && f==8)||(e==2 && f==10)) a[e][f]= '$' ; else a[e][f]= ' ' ; f-=1; } else if (e==x && f-y==1) { y-=1; a[x][y]= '@' ; a[e][f-1]= '^' ; if ((e==2 && f==8)||(e==2 && f==10)) a[e][f]= '$' ; else a[e][f]= ' ' ; f-=1; } } break ; case 'd' : case 'D' : if (a[e][f+1]== ' ' ) { a[e][f+1]= '^' ; if ((e==2 && f==8)||(e==2 && f==10)) a[e][f]= '$' ; else a[e][f]= ' ' ; f+=1; } else if (a[e][f+1]== '$' ) { a[e][f+1]= '^' ; if ((e==2 && f==8)||(e==2 && f==10)) a[e][f]= '$' ; else a[e][f]= ' ' ; f+=1; } else if (a[e][f+1]== '@' && a[e][f+2]!= '#' && a[e][f+2]!= '@' ) { if (e==m && n-f==1) { n+=1; a[m][n]= '@' ; a[e][f+1]= '^' ; if ((e==2 && f==8)||(e==2 && f==10)) a[e][f]= '$' ; else a[e][f]= ' ' ; f+=1; } else if (e==x && y-f==1) { y+=1; a[x][y]= '@' ; a[e][f+1]= '^' ; if ((e==2 && f==8)||(e==2 && f==10)) a[e][f]= '$' ; else a[e][f]= ' ' ; f+=1; } } break ; case 'q' : case 'Q' :i=0; break ; } } return 0; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?