怪物联萌小游戏

欢迎来到程序小院

怪物联萌

玩法:将怪物连体,怪物只能直线上下左右移动,躲过障碍物,共16关卡,
不同关卡不同界面,遇到金币记得吃掉金币哦,会获得更高分数,快去闯关吧^^。

开始游戏icon-default.png?t=N7T8https://www.ormcc.com/play/gameStart/264

html

<canvas id="canvas" width="638" height="893"></canvas>

css

body,html {margin: 0;padding: 0; background-color: #fff;height: 100%;width: 100%;display:block;-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;
}#canvas {background-color: #fff;margin: 0;padding: 0;position: absolute;top: 50%;left: 50%;margin-top: -172px;margin-left: -160px;z-index: 1;
}

js

function isArrayContains(e, t) {return -1 < e.indexOf(t)
}
function y185(e, t) {e.cacheCanvas = t.cacheCanvas;e.cacheID = t.cacheID;e._cacheWidth = t._cacheWidth;e._cacheHeight = t._cacheHeight;e._cacheOffsetX = t._cacheOffsetX;e._cacheOffsetY = t._cacheOffsetY;e._cacheScale = t._cacheScale
}
function y96(e) {isLevelEditor && console.log(e)
}
function y506(e) {e.scaleX = e.scaleY = 1.2 * y164 * (e.defaultScale ? e.defaultScale : 1)
}
function y380(e) {e.scaleX = e.scaleY = y164 * (e.defaultScale ? e.defaultScale : 1)
}
function y206(e) {e.parent && e.parent.removeChild(e)
}
function y110(e, t) {y206(e);t && t.addChild(e)
}
function y110WithIndex(e, t, n) {y206(e);t && t.addChildAt(e, n)
}
function setSpriteScale(e, t) {e.scaleX = e.scaleY = t
}
function y124(e, t, n, r) {r.text != n && (r.text = n, n = r.getBounds(), r.x = e - (n.width >> 1) * r.scaleX, t && (r.y = t - (40 >> 1) * r.scaleY))
}
function setAnimationSpeed(e, t) {e._animation.speed = t
}
function setNextAnimation(e, t) {e._animation.next = t
}
function randomizeAnimFrame(e) {e.currentAnimationFrame = Math.floor(30 * Math.random())
}
function createReverseAnim(e, t) {var n = REVERSE_y287 + t;if (!e.getAnimation(n)) {for (var r = e.getAnimation(t), i = {name: n,next: r.next,speed: r.speed,frames: []}, s = r.frames.length - 1; 0 <= s; s--) i.frames.push(r.frames[s]);e._animations.push(n);e._data[n] = i}
}
function playReverseAnim(e, t) {e.gotoAndPlay(REVERSE_y287 + t)
}
function y306() {y328 = y481(160, 322, .8, sponsorLogoFrame, y254, null, null)
}
function y379(e, t, n, r, i, s, o, u, a) {y328 || y306();y110(y328, r);n *= .7;y139 = t;y502 = e + 10;y83 = s;y108 = o;y328.scaleX = y328.scaleY = n;y328.alpha = i ? i : 1;y78 = u;y147();(e = y355.getAnimation(sponsorLogoFrame)) && e.frames && 0 < e.frames.length && (e = y355.getFrameBounds(e.frames[0]), y328.setBoundingBox(e.x * n, e.y * n, e.width * n,e.height * n))
}
function y147() {y328 && (y328.x = y502, y328.y = y139, y83 === y93 ? y328.x += y170() : y83 === y232 && (y328.x -= y170()), y108 === y280 ? y328.y += y199() / y78 : y108 === y73 && (y328.y -= y199() / y78))
}
function startSponsorAds() {sponsorApi && (isAdPauseSoundMuted = isMute, sponsorApi.GameBreak.request(onAdBeginPause,onAdEndUnpause))
}
function onAdBeginPause() {y96("ad pause, , sound is muted: " + isMute);isAdPauseSoundMuted = isMute;isMute = !0;stopBgMusic()
}
function onAdEndUnpause() {y96("ad unpause, sound was muted: " + isAdPauseSoundMuted);(isMute = isAdPauseSoundMuted) || y452()
}
function initParticleManager() {y497.addChild(y262)
}
function setParticlesToFront() {y110(y262, y497)
}
function y53Explode(e, t, n, r, i, s) {for (var o, u = 0; u < n; u++) {o = u * (2 * Math.PI / n);partSin = Math.cos(o);partCos = Math.sin(o);o = y53(r, e, t, 1, i ? i : y262);if (!o) break;setParticleParamsByIndex(o, s ? s : 0)}
}
function setParticleParamsByIndex(e, t) {var n = 1.3;e.y14 = 0;e.y11 = 20 * Math.random();0 === t ? (e.maxScale = .7, e.y37 = .2 * FPS, partScale = .2 + .2 * Math.random()) : 1 === t ? (n = 4, e.maxScale = 1.3, e.y37 = .3 * FPS, e.y14 = 0, e.y11lpha = .05, e.y11 = 20 * Math.random(), partScale = .4 + .6 * Math.random()) : 2 === t && (n = 2, e.maxScale = 1.3, e.vis.alpha = 1, e.y37 = .3 * FPS, e.y11 = 20 * Math.random(), partScale = .4 + .6 * Math.random());e.vis.scaleX = e.vis.scaleY = partScale;e.y9 = (n + Math.random() * n) * partCos;e.y10 = (n + Math.random() * n) * partSin
}
function createDiePart(e, t) {var n = y53(y509, e, t, 1, y262);n && (n.y38(11), n.y39("deathanimv", !0), n.y11lpha = .05, n.y37 = 1.5 * FPS, n.y9 = 0, n.y10 = -1, n.y11 = 0)
}
function createGoodPlayExplode(e, t) {for (var n, r = 0 == t ? 90 : -120, i = 0; 8 > i; i++) {var s = i * (Math.PI / 2 / 8) - Math.PI / 4;0 < t && (s += Math.PI);var o = Math.cos(s),s = Math.sin(s);n = .2 + .2 * Math.random();n = y53(y160, r, 0, n, monsterCont);if (!n) break;n.y39("particle1v");n.y11lpha = .1;n.y34 = .02;n.vis.visible = !1;n.y37 = .5 * FPS;n.maxScale = .6;n.y9 = (1.5 + 1.5 * Math.random()) * o;n.y10 = (1.5 + 1.5 * Math.random()) * s;n.y11 = 20 * Math.random()}
}
function y292(e, t, n) {if (e = y53(y509, e, t, .8, y262)) e.y38(n), e.y37 = .2 * FPS, e.y9 = 0, e.y10 = -.8, e.y11 = 0
}
function createGlassExplode(e, t) {for (var n, r = e, i = t, s = 0; 4 > s; s++) {switch (s) {case 0:r = e - 10;i = t - 30;break;case 1:r = e + 10;i = t - 30;break;case 2:r = e - 10;i = t - 10;break;case 3:r = e + 10, i = t - 10}n = y53(PART_GLASS_TYPE, r, i, 1, y262);if (!n) break;n.y14 = 0;n.maxScale = 0;n.y14 = 0;n.y11lpha = .08;n.y34 = -.08;n.isReverse = !0;partScale = 1;n.vis.scaleX = n.vis.scaleY = partScale;n.y11 = 30 * Math.random() - 15;n.y9 = 1.3 - 2.6 * Math.random();n.y10 = 1.3 - 2.6 * Math.random()}
}
function y456() {var e = y53(y509, 160, topVisionLine + y52 / 2, 1, y262);e && (e.y38(11), e.y11lpha = 1, e.y37 = 1.5 * FPS, e.y9 = 0, e.y10 = 0, e.y11 = 0, e.vis.rotation = -360, e.vis.scaleX = e.vis.scaleY = .1, createjs.Tween.get(e.vis, {override: !0}).to({rotation: 0,scaleX: 1,scaleY: 1}, 600).wait(600).to({alpha: 0}, 200))
}
function createAchievPart(e) {for (var t = 210, n = 10, r = 0, i, s = 0; s < y311.length; s++) i = y311[s], i.type === PART_ACHIEV_TYPE && (t = i.vis.y - 50, n += 200, r++);if (i = y53(PART_ACHIEV_TYPE, -130, t, .8, y497)) i.y39("achievdesc" + e), i.y11lpha = 1, i.y37 = 3.2 * FPS + .2 * r, i.y9 = 0, i.y10 = 0, i.y11 = 0, i.vis.rotation = 0, i.vis.scaleX = i.vis.scaleY = .7, i.vis.alpha = 1, createjs.Tween.get(i.vis, {override: !0}).wait(n).to({x: 5}, 600, y244).wait(2e3).to({x: -130}, 400, createjs.Ease.sineIn)
}
function y53(e, t, n, r, i) {var s;y311Lenght = y311.length;if (y311Lenght > y454) {for (var o = 0; o < y311Lenght; o++)if (y311[o].type === y160) {s = y311[o];break}s || (s = y311[0]);s.reset(e, i, r)} else s = y453(e, i, r);s.setPos(t, n);isArrayContains(y311, s) || y311.push(s);return s
}
function y134(e) {isArrayContains(disposedParts, e) || disposedParts.push(e)
}
function y453(e, t, n) {if (0 < disposedParts.length) {var r = disposedParts.pop();r.reset(e, t, n);return r}return new y513(e, t, n)
}
function y195() {y56 = y311.length;for (var e = 0; e < y56; e++) y342 = y311[e], y342.tick(), y342.isNeedDispose && disposeNeededParts.push(y342);for (; 0 < disposeNeededParts.length;) disposeNeededParts.pop().dispose()
}
function initField() {ROW_FIELD_END = FIELD_ROWS - ROWS_MARGIN - 1;CELL_FIELD_END = FIELD_CELLS - CELLS_MARGIN - 1;shadowContainer = new createjs.Container;y497.addChild(shadowContainer);y390 = new createjs.Container;y497.addChild(y390);for (var e = 0; e < FIELD_CELLS; e++) {for (var t = [], n = 0; n < FIELD_ROWS; n++) t.push(BLOCK_SPACE_TYPE);map.push(t)}
}
function createBlock(e, t, n, r) {disposeBlockAt(t, n);e == BLOCK_SPACE_TYPE ? map[t][n] = BLOCK_SPACE_TYPE : (r || (r = "defB" + t + "r" + n),e = getBlockFromPool(e, y390, r), e.setPos(getXByCell(t), getYByRow(n)), e.setIndex(t, n), e.rememberPos(), isArrayContains(allBlocks, e) || allBlocks.push(e), map[t][n] = e, isHero(e) && (findFriends(e), allHeroes.push(e)))
}
function getBlockFromPool(e, t, n) {if (0 < disposedBlocks.length) {var r = disposedBlocks.pop();r.reset(e, t, n);return r}return new BaseBlock(e, t, n)
}
function disposeBlockAt(e, t) {var n = getBlockAt(e, t);n && n != BLOCK_SPACE_TYPE && n.dispose()
}
function y201(e) {isArrayContains(disposedBlocks, e) || disposedBlocks.push(e)
}
function deleteBlockFromMap(e) {map[e.cell][e.row] == e && (map[e.cell][e.row] = BLOCK_SPACE_TYPE)
}
function getXByCell(e) {return (e + 1 - CELLS_MARGIN) * CELL_SIZE + MARGIN_LEFT - CELL_SIZE / 2
}
function getYByRow(e) {return (e + 1 - ROWS_MARGIN) * CELL_SIZE + MARGIN_TOP
}
function getLevelCode() {for (var e = [], t = 0; t < FIELD_CELLS; t++) {for (var n = [], r = 0; r < FIELD_ROWS; r++) {var i = map[t][r];i == BLOCK_SPACE_TYPE ? n.push(BLOCK_SPACE_TYPE) : n.push(i.type)}e.push(n)}e.push(getBonusCode());return e
}
function y192ByCode(e) {isLevelLoading = !0;disposeLevel();addInstructions();lightsV.visible = !0;isShadowDisabled || (shadowContainer.visible = !0);for (var t = 0; t < FIELD_CELLS; t++)for (var n = e[t], r = 0; r < FIELD_ROWS; r++) {var i = n[r]; - 1 < i && createBlock(i, t, r)}loadBonusesByCode(e[FIELD_CELLS]);y275();isLevelLoading = !1;setCloudsVisibility(!0)
}
function disposeLevel() {disposeMinigame();disposeInstructions();for (var e = allBlocks.length, t = 0; t < e; t++) allBlocks.pop().dispose();allHeroes = [];headHero = null;isDangerCollided = isLevelCompleted = isHeroMoving = !1;levelCollectedStarsNum = levelTotalStarsNum = 0;disposeBonuses();isOldButtonActivated = !1
}
function y192(e) {y50 = e;y50 >= y115.length && (y50 = y115.length - 1);setBgByLevel(y50, !1);IsMinigameLevel(y50) ? loadMinigame(y50) : y192ByCode(y115[y50]);setParticlesToFront();showIngameSponsorLogo();isGamePaused = !1
}
function y507() {isDisableWin ? rey192FromEditor() : y192(y50)
function y131() {y50++;y50 >= y115.length && (y50 = 0);y192(y50)
}
function y275() {y390.sortChildren(zOrderSortFunction)
}
function zOrderSortFunction(e, t) {if (e.isFullTop && !t.isFullTop) return 1;if (!e.isFullTop && t.isFullTop) return -1;if (e.isFullTop && t.isFullTop) {if (e.zIndex > t.zIndex) return 1;if (e.zIndex < t.zIndex) return -1}return e.baseBlock.row < t.baseBlock.row ? -1 : e.baseBlock.row > t.baseBlock.row ? 1 : e.isOnBottom && !t.isOnBottom ? -1 : !e.isOnBottom && t.isOnBottom ? 1 : !e.isOnTop && t.isOnTop ? -1 : e.isOnTop && !t.isOnTop ? 1 : 0
}
function SearchMovePath(e, t) {var n = 100,r, i;lastDir = t;e.oldFriendsNum = e.friends.length;if (t == DIR_LEFT || t == DIR_RIGHT) {for (var n = SearchMininumStepsHoriz(e, t, n), s = 0; s < e.friends.length; s++) r = e.friends[s], n = SearchMininumStepsHoriz(r, t, n);i = StepHorizByDir(e.cell, t, n);updateStarsCollectionStatus(n);if (0 > i || i > FIELD_CELLS - 1) {e.deadMove(t);return}if (i == e.cell) lastDir = -1, isHeroMoving = !1, e.restorePosWithFriends();else {for (s = 0; s < e.friends.length; s++) {r = e.friends[s];var o = StepHorizByDir(r.cell, t, n);relocate(r, o, r.row)}e.move(i, e.row, getXByCell(i), getYByRow(e.row));playLaunchSound()}} else if (t == DIR_UP || t == DIR_BOTTOM) {n = SearchMininumStepsVert(e, t, n);for (s = 0; s < e.friends.length; s++) r = e.friends[s], n = SearchMininumStepsVert(r, t, n);i = StepVertByDir(e.row, t, n);updateStarsCollectionStatus(n);if (0 > i || i > FIELD_ROWS - 1) {e.deadMove(t);return}if (i == e.row) lastDir = -1, isHeroMoving = !1, e.restorePosWithFriends();else {for (s = 0; s < e.friends.length; s++) r = e.friends[s], o = StepVertByDir(r.row, t, n), relocate(r, r.cell, o);e.move(e.cell, i, getXByCell(e.cell), getYByRow(i));playLaunchSound()}}resetStarsCollectionSteps()
}
function SearchMininumStepsVert(e, t, n) {if (!isNextVertAreFriend(e, t)) {t = SearchLastFreeRow(e, t);e = Math.abs(t - e.row);if (t < ROWS_MARGIN || t > ROW_FIELD_END) e = 100;if (e < n) return e}return n
}
function isNextVertAreFriend(e, t) {var n = StepVertByDir(e.row, t, 1);return (n = getBlockAt(e.cell, n)) ? isHero(n) : !1
}
function SearchLastFreeRow(e, t) {var n = StepVertByDir(e.row, t, 1),r = 1;for (checkStarCollide(r, e.cell, n); IsFreeOrFriend(e, e.cell, n);) n = StepVertByDir(n, t, 1), r += 1, checkStarCollide(r, e.cell, n); - 1 < n && n < FIELD_ROWS && (n = StepVertByDir(n, t, -1));return n
}

源码

需要源码请关注添加好友哦^ ^

转载:欢迎来到本站,转载请注明文章出处https://ormcc.com/

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

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

相关文章

纯血鸿蒙来了,鸿蒙App开发该如何提速

“全世界做产品挣钱的公司很多&#xff0c;但有能力打造操作系统的公司没有几家&#xff0c;最后世界上的操作系统就只有三套&#xff1a;鸿蒙、iOS和安卓。” --- 360集团创始人、董事长周鸿祎 “HarmonyOS实现了AI框架、大模型、设计系统、编程框架、编程语言、编译器等全栈…

git的分支操作

目录 简介&#xff1a; 操作&#xff1a;查看 操作&#xff1a;创建 操作&#xff1a;切换​编辑 操作&#xff1a;本地分支推送到远程 操作&#xff1a;git merge [name]合并分支​编辑 简介&#xff1a; 在Git中&#xff0c;可以通过分支来管理和处理不同的版本和功能。分…

一文读懂C++的类和对象以及多态的原理

现实生活中&#xff0c;关于类和对象最好的例子是自然界的动物类&#xff0c;本文将以此为场景逐步引入C的概念&#xff0c;达到学习的目的。因为C这门语言本身有很多繁杂的内容&#xff0c;而网上的资源也是参差不齐&#xff0c;有的人见山谈山遇水聊水&#xff0c;有多人故弄…

已解决!AttributeError: ‘Sequential‘ object has no attribute ‘session‘ 问题

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通Golang》…

EtherCAT转ModbusTCP网关

一、功能概述 1.1设备简介 本产品是EtherCAT和Modbus TCP网关&#xff0c;使用数据映射方式工作。 本产品在EtherCAT侧作为EtherCAT从站&#xff0c;接TwinCAT、CodeSYS、PLC等&#xff1b;在ModbusTCP侧做为ModbusTCP主站&#xff08;Client&#xff09;或从站&#xff08;…

c语言---操作符(详解)

目录 一、操作符的分类二、算术操作符三、 移位操作符3.1<<左移操作符3.1.1移位规则3.1.2直接上代码以及解释 3.2>> 右移操作符3.2.1移位规则3.2.2画图解释 3.3注意 四、位操作符&#xff1a;&、|、^、~4.1&按位与4.1.1按位与的计算逻辑4.1.2代码4.1.3运行…

2024程序员就业咋办?

国际研究机构Gartner会在每年10月份左右发布下一年度的战略发展趋势预测&#xff0c;并在次年3月左右发布和网络安全相关的趋势预测。绿盟科技通过将近3年的趋势预测进行分组对比分析后发现&#xff0c;除了众人皆知的AI技术应用外&#xff0c;数据模块化、身份优先安全、行业云…

阿里云OSS对象存储

一、前言 阿里云对象存储OSS作用&#xff1a;用于存储图片、视屏、文件等数据。 参考阿里云文档地址&#xff1a;阿里云对象存储教程 二、总体思路 说明&#xff1a;客户端给服务端发送请求&#xff0c;获取policy和signature等数据&#xff08;服务端提供&#xff09;&#…

VS打包.exe文件步骤

1.借助vs自带扩展工具 2.1打开扩展栏 2.2搜索栏填入 " installer " 2.3下载安装 下载完成后&#xff0c;推出vs自动弹出安装。 2.生成安装包 2.1新建一个项目 2.2输入"setup" 直接下一步 2.3输入项目名称和存储位置、点击创建 出现该栏 2.4选择 主文件…

Pandas--数据结构 - DataFrame(4)

DataFrame 是一个表格型的数据结构&#xff0c;它含有一组有序的列&#xff0c;每列可以是不同的值类型&#xff08;数值、字符串、布尔型值&#xff09;。DataFrame 既有行索引也有列索引&#xff0c;它可以被看做由 Series 组成的字典&#xff08;共同用一个索引&#xff09;…

python求解中位数

首先将数组nums进行排序&#xff0c;然后找到中间位置的数值 如果数组长度n为奇数&#xff0c;则(n1)/2处对应值为中位数&#xff0c;如果数组下标从0开始&#xff0c;还需要减去1 如果数组长度n为偶数&#xff0c;则n/2,n/21两个位置数的平均值为中位数 假设中位数为x&#x…

ManageEngine推出云原生身份平台以解决劳动力IAM挑战

ManageEngine推出云原生身份平台以解决企业员工身份与访问管理&#xff08;IAM&#xff09;面临的挑战。该公司还为其本地身份治理和管理&#xff08;IGA&#xff09;解决方案添加了先进的安全功能。 IAM 内置通用目录可在企业应用程序之间集中管理用户身份&#xff0c;使用身…

【Nginx】nginx入门

文章目录 一、Web服务器二、Nginx三、Nginx的作用Web服务器正向代理反向代理 四、CentOS上安装Nginx(以CentOS 7.9为例) 一、Web服务器 Web 服务器&#xff0c;一般是指“网站服务器”&#xff0c;是指驻留于互联网上某种类型计算机的程序。Web 服务器可以向 Web 浏览器等客户…

【复现】帮管客CRM 客户管理系统 sql注入漏洞_37

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 帮管客CRM客户管理系统基于先进的CRM营销理念设计&#xff0c;集客户档案、销售记录、业务往来于一身&#xff0c;以凝聚客户关系…

Vue3 - 从 vue2 到 vue3 过渡,这一套就够了(案例 + 效果演示)(一)

目录 一、Vue3 从入门到进阶 1.1、Vue3 相比于 Vue2 好在哪里&#xff1f; 1.2、创建 vue-cli3 脚手架 1.3、Vue3 的使用 1.3.1、拉开序幕的 setup 1.3.2、ref 函数 什么是响应式数据 ref 响应式处理 1.3.3、reactive 1.3.4、reactive 对比 ref 1.3.5、setup 的参数…

【全网独创】2024美赛E题33页成品论文+1-4问完整代码数据助攻

E题社区抗灾能力综合评估与决策模型研究 摘要&#xff1a;社区抗灾能力的提升对于灾害风险管理至关重要。本研究基于机器学 习方法&#xff0c;构建了社区抗灾能力预测模型&#xff0c;以评估社区在灾害事件中的表现。首先&#xff0c; 我们采用梯度提升树模型对社区基础设施、…

Python学习03 -- 函数相关内容

1.def --- 这个是定义函数的关键字 \n --- 这个在print()函数中是换行符号 1.注意是x, 加个空格之后再y 1.形式参数数量是不受限制的&#xff08;参数间用&#xff0c;隔开&#xff09;&#xff0c;传实参给形参的时候要一一对应 返回值 --- 函数返还的结果捏 1.写None的时…

C++ 动态规划 线性DP 最长上升子序列

给定一个长度为 N 的数列&#xff0c;求数值严格单调递增的子序列的长度最长是多少。 输入格式 第一行包含整数 N 。 第二行包含 N 个整数&#xff0c;表示完整序列。 输出格式 输出一个整数&#xff0c;表示最大长度。 数据范围 1≤N≤1000 &#xff0c; −109≤数列中的数…

算法学习——华为机考题库2(HJ11 - HJ20)

算法学习——华为机考题库2&#xff08;HJ11 - HJ20&#xff09; HJ11 数字颠倒 描述 输入一个整数&#xff0c;将这个整数以字符串的形式逆序输出 程序不考虑负数的情况&#xff0c;若数字含有0&#xff0c;则逆序形式也含有0&#xff0c;如输入为100&#xff0c;则输出为0…

Map和Set的封装

目录 一、底层原理 二、红黑树的节点 三、仿函数 四、迭代器 4.1、迭代器的定义&#xff1a; 4.2、*:解引用操作 4.3、->:成员访问操作符 4.4、!、 4.5、迭代器的&#xff1a; 4.6、迭代器的-- 五、Map 六、Set 七、红黑树源码 一、底层原理 我们要知道&#…