C++推箱子小游戏(2.0)

不多说,直接上源码:

#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <Windows.h>
#include <bits/stdc++.h>
using namespace std;int m = 0;//关卡/*推箱子游戏*/#define HANG 20 //地图的行数
#define LIE 20//列数
int x, y;class MyClass
{
public:char mapN[20][20][20] = {/*一个三维数组*/{"#####    ","#r  #    ","# OO# ###","# O # #*#","### ###*#"," ##    *#"," #      #"," #      #","#########"," #C++####"," #####"},{" ####  #####","##  #  #   #","#   ####OO #","# rO****O  #","##    #   ##"," ########## ",},{"   ###### "," ###    # ","##* O## ##","#**O O  r#","#** O O ##","######  # ","     #### ",},{"#######","#  r  #","# OOO #","##***##","# *@* #","# O O #","#  #  #","#######",},{"  ########","  #    ###","  # O    #","### O ## #","#*** O   #","#***O#O ##","#### # O #","   #   r #","   #######"},{"    #####","    #   #","    #O  #","  ###  O##","  #  O O #","### # ## #   ######","#   # ## #####  **#","# O  O          **#","##### ### #r##  **#","    #     #########","    #######",},{"############","#**  #     ###","#**  # O  O  #","#**  #O####  #","#**    r ##  #","#**  # #  O ##","###### ##O O #","  # O  O O O #","  #    #     #","  ############",},{"        ########","        #     r#","        # O#O ##","        # O  O#","        ##O O #","######### O # ###","#****  ## O  O  #","##***    O  O   #","#****  ##########","########",}};char map[20][20];/*用于*/void sm() {cout << "###########################" << endl;cout << "welcome to 推箱子         #" << endl;cout << "WASD-----------方向       #" << endl;cout << "♀--------------------人   #" << endl;cout << "■------------------箱子   #" << endl;cout << "☆------------------目标点 #" << endl;cout << " 作者:可爱的重云 @B站 @CSDN BLOG  #" << endl;cout << "本人没写多少注释,让各位大佬见笑了。#" << endl;cout << "有一个_getch()的地方如果不是MSVC请自己自己删掉下划线 #" << endl;cout << "bits/stdc++.h从MINGW复制bits文件夹就可以#" << endl;cout << "     盗程序卒老亩 特别是某音的营销狗  # " << endl;cout << "              欢迎私信!                #" << endl;cout << "              第" << m + 1 << "关                    #" << endl;cout << "           共   8   关                 #" << endl;cout << "           按 L 键 退 出              #" << endl;cout << "#######################################" << endl;}void xs() {int i, j;for (i = 0; i < HANG; i++) {for (j = 0; j < LIE; j++) {if (map[i][j] == '#') {printf("##"); }if (map[i][j] == 'r') {printf("♀"); }if (map[i][j] == 'O') {printf("■"); }if (map[i][j] == '*') {printf("☆"); }if (map[i][j] == ' ') {printf("  "); /*注意是两个空格,因为emoji占两个字节*/}if (map[i][j] == '@') {printf("★"); }if (map[i][j] == 'R') {printf("♀");}else if (map[i][j]!='#'&& map[i][j] != 'R'&& map[i][j] != '*'&& map[i][j] != '@'&& map[i][j] != 'r'&& map[i][j] != ' '&& map[i][j] != 'O'){cout << map[i][j];}}printf("\n");}}/*如出现UTF-8渲染问题,请删除渲染部分。但是效果会差一点*/void copy(int n) {for (int i = 0; i < 20; i++) {for (int j = 0; j < 20; j++) {map[i][j] = mapN[n][i][j];}}}/*直接用三维数组会很麻烦。所以用刚刚定义的map二维数组*/void yd(int x1, int y1, int x2, int y2) {if (map[x][y] == 'r') {if (map[x1][y1] == 'O'){if (map[x2][y2] == ' '){map[x][y] = ' ';map[x1][y1] = 'r';map[x2][y2] = 'O';}if (map[x2][y2] == '*'){map[x][y] = ' ';map[x1][y1] = 'r';map[x2][y2] = '@';}}if (map[x1][y1] == '@'){if (map[x2][y2] == ' '){map[x][y] = ' ';map[x1][y1] = 'R';map[x2][y2] = 'O';}if (map[x2][y2] == '*') {map[x][y] = ' ';map[x1][y1] = 'R';map[x2][y2] = '@';}}if (map[x1][y1] == ' ') {map[x][y] = ' ';map[x1][y1] = 'r';}if (map[x1][y1] == '*') {map[x][y] = ' ';map[x1][y1] = 'R';}}if (map[x][y] == 'R') {if (map[x1][y1] == 'O') {if (map[x2][y2] == ' ') {map[x][y] = '*';map[x1][y1] = 'r';map[x2][y2] = 'O';}if (map[x2][y2] == '*') {map[x][y] = '*';map[x1][y1] = 'r';map[x2][y2] = '@';}}if (map[x1][y1] == '@') {if (map[x2][y2] == ' ') {map[x][y] = '*';map[x1][y1] = 'R';map[x2][y2] = 'O';}if (map[x2][y2] == '*') {map[x][y] = '*';map[x1][y1] = 'R';map[x2][y2] = '@';}}if (map[x1][y1] == ' ') {map[x][y] = '*';map[x1][y1] = 'r';}if (map[x1][y1] == '*') {map[x][y] = '*';map[x1][y1] = 'R';}}}//没什么好讲的void find() {for (x = 0; x < HANG; x++) {for (y = 0; y < LIE; y++) {if (map[x][y] == 'r' || map[x][y] == 'R') {return;}}}}//寻找的函数int over() {int i, j;for (i = 0; i < HANG; i++) {for (j = 0; j < LIE; j++) {if (map[i][j] == 'O') {return 0;}}}return 1;}
};
//程序的结束函数
int main(void) {system("title THE GAME FOR CPP");//title是给这个控制台取名int bs = 0;MyClass myclass;//在MYCLASS这个类中为Main取一个对象名int color;cout << "请选择颜色(1 2 3 4 5)0不选(CMD的color函数):" << endl;//system ("color ??") ;cin >> color;switch (color){case 0:break;case 1:system("color a"); break;case 2:system("color b"); break;case 3:system("color c"); break;case 4:system("color d"); break;case 5:system("color e"); break;default:system("color a"); break;}char fx;myclass.sm();myclass.copy(m);//必须拷贝到关卡上,否则十六进制欢迎您myclass.xs();while (1)//死循环不结束不退出{myclass.find();fx = _getch();//MSVC的写法,其他IDE自己删下划线switch (fx) {case 'L':case 'l':MessageBoxA(NULL, "再见", "SYSTEM", MB_OK);return 0;break;case 72:case 'w':case 'W':myclass.yd(x - 1, y, x - 2, y); break;case 80:case 's':case 'S':myclass.yd(x + 1, y, x + 2, y); break;case 75:case 'A':case 'a':myclass.yd(x, y - 1, x, y - 2); break;case 77:case 'D':case 'd':myclass.yd(x, y + 1, x, y + 2); break;}bs++;system("CLS");//更新地图myclass.sm();//重新显示说明myclass.xs();//重新渲染if (myclass.over() == 1){m++;myclass.copy(m);MessageBox(NULL, L"你赢了", L"推箱子Game", MB_OK);//显示对话框if (m == 8)/*通关所有关卡*/{MessageBoxA(NULL, "Bye!", "SYSTEM", MB_OK);break;}else{MessageBoxA(NULL, "恭喜进入下一关!", "推箱子GAME", MB_OK);cout << "你走了" << bs << "步" << endl;system("pause");}}}MessageBoxA(NULL, "再见!", "GAME",MB_OK);return 0;
}
/*版权声明:
此程序来自可爱的重云,地图来自原版游戏(第一关除外)
未经允许禁止转载
版本:2.0
@CSDN @B站
*/

