最近在c++中用最基础的方法作出了推箱子,效果比想象中的好的多,还不闪屏,不明白为什么网上好多人的推箱子代码都几百行几百行的。

教程开始!

第一步,先录入头文件:

#include<iostream>
#include<cstring>
#include<windows.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>

第二步,制作地图(目前只有第一关,以后会努力更完的!请催更。):

char a[10][10]={{"  ###   "}, {"  #6#   "},{"  #0####"},{"### o06#"},{"#60  ###"},{"####0#  "},{"   #6#  "},{"   ###  "}};

第三步:创建人物移动:

void move(){int x,y,p,q;x=3;y=4;p=5;q=10;char ch;print();while(1) {ch=getch();if(ch=='s') {if(a[x+1][y]!='#'&&a[x+1][y]=='0'){a[x+2][y]='0';a[x][y]=' ';a[x+1][y]='o';}if(a[x+1][y]!='#') {a[x][y]=' ';x++;a[x][y]='o';system("cls");print();}}if(ch=='w') {if(a[x-1][y]!='#'&&a[x-1][y]=='0'){a[x-2][y]='0';a[x][y]=' ';a[x-1][y]='o';}if(a[x-1][y]!='#') {a[x][y]=' ';x--;a[x][y]='o';system("cls");print();}}if(ch=='a') {if(a[x][y-1]!='#'&&a[x][y-1]=='0'){a[x][y-2]='0';a[x][y]=' ';a[x][y-1]='o';}if(a[x][y-1]!='#') {a[x][y]=' ';y--;a[x][y]='o';system("cls");print();}}if(ch=='d') {if(a[x][y+1]!='#'&&a[x][y+1]=='0'){a[x][y+2]='0';a[x][y]=' ';a[x][y+1]='o';}if(a[x][y+1]!='#') {a[x][y]=' ';y++;a[x][y]='o';system("cls");print();}}if(a[1][3]=='0'&&a[6][4]=='0'&&a[4][1]=='0'&&a[3][6]=='0'){system("cls");cout<<"You're Win";break; }if(ch=='q'){system("cls");welcome();}/*if(x==p&&y==q) {system("cls");cout<<"You're Win";return 0;char a[10][10]={{"########"}, {"### ####"},{"###0####"},{"### o0 #"},{"# 0  ###"},{"####0###"},{"#### ###"},{"########"}};}*/}} 

第四步,创建开始界面:

