ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

CodeCombat 计算机科学 2 课程指南:从条件结构到事件处理的完整教学方案

CodeCombat 计算机科学 2 课程指南:从条件结构到事件处理的完整教学方案 游戏开发教育前端后端【免费下载链接】codecombatGame for learning how to code.项目地址https://gitcode.com/gh_mirrors/co/codecombat点击查看免费下载导读本文基于 CodeCombat 开源仓库中的教师课程计划文档 cs2-zh-HANS.md对应英文原版 cs2.md系统讲解计算机科学 2Computer Science 2CS2课程的完整教学脉络从 if/else 条件结构、嵌套条件结构到函数定义与事件处理机制最后以多人竞技场收尾。读者尤其是编程教师、课程设计者与想理解 CodeCombat 关卡设计理念的学习者可以从中掌握每个模块的教学目标、课堂活动脚本、Python 代码示例、书面思考题设计以及如何结合仓库源码理解这些概念在游戏中的落地方式。适用前提本课程为 Python 语言设计但文档明确指出也能够轻松适用于 JavaScript建议先修课程为计算机科学导论CS1课时为 4 个 45–60 分钟的编码课时段英文原版为 6 个课时段。在仓库课程体系中CS2 对应的课程标识为courseIDs.COMPUTER_SCIENCE_2见 app/core/utils.js。一、课程概要从摆弄代码走向编写软件1. 课程定位学生在完成 CS1计算机科学导论后已掌握简单的程序结构和基本语法具备继续进阶的基础。CS2 的核心定位是计算机科学 2 会让学生从随便倒弄代码的阶段进入到真正编写软件和应用的阶段。课程继续强化基本语法、参数、字符串、变量、循环等基础概念并引入第二层级的核心概念If 语句让学生能够基于战场上的不同状况采取不同的动作函数让学生将程序组织成可重复利用的代码片段事件处理写出基本函数之后学生开始编写代码来处理事件——这是游戏开发、Web 开发和应用开发中经常会用到的基本编码模式。2. 内容及学习顺序Scope and Sequence模块首关授课目标5. 条件结构 (if)平原森林保卫战Defense of Plainswood在执行之前判别表达式6. 条件结构 (else)背靠背Back to Back执行默认代码7. 嵌套条件结构跃火林中Forest Fire Dancing将一个条件结构放到另一个条件结构之内8. 函数乡村漫游者Village Rover将具体代码留给以后9. 事件边地好伙伴Backwoods Buddy监听事件并执行代码10. 复习 – 多人竞技场力量峰值Power Peak设计和实现算法3. 核心词汇表CS2 在 CS1 词汇对象、函数、参数、循环、变量基础上新增了两个关键术语是贯穿全课程的概念基石对象Object执行动作的角色或事物。对象是 Python 的基本组成要素。hero是一个对象能够执行移动动作在hero.moveRight()中对象就是hero。课程 2 中学生还将使用pet对象来执行动作。函数Function对象执行的动作。moveRight()是一个函数函数名后总需要跟括号。参数Argument函数需要的额外信息即函数后括号内的内容。在hero.attack(enemy)中enemy是参数。循环Loop需要重复的代码一种编写方式是使用关键字while后面跟判别真假True/False的表达式。变量Variable暂时存放数据的容器。创建变量需要起变量名然后告诉它存放什么值。条件结构Conditional现代编程的基本组成要素。它会判别条件基于表达式的不同值来决定执行不同动作。玩家无法确认是否会有敌人攻击、有没有可以抓取的宝石因此需要判别这些东西是否存在能力是否就绪、敌人是否存在都需要判别条件以确定执行不同动作。事件Event表示发生了某事的对象。学生可以编写代码对事件作出反应——当这类事件发生了执行这个函数这叫作事件处理机制是对无限 while 循环的有益补充。4. 较早完成课程学生的延伸活动帮助其他同学在力量峰值多人竞技场中完善策略编写全部流程编写对整个游戏的回顾评述为最喜欢的关卡编写通关指南设计一个新关卡。二、模块 5条件结构If1. 概要课程 2 引入了更进阶的编程概念关卡通过难度不再像之前那么容易。文档提醒教师留意关卡指示确保学生知道关卡目标留意代码中嵌入的注释以#开头确保学生知道代码里面有什么需要补充。2. 授课目标构造条件结构选择恰当的表达式表达式求值。3. 标准CCSS.Math.Practice.MP1理解问题寻求解答、MP2抽象和定量思想、MP4数学建模、MP7寻找和利用结构。4. 教学活动条件结构10 分钟讲解2 分钟条件结构基于游戏状态选择要执行的代码。首先需要求出表达式的值是True还是False然后只在表达式为真时执行后面的代码。语法与循环类似后面需要有冒号和四格缩进。if是关键字部分是表达式if enemy Kratt: attack(enemy) # 这是动作条件结构本身只会执行一次如果想要多次进行判别可以把它放到循环结构中过程中要注意缩进while true: if enemy Kratt: attack(enemy)互动5 分钟使用 Python 语法将课堂规则改写为条件结构。先在黑板上列出规则例如举手才能问问题如果迟到是会留校的老师拍手两次时停止讲话。然后用如果if开头的句子重写规则再改写为 Python 语法if student.hasQuestion(): student.raise(hand)if student.arrivalTime class.startTime: teacher.giveDetention(student)if teacher.claps 2: class.volume 0然后标出条件结构中的各部分关键字、表达式、动作。讲解1 分钟代码是将平时说的语言编码为计算机能够理解的语言。可以通过规则 → 如果句子 → 代码三步将自己的想法改写成计算机语言。思考2 分钟我们为什么需要条件结构并非所有动作都总是会发生If 和冒号之间的部分是什么表达式表达式很重要的一点是什么其值要么为真要么为假5. 代码编写时间30–45 分钟让学生按自己的节奏进行游戏并在纸上或电子文档中记录每一关的日志。推荐使用学习日志模板格式如下可打印关卡 #: _____ 关卡名: ____________________________________ 目标: __________________________________________________________ 我做了什么: 我学到了什么: 挑战在哪里:课堂巡视要点学生需要使用 (x, y) 坐标来明确位置——将鼠标指针放到目标位置上即可得到确切坐标学生还需要在执行动作前进行条件判别通过条件结构来确定是否执行动作。6. 书面思考题5 分钟If 是什么意思If 后面应该写些什么参考回答If 只在条件为真时执行代码。可以判别各种事情是否为真例如武器是否准备就绪、敌人是否靠近。有时需要或有时只需要()。如果要你设计一个 CodeCombat 关卡它会是怎样的参考回答会有很多食人魔你需要攻击它们但不能攻击人类还需要通过建造障碍物和火焰陷阱来保护村子。三、模块 6条件结构Else1. 概要这些关卡都需要同时考虑两件事。学生需要确定什么情况下执行哪个动作。这个阶段适合进行秘诀技巧讨论让学生有机会在课上分享他们的发现或窍门。2. 授课目标构造一个if-else条件结构确定不同条件下执行的不同动作定义else在if不成立时执行。3. 标准CCSS.Math.Practice.MP1、MP2、MP7、MP8寻找并表达重复性思想的规则性。4. 教学活动条件结构 (Else)10 分钟讲解2 分钟我们已经熟悉表达式为真时执行动作的条件结构但如果表达式为假怎么办呢这就需要用到else——否则、如果不、相反的意思。注意else需要与if有相同数目的缩进并且同样需要跟冒号:。下面的例子中if和else是关键字是表达式内容if today weekday: goToSchool() # 动作 else: # 关键字 watchCartoons() # 动作互动6 分钟回顾上一课的课堂规则看是不是需要 else 语句if student.hasQuestion(): student.raise(hand) else: student.payAttention()if student.arrivalTime class.startTime: teacher.giveDetention(student) else: teacher.markPresent(student)if teacher.claps 2: class.volume 0 # 这里不需要else因为老师不拍手的情况下不需要执行任何动作标出条件结构中的各部分关键字if与else、表达式、动作。思考2 分钟Else 是什么意思如果不、否则为什么 else 后不需要另一个表达式表达式已经隐含在前面了即前面 if 的表达式不成立时Else 是否总要有不有没有要看具体情况5. 代码编写时间30–45 分钟继续使用学习日志模板记录关卡。本阶段关卡的关键在于确定什么事情需要发生以及什么情况下发生学生们需要在各种条件下选择最佳动作并享受多种可能性带来的乐趣。6. 书面思考题5 分钟现在你有没有比一开始了解了更多代码现在你比一开始多拥有了什么额外的能力参考回答一开始只能到处走动现在可以攻击敌人、看到谁最近、将鼠标放到屏幕上确定目的地坐标可以使用 if 和 else 做两件不同的事可以使用循环让代码重复执行。有什么建议给刚开始玩游戏的人参考回答阅读指示首先确定要做什么然后再操心代码while True和if后面需要记得冒号:之后还需要四格缩进大多数时候关卡会用蓝字告诉你做什么可以使用宝石来买东西。卡住时你怎么做参考回答问旁边的人有没有过这一关如果比较超前会再考虑一下直到对方追上进度然后一起研究也可以问老师有时答案就在帮助或蓝字中。四、模块 7嵌套条件结构1. 概要严肃的编程现在开始。学生们需要记住如何构造条件结构及表达式不熟的话要多看代码编辑器下的提示。这些关卡有三个或以上的动作要控制需要复合思维及规划。代码最多会有三层缩进确保空格数量正确对于代码运行是至关重要的。2. 授课目标构造嵌套条件结构阅读并理解嵌套条件结构处理好缩进。3. 标准CCSS.Math.Practice.MP1、MP2、MP6致力于精准度、MP7。4. 教学活动嵌套条件结构10 分钟讲解3 分钟有时要做的事情多于两个这就需要将一个条件结构嵌套在另一个条件结构中。下面例子中第一个条件结构判断的是if 是不是周末第二个条件结构嵌套条件结构判断的是if 有没有足球比赛if its a weekend: if I have a soccer game: Wake up at 6 else: Sleep in else: Wake up at 7缩进此时非常重要一层循环或条件结构中需要四格缩进这要包括之内的其他条件结构因此内部的条件结构需要总共缩进八格。活动5 分钟让学生将自己的起床、入睡或休息时间规则写成嵌套条件结构的形式至少做三个不同的动作这是使用嵌套条件结构所必需的。完成后与同伴交换相互阅读和讨论所写内容检查语法和缩进再邀请志愿者与全班分享成果。思考2 分钟我们为什么需要嵌套条件结构因为可能的情况和要执行的动作有时会多于两种为什么第二个条件结构需要额外缩进四格这样才能体现它在第一个条件结构之内某个动作缩进八格意味着什么它是否执行取决于两个表达式的真假判断5. 代码编写时间30–45 分钟课堂巡视时确保学生在开始编写代码之前阅读了初始代码中的注释。目标比较复杂时将目标分解并理解每一个子目标很重要鼓励学生之间的协同合作和相互帮助。6. 书面思考题5 分钟给我讲讲劈斩 cleave。参考回答劈斩会击溃周围的大量敌人代码是hero.cleave()。后面要记得()不过括号后不需要参数——不需要cleave(enemy)因为攻击目标是周围所有人。劈斩有一段冷却时间因此使用之前要检查它是否准备就绪如果没有就绪就只能使用普通攻击。讨论你的英雄是好人还是坏人参考回答从保护村民来讲他是好人但从偷取宝石来讲他是坏人而且杀敌也是杀戮要是保护村民不需要通过杀戮和偷盗来实现就好了。7. 书面查核点条件结构什么是条件结构条件结构有哪些不同的方式举例说明。参考回答条件结构也就是包含 if 的结构如果某条件为真就做某动作条件为假还需要做别的动作时要使用 else如果还有第三个动作就要用 elif。如如果if下雨就穿夹克否则如果elif下雪就戴帽子否则else就穿 T 恤。此外 if 还可以嵌套在其他 if 之内这时需要记得缩进数量不能错。什么是 elif它是 elf精灵吗参考回答Elif 表示 else if否则如果用它可以在三个动作中做选择而不是两个动作中做选择。它和 elf精灵很像因为它很巧妙。讲讲缩进。参考回答while True、if、else、elif内代码都需要四格缩进如果 if 内还有另一个 if那就需要八格缩进。数清楚空格数量是非常重要的否则计算机就不知道该做什么。五、模块 8函数1. 概要这些关卡为学生提供了捷径循环让学生能够更快地执行更多代码而函数能让学生反复使用相同代码。语法仍然至关重要——注意冒号和缩进开始编写代码之前记得让学生阅读并理解关卡的指示说明。2. 授课目标辨认函数定义函数调用函数。3. 标准CCSS.Math.Practice.MP1、MP2、MP7。4. 教学活动函数10 分钟讲解其实之前已经用过函数了——hero.cleave()中的cleave()就是函数。之前用的都是内建函数后面将编写自己的函数。编写函数首先需要使用def来定义def getReady(): hero.wash(face) hero.brush(teeth) hero.putOn(armor)然后调用函数getReady()定义和调用之间的区别定义需要在前面使用def后面使用冒号:中间还需要一些缩进的代码它们都有括号。类比篮球整套动作程序员使用函数让代码更易读易写这就像篮球中的整套动作——你知道如何投篮、带球、传球将各部分组合到一起并给它取个名字def out-over-up(): p1.dribble() p1.pass(p2) p2.shoot()教练想要这一串动作被执行时只需要喊 Out-over-up! 就行了。互动5 分钟——Simon Says课上使用 Python 语法在黑板上编写自己的函数然后用 Simon Says 游戏方式和学生互动def pogo(): student.handsOn(hips) student.jump()def popcorn(): if student.sittingDown(): student.standUp() else: student.sitDown()然后通过调用函数来玩 Simon Says 游戏例如Simon says raise your hand!举手Simon says popcorn!Pogo!Simon 什么都没说——这时学生不应执行动作思考2 分钟为什么函数能让编码更简单复杂的步骤不需要每次都写出来只需要写出函数名就行了为什么给函数取个好名字很重要这样以后就不会忘了它是做什么的关键字def表示的是什么define定义5. 代码编写时间30–45 分钟课堂巡视要点这些关卡都需要编写好的代码。给学生的帮助代码中间经常写有pass——这是为了让示例代码中不显示错误。学生填入了自己的代码后pass就需要删掉在帮助学生调试代码之前先看看是不是pass的问题。6. 书面思考题5 分钟为什么说函数很有用什么时候没必要使用函数参考回答有了函数相同代码就不需要写一遍又一遍函数能让代码更易读。如果函数中只有一行代码那就没必要使用函数了每次直接写出那一行会更省事。六、模块 9事件1. 概要事件是表示发生了某事的对象。学生可以编写代码来对事件作出反应当这类事件发生了执行这个函数。这叫作事件处理机制它是很有用的编程方式是对无限 while 循环的有益补充。2. 授课目标监听事件并执行代码使用事件处理来控制宠物将直接执行和事件处理混在一起编写代码。3. 教学活动总统老师12 分钟讲解2 分钟之前学习的是从上到下一次性执行的代码首先做这个然后做这个再做那个以及 while 循环这个一直做下去。现在要学习事件处理当这个发生**时执行那个。它和 if 语句有点像只是事件可以在任何时候发生不需要只发生在判别条件时。互动8 分钟情景——老师在等白宫的一通重要电话电话会通知你是否被选为下一任美国总统。先用 while 循环和 if 语句编写接电话的程序暂时还没用到事件while True: if phone.isRinging: teacher.answer(phone)这很无聊只等电话什么都没做。于是在等待过程中批改学生作业while True: paper teacher.findNextPaper() teacher.grade(paper) if phone.isRinging: teacher.answer(phone)每份作业需要五分钟批改。问学生如果按照以上程序执行白宫打来电话会怎么样白宫打来电话的时候可能正在批改作业只会每五分钟查看电话是否响起很可能错过当选总统的电话。下面用事件处理来重写程序——监听事件当事件发生时通过运行一个函数来处理事件def answerPhone(): teacher.answer(phone) phone.on(ring, answerPhone)意思是一旦on电话phone响起ring就运行answerPhone函数。之后就是在等待中批改作业只需要加一个 while 循环就行了事件发生时批改会被打断这样就能接到电话成为总统def answerPhone(): teacher.answer(phone) phone.on(ring, answerPhone) while True: paper teacher.findNextPaper() teacher.grade(paper)关键语法点phone.on(ring, answerPhone)会让代码开始监听电话响ring这一事件。注意函数后面不使用括号是answerPhone而非answerPhone()——因为这里只是告诉代码要运行的函数的函数名而不是立刻运行括号会让函数立刻运行。让学生举更多事件和处理函数的例子并写到黑板上student.on(wake, goBackToSleep) dog.on(hear, obeyMaster) goal.on(touchBall, increaseScore) bigRedButton.on(press, initiateSelfDestruct)思考2 分钟事件处理用于什么在某件事发生时运行一个函数事件名是什么类型的数据事件名是字符串监听事件时使用的函数后面为什么不加括号括号会让函数立刻运行你不希望这样你要的是事件发生后才运行4. 代码编写时间30–45 分钟确保学生在开始监听事件之前编写出处理事件的函数。事件发生时的执行顺序可能有点难于把握学生可能不知道是默认程序在运行还是事件处理函数在运行让学生看看白色高亮显示的代码执行这样他们就能知道每次在运行哪一行代码。5. 书面思考题5 分钟给我讲讲猫。参考回答我有一只宠物猫它是一只美洲狮。有一个函数会喵喵叫猫会等到你跟它讲话时才喵喵叫。我认为它还应该帮助你抵御敌人你需要通过命令让它做别的事情例如扑击和撕咬。事件在游戏开发中非常有用举出三种游戏中可能会发生的事件。参考回答在我的世界中爬行者爆炸时会触发爆炸事件象棋中会有将军事件宝石迷阵中会有 combo 事件。6. 事件机制在 CodeCombat 中的落地监听事件 回调函数这一模式并非课堂虚构在 CodeCombat 的底层库代码中事件订阅是通用基础设施。例如仓库中的 app/lib/initSlider.coffee 就使用了同样的对象.on(事件名, 回调)订阅模式slider.on(slide, changeCallback)。课程中phone.on(ring, answerPhone)的教学本质正是让初学者在进入真实前端/游戏开发前先掌握这种回调不立即执行、事件驱动时才触发的核心心智模型。七、模块 10复习 – 多人竞技场1. 概要竞技场关卡是完成这部分内容的一个奖励。在之前关卡中掉队或书面思考题没完成的学生可以利用这个时间来完成已经成功提交课业的学生可以进入力量峰值竞技场在到时间前尝试多种解决方案。更多细节可参阅仓库中的竞技场关卡指南 arenas-zh-HANS.md英文版 arenas.md。2. 授课目标设计算法来解决问题在 Python 中实现算法调试 Python 程序。3. 标准CCSS.Math.Practice.MP1、MP2、MP3合理论证并评价他人思路、MP5高屋建瓴地使用恰当工具、MP6。4. 开场讨论5 分钟竞技场入门讲解告诉学生他们今天要把所学全部整合到一起参加一项叫竞技场Arena的特殊活动。讲解并演示竞技场如何运作务必覆盖以下要点学生将编写一个人工智能程序在与对手的竞赛中闯过一个复杂关卡。他们要反复测试和修改程序尽可能取得最好的成绩。鼓励他们提交代码、观察输出寻找可以改进的地方更快达成目标、让玩家存活更久等然后修改并再次提交次数不限。首先点击选择红色人类或蓝色食人魔队伍建议随机将一半学生分到每队。第一次游玩时选择Warm-Up热身与计算机对战反复修改完善程序直到足以击败计算机。击败计算机后可以选择Easy简单与同学对战。复习工程循环Engineering Cycle提醒学生工程学就是解决问题而工程学的第一条规则是没有人能一次做对。这就是工程循环的由来DECOMPOSE分解理解并拆解问题。关卡的目标是什么沿途能看到哪些更小的目标PLAN计划选择问题的一部分先解决。需要计算机做什么用平实的语言或伪代码规划解决方案用流程图或故事板保持条理。IMPLEMENT实现用代码写出问题的每一部分解决方案。TEST测试运行代码它是否按预期解决了问题如果没有重新设计能否无错运行如果不能逐行追踪找出并修复 bug然后再次测试。一旦成功就继续规划并实现下一部分可为每位学生提供一份工程循环工作表Engineering Cycle Worksheet供其进入关卡后规划程序。讨论你打算按哪些步骤来规划和创建程序参考回答我会使用工程循环。先分解问题——找到大目标并拆成更小的子目标选择一个子目标开始规划出解决它的算法然后用代码写出算法开始测试和调试直到它能按我想要的方式运行。如果你的程序第一次没能击败计算机你会怎么做参考回答如果不行我会重新运行并观察它在哪里出错然后设法改进那一部分并重新提交代码。如果还是不行就再试一次5. 代码编写时间40–50 分钟让学生进入最后一关力量峰值Power Peak。先花几分钟完成工程循环工作表然后按自己的节奏通关教师巡视并协助。值得了解Good to Know有些学生可能对竞争感到不适尤其是排名对全班可见时。可以考虑使用结对编程Pair Programming——有伙伴时竞争通常更舒适。学生只会与同一 CodeCombat 班级中的人工智能和其他学生竞争不会遇到陌生人。学生击败其中一个 AI 后就会进入班级排名。红队只与蓝队对战两队各有自己的顶级排名。学生提交代码后其他学生可以点击排名中任意学生旁的Fight对战链接向其发起挑战。如果将教师账号留在竞技场排行榜页面系统会在学生之间模拟更多比赛。需要留意Look Out For竞技场比常规关卡更开放。如果学生不确定如何开始提醒他们编程是一个迭代过程引导他们把问题分解成更简单的部分一次只规划关卡的一部分解决方案。如果学生因失败而沮丧鼓励他们分析获胜玩家的策略——能从中学习到什么以及如何用它改进自己代码的下一次迭代。6. 结束5 分钟用以下问题引导学生反思可组织简短讨论或让学生以 Exit Tickets 形式提交书面回答在 CodeCombat 中你必须提前规划英雄的所有动作然后让英雄一次性执行。这与大多数视频游戏直接控制英雄、边玩边做决定不同。你对这种差异感受如何例如哪种更有趣哪种更难你的策略如何变化如何处理失误参考回答CodeCombat 更难因为我必须提前想很多步这是一种有趣的难在这个游戏中我可以先看遍整个关卡规划好想怎么通关然后设计一种方式让计划生效。这和普通视频游戏里边玩边编的感觉不一样。当你的代码没能击败对手时你做了什么你是如何决定要做什么改动的参考回答我重新运行代码观察能否找到捷径然后修改代码再运行一次看看是否有帮助。我寻找让自己存活更久的方法召唤更多朋友帮忙、拾取更多药水。把这些加进程序帮助我走到了最后。八、课程在仓库中的定位与延伸阅读课程标识在仓库的 app/core/utils.js 中CS2 被列为计算机科学课程体系CSCourseIDs的一员courseIDs.COMPUTER_SCIENCE_2与 CS1、CS3、CS4、CS5、CS6 及 Junior 并列佐证了 CS2 在整个 CodeCombat 课程阶梯中承上启下的位置。多语言课程文档本指南的中文版位于 app/assets/markdown/cs2-zh-HANS.md英文原版位于 app/assets/markdown/cs2.md并配有葡萄牙语版 cs2-pt-BR.md同一目录下还有配套的 cs1-zh-HANS.md先修课程与 cs3.md后续课程可串联成完整的计算机科学系列教学脉络。竞技场机制模块 10 引用的竞技场玩法细节可进一步阅读 arenas-zh-HANS.md。底层实现佐证课程中反复强调的对象调用方法hero.moveRight()、hero.cleave()与对象事件订阅phone.on(ring, answerPhone)模式在仓库源码中均有对应实现例如事件订阅机制可见 app/lib/initSlider.coffee说明课程所授内容并非虚构语法而是 CodeCombat 关卡引擎实际使用的编程模型。结语一份可直接落地的进阶编程教案CS2 的六模块设计if → else → 嵌套条件 → 函数 → 事件 → 竞技场构成了一条完整且渐进的编程认知曲线从单条件判断到双分支默认执行再到多分支嵌套与缩进纪律从代码复用函数到异步思维事件处理最终以算法设计 调试 迭代的竞技场挑战收束。每个模块都配套了标准的 10 分钟教学活动讲解 → 互动 → 思考、30–45 分钟游戏编码时间、学习日志模板与书面思考题教师可直接按此教案组织课堂学习者也能够借此理解 CodeCombat 关卡背后真正要训练的计算思维——而这正是它作为教人写代码的游戏的核心价值所在。赞分享游戏开发教育前端后端【免费下载链接】codecombatGame for learning how to code.项目地址https://gitcode.com/gh_mirrors/co/codecombat点击查看免费下载相关推荐Vector v0.19.1 补丁版本解析字符分隔解码回归修复、磁盘缓冲区迁移与安全升级Vector v0.19.1 补丁版本解析字符分隔解码回归修复、磁盘缓冲区迁移与安全升级 本篇技术指南以 Vector 开源仓库中 v0.19.1 版本发布说游戏开发教育前端后端OpenProject 如何从当前主版本升级到下一主版本OpenProject 如何从当前主版本升级到下一主版本 如果你在运行 OpenProject 的生产实例需要把当前主版本例如 16.x升级到下一个主版游戏开发教育前端后端CodeCombat Computer Science 2 教师教学指南从条件判断到事件处理与竞技场实战CodeCombat Computer Science 2 教师教学指南从条件判断到事件处理与竞技场实战 本文以 CodeCombat 开源仓库中的官方课程文游戏开发教育前端后端上一篇用 Apollo Server 搭建联邦网关apollo/gateway 配置指南与 7 项性能调优技巧下一篇Playnite游戏库管理器终极指南一站式管理所有平台游戏的完整方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表