本人没写多少注释让大佬见笑了……

运行结果:

BYE!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38774.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言写一个简单的小游戏-推箱子

在学习C语言之后&#xff0c;写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力。 推箱子作为手机上最常见的简单游戏&#xff0c;其代码也相对简单&#xff0c;想法也比较简单&#xff0c;下面为其代码和运行图。 /********************************************…

【飞行棋】多人游戏-微信小程序开发流程详解

可曾记得小时候玩过的飞行棋游戏&#xff0c;是90后的都有玩过吧&#xff0c;现在重温一下&#xff0c;这是一个可以二到四个人参与的游戏&#xff0c;通过投骰子走棋&#xff0c;一开始靠运气&#xff0c;后面还靠自己选择&#xff0c;谁抢占先机才能赢&#xff0c;还可以和小…

游戏陪玩小程序开发制作

游戏陪玩小程序开发制作 该项目是一个线上下单线下陪玩项目&#xff0c;主要功能有游戏陪玩大神展示&#xff0c;陪玩大神入驻&#xff0c;用户预约陪玩大神&#xff0c;陪玩大神接单等功能。陪玩大神收益可以提现等功能。 主要功能有聊天室、和平精英陪玩、英雄联盟、绝地求…

微信小程序 | 游戏开发之接宝石箱子游戏

