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

c++迷宫小游戏

一、总结

一句话总结:

显示:根据map数组输出图像
走动:修改map数组的值,每走一步重新刷新一下图像就好

1、如果走函数用z(),出现输入s会向下走多步的情况,原因是什么?

 向下走两层循环ij增加,而向下走i也是增加的,所以break跳出j后,照样找到i不误,所以会一直走到不能走为止

//走动函数 
void z(){char c=getch();//下 if(c=='s'){for(int i=0;i<10;i++){for(int j=0;j<10;j++){//找到人物所在的位置 if(map[i][j]==3&&map[i+1][j]!=1){map[i+1][j]=3;//下面的位置变成人物所在的位置 map[i][j]=0;//走过的地方变成0 break;}}}}//上 if(c=='w'){for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(map[i][j]==3&&map[i-1][j]!=1){map[i-1][j]=3;map[i][j]=0;break;}}}}//左 if(c=='a'){for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(map[i][j]==3&&map[i][j-1]!=1){map[i][j-1]=3;map[i][j]=0;break;}}}}//右 if(c=='d'){for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(map[i][j]==3&&map[i][j+1]!=1){map[i][j+1]=3;map[i][j]=0;break;}}}}
}

二、内容在总结中

截图:

wsad分别对应上下左右

代码:


#include<cstdio>
#include<windows.h>
#include<conio.h>
int map[10][10]={{1,1,1,1,3,1,1,1,1,1},{1,0,0,0,0,0,0,1,1,1},{1,0,0,1,0,1,0,0,1,1},{1,1,0,1,1,0,0,1,1,1},{1,0,0,0,1,0,0,0,0,1},{1,1,0,0,1,1,0,1,0,1},{1,1,0,1,0,1,1,0,0,1},{1,0,0,0,1,1,1,1,0,1},{1,1,1,1,1,1,1,1,2,1}};
int pos_y=0;//人物的y坐标 
int pos_x=4;//人物的x坐标//打印地图 
void jzmap()
{for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(map[i][j]==0) printf("  ");//可走的地方 if(map[i][j]==1) printf("■");//障碍 if(map[i][j]==2)printf("!!");//出口 if(map[i][j]==3)printf("* ");//人物所在的位置 }printf("\n");}
}
//走动函数2 
void z2(){char c=getch();//下 if(c=='s'){//找到人物所在的位置 if(map[pos_y][pos_x]==3&&map[pos_y+1][pos_x]!=1){map[pos_y+1][pos_x]=3;//下面的位置变成人物所在的位置 map[pos_y][pos_x]=0;//走过的地方变成0 pos_y++; }}//上 if(c=='w'){if(map[pos_y][pos_x]==3&&map[pos_y-1][pos_x]!=1){map[pos_y-1][pos_x]=3;map[pos_y][pos_x]=0;pos_y--;}}//左 if(c=='a'){if(map[pos_y][pos_x]==3&&map[pos_y][pos_x-1]!=1){map[pos_y][pos_x-1]=3;map[pos_y][pos_x]=0;pos_x--;}}//右 if(c=='d'){if(map[pos_y][pos_x]==3&&map[pos_y][pos_x+1]!=1){map[pos_y][pos_x+1]=3;map[pos_y][pos_x]=0;pos_x++;}}
} 
//走动函数 
void z(){char c=getch();int has_zou=0;//下 if(c=='s'){for(int i=0;i<10;i++){for(int j=0;j<10;j++){//找到人物所在的位置 if(map[i][j]==3&&map[i+1][j]!=1&&!has_zou){has_zou=1;map[i+1][j]=3;//下面的位置变成人物所在的位置 map[i][j]=0;//走过的地方变成0 break;}}}}//上 if(c=='w'){for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(map[i][j]==3&&map[i-1][j]!=1&&!has_zou){has_zou=1;map[i-1][j]=3;map[i][j]=0;break;}}}}//左 if(c=='a'){for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(map[i][j]==3&&map[i][j-1]!=1&&!has_zou){has_zou=1;map[i][j-1]=3;map[i][j]=0;break;}}}}//右 if(c=='d'){for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(map[i][j]==3&&map[i][j+1]!=1&&!has_zou){has_zou=1;map[i][j+1]=3;map[i][j]=0;break;}}}}
}
void yx()
{jzmap();//重绘地图 //z();z2();//走操作 
}
//结束 
bool js()
{for(int i=0;i<10;i++){for(int j=0;j<10;j++){if(map[i][j]==map[9][8]){return 1;}else{return 0;}}}
}
int main()
{for(int i=0;i<100;i++){system("cls");yx();if(js()){system("cls");printf("game over!");return 0;}}    return 0;
}

