[{"data":1,"prerenderedAt":922},["ShallowReactive",2],{"article-village-of-chaos":3},{"id":4,"title":5,"body":6,"date":884,"description":885,"downloads":889,"extension":890,"hide":891,"links":892,"meta":905,"navigation":765,"path":906,"seo":907,"slug":909,"stem":910,"tags":911,"__hash__":921},"articles\u002Farticles\u002Fvillage-of-chaos.md","Village of Chaos",{"type":7,"value":8,"toc":835},"minimark",[9,30,47,59,62,84,95,140,151,183,194,205,238,248,251,271,281,284,295,298,309,312,337,348,359,378,389,392,400,411,414,522,538,544,589,600,606,629,640,643,651,662,679,690,701,786,797,804,810,822,831],[10,11,12,14],"h2",{"id":12,"class":13},"游戏介绍","section-heading",[15,16,19,25],"a",{"class":17,"href":18},"section-link","#游戏介绍",[20,21,24,12],"span",{"className":22},[23],"visually-hidden","章节",[20,26,29],{"ariaHidden":27,"tabIndex":28},"true",-1," §",[31,32,33,34,40,41,46],"p",{},"《混乱村庄》（Village of Chaos）是一个简短的文字放置游戏，由 ",[15,35,39],{"href":36,"rel":37},"https:\u002F\u002Fgithub.com\u002FTearnote",[38],"nofollow","Tearnote"," 使用原生 JavaScript 编写，最初为 ",[15,42,45],{"href":43,"rel":44},"https:\u002F\u002Fcodeinstitute.net",[38],"Code Institute"," 的第二次提交项目而制作。",[48,49,50,51],"h3",{"id":50,"class":13},"游戏目标",[15,52,54,57],{"class":17,"href":53},"#游戏目标",[20,55,24,50],{"className":56},[23],[20,58,29],{"ariaHidden":27,"tabIndex":28},[31,60,61],{},"游戏的目标是逐步建造村庄，管理村民的工作以最大化他们的潜力。玩家需要：",[63,64,65,69,72,75,78,81],"ul",{},[66,67,68],"li",{},"收集资源（木材、食物、石头）",[66,70,71],{},"邀请村民加入村庄",[66,73,74],{},"建造新建筑（码头、采石场、铁匠铺、学院）",[66,76,77],{},"分配村民到不同的工作岗位",[66,79,80],{},"升级建筑和技能",[66,82,83],{},"完成游戏目标",[48,85,86,87],{"id":86,"class":13},"游戏特色",[15,88,90,93],{"class":17,"href":89},"#游戏特色",[20,91,24,86],{"className":92},[23],[20,94,29],{"ariaHidden":27,"tabIndex":28},[63,96,97,104,110,116,122,128,134],{},[66,98,99,103],{},[100,101,102],"strong",{},"放置游戏机制","：游戏可以自动进行，玩家可以随时回来查看进度",[66,105,106,109],{},[100,107,108],{},"资源管理","：管理木材、食物、石头三种基础资源",[66,111,112,115],{},[100,113,114],{},"职业系统","：村民可以从事伐木工人、渔夫、矿工、铁匠、教授等职业",[66,117,118,121],{},[100,119,120],{},"建筑升级","：升级建筑可以提高生产效率和容纳更多村民",[66,123,124,127],{},[100,125,126],{},"混乱机制","：建筑升级会增加混乱值，影响生产效率",[66,129,130,133],{},[100,131,132],{},"教程系统","：游戏通过弹窗教程引导玩家了解各项功能",[66,135,136,139],{},[100,137,138],{},"存档系统","：支持自动保存和手动保存，每5分钟自动保存一次",[48,141,142,143],{"id":142,"class":13},"技术栈",[15,144,146,149],{"class":17,"href":145},"#技术栈",[20,147,24,142],{"className":148},[23],[20,150,29],{"ariaHidden":27,"tabIndex":28},[63,152,153,159,165,171,177],{},[66,154,155,158],{},[100,156,157],{},"纯 JavaScript","：不依赖任何框架，使用原生 JavaScript 实现",[66,160,161,164],{},[100,162,163],{},"HTML5","：使用语义化 HTML 标签",[66,166,167,170],{},[100,168,169],{},"CSS3","：使用现代 CSS 进行样式设计",[66,172,173,176],{},[100,174,175],{},"PWA 支持","：支持作为渐进式 Web 应用安装",[66,178,179,182],{},[100,180,181],{},"响应式设计","：适配桌面和移动设备",[10,184,185,186],{"id":185,"class":13},"游戏玩法",[15,187,189,192],{"class":17,"href":188},"#游戏玩法",[20,190,24,185],{"className":191},[23],[20,193,29],{"ariaHidden":27,"tabIndex":28},[48,195,196,197],{"id":196,"class":13},"基础操作",[15,198,200,203],{"class":17,"href":199},"#基础操作",[20,201,24,196],{"className":202},[23],[20,204,29],{"ariaHidden":27,"tabIndex":28},[206,207,208,214,220,226,232],"ol",{},[66,209,210,213],{},[100,211,212],{},"收集资源","：点击\"采集木材\"和\"采集食物\"按钮手动收集资源",[66,215,216,219],{},[100,217,218],{},"邀请村民","：使用食物邀请村民加入村庄",[66,221,222,225],{},[100,223,224],{},"分配工作","：在\"分配\"标签页中分配村民到不同的工作岗位",[66,227,228,231],{},[100,229,230],{},"升级建筑","：在\"制造\"标签页中使用资源升级建筑",[66,233,234,237],{},[100,235,236],{},"研究科技","：在\"研究\"标签页中解锁高级功能",[48,239,114,240],{"id":114,"class":13},[15,241,243,246],{"class":17,"href":242},"#职业系统",[20,244,24,114],{"className":245},[23],[20,247,29],{"ariaHidden":27,"tabIndex":28},[31,249,250],{},"每个建筑都有三种角色：",[63,252,253,259,265],{},[66,254,255,258],{},[100,256,257],{},"村民","：基础工人，产生基础资源",[66,260,261,264],{},[100,262,263],{},"导师","：提高村民的工作效率",[66,266,267,270],{},[100,268,269],{},"经理","：提高导师的效率",[48,272,126,273],{"id":126,"class":13},[15,274,276,279],{"class":17,"href":275},"#混乱机制",[20,277,24,126],{"className":278},[23],[20,280,29],{"ariaHidden":27,"tabIndex":28},[31,282,283],{},"建筑升级会增加混乱值，混乱值越高，生产效率越低。需要平衡建筑等级和混乱值。",[48,285,50,287],{"id":286,"class":13},"游戏目标-1",[15,288,290,293],{"class":17,"href":289},"#游戏目标-1",[20,291,24,50],{"className":292},[23],[20,294,29],{"ariaHidden":27,"tabIndex":28},[31,296,297],{},"摧毁巨石，达到游戏胜利条件。",[48,299,300,301],{"id":300,"class":13},"调试模式",[15,302,304,307],{"class":17,"href":303},"#调试模式",[20,305,24,300],{"className":306},[23],[20,308,29],{"ariaHidden":27,"tabIndex":28},[31,310,311],{},"在浏览器控制台中执行以下代码可以快速获得资源：",[313,314,319],"pre",{"className":315,"code":316,"language":317,"meta":318,"style":318},"language-javascript shiki shiki-themes dracula","game.cheat();\n","javascript","",[320,321,322],"code",{"__ignoreMap":318},[20,323,326,330,334],{"class":324,"line":325},"line",1,[20,327,329],{"class":328},"sCdxs","game.",[20,331,333],{"class":332},"sAOxA","cheat",[20,335,336],{"class":328},"();\n",[10,338,339,340],{"id":339,"class":13},"本地化实现",[15,341,343,346],{"class":17,"href":342},"#本地化实现",[20,344,24,339],{"className":345},[23],[20,347,29],{"ariaHidden":27,"tabIndex":28},[48,349,350,351],{"id":350,"class":13},"支持的语言",[15,352,354,357],{"class":17,"href":353},"#支持的语言",[20,355,24,350],{"className":356},[23],[20,358,29],{"ariaHidden":27,"tabIndex":28},[63,360,361,367,373],{},[66,362,363,366],{},[100,364,365],{},"英语 (en-US)","：原始语言",[66,368,369,372],{},[100,370,371],{},"简体中文 (zh-CN)","：本地化版本",[66,374,375,372],{},[100,376,377],{},"繁体中文 (zh-TW)",[48,379,380,381],{"id":380,"class":13},"本地化架构",[15,382,384,387],{"class":17,"href":383},"#本地化架构",[20,385,24,380],{"className":386},[23],[20,388,29],{"ariaHidden":27,"tabIndex":28},[31,390,391],{},"游戏使用自定义的 i18n（国际化）系统，基于以下文件结构：",[313,393,398],{"className":394,"code":396,"language":397},[395],"language-text","assets\u002Fjs\u002Fi18n\u002F\n├── en_us.js      # 英语翻译\n├── zh_cn.js      # 简体中文翻译\n├── zh_hant.js    # 繁体中文翻译\n└── main.js       # i18n 核心逻辑\n","text",[320,399,396],{"__ignoreMap":318},[48,401,402,403],{"id":402,"class":13},"翻译数据结构",[15,404,406,409],{"class":17,"href":405},"#翻译数据结构",[20,407,24,402],{"className":408},[23],[20,410,29],{"ariaHidden":27,"tabIndex":28},[31,412,413],{},"每种语言的翻译文件导出一个包含所有翻译键值对的对象：",[313,415,417],{"className":315,"code":416,"language":317,"meta":318,"style":318},"\u002F\u002F assets\u002Fjs\u002Fi18n\u002Fzh_cn.js\nconst zh_cn = {\n    \"meta.language\": \"zh-CN\",\n    \"meta.name\": \"简体中文\",\n    \"text.title\": \"Village of Chaos\",\n    \u002F\u002F ... 更多翻译\n}\n",[320,418,419,425,441,469,490,510,516],{"__ignoreMap":318},[20,420,421],{"class":324,"line":325},[20,422,424],{"class":423},"shSDL","\u002F\u002F assets\u002Fjs\u002Fi18n\u002Fzh_cn.js\n",[20,426,428,432,435,438],{"class":324,"line":427},2,[20,429,431],{"class":430},"s0Tla","const",[20,433,434],{"class":328}," zh_cn ",[20,436,437],{"class":430},"=",[20,439,440],{"class":328}," {\n",[20,442,444,448,452,455,458,461,464,466],{"class":324,"line":443},3,[20,445,447],{"class":446},"seVfx","    \"",[20,449,451],{"class":450},"s-mGx","meta.language",[20,453,454],{"class":446},"\"",[20,456,457],{"class":430},":",[20,459,460],{"class":446}," \"",[20,462,463],{"class":450},"zh-CN",[20,465,454],{"class":446},[20,467,468],{"class":328},",\n",[20,470,472,474,477,479,481,483,486,488],{"class":324,"line":471},4,[20,473,447],{"class":446},[20,475,476],{"class":450},"meta.name",[20,478,454],{"class":446},[20,480,457],{"class":430},[20,482,460],{"class":446},[20,484,485],{"class":450},"简体中文",[20,487,454],{"class":446},[20,489,468],{"class":328},[20,491,493,495,498,500,502,504,506,508],{"class":324,"line":492},5,[20,494,447],{"class":446},[20,496,497],{"class":450},"text.title",[20,499,454],{"class":446},[20,501,457],{"class":430},[20,503,460],{"class":446},[20,505,5],{"class":450},[20,507,454],{"class":446},[20,509,468],{"class":328},[20,511,513],{"class":324,"line":512},6,[20,514,515],{"class":423},"    \u002F\u002F ... 更多翻译\n",[20,517,519],{"class":324,"line":518},7,[20,520,521],{"class":328},"}\n",[48,523,525,526,529],{"id":524,"class":13},"自定义元素-t-i18n","自定义元素 ",[320,527,528],{},"\u003Ct-i18n>",[15,530,532,536],{"class":17,"href":531},"#自定义元素-t-i18n",[20,533,24,535],{"className":534},[23],"自定义元素 \u003Ct-i18n>",[20,537,29],{"ariaHidden":27,"tabIndex":28},[31,539,540,541,543],{},"HTML 中使用自定义元素 ",[320,542,528],{}," 标记需要翻译的文本：",[313,545,549],{"className":546,"code":547,"language":548,"meta":318,"style":318},"language-html shiki shiki-themes dracula","\u003Ch1>\u003Ct-i18n k=\"text.title\">\u003C\u002Ft-i18n>\u003C\u002Fh1>\n","html",[320,550,551],{"__ignoreMap":318},[20,552,553,556,559,562,565,569,571,573,575,577,580,582,584,586],{"class":324,"line":325},[20,554,555],{"class":328},"\u003C",[20,557,558],{"class":430},"h1",[20,560,561],{"class":328},">\u003C",[20,563,564],{"class":430},"t-i18n",[20,566,568],{"class":567},"sY_PY"," k",[20,570,437],{"class":430},[20,572,454],{"class":446},[20,574,497],{"class":450},[20,576,454],{"class":446},[20,578,579],{"class":328},">\u003C\u002F",[20,581,564],{"class":430},[20,583,579],{"class":328},[20,585,558],{"class":430},[20,587,588],{"class":328},">\n",[48,590,591,592],{"id":591,"class":13},"本地化核心逻辑",[15,593,595,598],{"class":17,"href":594},"#本地化核心逻辑",[20,596,24,591],{"className":597},[23],[20,599,29],{"ariaHidden":27,"tabIndex":28},[31,601,602,605],{},[320,603,604],{},"main.js"," 文件实现了以下功能：",[63,607,608,614,623],{},[66,609,610,613],{},[100,611,612],{},"语言切换","：支持动态切换语言",[66,615,616,619,620,622],{},[100,617,618],{},"文本替换","：自动查找并替换 ",[320,621,528],{}," 元素中的文本",[66,624,625,628],{},[100,626,627],{},"回退机制","：当翻译缺失时显示原始键名",[48,630,631,632],{"id":631,"class":13},"语言选择界面",[15,633,635,638],{"class":17,"href":634},"#语言选择界面",[20,636,24,631],{"className":637},[23],[20,639,29],{"ariaHidden":27,"tabIndex":28},[31,641,642],{},"游戏提供了语言选择界面，用户可以：",[63,644,645,648],{},[66,646,647],{},"查看所有可用语言",[66,649,650],{},"选择首选语言",[48,652,653,654],{"id":653,"class":13},"添加新语言",[15,655,657,660],{"class":17,"href":656},"#添加新语言",[20,658,24,653],{"className":659},[23],[20,661,29],{"ariaHidden":27,"tabIndex":28},[206,663,664,671,674],{},[66,665,666,667,670],{},"在 ",[320,668,669],{},"assets\u002Fjs\u002Fi18n\u002F"," 目录下创建新的语言文件",[66,672,673],{},"复制现有语言文件的结构并翻译所有文本",[66,675,666,676,678],{},[320,677,604],{}," 中注册新语言",[10,680,681,682],{"id":681,"class":13},"开发和构建",[15,683,685,688],{"class":17,"href":684},"#开发和构建",[20,686,24,681],{"className":687},[23],[20,689,29],{"ariaHidden":27,"tabIndex":28},[48,691,692,693],{"id":692,"class":13},"本地运行",[15,694,696,699],{"class":17,"href":695},"#本地运行",[20,697,24,692],{"className":698},[23],[20,700,29],{"ariaHidden":27,"tabIndex":28},[206,702,703,733,780],{},[66,704,705,706],{},"克隆仓库：",[313,707,711],{"className":708,"code":709,"language":710,"meta":318,"style":318},"language-bash shiki shiki-themes dracula","git clone https:\u002F\u002Fgithub.com\u002FIsBenben\u002Fvillage-of-chaos.git\ncd village-of-chaos\n","bash",[320,712,713,724],{"__ignoreMap":318},[20,714,715,718,721],{"class":324,"line":325},[20,716,717],{"class":332},"git",[20,719,720],{"class":450}," clone",[20,722,723],{"class":450}," https:\u002F\u002Fgithub.com\u002FIsBenben\u002Fvillage-of-chaos.git\n",[20,725,726,730],{"class":324,"line":427},[20,727,729],{"class":728},"sLL85","cd",[20,731,732],{"class":450}," village-of-chaos\n",[66,734,735,736],{},"使用本地服务器运行（需要 HTTP 服务器）：",[313,737,739],{"className":708,"code":738,"language":710,"meta":318,"style":318},"# 使用 Python\npython -m http.server 8000\n\n# 使用 Node.js\nnpx http-server\n",[320,740,741,746,761,767,772],{"__ignoreMap":318},[20,742,743],{"class":324,"line":325},[20,744,745],{"class":423},"# 使用 Python\n",[20,747,748,751,755,758],{"class":324,"line":427},[20,749,750],{"class":332},"python",[20,752,754],{"class":753},"sIQBb"," -m",[20,756,757],{"class":450}," http.server",[20,759,760],{"class":753}," 8000\n",[20,762,763],{"class":324,"line":443},[20,764,766],{"emptyLinePlaceholder":765},true,"\n",[20,768,769],{"class":324,"line":471},[20,770,771],{"class":423},"# 使用 Node.js\n",[20,773,774,777],{"class":324,"line":492},[20,775,776],{"class":332},"npx",[20,778,779],{"class":450}," http-server\n",[66,781,782,783],{},"在浏览器中访问 ",[320,784,785],{},"http:\u002F\u002Flocalhost:8000",[10,787,788,789],{"id":788,"class":13},"截图",[15,790,792,795],{"class":17,"href":791},"#截图",[20,793,24,788],{"className":794},[23],[20,796,29],{"ariaHidden":27,"tabIndex":28},[31,798,799],{},[800,801],"img",{"alt":802,"src":803},"Village of Chaos文字放置游戏移动端竖屏适配界面","\u002Fraw\u002Fvillage-of-chaos-mobile.png",[31,805,806],{},[800,807],{"alt":808,"src":809},"Village of Chaos文字放置游戏教程之一","\u002Fraw\u002Fvillage-of-chaos-tutorial.png",[10,811,813,814],{"id":812,"class":13},"license","License",[15,815,817,820],{"class":17,"href":816},"#license",[20,818,24,813],{"className":819},[23],[20,821,29],{"ariaHidden":27,"tabIndex":28},[31,823,824,825,830],{},"本项目基于 ",[15,826,829],{"href":827,"rel":828},"https:\u002F\u002Fgithub.com\u002FTearnote\u002Fvillage-of-chaos\u002Fblob\u002Fmain\u002FLICENSE",[38],"MIT License"," 开源。",[832,833,834],"style",{},"html pre.shiki code .sCdxs, html code.shiki .sCdxs{--shiki-default:#F8F8F2}html pre.shiki code .sAOxA, html code.shiki .sAOxA{--shiki-default:#50FA7B}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .shSDL, html code.shiki .shSDL{--shiki-default:#6272A4}html pre.shiki code .s0Tla, html code.shiki .s0Tla{--shiki-default:#FF79C6}html pre.shiki code .seVfx, html code.shiki .seVfx{--shiki-default:#E9F284}html pre.shiki code .s-mGx, html code.shiki .s-mGx{--shiki-default:#F1FA8C}html pre.shiki code .sLL85, html code.shiki .sLL85{--shiki-default:#8BE9FD}html pre.shiki code .sIQBb, html code.shiki .sIQBb{--shiki-default:#BD93F9}html pre.shiki code .sY_PY, html code.shiki .sY_PY{--shiki-default:#50FA7B;--shiki-default-font-style:italic}",{"title":318,"searchDepth":427,"depth":427,"links":836},[837,846,858,875,880,882],{"id":12,"depth":427,"text":838,"children":839},"游戏介绍章节游戏介绍 §",[840,842,844],{"id":50,"depth":443,"text":841},"游戏目标章节游戏目标 §",{"id":86,"depth":443,"text":843},"游戏特色章节游戏特色 §",{"id":142,"depth":443,"text":845},"技术栈章节技术栈 §",{"id":185,"depth":427,"text":847,"children":848},"游戏玩法章节游戏玩法 §",[849,851,853,855,856],{"id":196,"depth":443,"text":850},"基础操作章节基础操作 §",{"id":114,"depth":443,"text":852},"职业系统章节职业系统 §",{"id":126,"depth":443,"text":854},"混乱机制章节混乱机制 §",{"id":286,"depth":443,"text":841},{"id":300,"depth":443,"text":857},"调试模式章节调试模式 §",{"id":339,"depth":427,"text":859,"children":860},"本地化实现章节本地化实现 §",[861,863,865,867,869,871,873],{"id":350,"depth":443,"text":862},"支持的语言章节支持的语言 §",{"id":380,"depth":443,"text":864},"本地化架构章节本地化架构 §",{"id":402,"depth":443,"text":866},"翻译数据结构章节翻译数据结构 §",{"id":524,"depth":443,"text":868},"自定义元素 \u003Ct-i18n>章节自定义元素 \u003Ct-i18n> §",{"id":591,"depth":443,"text":870},"本地化核心逻辑章节本地化核心逻辑 §",{"id":631,"depth":443,"text":872},"语言选择界面章节语言选择界面 §",{"id":653,"depth":443,"text":874},"添加新语言章节添加新语言 §",{"id":681,"depth":427,"text":876,"children":877},"开发和构建章节开发和构建 §",[878],{"id":692,"depth":443,"text":879},"本地运行章节本地运行 §",{"id":788,"depth":427,"text":881},"截图章节截图 §",{"id":812,"depth":427,"text":883},"License章节License §","2026\u002F3\u002F6",[886,887,888],"简短文字放置游戏，原生JS编写，轻松挂机发展村庄。","支持多语言切换，覆盖中文简繁体。","完全免费在线游玩，无需下载即开即玩。",[],"md",false,[893,896,899,902],[894,895],"https:\u002F\u002Fgithub.com\u002FIsBenben\u002Fvillage-of-chaos","关联仓库（本地化版）",[897,898],"https:\u002F\u002Fgithub.com\u002FTearnote\u002Fvillage-of-chaos","关联仓库（英文原版）",[900,901],"https:\u002F\u002Fisbenben.github.io\u002Fvillage-of-chaos\u002F","体验：本地化版",[903,904],"https:\u002F\u002Ftearnote.github.io\u002Fvillage-of-chaos\u002F","体验：英文原版",{},"\u002Farticles\u002Fvillage-of-chaos",{"title":5,"description":908},[886,887,888],"village-of-chaos","articles\u002Fvillage-of-chaos",[912,915,918],[913,914],"lang","web",[916,917],"inspiration","localization",[919,920],"content","entertainment","EG7orPz8nMt6RFadzDloTasyV-FeK-GLSxK2n4pFVl0",1778919286165]