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

C++掉血迷宫

目录

  • 开头
  • 程序
  • 程序的流程图
  • 程序游玩的效果
  • 下一篇博客要说的东西

开头

大家好,我叫这是我58。

程序

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
enum RBYG {R = 1,B = 2,Y = 4,G = 7,
};
struct heal {int ix;int iy;enum RBYG rbyg;int HOrD;
};
void printmaze(const char strmaze[11][11], const int ihea, heal healarr[54]) {int i = 0;int ia = 0;int ib = 0;string str = "0";for (; i < 11; i++) {for (ia = 0; ia < 11; ia++) {for (ib = 0; ib < 54; ib++) {if (healarr[ib].ix == i && healarr[ib].iy == ia) {if (2 == healarr[ib].HOrD || -2 == healarr[ib].HOrD) {str = "35;1";}else {switch (healarr[ib].rbyg) {case R:str = "31;1";break;case B:str = "36";break;case Y:str = "33";break;case G:str = "32;1";break;default:break;}}break;}}cout << "\033[" << ('P' != strmaze[i][ia] ? 'G' == strmaze[i][ia] ? "32;1" : str : "0") << "m" << strmaze[i][ia] << "\033[0m";str = "0";}cout << "|" << endl;}cout << "-----------@" << endl << "\033[3" << (ihea > 6 ? "2;1" : ihea > 3 ? "3" : "1") << "m你现在的生命值为:" << ihea << endl << "\033[0m";
}
int main() {char str[9] = "color 0";char strmaze[11][11] = {'P','X','O',' ',' ',' ',' ','X','X','O','O','*','*','*','*',' ','X',' ',' ','X','O','O','O','X','X','X',' ',' ','X',' ',' ','*','*','*','*','*','*','O',' ','*','*','X','O','O',' ','X',' ','*','*','*','*',' ',' ','X','O',' ','X','X','*','X','O','*',' ',' ',' ','X','X','*',' ','O',' ','X','*',' ',' ','X','O',' ','*','X',' ','X',' ',' ','*',' ',' ','X','O','*','X','*',' ',' ',' ','*',' ','X','X','X','O','X','*','X',' ',' ',' ','X','X','X','O','X','O','*','O','X',' ','X','X','X','G',};char strmazer[11][11] = { 0 };char* cp = &strmaze[0][0];char ch = 0;int ihea = 10;int i = 0;heal healarr[54] = { {0,1,R,-1},{0,2,R,1},{0,7,R,-1},{0,8,B,-1},{0,9,R,1},{0,10,R,1},{1,5,G,-1},{1,8,Y,-1},{1,9,R,1},{1,10,B,1},{2,0,G,1},{2,1,R,-1},{2,2,R,-1},{2,3,R,-1},{2,6,B,-1},{3,4,Y,1},{3,8,Y,-1},{3,9,R,1},{3,10,R,1},{4,1,B,-1},{4,9,B,-1},{4,10,Y,1},{5,1,R,-1},{5,2,R,-1},{5,4,R,1},{5,5,R,-1},{5,10,B,-1},{6,0,Y,-1},{6,3,G,1},{6,5,Y,-1},{6,9,Y,-1},{6,10,Y,2},{7,2,R,-1},{7,4,G,-1},{7,10,B,-1},{8,0,Y,1},{8,2,B,-1},{8,9,R,-1},{8,10,G,-1},{9,0,R,-1},{9,1,G,1},{9,2,Y,-1},{9,4,B,1},{9,8,R,-1},{9,9,G,-2},{9,10,G,-2},{10,0,Y,1},{10,1,B,-1},{10,2,G,1},{10,4,B,1},{10,5,R,-1},{10,7,B,-1},{10,8,G,-1},{10,9,G,-2} };heal healarrR[54] = { 0 };memcpy(healarrR, healarr, sizeof healarr);memcpy(strmazer, strmaze, sizeof strmaze);cout << "欢迎你来玩这个\033[31m掉血迷宫\033[0m,在这个迷宫中,“P”是你,“*”是墙,空格是你可以走的地方,而\033[32;1m“G”\033[0m是\033[32;1m终点\033[0m,走到这能让你\033[32;1m胜利\033[0m,并且,按“w”使你上移,按“a”使你左移,按“s”使你下移,按“d”使你右移,按“r”重置这个迷宫,\033[31;1m“X”\033[0m是\033[31;1m陷阱\033[0m,你如果踩了他,就会根据它的\033[31;1m颜\033[0;36m色\033[31m扣掉相应的血\033[0m,其中,\033[31;1m红色扣1血\033[0m,\033[36m蓝色扣2血\033[0m,\033[33m黄色扣4血\033[0m,\033[32;1m绿色扣7血\033[0m,而\033[35;1m紫色扣14血\033[0m,\033[4m并且会\033[31m永远出现在这个迷宫中\033[0m,而\033[32;1m“O”\033[0m是\033[32;1m血瓶\033[0m。到这就会使你用\033[32;1m血瓶加血\033[0m,\033[4m但\033[32;1;4m血瓶\033[0;4m用完之后就不能再使用了\033[0m,其中,\033[31;1m红色加1血\033[0m,\033[36m蓝色加2血\033[0m,\033[33m黄色加4血\033[0m,\033[32;1m绿色加7血\033[0m,\033[35;1m紫色加14血\033[0m。这就是这迷宫的规则,你听明白了吗?" << endl << endl;system("pause");system("cls");while ('G' == strmaze[10][10] && ihea >= 1) {int ix = (cp - &strmaze[0][0]) / 11;int iy = (cp - &strmaze[0][0]) % 11;for (i = 0; i < 54; i++) {healarr[i].HOrD < 0 && ('P' == strmaze[healarr[i].ix][healarr[i].iy] && (ihea += healarr[i].rbyg * healarr[i].HOrD), ' ' == strmaze[healarr[i].ix][healarr[i].iy] && (strmaze[healarr[i].ix][healarr[i].iy] = 'X'));healarr[i].HOrD > 0 && ('P' == strmaze[healarr[i].ix][healarr[i].iy] && (ihea += healarr[i].rbyg * healarr[i].HOrD), 'O' != strmaze[healarr[i].ix][healarr[i].iy] && (healarr[i].HOrD = 0));}printmaze(strmaze, ihea, healarr);cin >> ch;rewind(stdin);*cp = ' ';switch (ch) {case 'w':ix && '*' != *(cp - 11) && (cp -= 11);break;case 'a':iy && '*' != *(cp - 1) && (cp--);break;case 's':10 != ix && '*' != *(cp + 11) && (cp += 11);break;case 'd':10 != iy && '*' != *(cp + 1) && (cp++);break;case 'r':memcpy(healarr, healarrR, sizeof healarr);memcpy(strmaze, strmazer, sizeof strmaze);ihea = 10;cp = &strmaze[0][0];break; default:break;}*cp = 'P';system("cls");}ihea >= 1 && (str[7] = 'A'), ihea >= 1 || (str[7] = '4');system(str);cout << (ihea >= 1 ? "恭喜你,你赢了" : "很遗憾,你输了") << endl;return 0;
}