相关文章:

c++迷宫小游戏

一、总结 一句话总结&#xff1a; 显示&#xff1a;根据map数组输出图像 走动&#xff1a;修改map数组的值&#xff0c;每走一步重新刷新一下图像就好 1、如果走函数用z()&#xff0c;出现输入s会向下走多步的情况&#xff0c;原因是什么&#xff1f; 向下走两层循环ij增加&a…...

需求堆积,如何排序产品优先极

面对堆积的产品需求&#xff0c;到底该如何排序优先极呢&#xff1f; 需求排期的目标 在谈具体的排期方法之前&#xff0c;有必要先探讨一下——合理的需求排期应该达到什么的目标呢&#xff1f;如果站在与项目相关的利益人员的角度来看&#xff0c;至少应该使以下四方面的收…...

计算机视觉 回头重新理解图像中的矩

一、人类的欲望 图像中的矩是一个十分古老的话题,这个东西的出现始于人类的欲望,想要找到一种自动且强大的图像分析方法。 比如我们要在图像中识别某一个物体,而这个物体在不同的成像条件下,表现出的高矮胖瘦方向位置颜色都不可能完全一致,这就为识别带来了巨大的困难,但…...

MapStruct应用实战及BeanUtils性能比较

目录 1、MapStruct介绍2、应用设置2.1 Maven依赖 3、功能实战3.1 常用注解3.2 基本映射3.2.1 定义映射器的Java接口3.2.2 测试验证 3.3 参数引用映射3.3.1 定义映射器的Java接口3.3.2 测试验证 3.4 多对象参数映射3.4.1 定义映射器的Java接口3.4.2 测试验证3.4.3 注意点 3.5 嵌…...

ISP技术概述

原本或许是为了对冲手机系统和APP设计无力感而诞生的拍照功能,现今却成为了众手机厂家除背部设计外为数不多可“卷”的地方,自拍、全景、夜景、小视频等旺盛的需求让这一技术的江湖地位迅速变化。对圈内人士而言,这一波变化带来的后摄、双摄、多摄、暗光、防抖、广角、长焦、…...

CSDN: ABTest流量分层分桶机制

在互联网行业&#xff0c;无论是构建搜索推荐系统&#xff0c;还是智能营销等场景&#xff0c;都是围绕用户进行不同的实验&#xff0c;从各项指标上观察用户对不同交互、流程、策略、算法等反馈&#xff0c;进而对产品进行迭代改进。 本文的goal&#xff1a;在进行了模型的线下…...

【小余送书第一期】《数据要素安全流通》参与活动,即有机会中奖哦!!

目录 1、背景介绍 2、本书编撰背景 3、本书亮点 4、本书主要内容 5、活动须知 1、背景介绍 随着大数据、云计算、人工智能等新兴技术的迅猛发展&#xff0c;数据已经成为我国经济社会发展的五大生产要素之一&#xff0c;《网络安全法》《个人信息保护法》《数据安全法》的…...

蓝牙核心规范(V5.4)10.7-BLE 入门笔记之L2CAP

1.概述 ATT属性用于两个设备,一个扮演客户端的角色,另一个扮演服务器的角色。服务器公开一系列称为属性的复合数据项。这些属性由服务器按索引列表组织在称为属性表的列表中。 每个属性包含一个句柄、一个通用唯一标识符(UUID)、一个值和一组权限。 句柄是一个唯一的索引…...

VUE之正则表达式全集整理

