c++教你一步步做推箱子(附源码)
最近在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++教你一步步做推箱子(附源码)相关推荐
- c#推箱子小游戏代码_C# 推箱子游戏源码(带音效/关卡)
C# 推箱子游戏源码(带音效/关卡) c# 2021-1-29 下载地址 https://www.codedown123.com/62444.html Vs2010 FrameWork 4.0 具有音 ...
- Python游戏开发,Python实现童年小游戏推箱子 附带源码
开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 上效果图 原理简 ...
- 人工智能离前端并不远 一步步教你开发一个机器学习APP(附源码)
最近HBO电视网推出的美剧<硅谷Silicon Valley>席卷全球,里面有一个桥段介绍了超级有趣的iOS app- Not Hotdog.你甚至可以在APP Store上下载到它. 受 ...
- 教你搭建Tiles工程-HelloTiles(附源码)
1. 添加Tiles的jar依赖 <dependency><groupId>org.apache.tiles</groupId><artifactId> ...
- 【中秋系列】卧槽,厉害了,用Python竟能做巧克力月饼。[附源码]
导语 掐指一算 2021中秋节只有14天了! 家家户户中秋都会赏月吃月饼滴 相聚不容易,重在一个"团圆美满" BUT 小编从小到大都不喜欢吃月饼撒,在家的画,家里都会买,每年 ...
- 【Python游戏】Python实现一个植物大战僵尸小游戏,非常简单,可以用于做毕业设计哟 | 附源码
前言 halo,包子们上午好 今天给打击整一个植物大战僵尸 无广告版本 哈哈 说实话,现在的小游戏很多都是有广告,多少有点难受 今天给大家直接安排 相关文件 关注小编,私信小编领取哟! 当然别忘了一件 ...
- OpenCvSharp (C# OpenCV) DNN模块加载自己训练的TensorFlow模型做目标检测(含手势识别、骰子识别、菜品识别)(附源码)
本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍OpenCVSharp DNN模块加载自己训练的TensorFlow模型做目标检测(含手势识别.骰子识别.菜品识别)! 前言: 下 ...
- [原创]jQuery推箱子小游戏(100关且可扩展可选关),休闲,对战,娱乐,小游戏,下载即用,兼容iPad移动端,代码注释全(附源码)
Sokoban 介绍 [原创]jQuery推箱子小游戏(100关且可扩展可选关),休闲,对战,娱乐,小游戏,下载即用,兼容iPad移动端,代码注释全(附源码) 游戏说明 经典的推箱子是一个来自日本的古 ...
- 手把手教你做一个数据图表生成器(附源码)...
我的需求:手动配置X轴.Y轴.图表标题等参数自动通过Pyecharts模块生成可视化的html数据图表,并将浏览器图表展示到UI界面上. [阅读全文] 制作出图表后的效果展示如下: 另外,生成后的图表 ...
最新文章
- 不若鸿蒙的意思,任正非说鸿蒙媲美iOS不用三年,华为若出鸿蒙手机你会买吗?...
- Infoview表单转换研究(infopath---aspx)
- Tomcat9 访问 Manager App
- javascript跨域实践
- express 框架中的参数小记
- Zynq UltraScale + MPSoC示例设计 - 在64位Linux上执行32位应用程序
- Xcode 4.4 的新特性 | LLVM 4.0 的新语法
- 概率校准与Brier分数
- matlab重叠相加法求卷积,通过重叠相加法实现卷积的报告.doc
- 编程题走迷宫_C++程序算法题----迷宫(一)
- 默写标准答案0917
- C++用new和不用new创建类对象区别
- WSL2 下的 Docker 配置,使用网易云镜像 + 更改 docker 文件系统(否则无法 apt update)
- ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9‘ not found
- Lingo建模基础入门
- 航测正射如何用Pix4D处理大疆无人机照片生成正射影像图
- 计算机与网络技术 英语,计算机与网络英语词汇(S3)
- 如何在苹果iPhone或iPad上启用SSL证书
- dom4j解析xml错误-version 后面跟随的值必须是用引号括起来的字符串
- IBM研究院院长:量子计算“大爆发”将在十年内到来