程序的流程图

开始
导入io流
导入string
导入cstring头文件
释放std命名空间的所有东西
定义枚举RBYG里的R,B,Y和G,其中,R为1,B为2,Y为4,G为7
定义结构体heal,里面有整型ix,整型iy,类型为枚举RBYG的变量rbyg和整型HOrD
定义printmaze函数
把有9个字符的字符串str初始化为“color 0”
把有11行11列的字符二维数组strmaze初始化为下面的图片

等待玩家按下任意一个键,按下后就清屏
break
清屏
break
break
break
break
否(break)
否(break)
否(break)
否(break)
否(break)
把有11行11列的二维字符数组strmazer里的元素全都初始化为0
定义字符指针cp为二维字符数组strmaze第0行第0列的地址
定义字符ch为0
定义整型ihea为10
定义整型i为0
把有54个元素的结构体heal数组healarr里的元素分别初始化为{0,1,R,-1},{0,2,R,1},{0,7,R,-1},{0,8,B,-1},{0,9,R,1},{0,10,R,1},{1,5,G,-1},{1,8,Y,-1},{1,9,R,1},{1,10,B,1},{2,0,G,1},{2,1,R,-1},{2,2,R,-1},{2,3,R,-1},{2,6,B,-1},{3,4,Y,1},{3,8,Y,-1},{3,9,R,1},{3,10,R,1},{4,1,B,-1},{4,9,B,-1},{4,10,Y,1},{5,1,R,-1},{5,2,R,-1},{5,4,R,1},{5,5,R,-1},{5,10,B,-1},{6,0,Y,-1},{6,3,G,1},{6,5,Y,-1},{6,9,Y,-1},{6,10,Y,2},{7,2,R,-1},{7,4,G,-1},{7,10,B,-1},{8,0,Y,1},{8,2,B,-1},{8,9,R,-1},{8,10,G,-1},{9,0,R,-1},{9,1,G,1},{9,2,Y,-1},{9,4,B,1},{9,8,R,-1},{9,9,G,-2},{9,10,G,-2},{10,0,Y,1},{10,1,B,-1},{10,2,G,1},{10,4,B,1},{10,5,R,-1},{10,7,B,-1},{10,8,G,-1}和{10,9,G,-2}
把有54个元素的结构体heal数组healarrR里的元素全都初始化为0
把结构体heal数组healarr里的全部内容都拷贝到结构体heal数组healarrR的里面去
把二维字符数组strmaze里的全部内容都拷贝到二维字符数组strmazer的里面去
输出“欢迎你来玩这个[31m掉血迷宫\​033[0m,在这个迷宫中,“P”是你,“*”是墙,空格是你可以走的地方,而\​033[32;1m“G”\​033[0m是\​033[32;1m终点\​033[0m,走到这能让你\​033[32;1m胜利\​033[0m,并且,按“w”使你上移,按“a”使你左移,按“s”使你下移,按“d”使你右移,按“r”重置这个迷宫,\​033[31;1m“X”\​033[0m是\​033[31;1m陷阱\​033[0m,你如果踩了他,就会根据它的\​033[31;1m颜\​033[0;36m色\​033[31m扣掉相应的血\​033[0m,其中,\​033[31;1m红色扣1血\​033[0m,\​033[36m蓝色扣2血\​033[0m,\​033[33m黄色扣4血\​033[0m,\​033[32;1m绿色扣7血\​033[0m,而\​033[35;1m紫色扣14血\​033[0m,\​033[4m并且会\​033[31m永远出现在这个迷宫中\​033[0m,而\​033[32;1m“O”\​033[0m是\​033[32;1m血瓶\​033[0m。到这就会使你用\​033[32;1m血瓶加血\​033[0m,\​033[4m但\​033[32;1;4m血瓶\​033[0;4m用完之后就不能再使用了\​033[0m,其中,\​033[31;1m红色加1血\​033[0m,\​033[36m蓝色加2血\​033[0m,\​033[33m黄色加4血\​033[0m,\​033[32;1m绿色加7血\​033[0m,\​033[35;1m紫色加14血\​033[0m。这就是这迷宫的规则,你听明白了吗?\​n\​n”
'G' == strmaze[10][10] && ihea >= 1?
定义整型ix为cp与二维字符数组strmaze第0行第0列的地址之间的元素个数除以11的结果
定义整型iy为cp与二维字符数组strmaze第0行第0列的地址之间的元素个数模上11的结果
设i为0
i < 54?
healarr[i].HOrD < 0?
'P' == strmaze[healarr[i].ix][healarr[i].iy]?
把ihea自增结构体heal数组healarr的第i项的成员变量rbyg的值乘以结构体heal数组healarr的第i项的成员变量HOrD的值的结果
' ' == strmaze[healarr[i].ix][healarr[i].iy]?
把二维字符数组strmaze第结构体heal数组healarr的第i项的成员变量ix的值行第结构体heal数组healarr的第i项的成员变量iy的值列的元素设为字符“X”
healarr[i].HOrD > 0?
'P' == strmaze[healarr[i].ix][healarr[i].iy]?
把ihea自增结构体heal数组healarr的第i项的成员变量rbyg的值乘以结构体heal数组healarr的第i项的成员变量HOrD的值的结果
'O' != strmaze[healarr[i].ix][healarr[i].iy]?
把结构体heal数组healarr的第i项的成员变量HOrD设为0
i自增1
执行printmaze函数,参数有二维字符数组strmaze,整型ihea和结构体heal数组healarr
把ch设为你输入的字符
清空缓冲区
把解引用的cp设为空格
'w' == ch?
ix && '*' != *(cp - 11)?
把cp向左移动11位
把解引用的cp设为字符“P”
ihea >= 1?
把字符串str的第7项设为字符“A”
ihea >= 1?
执行系统命令,命令为字符串str
如果ihea大于等于1,那么就输出“恭喜你,你赢了\​n”,否则就输出“很遗憾,你输了\​n”
结束
'a' == ch?
iy && '*' != *(cp - 1)?
把cp向左移动一位
's' == ch?
10 != ix && '*' != *(cp + 11)?
把cp向右移动11位
'd' == ch?
10 != iy && '*' != *(cp + 1)?
把cp向右移动一位
'r' == ch?
把结构体heal数组healarrR里的全部内容都拷贝到结构体heal数组healarr的里面去
把二维字符数组strmazer里的全部内容都拷贝到二维字符数组strmaze的里面去
设ihea为10
设cp为二维字符数组strmaze第0行第0列的地址
把字符串str的第7项设为字符“4”
printmaze函数
break
break*2
break*2
break*2
break*2
否(break*2)
结束
开始
定义整型i为0
定义整型ia为0
定义整型ib为0
定义字符串str为“0”
i < 11?
设ia为0
ia < 11?
设ib为0
ib < 54?
healarr[ib].ix == i && healarr[ib].iy == ia?
2 == healarr[ib].HOrD || -2 == healarr[ib].HOrD?
把字符串str设为“35;1”
前面输出“\​033[”,如果“P”不为二维字符数组strmaze第i行第ib列的元素,那么如果“G”为二维字符数组strmaze第i行第ia列的元素,那么中间就输出“32;1”,否则中间就输出字符串str,而如果“P”为二维字符数组strmaze第i行第ib列的元素,那么中间就输出“0”,后面则输出“m”,二维字符数组strmaze第i行第ia列的元素和“\​033[0m”
把字符串str设为“0”
ia自增1
输出“|\​n”
i自增1
前面输出“-----------@\​n\​033[3”,如果ihea大于6,那么中间就输出“2;1”,否则如果ihea大于3,那么中间就输出“3”,否则中间就输出“1”,后面输出“m你现在的生命值为:”,ihea和“\​n\​033[0m”
R == healarr[ib].rbyg?
把字符串str设为“31;1”
B == healarr[ib].rbyg?
把字符串str设为“36”
Y == healarr[ib].rbyg?
把字符串str设为“33”
G == healarr[ib].rbyg?
把字符串str设为“32;1”
ib自增1

程序游玩的效果

掉血迷宫

下一篇博客要说的东西

C++门迷宫

相关文章:

C++掉血迷宫

目录 开头程序程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #include <iostream> #include <string> #include <cstring> using namespace std; enum RBYG {R 1,B 2,Y 4,G 7, }; struct heal {int ix…...

Spring Boot- 数据库相关问题

Spring Boot 与数据库相关问题及其解决方案 1. 引言 Spring Boot简化了Java企业级应用的开发&#xff0c;尤其在与数据库交互方面提供了诸多便利。Spring Boot提供了多种数据库集成方案&#xff0c;涵盖关系型数据库&#xff08;如MySQL、PostgreSQL等&#xff09;与非关系型…...

秒懂C++之特殊类设计

目录 设计一个类&#xff0c;不能被拷贝 设计一个类&#xff0c;只能在堆上创建对象 设计一个类&#xff0c;只能在栈上创建对象 设计一个类&#xff0c;无法被继承 设计一个类&#xff0c;只能创建一个对象(单例模式) 饿汉模式 懒汉模式 设计一个类&#xff0c;不能被拷…...

人工智能学习

&#x1f310;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。 &#x1f449;【点击跳转到网站&#xff1a;人工智能教程】 什么是人工智能&#xff1f;通俗来讲&#xff0c;就是让机器能像人一样思考。这…...

WINDOWS AGENTARENA:EVALUATING MULTI-MODAL OS AGENTS AT SCALE论文学习

文章开头说现有的agent都是局限于特定领域&#xff08;什么网络问答啊&#xff0c;仅限文字啊&#xff0c;仅限于某一个app啊&#xff09;这样的&#xff0c;本文的工作主打一个贴近用户使用场景&#xff0c;用户用什么软件&#xff0c;看什么网页&#xff0c;本文的模型就用什…...

3步轻松定制报价方案,亿发商城报价神器你用过了吗?

如果您正寻求突破传统业务模式的束缚&#xff0c;希望拥抱数字化转型带来的无限可能&#xff0c;我们诚邀您体验亿发软件。亿发专业团队将为您提供个性化的咨询和定制服务&#xff0c;帮助您的企业快速适应市场变化&#xff0c;实现业务模式和商业模式的创新。...

CISP备考题库(五)

在当今这个飞速发展的数字化时代&#xff0c;信息安全已跃居至前所未有的战略地位&#xff0c;其重要性伴随着技术的日新月异而持续攀升&#xff0c;成为了一个不容小觑的关键领域。为了激发并引领广大青年才俊积极投身于网络安全专家的崇高事业&#xff0c;我们精心策划并编纂…...

【Kubernetes】常见面试题汇总(二十三)

目录 69.考虑一家拥有分布式系统的跨国公司&#xff0c;拥有大量数据中心&#xff0c;虚拟机和许多从事各种任务的员工。您认为这样公司如何以与 Kubernetes 一致的方式管理所有任务&#xff1f; 70.考虑一种情况&#xff0c;即公司希望通过维持最低成本来提高其效率和技术运营…...

linux-Shell 编程-Shell 脚本基础

Linux Shell 编程&#xff1a;Shell 脚本基础 在Linux系统中&#xff0c;Shell脚本是一种强大的自动化工具。通过编写Shell脚本&#xff0c;用户可以自动化重复性任务、系统管理操作和程序控制流程&#xff0c;极大提高工作效率。 1. 什么是Shell脚本&#xff1f; Shell脚本是…...

Linux运维篇-tigervnc工具的使用

目录 简介下载使用clientserver配置文件服务管理 设定密码&#xff08;先切换成对应的用户&#xff09;&#xff1a;配置多用户的VNC tigervnc连接排错一、vnc密码错误二、vncserver端口忘记了三、连接很卡&#xff0c;或者画面没有反应四、服务报错 简介 TigerVNC是VNC的一种…...

基于Spark的电影推荐系统设计与实现(论文+源码)_kaic

摘 要 在云计算、物联网等技术的带动下&#xff0c;我国已步入大数据时代。电影是人们日常生活中重要的一种娱乐方式&#xff0c;身处大数据时代&#xff0c;各种类型、题材的电影层出不穷&#xff0c;面对琳琅满目的影片&#xff0c;人们常感到眼花缭乱。因此&#xff0c;如…...

基于python+django+vue的医院预约挂号系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…...

镀金引线---

一、沉金和镀金 沉金和镀金都是常见的PCB金手指处理方式&#xff0c;它们各有优劣势&#xff0c;选择哪种方式取决于具体的应用需求和预算。 沉金&#xff08;ENIG&#xff09;是一种常用的金手指处理方式&#xff0c;它通过在金手指表面沉积一层金层来提高接触性能和耐腐蚀性…...

『功能项目』窗口可拖拽脚本【59】

本章项目成果展示 我们打开上一篇58第三职业弓弩的平A的项目&#xff0c; 本章要做的事情是给坐骑界面挂载一个脚本让其显示出来的时候可以进行拖拽 创建脚本&#xff1a;DraggableWindow.cs using UnityEngine; using UnityEngine.EventSystems; public class DraggableWindo…...

Map--08--CurrentHashMap 与 Hashtable的异同?

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Map方法computeIfAbsent1.computeIfAbsent 方法的简介2.案例computeIfAbsent() Map方法computeIfAbsent computeIfAbsent方法是Java 8中引入的一种简化操作Map的方…...

Docker学习笔记(三)存储与卷

挂载机制介绍 我们都知道&#xff0c;默认下&#xff0c;Docker容器与宿主机是完全隔离的&#xff0c;这种特性使得我们创建与删除容器都变得更方便&#xff0c;不需要再去删除宿主机上容器遗留下来的痕迹。   但是&#xff0c;当我们使用数据库一类需要持久化数据、共享数据…...

硬件工程师笔试面试——滤波器

目录 12、滤波器 12.1 基础 滤波器原理图 滤波器实物图 12.1.1 概念 12.1.2 滤波器的分类 12.1.3 滤波器的工作原理 12.1.4 滤波器的应用 12.1.5 滤波器设计的关键参数 12.2 相关问题 12.2.1 不同类型的滤波器在实际应用中的具体作用是什么? 12.2.2 如何设计一个简…...

【SpringBoot3】面向切面 AspectJ AOP 使用详解

文章目录 一、AspectJ介绍二、简单使用步骤1、引入依赖2、定义一个Aspect3、开启AOP支持 三、AOP 核心概念四、切点&#xff08;Pointcut&#xff09;1. execution2. within3. this & target4. args & args5. within & target & annotation 五、通知&#xff0…...

wav怎么转mp3格式?给你推荐几种音频格式转换方法

wav怎么转mp3格式&#xff1f;将wav文件转换为MP3格式是一个常见的操作&#xff0c;尤其适用于需要节省存储空间或确保文件兼容性的场景。wav文件保存了音频的所有原始数据&#xff0c;这使得它们的文件体积往往非常庞大。相比之下&#xff0c;MP3格式通过有损压缩技术显著减小…...

Redis的AOF持久化、重写机制、RDB持久化、混合持久化

1、AOF持久化 1.1.AOF持久化大致过程 概括&#xff1a;命令追加&#xff08;append&#xff09;、文件写入、文件同步&#xff08;sync&#xff09; Redis 每执行一条写操作命令&#xff0c;就把该命令以追加的方式写入到一个文件里&#xff0c;然后重启 Redis 的时候&#…...

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

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

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...