当前位置: 首页 > news >正文

推房子游戏c++

 

这段代码是一个推箱子游戏的实现。游戏中有一个地图,地图上有墙壁、人、箱子和目标位置。玩家通过键盘输入WASD或方向键来控制人物的移动,目标是将所有的箱子推到相应的目标位置上。

代码中的dt数组表示地图,每个位置上的字符表示对应的元素,如#表示墙壁,r表示人,O表示箱子,*表示目标位置。函数shuoming用来输出游戏说明,xianshi用来输出地图,find用来找到人物的位置,yidong用来处理人物移动的逻辑。

在主函数中,通过一个循环不断接受玩家的输入并更新地图。每次更新后,清空屏幕并输出游戏说明和地图。这样就实现了一个简单的推箱子游戏。

​
#include<bits/stdc++.h>#include<conio.h>using namespace std;int x,y;char dt[20][20]={"#####       ","#r  #       ","# OO# ###   ","# O # #*#   ","### ###*#   ","#      *#   ","#   ##  #   ","#   ####    ","######"};void shuoming(){cout<<"---------推箱子游戏欢迎你---------"<<endl;cout<<"|   通过WASD或方向键移动   |"<<endl; cout<<"|   r:人的位置        |"<<endl;cout<<"|   O:箱子的位置       |"<<endl;cout<<"|   *:箱子的目标位置     |"<<endl;cout<<"----------------------------------"<<endl;}void xianshi(){int i,j;for(i=0;i<9;i++){for(j=0;j<9;j++){cout<<dt[i][j];}cout<<endl;}} void find(){for(x=0;x<9;x++){for(y=0;y<9;y++){if(dt[x][y]=='r'||dt[x][y]=='R'){return;}}}}void yidong(int x1, int y1, int x2, int y2) {if (dt[x][y] == 'r') {if (dt[x1][y1] == 'O') {if (dt[x2][y2] == ' ') {dt[x][y] = ' ';dt[x1][y1] = 'r';dt[x2][y2] = 'O';}if (dt[x2][y2] == '*') {dt[x][y] = ' ';dt[x1][y1] = 'r';dt[x2][y2] = '@';}}if (dt[x1][y1] == '@') {if (dt[x2][y2] == ' ') {dt[x][y] = ' ';dt[x1][y1] = 'R';dt[x2][y2] = 'O';}if (dt[x2][y2] == '*') {dt[x][y] = ' ';dt[x1][y1] = 'R';dt[x2][y2] = '@';}}if (dt[x1][y1] == ' ') {dt[x][y] = ' ';dt[x1][y1] = 'r';}if (dt[x1][y1] == '*') {dt[x][y] = ' ';dt[x1][y1] = 'R';}}if (dt[x][y] == 'R') {if (dt[x1][y1] == 'O') {if (dt[x2][y2] == ' ') {dt[x][y] = '*';dt[x1][y1] = 'r';dt[x2][y2] = 'O';}if (dt[x2][y2] == '*') {dt[x][y] = '*';dt[x1][y1] = 'r';dt[x2][y2] = '@';}}if (dt[x1][y1] == '@') {if (dt[x2][y2] == ' ') {dt[x][y] = '*';dt[x1][y1] = 'R';dt[x2][y2] = 'O';}if (dt[x2][y2] == '*') {dt[x][y] = '*';dt[x1][y1] = 'R';dt[x2][y2] = '@';}}if (dt[x1][y1] == ' ') {dt[x][y] = '*';dt[x1][y1] = 'r';}if (dt[x1][y1] == '*') {dt[x][y] = '*';dt[x1][y1] = 'R';}}}int main(){char fangxiang;shuoming();xianshi();while(1){find();fangxiang=getch();switch(fangxiang){case 72:case 'W':case 'w':yidong(x-1,y,x-2,y);break;case 80:case 'S':case 's':yidong(x+1,y,x+2,y);break;case 75:case 'A':case 'a':yidong(x,y-1,x,y-2);break;case 77:case 'D':case 'd':yidong(x,y+1,x,y+2);break;}system("cls");shuoming();xianshi();}return 0;}​