1、什么是微信小游戏 微信小游戏是小程序的一个类目&#xff0c;小游戏是微信开放给小程序的更多的能力&#xff0c;让小程序开发者有了开发游戏的能力。微信小游戏是在小程序的基础上添加了游戏库API。微信小游戏只能运行在小程序环境中&#xff0c;微信小游戏没有小程序中WX…

微信小程序| 做一款多人实时线上的五指棋联机游戏

&#x1f4cc;个人主页&#xff1a;个人主页 ​&#x1f9c0; 推荐专栏&#xff1a;小程序开发成神之路 --【这是一个为想要入门和进阶小程序开发专门开启的精品专栏&#xff01;从个人到商业的全套开发教程&#xff0c;实打实的干货分享&#xff0c;确定不来看看&#xff1f; …

游戏陪玩小程序怎么开发-游戏陪玩小程序功能

目前游戏陪玩行业已经占据了很大的市场所在&#xff0c;拥有一款完善的陪玩软件可以帮助很多用户实现更好的实现游戏陪玩的寻找&#xff0c;当然开发陪玩小程序也是要注意很多方面。下面说一下如果开发和核心功能 如何开发&#xff1f; 开发无非就是几种 1、自己懂技术慢慢学…

Unity游戏上传到微信小程序

一、注册 地址&#xff1a; 微信小程序 补充信息&#xff08;类目需要选择游戏方面&#xff0c;不然后面调试不了&#xff09; - 注意AppID 二、下载插件 地址&#xff1a;Unity转微信小程序 三、转换项目 四丶 下载微信开发工具并导入项目 微信开发者工具 打包好会生…

微信小程序项目实例——2048小游戏

今日推荐&#x1f481;‍♂️ 第一次听廖俊涛的歌是他首次出现在明日之子舞台上的那首《谁》 到现在这首歌成了我网易云收藏的十几首歌中的一首&#xff0c;也是听的最多的一首 怎么形容呢&#x1f914;算不上惊艳&#xff0c;却百听不厌&#x1f442; &#x1f52e;&#x1…

蛋白互作常用的研究方法

蛋白质是生物功能最直接的执行者&#xff0c;虽然一些蛋白质可以独立的完成他的使命&#xff0c;但是大部分的蛋白都是需要一些伴侣分子的协助一起完成任务或者形成复合物之后才能充分发挥他的功能。所以&#xff0c;了解蛋白质与蛋白质之间的相互作用&#xff0c;能够帮助我们…

OpenAL联合创始人Ilya:你要与AI较劲吗?

AlexNet、AlphaGo、GPT、CLIP、DALL-E、Codex&#xff0c;一个个在AI界夺目闪耀&#xff0c;又影响深远的杰作&#xff0c;其背后都镌刻了一个人的名字。 在2012年博士毕业后的10年里&#xff0c;其论文被引次数超过25万次&#xff0c;领导开发了划时代的GPT系列&#xff0c;成…

改写中文句子的软件-修改文章句子的软件

