推箱子游戏 —— 代码我来写
问题描述:
一天嘻哈华的弟弟正在玩一款推箱子游戏,他就想我能不能自己写个推箱子游戏呢?
源代码:
// 获取并打印地图
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;
}
推箱子游戏 —— 代码我来写相关推荐
- python推箱子游戏代码_用python入门知识做推箱子游戏,若能打过第三关,则可以学会编程...
不得不说,Python小游戏是最适合入门编程的项目,因为太简单! 无论懂或完全不懂python,这样的小游戏,你都可以直接开发出来,原因很简单: 在详细教程里,会有从零基础开始,一步一步的教你完成这个 ...
- C语言之推箱子游戏代码
每天学习一点点,每天容易一点点.一个简单的C语言程序,用来复习c语言,代码通俗易懂.有什么问题望各位不吝赐教. /******************************************* ...
- Java 编写推箱子报告,推箱子游戏用java怎么去写
推箱子游戏用java怎么去写 发布时间:2020-06-22 16:31:07 来源:亿速云 阅读:100 作者:清晨 这篇文章将为大家详细讲解有关推箱子游戏用java怎么写,小编觉得挺实用的,因此分 ...
- python推箱子代码详细讲解_Python使用tkinter模块实现推箱子游戏
前段时间用C语言做了个字符版的推箱子,着实是比较简陋.正好最近用到了Python,然后想着用Python做一个图形界面的推箱子.这回可没有C那么简单,首先Python的图形界面我是没怎么用过,在网上找 ...
- 使用C++代码打造:史上最恶心的“推箱子”游戏,你敢再坑爹点吗?
根据J2ME版推箱子游戏改编,现改版为VC++版,功能上一模一样,不过现在可以在Windows上运行了,而非限制于手机.游戏界面看上去还不错. 项目截图: 代码截图: 推箱子游戲是一個來自日本的古老游 ...
- 推箱子游戏破解方案的MATLAB代码实现
<推箱子>游戏破解方案的MATLAB代码实现 前言 文件介绍与使用说明 (1)主脚本Sokoban.m (2)函数can_box() (3)函数find_can_boy() (4)函数ha ...
- 用python写一个推箱子游戏
好的,我会用中文来帮助您编写一个推箱子游戏. 首先,我们需要定义游戏的地图.地图可以用一个二维数组来表示,其中 0 表示可以走的路,1 表示墙壁,2 表示箱子,3 表示目标位置.例如,我们可以定义一个 ...
- 推箱子游戏解法的数学分析与代码实现(Leetcode1263等未完)
推箱子游戏是将箱子推到目标点,是一个经典的游戏,这个问题存在一个最优解,即最短走法,这里通过分析一个箱子与多个箱子,探讨问题的解法. 一个箱子问题链接:leetcode推箱子 这个问题是一个阉割版,不 ...
- c#推箱子小游戏代码_C# 推箱子游戏源码(带音效/关卡)
C# 推箱子游戏源码(带音效/关卡) c# 2021-1-29 下载地址 https://www.codedown123.com/62444.html Vs2010 FrameWork 4.0 具有音 ...
最新文章
- 6. Qt 信号与信号槽 (7)-QMetaObject:: activate
- 【资源放送】机器学习/深度学习最全公开视频大放送!
- OAuth2解决什么问题
- flask和vue的冲突问题
- 【LeetCode笔记】338. 比特位计数(Java、位运算、动态规划)
- python3学习总结(个人遇到问题后搞明白的知识点总结)
- 挑战程序设计竞赛_竞赛通知 | 第二届全国高校计算机能力挑战赛——程序设计赛来啦...
- 怎样用手机计算机打出分数,分数怎么打出来
- 为什么压缩卷明明显示有许多空间却无法分出空余空间?
- 理解echo openssl概念、用法、常用参数
- Web大学生网页作业成品:基于html制作中国科技发展网站设计题材【航天之路7页】HTML+CSS+JavaScript
- openstack 使用iscsi连接网盘并提供cinder存储服务
- ABP Vnext 5.0 EF6Core适配Oracle 解决方案
- 【Java学习笔记】接收命令行参数输出指定个数的斐波那契数列
- 大数据学习入门规划?和学习路线
- matlab求同构数
- python三级_Python三级目录展示方法
- 计算机专业考研有必要二战吗,我,到底要不要选择二战考研?​
- 算法报告五--跳马问题
- js判断对象类型的两种方法
热门文章
- 机器学习系列 五 Classification 分类
- c++从入门到精通——面向对象初探以及友元函数、对象
- 基于SpringBoot的特色农产品销售设计与实现
- 电子书 鸟哥的Linux私房菜 (基础学习篇 第三版).pdf
- 全球及中国汽车保险市场格局分析与营销模式调研报告2022版
- iOS post请求时报错NSLocalizedDescription=Expected status code in (200-299), got 400
- python获取指定目录下的所有指定后缀的文件名
- 腾讯云主机SSL证书配置
- 测温仪的原理是什么?
- 2021年中国人工光合作用市场趋势报告、技术动态创新及2027年市场预测