# -*- coding: utf-8 -*- import re, os rr = re.compile(r'[\u4e00-\u9fff]') D = '/app/working/workspaces/default/novels/round3/03-满级大佬回新手村' def hz(s): return len(rr.findall(s)) def ap(fn, txt): p = os.path.join(D, fn) with open(p, 'r', encoding='utf-8') as f: c = f.read() b = hz(c) with open(p, 'a', encoding='utf-8') as f: f.write('\n' + txt) a = hz(c + '\n' + txt) print(f' {fn}: {b} -> {a}') def wf(fn, txt): p = os.path.join(D, fn) with open(p, 'w', encoding='utf-8') as f: f.write(txt) a = hz(txt) print(f' NEW {fn}: {a}') print('=== 补第9章 ===') ch9_add = '''我打开好友列表看了一眼——温柔一刀的头像已经亮了——他刚出院回到了游戏里。我给他发了一条消息——身体好了?他回——好了——可以喝酒了。我笑了——今晚老位置?他——今晚老位置。 从那天晚上开始——我又可以坐在晨光村的酒馆里喝麦酒了。但跟以前不同的是——现在陪我喝酒的不止温柔一刀一个人——还有小法师。他55级了——已经可以一个人打精英怪了——但他还是喜欢跟着我们——坐在酒馆里——听我们聊天——偶尔插一句话——说一些让我们笑的话。 有一天晚上——温柔一刀问我——你还会再装萌新吗?我想了想——可能不会了——因为我找到我想找的东西了。他问我找到了什么——我说我找到了一个比全服第一更有意思的东西——那就是坐在这个位置——跟你们一起喝酒。 他笑了——那你以后不无聊了吗?我说——不无聊了——因为有你们在——这个游戏永远不会无聊。 那天晚上我们喝了三杯麦酒——聊到了凌晨两点。小法师下线去睡觉了——温柔一刀也下线了——我一个人坐在酒馆里——看着窗外晨光村的夜景。我知道明天还会上线——还会坐在这个位置——因为有人在那里等着我。 这就够了。''' ap('第009章 亲手打败自己的公会是什么感觉.md', ch9_add) print('\n=== 补第12章 ===') ch12_add = '''从医院回来的那天晚上——我登录了游戏——站在暗夜驻地的阳台上——看着夜空。温柔一刀还在医院里躺着——但他的游戏角色还存在于这个世界里。我打开了好友列表——看到他的头像灰着——旁边那行暂离还在。 我忽然很想做一件事——一件我从来没有做过的事——在游戏世界里留下一点什么——证明他来过——证明他的存在。 第二天——我找到了暗夜的管理层——我提出了一个建议——任命温柔一刀为暗夜公会的荣誉会员。这个建议让所有人都愣住了——因为温柔一刀只是一个50级的普通玩家——他没有参加过公会战——没有为暗夜做出过任何贡献——他甚至不是暗夜的成员。 剑指苍穹问我——为什么? 我说——因为他在我最低谷的时候——请我喝了一杯麦酒。 这个理由很烂——但剑指苍穹听完之后什么都没说。然后他说——同意。 全票通过。 温柔一刀——这个在晨光村酒馆里请一个装萌新的人喝过酒的人——成为了全服第一公会暗夜的第一位荣誉会员。他本人还不知道这件事——因为他还躺在医院的病床上。但等他回来的时候——他会收到一条通知——你已被任命为暗夜公会荣誉会员。 我想象着他看到那条通知时的表情——一定会愣住——然后笑出来。这就是我想给他的惊喜。''' ap('第012章 温柔一刀的秘密.md', ch12_add) print('\n=== 补第13章 ===') ch13_add = '''三天后——温柔一刀在医院里用手机登录了游戏。他的角色在晨光村复活的那一刻——系统弹出了一条通知——恭喜你——你已被暗夜公会任命为荣誉会员。 他愣了很久——然后他给我发了一条消息——夜神——这是你做的? 我——是。 他——为什么?我只是一个50级的普通玩家——我不配。 我——你配。因为在这个游戏里——不是只有装备和等级才算贡献。你给这个游戏带来的温暖——比任何装备都珍贵。 他沉默了很久——然后他给我发了一条消息——谢谢——真的谢谢。 我——不用谢——等你出院了——记得来晨光村喝酒——我已经帮你跟老板说好了——荣誉会员喝酒不要钱。 他——你骗老板的吧? 我——不骗——因为老板说你请他喝过麦酒——他记得你——他说你是个好人。 那天晚上——温柔一刀在全服频道上发了一条消息——他说他不认识这里的任何人——但他想感谢一个人——那个人在晨光村假装自己是一个不会玩游戏的新人——然后那个人成为了他在这个游戏里最好的朋友。 他发完那条消息之后——全服频道安静了几秒——然后有人回了一条消息——温柔一刀——记得快点回来——你的麦酒还欠着。 我回完那条消息之后——笑了——然后下线了。''' ap('第013章 暗夜的抉择.md', ch13_add) print('\n=== 补第14章 ===') ch14_add = '''温柔一刀正式回归游戏的那一天——暗夜公会举办了庆祝活动——这是暗夜有史以来第一次为一个50级的普通玩家举办庆祝活动。很多人不理解——但剑指苍穹说了一句话——如果一个人能够让我们的会长亲自去医院看他——那么这个人值得我们为他庆祝。 庆祝活动的最后一个环节——我在全服频道上发了一条消息——温柔一刀——欢迎回家。 全服频道开始刷屏——欢迎回家——温柔一刀——欢迎回家。 温柔一刀站在酒馆里——看着屏幕上不断滚动的欢迎消息——他沉默了很久——然后他发了一条消息——我玩这个游戏两年了——从来没有觉得——自己属于这个游戏。但现在——我觉得我属于了。谢谢你们——谢谢夜神——谢谢暗夜——谢谢每一个在这个频道里说欢迎回家的人。 我看着他发的那条消息——笑了。然后我关掉了全服频道——打开了私聊——给他发了一条消息——明天晚上——老位置? 他秒回——老时间——老位置——两杯麦酒。 我——不见不散。 他——不见不散。 那天晚上我下线之后——躺在床上——想了很久。一个月前我还在为游戏的无聊而烦恼——一个月后——我坐在晨光村的酒馆里——对面是一个我亲自去医院看过的朋友。这个变化——比任何装备升级都让我满足。 我曾经以为——游戏里最珍贵的是实力——是排名——是等级。现在我明白了——游戏里最珍贵的——是跟你一起玩的那个人。 那个人——不一定是最强的——不一定是最富的——甚至不一定是最好的——但他是那个——会在你装萌新的时候——请你去喝一杯麦酒的人。 这就够了。''' ap('第014章 王者归来.md', ch14_add) print('\n=== 创建第15章 ===') wf('第015章 终章——所有普通玩家的故事.md', '''# 第15章 终章——所有普通玩家的故事 一个月后——我的小号到了60级。小法师也到了55级——距离满级不远了。温柔一刀的等级也慢慢升到了50级——虽然不快——但他享受这个过程——就像他享受晨光村酒馆里那杯麦酒一样。 暗夜公会现在已经有了三个特别的成员——温柔一刀——荣誉会员——小法师——夜神的直系——还有一个我——坐在晨光村酒馆里喝酒的那个人。 是的——我现在还会去晨光村喝酒。不是用小号——是用大号——夜神——100级——全服第一——坐在晨光村酒馆靠窗的位置——跟一个50级的普通玩家一起喝虚拟的麦酒。 每当我们坐在那里的时候——总会有新手玩家跑过来——在门口探头探脑——那是夜神——夜神在晨光村?他来干什么?你没看到吗——他在喝酒——跟一个50级的人一起喝酒。 有些人想进来打招呼——但看到我们正在聊天——就悄悄地走了。有些人拍了个截图——发到全服频道上——夜神在晨光村喝酒——跟他一起的是那个荣誉会员。 我看到了那些消息——但我不在乎。现在的我——不是那个只在乎全服排名的人——是一个会坐在酒馆里——跟朋友喝虚拟麦酒的人。 有一天——小法师站在晨光村村口——看着村口的喷泉——问我——夜哥——你还会继续玩这个游戏吗? 我——会。 他——会玩多久? 我——玩到我不再需要在这个游戏里找答案的时候。 他——那你现在找到了吗? 我——找到了什么? 他——答案。 我想了想——看了看坐在酒馆里的温柔一刀——又看了看站在我身边的小法师——然后说——找到了。 他——什么答案? 我——答案是——这个游戏最珍贵的东西——不是装备——不是等级——不是全服第一——是那些——会在你装萌新的时候请你喝酒的人——是那些——会在你说不会采矿的时候教你采矿的人——是那些——在你暴露身份之后——依然说——你是我认识的那个你——的人。 小法师沉默了一会儿——然后说——夜哥——你变成哲学家了。 我笑了——不是哲学家——是活明白了。 那天晚上——温柔一刀在酒馆里对我说了一句话——你知道吗——我认识你的时候——你是一个装萌新的满级大佬。现在——你是一个会带新人——会来医院看我——会给我安排荣誉会员——会坐在酒馆里跟我喝麦酒的——满级大佬。你变了很多——但你没变的是——你始终是那个——会在自己觉得无聊的时候——想办法让自己重新觉得有意思的人。 我看着他——想了一会儿——然后说——你说得对——我一直都是这样的人。以前我用打副本和联赛来让自己觉得有意思——现在——我用坐在晨光村的酒馆里喝酒来让自己觉得有意思。形式变了——但本质没变。 他举起杯子——那敬你的本质——敬那个——无聊了就去新手村装萌新——无聊了就去带新人练级——无聊了就坐在酒馆里发呆的——夜神。 我举起杯子——敬晨光村——敬黄金野猪王——敬信使之刃——敬那些会在酒馆里等你回来喝酒的人。 我们碰了一杯。窗外——新手村的风景还是那么美丽——月桂树的叶子在风里摇晃——NPC在收摊——新玩家在街上跑来跑去。一切都在继续——就像这个游戏——永远不会停止一样。 而我——夜神——全服第一——现在坐在晨光村的酒馆里——对面是一个50级的普通玩家——身边是一群跟这个游戏有关的人。 这就是我找到的答案。 这个答案——不是最强的装备告诉我的——不是全服第一的排名告诉我的——是那个在酒馆里请我喝酒的人告诉我的。 (全书完)''') # 统计 print('\n=== 最终统计 ===') ok = 0 need = 0 total = 0 for f in sorted(os.listdir(D)): if not f.endswith('.md') or not f.startswith('第'): continue with open(os.path.join(D, f), 'r', encoding='utf-8') as fp: h = hz(fp.read()) if h >= 2000: flag = 'OK' ok += 1 else: flag = 'NEED' need += 1 print(f' {flag} {f}: {h}') total += h print(f'\n达标: {ok}/{ok+need}, 总汉字数: {total}')