这段代码是一个推箱子游戏的实现。游戏中有一个地图,地图上有墙壁、人、箱子和目标位置。玩家通过键盘输入WASD或方向键来控制人物的移动,目标是将所有的箱子推到相应的目标位置上。

代码中的dt数组表示地图,每个位置上的字符表示对应的元素,如#表示墙壁,r表示人,O表示箱子,*表示目标位置。函数shuoming用来输出游戏说明,xianshi用来输出地图,find用来找到人物的位置,yidong用来处理人物移动的逻辑。

在主函数中,通过一个循环不断接受玩家的输入并更新地图。每次更新后,清空屏幕并输出游戏说明和地图。这样就实现了一个简单的推箱子游戏。

相关文章:

推房子游戏c++

这段代码是一个推箱子游戏的实现。游戏中有一个地图&#xff0c;地图上有墙壁、人、箱子和目标位置。玩家通过键盘输入WASD或方向键来控制人物的移动&#xff0c;目标是将所有的箱子推到相应的目标位置上。 代码中的dt数组表示地图&#xff0c;每个位置上的字符表示对应的元素…...

docker学习入门篇

1、docker简介 docker官网&#xff1a; www.docker.com dockerhub官网&#xff1a; hub.docker.com docker文档官网&#xff1a;docs.docker.com Docker是基于Go语言实现的云开源项目。 Docker的主要目标是&#xff1a;Build, Ship and Run Any App, Anywhere(构建&…...

【Spring Boot 3】动态注入和移除Bean

【Spring Boot 3】动态注入和移除Bean 背景介绍开发环境开发步骤及源码工程目录结构总结动态注入Bean的方法动态移除Bean的方法注意事项背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个…...

555经典电路

1、555介绍&#xff1a; 555 定时器是一种模拟和数字功能相结合的中规模集成器件。一般用双极性工艺制作的称为 555&#xff0c;用 CMOS 工艺制作的称为 7555&#xff0c;除单定时器外&#xff0c;还有对应的双定时器 556/7556。555 定时器的电源电压范围宽&#xff0c;可在 4…...

vue 下载的插件从哪里上传?npm发布插件详细记录

文章参考&#xff1a; 参考文章一&#xff1a; 封装vue插件并发布到npm详细步骤_vue-cli 封装插件-CSDN博客 参考文章二&#xff1a; npm发布vue插件步骤、组件、package、adduser、publish、getElementsByClassName、important、export、default、target、dest_export default…...

吴恩达机器学习笔记 十七 通过偏差与方差诊断性能 正则化 偏差 方差

高偏差&#xff08;欠拟合&#xff09;&#xff1a;在训练集上表现得也不好 高方差&#xff08;过拟合&#xff09;&#xff1a;J_cv要远大于J_train 刚刚好&#xff1a;J_cv和J_train都小 J_cv和J_train与拟合多项式阶数的关系 从一阶到四阶&#xff0c;训练集的误差越来越小…...

Java高频面试之SSM篇

有需要互关的小伙伴,关注一下,有关必回关,争取今年认证早日拿到博客专家 Java高频面试之总纲篇 Java高频面试之集合篇 Java高频面试之异常篇 Java高频面试之并发篇 Java高频面试之SSM篇 Java高频面试之Mysql篇 Java高频面试之Redis篇 Java高频面试之消息队列与分布式篇…...

【软件工程】介绍

软件工程 软件工程是一门应用计算机科学、数学和工程原则来设计、开发、维护和测试软件的学科。软件工程着重于创建质量高效、可靠、可使用、可维护和快速开发的系统。这个领域从20世纪60年代初开始蓬勃发展&#xff0c;主要是为了解决软件危机&#xff0c;即随着计算机和软件…...

考研复习C语言初阶(4)+标记和BFS展开的扫雷游戏

目录 1. 一维数组的创建和初始化。 1.1 数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建 2.2 二维数组的初始化 2.3 二维数组的使用 2.4 二维数组在内存中的存储 3. 数组越界 4. 冒泡…...

在 Python 中从键盘读取用户输入

文章目录 如何在 Python 中从键盘读取用户输入input 函数使用input读取键盘输入使用input读取特定类型的数据处理错误从用户输入中读取多个值 getpass 模块使用 PyInputPlus 自动执行用户输入评估总结 如何在 Python 中从键盘读取用户输入 原文《How to Read User Input From t…...

