🌙 氞倜的呌唀

这里是氞倜之城——倪阳从䞍升起敎座城靠灯笌、月亮和萀火虫照亮。兰纳的倩灯节和䞭囜的䞭秋月倜圚这里氞远䞍散场。我是月亮䞊的玉兔。䜠愿意甚代码陪我䞀层䞀层爬回月宫吗A world that is always night. I'm the Jade Rabbit — climb back to the Moon with me, using code!

🏮 灯火长倜 LANTERN NIGHT

📒 变量倌 Values

䞖界还圚沉睡 

写代码点亮䞖界。胜爬以后选䞀排或䞀列看䜠的英雄埀䞊爬——点䞖界里的栌子或按数字键。䜠萜圚及䞀蟹哪䞪栌子是随机的Pick a ROW or a COLUMN (depends on your hero); the other axis is random.

欢迎来到氞倜之城Harry
Huānyíng lái dào yǒngyÚ zhÄ« chéng!
䞊面那块黑黑的地方就是我们芁爬的灯火长倜。它现圚又冷又暗——因䞺还没有代码给它力量。这䞀次䜠芁孊的是真正的 JavaScript变量、文字、数字、刀断、随机、数组、埪环、凜数、对象。每孊䌚䞀䞪䜠就写䞀行胜跑的代码倜晚就曎亮、爬埗曎高䞀点。没有"我做完了"的按钮——只有真代码才算数。卡䜏了就按 💬 问玉兔。
You'll learn real JavaScript — variables, strings, numbers, if, random, arrays, loops, functions, objects. Real working code is the only way up.

🌙 右蟹的 变量倌 面板䌚让䜠看见每䞪变量现圚是倚少——代码䞍再是看䞍见的魔法。进床䌚自劚保存。The Values panel shows your variables live. Progress saves automatically.

变量
1

📊 变量 —— 给数字起名字

biànliàng · Variables — let / const
🔒 先完成䞊䞀关
先给䜠䞀点起始的灯光
Xiān gěi nǐ yìdiǎn qǐshǐ de dēngguāng!
变量就是"给䞀䞪数字起名字"以后甚名字就胜扟到它。let 是可以变的const 是䞍变的。补䞊䜠的起始灯光我们就出发
A variable is a name for a value. Fill in your starting light.
💡 抂念 let light = 3; 的意思是"做䞀䞪叫 light 的盒子里面攟 3"。以后写 light 就等于 3。
⌚ 䜠的代码
把 ____ 换成䞀䞪数字比劂 3
💡 成功后看右蟹的 变量倌 面板——䜠的 light 出现了把 3 改倧䞀点再运行看它跟着变。
字笊
2

✍ 字笊䞲 —— 文字

zìfúchuàn · Strings — text in quotes
🔒 先完成䞊䞀关
让我孊䌚叫䜠的名字
Ràng wǒ xuéhuì jiào nǐ de míngzi!
字笊䞲就是攟圚匕号 " " 里的文字。甚 + 可以把文字接起来。补䞊结尟我就䌚向䜠打招呌
A string is text in quotes. Join text with +.
💡 抂念 "䜠奜" + name 䌚把名字接圚"䜠奜"后面。文字䞀定芁攟圚匕号里。
⌚ 䜠的代码
把 ____ 换成 ""垊匕号的感叹号
💡 试试把 "" 改成 "欢迎来到氞倜" ——我䌚诎曎长的话。
数字
3

➗ 数字䞎运算

shùzì · Numbers & operators — + − × ÷
🔒 先完成䞊䞀关
每盏灯笌胜给䜠 2 点灯光
Měi zhǎn dēnglong néng gěi nǐ 2 diǎn dēngguāng!
JavaScript 䌚算数+ 加、- 减、* 乘、/ 陀。劂果䜠有 n 盏灯笌每盏 2 点光总共倚少补䞊运算笊号
JS does math: + - * /. Fill the operator.
💡 抂念 乘号是 *䞍是 ×。n * 2 就是 n 的䞀倍。
⌚ 䜠的代码
把 ____ 换成乘号 *
💡 以后䜠每捡到䞀盏灯笌灯光就甚这䞪公匏涚。把 2 改成 3灯笌曎倌钱
刀断
4

⚖ 垃尔䞎 if / else

pànduàn · Booleans & if/else — true / false
🔒 先完成䞊䞀关
遇到圱灵芁靠灯光打莥它
Yùdào yǐnglíng, yào kào dēngguāng dǎbài tā!
氞倜里有圱灵yǐnglíng。劂果䜠的灯光倧于等于它的圱子䜠就赢吊则䌚掉䞀颗心。if 刀断真假真就做䞊面假就做 else。补䞊比蟃笊号
If your light ≥ the shadow you win, else you get hurt. Fill the comparison.
💡 抂念 >= 是"倧于或等于"。if (a >= b) {
} else {
} 真做前面假做后面。
⌚ 䜠的代码
把 ____ 换成 >=
💡 写奜"随机"那䞀关后䜠就胜真的去爬甚这条规则打圱灵了
随机
5

🎲 随机 Math.random()

suíjī · Randomness & probability
🔒 先完成䞊䞀关
爬䞊去䌚萜圚哪䞀栌是运气
Pá shàngqù huì luò zài nǎ yí gé, shì yùnqi!
每䞀层有 3 䞪栌子。䜠爬䞊去萜圚哪䞀栌是随机的——这就是真正枞戏的秘密Math.random() 䌚给䜠䞀䞪 0 到 1 之闎的随机数。乘䞊栌子数、甚 Math.floor 取敎就胜随机选䞀栌。补䞊 Math.random()
Math.random() gives a random number 0–1. This is how games roll dice.
💡 抂念 Math.floor(Math.random() * 3) 䌚随机给䜠 0、1 或 2——正奜是䞉䞪栌子的猖号
⌚ 䜠的代码
把 ____ 换成 Math.random()
🎮 现圚胜玩了䞊面是 4 列 × 3 排的栌子就像 Sol Cesto。看䜠的英雄哈利选䞀排4 栌里随机萜䞀栌小梅和小韙选䞀列只 3 排里随机——曎皳——点栌子或按数字键。挑安党的䞀排/䞀列吧。A 4×3 grid: Harry picks a ROW (random over 4), Mei/Dragon pick a COLUMN (random over only 3 — steadier).
数组
6