免费语句改写软件 您是否在写博客、新闻稿或者其他需要大量文本的场合中觉得无从下手&#xff1f;您是否为修改一段语句上耗费大量时间感到困扰&#xff1f;如果您有这样的烦恼&#xff0c;那么我向您介绍我们的免费语句改写软件&#xff0c;可以帮助您快速批量语句改写&#x…

去中心化开源社交平台Misskey

本文是应网友 anthony084 的要求写的&#xff1b; 什么是 Misskey &#xff1f; Misskey 是一个开源、去中心化的社交媒体平台&#xff0c;发帖方式类似于微博和推特。 去中心化则意味着一个 Misskey 实例可以与其他 Misskey 实例进行相互连接&#xff0c;在 Fediverse (Activi…

讯图科技数据网关解决方案

一、方案定位&#xff1a; 一套高可用&#xff0c;支持高并发的数据服务分发系统&#xff1b;一套可配置的动态数据服务开发调试框架&#xff1b;整合alibaba spring cloud、dubbo&#xff0c;支持熔断、限流&#xff1b;可扩展定制go、C#、java开发SDK等。 二、系统架构图 三…

未来5年,生产力的底层逻辑变了,影响所有企业

上周&#xff0c;K哥带领20多位企业家、技术高管参访了阿里钉钉&#xff0c;学习AI大模型如何应用到企业生产经营和组织管理当中&#xff0c;以及企业如何使用新生产力工具实现降本增效。 通过这次参访&#xff0c;我对AI大模型如何驱动企业管理变革有了新的认识&#xff0c;三…

字节发年终奖了

❤️点击上方&#xff0c;选择星标或置顶&#xff0c;每天给你送上干货❤️ 作者 | godweiyang 出品 | 公众号&#xff1a;算法码上来&#xff08;ID&#xff1a;GodNLP&#xff09; - BEGIN - 好久没写文章了&#xff0c;上一次发文章还是2.14情人节了&#xff0c;一转眼两个多…

AIGC狂飙,能否成为娱乐社交应用的狂欢?

4 月 22 日&#xff0c;PMTalk 社交娱乐产品增长与运营新玩法线下沙龙在广州举行&#xff0c;网易云信娱乐社交行业解决方案专家姚柱围绕 AIGC 与娱乐社交玩法融合&#xff0c;分享了《AIGC 狂飙背后的娱乐社交产品趋势与实践》&#xff0c;以下为演讲整理实录。 目前&#xf…

干货篇:如何从 0 到 1 落地你的第一个开源项目?破局分享!

前言 大家好&#xff0c;我是 「周三不Coding」。最近马上就要到秋招提前批啦&#xff0c;相信很多小伙伴都在忙着复习八股文、刷算法题、准备简历中。 最近我也关注到了很多同学都在问一个问题&#xff0c;如何做一个自己的项目。 项目的重要性想必大家都清楚&#xff0c;如…

chatgpt赋能python:Python中让所有单词的首字母变成大写的SEO文章

Python中让所有单词的首字母变成大写的SEO文章 作为一种开源编程语言&#xff0c;Python已经在各个领域崭露头角。伴随着搜索引擎优化&#xff08;SEO&#xff09;的发展&#xff0c;Python也成为了一个极其有用的工具&#xff0c;尤其是当涉及到优化网站上的关键词时。 在本…

chatgpt赋能python:横向拼接图片在SEO中的作用

横向拼接图片在SEO中的作用 在现代网络环境中&#xff0c;图像搜索和视觉呈现在SEO中扮演了非常重要的角色。人们喜欢通过高质量的图像来寻找信息和生成视觉印象。对于像素比率和视觉呈现的好坏&#xff0c;图像品质是重中之重的。在这样的SEO环境中&#xff0c;对于那些希望通…

chatgpt赋能python:如何用Python开发安卓APP并进行SEO优化

如何用Python开发安卓APP并进行SEO优化 介绍 Python是一种著名的编程语言&#xff0c;由于其简洁性和功能强大性&#xff0c;Python被广泛应用于计算机科学和软件工程领域。不仅如此&#xff0c;Python还可以用于开发移动应用程序&#xff08;APP&#xff09;。 虽然Python是…