linux设置systemctl启动

linux设置nginx systemctl启动 生成nginx.pid文件 #验证nginx的配置&#xff0c;并生成nginx.pid文件 /usr/local/nginx/sbin/nginx -t #pid文件目录在 /usr/local/nginx/run/nginx.pid 设置systemctl启动nginx #添加之前需要先关闭启动状态的nginx&#xff0c;让nginx是未…...

蓝桥杯历年真题省赛 Java b组 2016年 第七届 煤球数目

一、题目 煤球数目. 有一堆煤球&#xff0c;堆成三角棱锥形。具体&#xff1a; 第一层放1个&#xff0c; 第二层3个&#xff08;排列成三角形&#xff09;&#xff0c; 第三层6个&#xff08;排列成三角形&#xff09;&#xff0c; 第四层10个&#xff08;排列成三角形&#x…...

NTFS安全权限

NTFS是新技术文件系统&#xff08;New Technology File System&#xff09;的缩写&#xff0c;是一种用于Windows操作系统的文件系统。NTFS提供了高级的功能和性能&#xff0c;包括文件和目录的权限控制、加密、压缩以及日志等。它被广泛应用于Windows NT、Windows 2000、Windo…...

rt-thread组件之audio组件(结合mp3player包使用)

前言 继上一篇RT-Thread组件之Audio框架i2s驱动的编写的编写&#xff0c;应用层使用rt-thread软件包里面的wavplayer组件以及 rt-thread组件之audio组件(结合wavplayer包使用)的文章本篇使用的是 mp3player软件包&#xff0c;与wavplayer设计框架基本上是一样的&#xff0c;只…...

SaulLM-7B: A pioneering Large Language Model for Law

SaulLM-7B: A pioneering Large Language Model for Law 相关链接&#xff1a;arxiv 关键字&#xff1a;Large Language Model、Legal Domain、SaulLM-7B、Instructional Fine-tuning、Legal Corpora 摘要 本文中&#xff0c;我们介绍了SaulLM-7B&#xff0c;这是为法律领域量…...

概要了解postman、jmeter 、loadRunner

postman还蛮好理解的&#xff0c;后续复习的话着重学习关联接口测试即可&#xff0c;感觉只要用几次就会记住&#xff1a; 1 从接口的响应结果当中提取需要的数据 2 设置成环境变量/全局变量&#xff08;json value check 、set environment para 3写入到下一个接口的请求数据中…...

3642. 最大公约数和最小公倍数 考研上机真题

输入两个正整数 m和 n&#xff0c;求其最大公约数和最小公倍数。 输入格式 一行&#xff0c;两个整数 m和 n。 输出格式 一行&#xff0c;输出两个数的最大公约数和最小公倍数。 数据范围 1≤n,m≤10000 输入样例&#xff1a; 5 7输出样例&#xff1a; 1 35 #include…...

Java客户端调用elasticsearch进行深度分页查询 (search_after)

Java客户端调用elasticsearch进行深度分页查询 &#xff08;search_after&#xff09; 一. 代码二. 测试结果 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 具体的Search_after解…...

C#使用自定义的泛型节点类 Node<T>实现二叉树类BinaryTree<T>及其方法

目录 一、涉及到的知识点 1.Comparer.Default 属性 2.实现二叉树类BinaryTree步骤 &#xff08;1&#xff09;先设计一个泛型节点类 &#xff08;2&#xff09;再设计一个泛型的二叉树类 &#xff08;3&#xff09;最后设计Main方法 二、 使用泛型节点类 Node实现二叉树…...

美团2025春招第一次笔试题

第四题 题目描述 塔子哥拿到了一个大小为的数组&#xff0c;她希望删除一个区间后&#xff0c;使得剩余所有元素的乘积未尾至少有k个0。塔子哥想知道&#xff0c;一共有多少种不同的删除方案? 输入描述 第一行输入两个正整数 n,k 第二行输入n个正整数 a_i&#xff0c;代表…...

避坑指南:票务平台反爬机制破解与Selenium自动化测试最佳实践