void welcome(){int a;system("cls");cout<<"\n\n推箱子小游戏"<<endl<<endl;cout<<"  0  |----|       1.开始游戏"<<endl;cout<<"(||) |0000|       2.游戏规则"<<endl;cout<<"╝╚ |0000|"<<endl; cin>>a;if(a==1){system("cls");move();} else if(a==2){system("cls"); cout<<"推箱子规则:"<<endl;cout<<"通过w、s、a、d来进行控制小人移动,已达到将所有箱子(0)\d推入传送点(6)的目的。"<<endl;cout<<"在游戏中可以按q来返回主界面。。。";cout<<"按1以返回。。。";cin>>a;if(a==1){welcome();} }

第五步,输出地图:

void print() {for(int i=0; i<10; i++) {puts(a[i]);}
}

最后一步,主函数调用自定义函数:

int main() {MessageBox(0, "欢迎来到推箱子小游戏\n\n制作:火龙果殿下", "系统", MB_OK);welcome();return 0;
}

 完整代码:

#include<iostream>
#include<cstring>
#include<windows.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
using namespace std;
/*
char m[7][12]= {{"###########"},{"#o   #  ###"},{"# ## ##   #"},{"#  #    # #"},{"# #### ## #"},{"#       #  "},{"###########"}
};*/
char a[10][10]={{"  ###   "}, {"  #6#   "},{"  #0####"},{"### o06#"},{"#60  ###"},{"####0#  "},{"   #6#  "},{"   ###  "}};
void move();
void welcome(){int a;system("cls");cout<<"\n\n推箱子小游戏"<<endl<<endl;cout<<"  0  |----|       1.开始游戏"<<endl;cout<<"(||) |0000|       2.游戏规则"<<endl;cout<<"╝╚ |0000|"<<endl; cin>>a;if(a==1){system("cls");move();} else if(a==2){system("cls"); cout<<"推箱子规则:"<<endl;cout<<"通过w、s、a、d来进行控制小人移动,已达到将所有箱子(0)\d推入传送点(6)的目的。"<<endl;cout<<"在游戏中可以按q来返回主界面。。。";cout<<"按1以返回。。。";cin>>a;if(a==1){welcome();} }
}
void print() {for(int i=0; i<10; i++) {puts(a[i]);}
}
void move(){int x,y,p,q;x=3;y=4;p=5;q=10;char ch;print();while(1) {ch=getch();if(ch=='s') {if(a[x+1][y]!='#'&&a[x+1][y]=='0'){a[x+2][y]='0';a[x][y]=' ';a[x+1][y]='o';}if(a[x+1][y]!='#') {a[x][y]=' ';x++;a[x][y]='o';system("cls");print();}}if(ch=='w') {if(a[x-1][y]!='#'&&a[x-1][y]=='0'){a[x-2][y]='0';a[x][y]=' ';a[x-1][y]='o';}if(a[x-1][y]!='#') {a[x][y]=' ';x--;a[x][y]='o';system("cls");print();}}if(ch=='a') {if(a[x][y-1]!='#'&&a[x][y-1]=='0'){a[x][y-2]='0';a[x][y]=' ';a[x][y-1]='o';}if(a[x][y-1]!='#') {a[x][y]=' ';y--;a[x][y]='o';system("cls");print();}}if(ch=='d') {if(a[x][y+1]!='#'&&a[x][y+1]=='0'){a[x][y+2]='0';a[x][y]=' ';a[x][y+1]='o';}if(a[x][y+1]!='#') {a[x][y]=' ';y++;a[x][y]='o';system("cls");print();}}if(a[1][3]=='0'&&a[6][4]=='0'&&a[4][1]=='0'&&a[3][6]=='0'){system("cls");cout<<"You're Win";break; }if(ch=='q'){system("cls");welcome();}/*if(x==p&&y==q) {system("cls");cout<<"You're Win";return 0;char a[10][10]={{"########"}, {"### ####"},{"###0####"},{"### o0 #"},{"# 0  ###"},{"####0###"},{"#### ###"},{"########"}};}*/}}
int main() {MessageBox(0, "欢迎来到推箱子小游戏\n\n制作:火龙果殿下", "系统", MB_OK);welcome();return 0;
}

本篇就到这里啦,如果大家还想学其他的小游戏的话,请在评论区里留言,火龙果会努力编程的!

886~

c++教你一步步做推箱子(附源码)相关推荐

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

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

  2. Python游戏开发,Python实现童年小游戏推箱子 附带源码

    开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 上效果图 原理简 ...

  3. 人工智能离前端并不远 一步步教你开发一个机器学习APP(附源码)

    最近HBO电视网推出的美剧<硅谷Silicon Valley>席卷全球,里面有一个桥段介绍了超级有趣的iOS app- Not Hotdog.你甚至可以在APP Store上下载到它. 受 ...

  4. 教你搭建Tiles工程-HelloTiles(附源码)

    1. 添加Tiles的jar依赖 <dependency><groupId>org.apache.tiles</groupId><artifactId> ...

  5. 【中秋系列】卧槽,厉害了,用Python竟能做巧克力月饼。[附源码]

    导语 掐指一算 ​ 2021中秋节只有14天了! 家家户户中秋都会赏月吃月饼滴 相聚不容易,重在一个"团圆美满" BUT  小编从小到大都不喜欢吃月饼撒,在家的画,家里都会买,每年 ...

  6. 【Python游戏】Python实现一个植物大战僵尸小游戏,非常简单,可以用于做毕业设计哟 | 附源码

    前言 halo,包子们上午好 今天给打击整一个植物大战僵尸 无广告版本 哈哈 说实话,现在的小游戏很多都是有广告,多少有点难受 今天给大家直接安排 相关文件 关注小编,私信小编领取哟! 当然别忘了一件 ...

  7. OpenCvSharp (C# OpenCV) DNN模块加载自己训练的TensorFlow模型做目标检测(含手势识别、骰子识别、菜品识别)(附源码)

    本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍OpenCVSharp DNN模块加载自己训练的TensorFlow模型做目标检测(含手势识别.骰子识别.菜品识别)! 前言: 下 ...

  8. [原创]jQuery推箱子小游戏(100关且可扩展可选关),休闲,对战,娱乐,小游戏,下载即用,兼容iPad移动端,代码注释全(附源码)

    Sokoban 介绍 [原创]jQuery推箱子小游戏(100关且可扩展可选关),休闲,对战,娱乐,小游戏,下载即用,兼容iPad移动端,代码注释全(附源码) 游戏说明 经典的推箱子是一个来自日本的古 ...

  9. 手把手教你做一个数据图表生成器(附源码)...

    我的需求:手动配置X轴.Y轴.图表标题等参数自动通过Pyecharts模块生成可视化的html数据图表,并将浏览器图表展示到UI界面上. [阅读全文] 制作出图表后的效果展示如下: 另外,生成后的图表 ...

最新文章

  1. 不若鸿蒙的意思,任正非说鸿蒙媲美iOS不用三年,华为若出鸿蒙手机你会买吗?...
  2. Infoview表单转换研究(infopath---aspx)
  3. Tomcat9 访问 Manager App
  4. javascript跨域实践
  5. express 框架中的参数小记
  6. Zynq UltraScale + MPSoC示例设计 - 在64位Linux上执行32位应用程序
  7. Xcode 4.4 的新特性 | LLVM 4.0 的新语法
  8. 概率校准与Brier分数
  9. matlab重叠相加法求卷积,通过重叠相加法实现卷积的报告.doc
  10. 编程题走迷宫_C++程序算法题----迷宫(一)
  11. 默写标准答案0917
  12. C++用new和不用new创建类对象区别
  13. WSL2 下的 Docker 配置,使用网易云镜像 + 更改 docker 文件系统(否则无法 apt update)
  14. ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9‘ not found
  15. Lingo建模基础入门
  16. 航测正射如何用Pix4D处理大疆无人机照片生成正射影像图
  17. 计算机与网络技术 英语,计算机与网络英语词汇(S3)
  18. 如何在苹果iPhone或iPad上启用SSL证书
  19. dom4j解析xml错误-version 后面跟随的值必须是用引号括起来的字符串
  20. IBM研究院院长:量子计算“大爆发”将在十年内到来

热门文章

  1. 用css3径向渐变制作花纹背景
  2. US Domain Center 网站安全
  3. 计算机硬件中内存的作用是什么,电脑内存有什么用?电脑内存的作用介绍
  4. 区块链在物联网中的应用态势分析
  5. 转载:十年学会程序设计 激励自己
  6. 南邮 OJ 2066 好奇的奥利安娜
  7. [转载]电视散文《毕业了》新
  8. Ubuntu20.04安装UHD及GUN Radio3.9
  9. Linux - CPU性能评估_详解查看CPU性能的命令
  10. SQL Server 2017 安装流程