一、正则表达式的基本语法 var expression /pattern(模式)/flags(标识符); 二、如何创建正则表达式 1.字面量创建 代码如下&#xff1a; //匹配字符串中所有“at”的实例 var e /at/g; //匹配第一个“bat”或“cat”,不区分大小写 var e /[bc]at/i; 2.RegExp构造函数创…...

Python 中的字符串基础与应用

在Python中&#xff0c;字符串可以用单引号或双引号括起来。‘hello’ 与 “hello” 是相同的。您可以使用print()函数显示字符串文字&#xff1a; 示例&#xff1a; print("Hello") print(Hello)将字符串分配给变量是通过变量名后跟等号和字符串完成的&#xff1a…...

C++:如何实现数组元素逆置?多种方法

方法1&#xff1a;使用额外的数组 这是一种比较简单的方法&#xff0c;它创建一个额外的数组来存储逆置后的元素&#xff0c;然后将其复制回原始数组。 #include <iostream>void reverseArray(int arr[], int size) {int reversed[size];for (int i 0; i < size; i)…...

php框架thinkPHP6的安装教程

1&#xff0c;composer官网下载最新版本 composerhttps://getcomposer.org/download/ 2&#xff0c;双击下载后的运行文件&#xff0c;一直点击next就行了 上面这个路径根据自己安装的php版本位置选择&#xff08;没有的可以下载一个phpstudy&#xff09;&#xff0c;最后需要…...

PTA程序辅助实验平台——2023年软件设计综合实践_3(分支与循环)

第一题&#xff1a;7-1 印第安男孩 - C/C 分支与循环 朵拉编程的时候也想顺便练习英语。她编程从键盘读入一个整数n&#xff0c;如果n值为0或者1&#xff0c;向屏幕输出“0 indian boy.”或“1 indian boy.”&#xff1b;如果n大于1&#xff0c;比如9&#xff0c;则输出“9 in…...

【C语言数据结构】线性表-链式存储-单链表

线性表-链式存储-单链表 代码实现 代码实现 #include<stdio.h> #include<stdlib.h> #include<stdbool.h>//定义元素数据类型 #define ElemType int//定义结点结构体 typedef struct LNode {//数据域&#xff0c;说白了就是存放当前节点的数据的。ElemType d…...

tp8 Editor.md

Editor.md - 开源在线 Markdown 编辑器 放于public文件夹下 html代码&#xff1a; <div class"layui-col-md12" id"content"><textarea name"content" placeholder"详情" class"layui-textarea">{notempty nam…...

LM小型可编程控制器软件(基于CoDeSys)笔记三十一:保持变量和非保持变量

所谓变量&#xff0c;就是用字母、数字和下划线组成的一个标识符。 按照数据类型的不同&#xff0c;变量可以分为标准类型和用户自定义类型。其中标准类型包括布尔型 &#xff08; BOOL &#xff09;、整型&#xff08; INT &#xff09;、实型&#xff08; REAL &#xff09…...

「C++之STL」关于在模拟实现STL容器中的深浅拷贝问题

文章目录 前言杨辉三角深浅拷贝问题模拟实现的vector对题目杨辉三角引发的程序崩溃原因解决办法 前言 在学习STL容器中,不仅需要学会容器的使用,同时也需要了解容器的大体框架以及各个函数的模拟实现才能更好的去了解这个容器; 杨辉三角 在LeetCode中有一道这样的题目,给定一…...

文件内容显示

目录 1.浏览普通文件 1.1. 文件内容查看 1.1.1. cat 命令 例&#xff1a; 1.1.2 扩展tac命令&#xff1a; 1.1.3. more 命令 1.1.4. less命令 1.1.5. head命令 1.1.6. tail命令 1.2. 文件属性信息查看 1.2.1. file 命令 1.2.2. stat 命令 2. 文件内容过滤…...

Milvus+Attu

Milvus 1.下载 https://github.com/milvus-io/milvus/releases/wget https://github.com/milvus-io/milvus/releases/download/v2.3.0/milvus-standalone-docker-compose.yml下载milvus-standalone-docker-compose version: 3.5services:etcd:container_name: milvus-etcdim…...

LeetCode算法二叉树—226. 翻转二叉树

目录 226. 翻转二叉树 代码&#xff1a; 运行结果&#xff1a; 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...