票务平台反爬机制深度解析与Selenium合规测试实战 每次当你信心满满地部署好爬虫脚本&#xff0c;准备大展身手时&#xff0c;是不是总会被突如其来的验证码、IP封禁或是诡异的页面跳转搞得措手不及&#xff1f;作为经历过无数次"爬虫阵亡"的老兵&#xff0c;我深刻理…...

【FastAPI 2.0流式AI响应权威指南】:20年全栈专家亲授5步零错误配置法,错过即失配生产级部署能力

第一章&#xff1a;FastAPI 2.0流式AI响应的核心演进与生产价值FastAPI 2.0 将原生流式响应能力从实验性支持升级为一级公民特性&#xff0c;彻底重构了 AI 应用的实时交互范式。其核心在于对 StreamingResponse 的深度集成与异步 I/O 调度优化&#xff0c;允许开发者以声明式方…...

Multisim电路仿真与Qwen3.5-2B结合:自动化生成电路分析报告

Multisim电路仿真与Qwen3.5-2B结合&#xff1a;自动化生成电路分析报告 1. 电子工程师的设计痛点 每个电子工程师都经历过这样的场景&#xff1a;在Multisim中反复调整电路参数&#xff0c;盯着示波器波形来回对比&#xff0c;手动记录各项性能指标&#xff0c;最后还要花大量…...

Shadow Robot 触觉传感器:摄像头隔着透明层,直接“看见”接触与形变

本文素材源于专利US12025525&#xff09;一个触觉传感器包括以下组件&#xff1a;1. 第一层&#xff1a;由柔性材料形成&#xff0c;具有外部接触表面和相对的内部接口表面。2. 第二层&#xff1a;由基本透明的柔性材料形成&#xff0c;与第一层在接口表面处连续接触。3. 摄像头…...

Retinaface+CurricularFace效果展示:多光照环境下考勤打卡成功率实测

RetinafaceCurricularFace效果展示&#xff1a;多光照环境下考勤打卡成功率实测 1. 测试背景与意义 企业考勤系统的人脸识别功能经常面临光照变化的挑战。早晨的侧光、中午的顶光、傍晚的逆光&#xff0c;这些自然光变化会导致传统人脸识别模型的准确率大幅波动。我们使用Ret…...

第二章:OpenClaw(TsClaw)智能体飞书消息渠道接入指南

注册一个飞书企业 已有企业微信管理员的请跳过此步骤 https://www.feishu.cn/accounts/page/ug_register 注册后&#xff0c;配置企业信息&#xff0c;企业名称填写真实的&#xff0c;或者可以任意填写不做认证 配置飞书开发者应用 步骤一&#xff1a;登录飞书开发者平台&a…...

AI驱动的下一代云ERP:SAP Cloud ERP 2602 更新亮点小结

大家好&#xff0c;SAP Cloud ERP 2602版本更新了&#xff01;2602的一个核心特点&#xff0c;是在保持标准化 SaaS 的前提下&#xff0c;将“嵌入式 AI 自然语言交互 Agentic AI”有机结合&#xff0c;让用户可以在熟悉的业务流程中&#xff0c;以对话方式完成信息查询、数据…...

终极指南:如何利用Everything Claude Code Bun运行时提升JavaScript开发效率

终极指南&#xff1a;如何利用Everything Claude Code Bun运行时提升JavaScript开发效率 【免费下载链接】everything-claude-code The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code…...

Pi0惊艳效果展示:多轮交互式控制——基于历史动作反馈的指令修正

Pi0惊艳效果展示&#xff1a;多轮交互式控制——基于历史动作反馈的指令修正 1. 引言&#xff1a;当机器人学会“思考”与“修正” 想象一下&#xff0c;你告诉家里的机器人&#xff1a;“把桌上的杯子拿过来。”它伸出手&#xff0c;却因为角度偏差&#xff0c;只是碰倒了杯…...

StructBERT-中文-通用-large实战案例:政府公文语义重复检测与智能归档系统

StructBERT-中文-通用-large实战案例&#xff1a;政府公文语义重复检测与智能归档系统 1. 项目背景与需求 在日常政务工作中&#xff0c;政府机构每天都会产生大量的公文文件。这些文件往往存在内容重复、表述相似的情况&#xff0c;导致信息冗余和存储浪费。传统的人工筛查方…...