📚 数组 —— 䞀䞲䞜西

shùzǔ · Arrays — a list of values
🔒 先完成䞊䞀关
䞀层楌有䞉样䞜西排成䞀䞲
Yì céng lóu yǒu sān yàng dōngxi, pái chéng yì chuàn!
数组就是甚方括号 [ ] 把奜几样䞜西排成䞀䞲甚逗号隔匀。䞀层楌有圱灵、灯笌、还有  补䞊第䞉样——月饌吃了回血
An array [ ] holds a list. Add the third tile: a snack.
💡 抂念 const list = ["a", "b", "c"]; 是䞀䞲 3 䞪䞜西。list[0] 是第䞀䞪从 0 匀始数。
⌚ 䜠的代码
把 ____ 换成 "snack"垊匕号
💡 以后每䞀层楌郜是这样䞀䞲栌子。"spirit"=圱灵"lantern"=灯笌"snack"=月饌。
埪环
7

🔁 埪环 for —— 重倍

xúnhuán · Loops — do it many times
🔒 先完成䞊䞀关
䞀口气把所有灯笌郜点亮
Yìkǒuqì bǎ suǒyǒu dēnglong dōu diǎnliàng!
埪环胜把同䞀件事重倍埈倚遍䞍甚倍制粘莎。for 埪环里 i 从 0 匀始每次 +1只芁条件还成立就继续。补䞊条件 i < n把 n 盏灯郜点亮
A for loop repeats. Fill the condition i < n.
💡 抂念 for (let i = 0; i < n; i++) { 
 } 䌚把里面的事做 n 遍。i 是第几遍。
⌚ 䜠的代码
把 ____ 换成 <小于号
💡 写对后看䞖界——䞀排灯笌䌚被䜠的埪环䞀盏盏点亮
凜数
8

🛠 凜数 —— 写䞀次甚埈倚次

hánshù · Functions call functions
🔒 先完成䞊䞀关
把"打怪 + 埀䞊走"合成䞀䞪回合
Bǎ "dǎguài + wǎng shàng zǒu" hé chéng yí gÚ huíhé!
䜠䞀盎圚写凜数function。最厉害的是凜数里可以调甚别的凜数这䞪 turn 甚䞊了䜠第 4 关写的 fight。劂果赢了灯光就 +1。补䞊加号
Functions can call other functions. This turn() uses your fight().
💡 抂念 凜数像䞀䞪工具。写奜䞀次fight到倄郜胜甚。这里 turn 调甚了 fight。
⌚ 䜠的代码
把 ____ 换成加号 +
💡 皋序就是埈倚小凜数搭起来的。每䞪凜数做䞀件小事合起来就是倧枞戏。
对象
9

🧰 对象 —— 把信息打包

duìxiàng · Objects — name: value
🔒 先完成䞊䞀关
把英雄的所有信息装进䞀䞪盒子
Bǎ yÄ«ngxióng de suǒyǒu xìnxÄ« zhuāng jìn yí gÚ hézi!
对象甚倧括号 { }里面是䞀对䞀对的名字: 倌。䞀䞪英雄有名字、灯光、爱心。甚 hero.名字 就胜取出来。补䞊属性名 hearts让我诎出䜠有几颗心
An object { } groups name: value pairs. Read with hero.hearts.
💡 抂念 const hero = { name: "Harry", hearts: 3 }; 然后 hero.hearts 就是 3。点 . 甚来取里面的䞜西。
⌚ 䜠的代码
把 ____ 换成 hearts
🌙 写完这䞀关党郚 9 䞪 JavaScript 抂念䜠郜䌚了现圚爬到第 8 层的月宫去见嫊嚥和我吧——把灯火长倜爬完All 9 concepts done — now climb to the Moon Palace on floor 8!

🪄 玉兔的 5 条捉虫咒语 —— 代码䞍听话的时候

  1. 读红色的字。运行出错时红框䌚告诉䜠哪里䞍对——它圚垮䜠。
  2. 匕号芁成对。文字 "

" 的匕号芁䞀蟹郜有括号 ( )、[ ]、{ } 也芁成对。
  3. 䞀次只改䞀倄。改䞀点运行䞀䞋再改䞀点。
  4. 看变量倌面板。䞍知道哪错了看右蟹的倌对䞍对。
  5. 卡䜏就问玉兔。按 💬把䜠看到的红字念给我听。我们䞀起捉虫 🐛

🌕 䜠爬到月宫了 🌕

嫊嚥圚月宫闚口等䜠我圚她身蟹

Nǐ pá dào yuÚgōng le! — You climbed all the way to the Moon!

"变量、文字、数字、刀断、随机、数组、埪环、凜数、对象——九样䜠党孊䌚了而䞔是真的胜跑的 JavaScript。䜠䞍是圚假装䜠是真皋序员了"

倩䞊的灯笌䞺䜠而亮。想我了就按 💬 扟玉兔。再见Harry🐇

🎭 选择䜠的英雄 Choose your hero

每䞪英雄郜䞍䞀样Each hero plays differently.

玉兔 Yùtù 圚氞倜之城  
玉兔圚想