问题描述:

一天嘻哈华的弟弟正在玩一款推箱子游戏,他就想我能不能自己写个推箱子游戏呢?

源代码:

//   获取并打印地图
void getMap(){int i, j;for(i=0; i<INF; i++){for(j=0; j<INF; j++){switch(MAP[i][j]){case 0:  printf("  ");break;  //    空地 case 1:  printf("□");break;   //    墙 case 2:  printf("■");break;   //    箱子 case 3:  printf("♀");break;   //    人 case 5:  printf("☆");break;  //    目的地 case 7:  printf("★");break;  //    箱子+目的地 case 8:  printf("※");break;  //    人+目的地 }}printf("\n");}
}
//   开始操作游戏//  ************************************************** //
//                      控制移动
//
//    移动的关键点:
//      获取到人的位置,
//      然后改变其上下
//      左右四点即可。
//  ************************************************** //
void game(){int i, j;int x, y;//   保存人的位置char ch ; for(i=0; i<INF; i++){for(j=0; j<INF; j++){if(3==MAP[i][j]||8==MAP[i][j]){x = i;y = j;}}}ch = getch();switch(ch){case 'w':case 'W':if(0==MAP[x-1][y] || 5==MAP[x-1][y]){     //   人的前面是空地或目的地 MAP[x][y]   -= 3;MAP[x-1][y] += 3;}if( (2==MAP[x-1][y] || 7==MAP[x-1][y])&&(0==MAP[x-2][y] || 5==MAP[x-2][y]) ){    //   人的前面是箱子,且箱子前面是空地或目的地 MAP[x][y]   -= 3;MAP[x-1][y] += 3-2;//  = +人-箱子 MAP[x-2][y] += 2;}break;case 's':case 'S':if(0==MAP[x+1][y] || 5==MAP[x+1][y]){MAP[x][y]   -= 3;MAP[x+1][y] += 3;}if( (2==MAP[x+1][y] || 7==MAP[x+1][y])&&(0==MAP[x+2][y] || 5==MAP[x+2][y]) ){MAP[x][y]   -= 3;MAP[x+1][y] += 3-2;MAP[x+2][y] += 2;}break;case 'a':case 'A':if(0==MAP[x][y-1] || 5==MAP[x][y-1]){MAP[x][y]   -= 3;MAP[x][y-1] += 3;}if( (2==MAP[x][y-1] || 7==MAP[x][y-1])&&(0==MAP[x][y-2] || 5==MAP[x][y-2]) ){MAP[x][y]   -= 3;MAP[x][y-1] += 3-2;MAP[x][y-2] += 2;}break;case 'd':case 'D':if(0==MAP[x][y+1] || 5==MAP[x][y+1]){MAP[x][y]   -= 3;MAP[x][y+1] += 3;}if( (2==MAP[x][y+1] || 7==MAP[x][y+1])&&(0==MAP[x][y+2] || 5==MAP[x][y+2]) ){MAP[x][y]   -= 3;MAP[x][y+1] += 3-2;MAP[x][y+2] += 2;}break; }
}
//     主函数
#include <stdio.h>
#define INF     10
void getMap();
void game();
int MAP[INF][INF] = {{0,0,0,0,0,0,0,0,0,0},{0,1,1,1,1,1,0,0,0,0},{0,1,3,0,0,1,0,0,0,0},{0,1,0,2,2,1,0,1,1,1},{0,1,0,2,0,1,0,1,5,1},{0,1,1,1,0,1,1,1,5,1},{0,0,1,1,0,0,0,0,5,1},{0,0,1,0,0,0,1,0,0,1},{0,0,1,0,0,0,1,1,1,1},{0,0,1,1,1,1,1,0,0,0}};int main() {while(1){system("cls");getMap();if(MAP[4][8]==7&&MAP[5][8]==7&&MAP[6][8]==7){printf("恭喜你闯关成功。");break;}game();}return 0;
}

推箱子游戏 —— 代码我来写相关推荐

  1. python推箱子游戏代码_用python入门知识做推箱子游戏,若能打过第三关,则可以学会编程...

    不得不说,Python小游戏是最适合入门编程的项目,因为太简单! 无论懂或完全不懂python,这样的小游戏,你都可以直接开发出来,原因很简单: 在详细教程里,会有从零基础开始,一步一步的教你完成这个 ...

  2. C语言之推箱子游戏代码

    每天学习一点点,每天容易一点点.一个简单的C语言程序,用来复习c语言,代码通俗易懂.有什么问题望各位不吝赐教. /******************************************* ...

  3. Java 编写推箱子报告,推箱子游戏用java怎么去写

    推箱子游戏用java怎么去写 发布时间:2020-06-22 16:31:07 来源:亿速云 阅读:100 作者:清晨 这篇文章将为大家详细讲解有关推箱子游戏用java怎么写,小编觉得挺实用的,因此分 ...

  4. python推箱子代码详细讲解_Python使用tkinter模块实现推箱子游戏

    前段时间用C语言做了个字符版的推箱子,着实是比较简陋.正好最近用到了Python,然后想着用Python做一个图形界面的推箱子.这回可没有C那么简单,首先Python的图形界面我是没怎么用过,在网上找 ...

  5. 使用C++代码打造:史上最恶心的“推箱子”游戏,你敢再坑爹点吗?

    根据J2ME版推箱子游戏改编,现改版为VC++版,功能上一模一样,不过现在可以在Windows上运行了,而非限制于手机.游戏界面看上去还不错. 项目截图: 代码截图: 推箱子游戲是一個來自日本的古老游 ...

  6. 推箱子游戏破解方案的MATLAB代码实现

    <推箱子>游戏破解方案的MATLAB代码实现 前言 文件介绍与使用说明 (1)主脚本Sokoban.m (2)函数can_box() (3)函数find_can_boy() (4)函数ha ...

  7. 用python写一个推箱子游戏

    好的,我会用中文来帮助您编写一个推箱子游戏. 首先,我们需要定义游戏的地图.地图可以用一个二维数组来表示,其中 0 表示可以走的路,1 表示墙壁,2 表示箱子,3 表示目标位置.例如,我们可以定义一个 ...

  8. 推箱子游戏解法的数学分析与代码实现(Leetcode1263等未完)

    推箱子游戏是将箱子推到目标点,是一个经典的游戏,这个问题存在一个最优解,即最短走法,这里通过分析一个箱子与多个箱子,探讨问题的解法. 一个箱子问题链接:leetcode推箱子 这个问题是一个阉割版,不 ...

  9. c#推箱子小游戏代码_C# 推箱子游戏源码(带音效/关卡)

    C# 推箱子游戏源码(带音效/关卡) c# 2021-1-29 下载地址 https://www.codedown123.com/62444.html Vs2010 FrameWork 4.0 具有音 ...

最新文章

  1. 6. Qt 信号与信号槽 (7)-QMetaObject:: activate
  2. 【资源放送】机器学习/深度学习最全公开视频大放送!
  3. OAuth2解决什么问题
  4. flask和vue的冲突问题
  5. 【LeetCode笔记】338. 比特位计数(Java、位运算、动态规划)
  6. python3学习总结(个人遇到问题后搞明白的知识点总结)
  7. 挑战程序设计竞赛_竞赛通知 | 第二届全国高校计算机能力挑战赛——程序设计赛来啦...
  8. 怎样用手机计算机打出分数,分数怎么打出来
  9. 为什么压缩卷明明显示有许多空间却无法分出空余空间?
  10. 理解echo openssl概念、用法、常用参数
  11. Web大学生网页作业成品:基于html制作中国科技发展网站设计题材【航天之路7页】HTML+CSS+JavaScript
  12. openstack 使用iscsi连接网盘并提供cinder存储服务
  13. ABP Vnext 5.0 EF6Core适配Oracle 解决方案
  14. 【Java学习笔记】接收命令行参数输出指定个数的斐波那契数列
  15. 大数据学习入门规划?和学习路线
  16. matlab求同构数
  17. python三级_Python三级目录展示方法
  18. 计算机专业考研有必要二战吗,我,到底要不要选择二战考研?​
  19. 算法报告五--跳马问题
  20. js判断对象类型的两种方法

热门文章

  1. 机器学习系列 五 Classification 分类
  2. c++从入门到精通——面向对象初探以及友元函数、对象
  3. 基于SpringBoot的特色农产品销售设计与实现
  4. 电子书 鸟哥的Linux私房菜 (基础学习篇 第三版).pdf
  5. 全球及中国汽车保险市场格局分析与营销模式调研报告2022版
  6. iOS post请求时报错NSLocalizedDescription=Expected status code in (200-299), got 400
  7. python获取指定目录下的所有指定后缀的文件名
  8. 腾讯云主机SSL证书配置
  9. 测温仪的原理是什么?
  10. 2021年中国人工光合作用市场趋势报告、技术动态创新及2027年市场预测