ConsoleAdventure本体
Revision | c73e96dcab04081c9bcd9a9f97c09679246f32c2 (tree) |
---|---|
Time | 2020-08-22 18:46:15 |
Author | yumehiko <yumehik0@iclo...> |
Commiter | yumehiko |
テキスト025まで追加。メソッド:InlineOrder、WriteName、ReplaceNameを実装。インライン命令文を読む、名前を決める、名前を置き換える。
@@ -5,17 +5,41 @@ namespace Console_Adventure | ||
5 | 5 | { |
6 | 6 | class SelectAdventure |
7 | 7 | { |
8 | - static string txt = Resources.yume_1; | |
8 | + static string txt = Resources.yume_001; | |
9 | 9 | static string[] bodyText = txt.Split("\r\n"); |
10 | + static string[] nameList = {"メイラ"}; | |
11 | + static string[] forbiddenNameList = { "", "アルマ", "ジーシャ", "ガジ" }; | |
10 | 12 | static void Main() |
11 | 13 | { |
12 | - const string command = "[command]"; | |
13 | - const string jumpStart = "[jump start]"; | |
14 | - const string gameEnd = "[game end]"; | |
14 | + int runningGame = 1; | |
15 | + while(runningGame == 1) | |
16 | + { | |
17 | + runningGame = RunGame(); | |
18 | + } | |
19 | + | |
20 | + if(runningGame != 1) | |
21 | + { | |
22 | + Console.WriteLine("error code : {0}", runningGame); | |
23 | + } | |
24 | + Console.WriteLine("ゲームを終了します。何かキーを押してください……"); | |
25 | + Console.ReadKey(); | |
26 | + } | |
27 | + static int RunGame() | |
28 | + { | |
29 | + const string command = "[command]"; | |
30 | + const string jumpStart = "[jump start]"; | |
31 | + const string gameEnd = "[game end]"; | |
32 | + const string gotoPage = "[goto "; | |
33 | + const string inlineOrder = "@"; | |
15 | 34 | |
16 | 35 | int result = 0; |
17 | 36 | for (int i = 0; i < bodyText.Length; i++) |
18 | 37 | { |
38 | + if (bodyText[i].StartsWith(gotoPage)) return GoToPage(i); | |
39 | + else if (bodyText[i].StartsWith(inlineOrder)) result = InlineOrder(ref i); | |
40 | + | |
41 | + if (result == 1) continue; | |
42 | + | |
19 | 43 | result = bodyText[i] switch |
20 | 44 | { |
21 | 45 | command => Command(), |
@@ -23,48 +47,100 @@ namespace Console_Adventure | ||
23 | 47 | gameEnd => GameEnd(), |
24 | 48 | _ => TextRead(i), |
25 | 49 | }; |
26 | - if (result == 1) break; | |
50 | + if (result != 0) break; | |
27 | 51 | } |
28 | - if (result == 1) Main(); | |
29 | - else Console.ReadKey(); | |
52 | + return result; | |
30 | 53 | } |
31 | - static void LoadText(int number) | |
54 | + | |
55 | + static int LoadText(int number) | |
32 | 56 | { |
33 | 57 | /* |
34 | 58 | * テキストファイルを読み込み、本文配列をセットする。 |
59 | + * 失敗したらコード0。成功したら1を返す。 | |
35 | 60 | */ |
36 | 61 | System.Resources.ResourceManager resource = Properties.Resources.ResourceManager; |
37 | - txt = resource.GetString("yume_" + number); | |
62 | + string dNumber = string.Format("{0:000}", number); | |
63 | + txt = resource.GetString("yume_" + dNumber); | |
38 | 64 | if(txt == null) |
39 | 65 | { |
40 | - Console.WriteLine("ページ無し"); | |
41 | - Command(); | |
66 | + return 0; | |
42 | 67 | } |
43 | 68 | |
44 | 69 | bodyText = txt.Split("\r\n"); |
70 | + return 1; | |
45 | 71 | } |
46 | 72 | |
47 | 73 | static int TextRead(int i) |
48 | 74 | { |
49 | 75 | /* |
50 | 76 | * テキストを一行コンソールに描画する |
51 | - * ただし、[goto n]で始まる文字列なら、nページへ進む。 | |
52 | 77 | */ |
78 | + Console.WriteLine(bodyText[i]); | |
79 | + Console.ReadKey(); | |
80 | + return 0; | |
81 | + } | |
53 | 82 | |
54 | - if (bodyText[i].StartsWith("[goto ")) | |
55 | - { | |
56 | - int gotoNumLength = bodyText[i].IndexOf("]") - 6; | |
57 | - string gotostr = bodyText[i].Substring(6, gotoNumLength); | |
58 | - int gotoNumber = int.Parse(gotostr); | |
59 | - LoadText(gotoNumber); | |
60 | - return 1; | |
61 | - } | |
62 | - else | |
83 | + private static int GoToPage(int i) | |
84 | + { | |
85 | + // [goto n]命令文で指定されたnページへ飛ぶ。 | |
86 | + int gotoNumLength = bodyText[i].IndexOf("]") - 6; | |
87 | + string gotostr = bodyText[i].Substring(6, gotoNumLength); | |
88 | + int gotoNumber = int.Parse(gotostr); | |
89 | + if(LoadText(gotoNumber) == 0) return 20; //例外エラー20。飛び先が無い。 | |
90 | + Console.WriteLine(""); | |
91 | + return 1; | |
92 | + } | |
93 | + static int InlineOrder(ref int i) | |
94 | + { | |
95 | + /* | |
96 | + * @で始まる文字列の場合、@を削除し、行中の命令を探し、実行する。 | |
97 | + */ | |
98 | + bodyText[i] = bodyText[i].Remove(0, 1); | |
99 | + if (bodyText[i].Contains("[write name")) return WriteName(ref i); | |
100 | + else if (bodyText[i].Contains("[name")) return ReplaceName(ref i); | |
101 | + else return 30; //例外エラー30。@で始まるのに命令文が無い。 | |
102 | + } | |
103 | + | |
104 | + static int WriteName(ref int i) | |
105 | + { | |
106 | + /* | |
107 | + * nameListにプレイヤーが名前を登録する。 | |
108 | + */ | |
109 | + int oBPoint = bodyText[i].IndexOf("["); | |
110 | + int numLength = bodyText[i].IndexOf("]") - oBPoint; | |
111 | + int nameNum = int.Parse(bodyText[i].Substring(oBPoint +12, numLength -12)); | |
112 | + bodyText[i] = bodyText[i].Remove(oBPoint, numLength + 1); | |
113 | + string checkName = "******"; | |
114 | + bool checkNameTest = false; | |
115 | + while (!checkNameTest) | |
63 | 116 | { |
64 | - Console.WriteLine(bodyText[i]); | |
65 | - Console.ReadKey(); | |
66 | - return 0; | |
117 | + Console.Write(bodyText[i]); | |
118 | + checkName = Console.ReadLine(); | |
119 | + checkNameTest = true; | |
120 | + for (int j = 0; j < forbiddenNameList.Length; j++) | |
121 | + { | |
122 | + if (checkName == forbiddenNameList[j]) | |
123 | + { | |
124 | + checkNameTest = false; | |
125 | + break; | |
126 | + } | |
127 | + } | |
67 | 128 | } |
129 | + nameList[nameNum] = checkName; | |
130 | + return 1; | |
131 | + } | |
132 | + | |
133 | + static int ReplaceName(ref int i) | |
134 | + { | |
135 | + /* | |
136 | + * [name n]をnameListから読み出した実際の名前に置き換える。 | |
137 | + */ | |
138 | + int oBPoint = bodyText[i].IndexOf("["); | |
139 | + int numLength = bodyText[i].IndexOf("]") - oBPoint; | |
140 | + int nameNum = int.Parse(bodyText[i].Substring(oBPoint +5, numLength -5)); | |
141 | + bodyText[i] = bodyText[i].Remove(oBPoint, numLength +1); | |
142 | + bodyText[i] = bodyText[i].Insert(oBPoint, nameList[nameNum]); | |
143 | + return 0; | |
68 | 144 | } |
69 | 145 | |
70 | 146 | static int TextJump(ref int i) |
@@ -85,17 +161,27 @@ namespace Console_Adventure | ||
85 | 161 | /* |
86 | 162 | * コマンド(数値)を入力し、数値に応じたページへ飛ぶ。 |
87 | 163 | */ |
88 | - Console.Write("コマンド:"); | |
89 | - string inputCommand = Console.ReadLine(); | |
90 | - try | |
91 | - { | |
92 | - int inputNum = int.Parse(inputCommand); | |
93 | - LoadText(inputNum); | |
94 | - } | |
95 | - catch | |
164 | + bool completeCommand = false; | |
165 | + while (!completeCommand) | |
96 | 166 | { |
97 | - if (inputCommand == "quit") GameEnd(); | |
98 | - else Command(); | |
167 | + completeCommand = true; | |
168 | + Console.Write("コマンド:"); | |
169 | + string inputCommand = Console.ReadLine(); | |
170 | + try | |
171 | + { | |
172 | + int inputNum = int.Parse(inputCommand); | |
173 | + if (LoadText(inputNum) == 0) | |
174 | + { | |
175 | + Console.WriteLine("指定ページ無し"); | |
176 | + completeCommand = false; | |
177 | + } | |
178 | + else Console.WriteLine(""); | |
179 | + } | |
180 | + catch | |
181 | + { | |
182 | + if (inputCommand == "quit") GameEnd(); | |
183 | + else completeCommand = false; | |
184 | + } | |
99 | 185 | } |
100 | 186 | return 1; |
101 | 187 | } |
@@ -98,9 +98,9 @@ namespace Console_Adventure.Properties { | ||
98 | 98 | ///「サカナが全然いない……。なんだか建物の中にいるみたい。見て! あの岩、すっごくまんまる……」 |
99 | 99 | ///渡部の言う通り、正面にひときわ広い空間があり、まさにその中心に直径4メートルほどの、自然の岩とは思えないほど綺麗な球体が鎮座している。その球体にはぽっかり [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。 |
100 | 100 | /// </summary> |
101 | - internal static string yume_1 { | |
101 | + internal static string yume_001 { | |
102 | 102 | get { |
103 | - return ResourceManager.GetString("yume_1", resourceCulture); | |
103 | + return ResourceManager.GetString("yume_001", resourceCulture); | |
104 | 104 | } |
105 | 105 | } |
106 | 106 |
@@ -115,9 +115,9 @@ namespace Console_Adventure.Properties { | ||
115 | 115 | ///--END-- |
116 | 116 | ///[game end] に類似しているローカライズされた文字列を検索します。 |
117 | 117 | /// </summary> |
118 | - internal static string yume_2 { | |
118 | + internal static string yume_002 { | |
119 | 119 | get { |
120 | - return ResourceManager.GetString("yume_2", resourceCulture); | |
120 | + return ResourceManager.GetString("yume_002", resourceCulture); | |
121 | 121 | } |
122 | 122 | } |
123 | 123 |
@@ -131,10 +131,6 @@ namespace Console_Adventure.Properties { | ||
131 | 131 | /// |
132 | 132 | ///―――――――――――――――――――――――― |
133 | 133 | /// |
134 | - /// 砂漠の街 | |
135 | - /// | |
136 | - ///―――――――――――――――――――――――― | |
137 | - /// | |
138 | 134 | ///[jump end] |
139 | 135 | ///視界が徐々に元に戻る。 |
140 | 136 | ///何か妙だ。 |
@@ -142,11 +138,12 @@ namespace Console_Adventure.Properties { | ||
142 | 138 | ///周囲には小さく、粗末な石造りの家がいくつもある。ボロくなった服を着た、痩せっぽちの人々があなたのことを見ている。 |
143 | 139 | /// |
144 | 140 | ///「あなたったら! 大丈夫なの? 返事して!」 |
145 | - ///声のする方を見ると、そこには20代くらいの女性が、あなたの方へ走って向かってくるのが見えた。栗色の短い髪型で、透き通ったよう [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。 | |
141 | + ///声のする方を見ると、そこには20代くらいの女性が、あなたの方へ走って向かってくるのが見えた。栗色の短い髪型で、透き通ったような薄い色の目には、心配の色が見える。 | |
142 | + ///彼女はあなたの元へ駆け寄ると、あなたの頭を優しくさすり「ケガはしてないみ [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。 | |
146 | 143 | /// </summary> |
147 | - internal static string yume_3 { | |
144 | + internal static string yume_003 { | |
148 | 145 | get { |
149 | - return ResourceManager.GetString("yume_3", resourceCulture); | |
146 | + return ResourceManager.GetString("yume_003", resourceCulture); | |
150 | 147 | } |
151 | 148 | } |
152 | 149 |
@@ -157,28 +154,31 @@ namespace Console_Adventure.Properties { | ||
157 | 154 | ///そうして、あなたは彼女と共に「自宅」へと帰った。 |
158 | 155 | ///[goto 5] に類似しているローカライズされた文字列を検索します。 |
159 | 156 | /// </summary> |
160 | - internal static string yume_4 { | |
157 | + internal static string yume_004 { | |
161 | 158 | get { |
162 | - return ResourceManager.GetString("yume_4", resourceCulture); | |
159 | + return ResourceManager.GetString("yume_004", resourceCulture); | |
163 | 160 | } |
164 | 161 | } |
165 | 162 | |
166 | 163 | /// <summary> |
167 | - /// それから、大変なことになった。 | |
164 | + /// [jump start] | |
165 | + ///―――――――――――――――――――――――― | |
166 | + /// | |
167 | + ///[jump end] | |
168 | + ///それから、ちょっとした騒ぎになった。 | |
168 | 169 | ///あなたは本来の名前も、それまでの人生の記憶もすべて覚えている。しかし、それはかつてのあなたのことであって、この世界での「あなた」は全くの別人だった。 |
169 | 170 | ///そして、この別人、名は「ジーシャ」というらしいが、その記憶は全く持っていない。アルマのいう「自宅」も、今までの人生も、アルマが妻だということさえ、あなたには全く理解できなかった。 |
170 | 171 | ///思い出せること、現実の日本での暮らしをどれだけ伝えても、アルマにとっては全く異世界の、空想か妄想の産物にしかとらえられなかった。 |
171 | 172 | ///[goto 6] に類似しているローカライズされた文字列を検索します。 |
172 | 173 | /// </summary> |
173 | - internal static string yume_5 { | |
174 | + internal static string yume_005 { | |
174 | 175 | get { |
175 | - return ResourceManager.GetString("yume_5", resourceCulture); | |
176 | + return ResourceManager.GetString("yume_005", resourceCulture); | |
176 | 177 | } |
177 | 178 | } |
178 | 179 | |
179 | 180 | /// <summary> |
180 | 181 | /// [jump start] |
181 | - /// | |
182 | 182 | ///―――――――――――――――――――――――― |
183 | 183 | /// |
184 | 184 | ///[jump end] |
@@ -186,14 +186,215 @@ namespace Console_Adventure.Properties { | ||
186 | 186 | ///「まったく……新婚のクセに嫁さんのことも忘れちまったってのかよ」 |
187 | 187 | ///ガジは呆れたように言う。 |
188 | 188 | ///「しかしまぁ、健康状態に問題はないと思う。どこにもケガはないし。言葉は忘れなくてよかったな」 |
189 | - ///泣き腫らした顔のアルマが言った「あの、記憶が戻るのはいつになるの?」 | |
189 | + ///すっかり泣き腫らした顔のアルマが言った「あの、記憶が戻るのはいつになるの?」 | |
190 | 190 | ///ガジは答えて言う。「悪いけど、わからないよ。こんなの初めて見たんだし。ホンモノの医者が居れば、もう少し何かわかったかもしれないけどさ」 |
191 | 191 | ///ガジは冗談めかして続ける。 |
192 | - ///「まぁ、これはチャンスかもよ、奥さん。イチから教育できるかも。おいジーシャ、よーく聞けよ。この町ではな、旦那は奥さんのゴキゲンとメンドーをきっちり見るのが仕事なんだぜ。まずはこの家の家事のルールから覚えなおしだ。それと、この間貸したカネ、そろそろ返してくれよ。メシをおごってくれる約束も……」 [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。 | |
192 | + ///「まぁ、これはチャンスかもよ、奥さん。イチから教育するチャンス! おいジーシャ、よーく聞けよ。この村ではな、旦那は奥さんのゴキゲンとメンドーをきっちり見るのが仕事なんだぜ。まずはこの家の家事のルールから覚えなおしだ。それと、この間貸したカネ、そろそろ返してくれよ。メシをおごってくれる約束 [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。 | |
193 | + /// </summary> | |
194 | + internal static string yume_006 { | |
195 | + get { | |
196 | + return ResourceManager.GetString("yume_006", resourceCulture); | |
197 | + } | |
198 | + } | |
199 | + | |
200 | + /// <summary> | |
201 | + /// 「もちろんあるわ」アルマが答えた。「と言っても、簡単に行けるような距離にはないけれど。他の町の人たちとは、オンラインでつながっているわ。世界を元通りに戻すために、世界中の人が助け合っているの」 | |
202 | + ///「それが、俺とお前の重要な仕事のひとつでもある」ガジが誇らしげに答えた。 | |
203 | + /// | |
204 | + ///「食べ物は、どうやってまかなってるんだ?」 8へ。 | |
205 | + ///「今は西暦何年なんだ?」 9へ。 | |
206 | + ///[command] に類似しているローカライズされた文字列を検索します。 | |
207 | + /// </summary> | |
208 | + internal static string yume_007 { | |
209 | + get { | |
210 | + return ResourceManager.GetString("yume_007", resourceCulture); | |
211 | + } | |
212 | + } | |
213 | + | |
214 | + /// <summary> | |
215 | + /// 「それは、この村にある小さな研究室のおかげだ」ガジが少し誇らしげに答えた。 | |
216 | + ///アルマが悲しそうに話す。 | |
217 | + ///「ここは、元々は出稼ぎや内職なんかでほそぼそと暮らしていた小さな村だったの。ある日、あなたとガジさんが研究者として、この村にやってきた」 | |
218 | + ///「そう、俺たちはもともとこの村の住民じゃない。しかしあのウィルスが蔓延し始めてから、どこも封鎖されて、俺たちはここから出られなくなった。でも、俺たちは「新型の循環型水耕栽培機」の試験のためにここに来ていたんだ。それがあれば、水と食べ物もなんとかまかなえた。試験は大成功だ。報告する先もなくなっちまったが……」 | |
219 | + ///「でも、そのおかげで私たちは生き延びられたのよ」アルマが言う。 | |
220 | + /// | |
221 | + ///「今は西暦何年なんだ?」 9へ。 | |
222 | + ///[command] に類似しているローカライズされた文字列を検索します。 | |
223 | + /// </summary> | |
224 | + internal static string yume_008 { | |
225 | + get { | |
226 | + return ResourceManager.GetString("yume_008", resourceCulture); | |
227 | + } | |
228 | + } | |
229 | + | |
230 | + /// <summary> | |
231 | + /// 「セイレキ? 暦のことか。今は2053年だ」 | |
232 | + ///信じられないことだが、やはり「今」は未来なのだ。それも、たったの33年先の未来。こうしてはいられない。今すべきことは……。 | |
233 | + /// | |
234 | + ///なんとしても、元の時代の元の体へ戻らなければ。 10へ。 | |
235 | + ///早くこの時代に馴染まなければ。 20へ。 | |
236 | + ///[command] に類似しているローカライズされた文字列を検索します。 | |
237 | + /// </summary> | |
238 | + internal static string yume_009 { | |
239 | + get { | |
240 | + return ResourceManager.GetString("yume_009", resourceCulture); | |
241 | + } | |
242 | + } | |
243 | + | |
244 | + /// <summary> | |
245 | + /// こうしては居られない。 | |
246 | + ///彼らの話によれば、おそらく2030年代のどこかで、人類を滅ぼすようなウィルスが蔓延してしまうのだ。 | |
247 | + ///あなたはいてもたってもいられなくなり、席を立ちあがり、玄関から飛び出した。 | |
248 | + ///家の中から、あなたを制止する声が聞こえるが、それどころではない。 | |
249 | + /// | |
250 | + ///「どんなことでも試すんだ」まずは最初に気が付いたあの場所へ……。 11へ。 | |
251 | + ///「落ち着け。冷静になるんだ」まずはウィルスについて調べないと……。 12へ。 | |
252 | + ///[command] に類似しているローカライズされた文字列を検索します。 | |
253 | + /// </summary> | |
254 | + internal static string yume_010 { | |
255 | + get { | |
256 | + return ResourceManager.GetString("yume_010", resourceCulture); | |
257 | + } | |
258 | + } | |
259 | + | |
260 | + /// <summary> | |
261 | + /// 手がかりはたったひとつ。最初にこの体で目覚めたあの場所だ。 | |
262 | + ///あなたはがむしゃらに走って、元の広場に戻った。 | |
263 | + ///周囲には小さな家が建ち並び、あなたを心配そうに見つめる人が数人いる。 | |
264 | + ///その場で必死に念じたり、目を瞑って、また開いてみたりしたが、何も変わる気配はない。 | |
265 | + /// | |
266 | + ///「外だ。ここから出るなら外に出なければ」村の外へ走る。 30へ。 | |
267 | + ///「中だ。この村の中にヒントがあるはずだ」周囲を見渡す。 12へ。 | |
268 | + ///[command] に類似しているローカライズされた文字列を検索します。 | |
269 | + /// </summary> | |
270 | + internal static string yume_011 { | |
271 | + get { | |
272 | + return ResourceManager.GetString("yume_011", resourceCulture); | |
273 | + } | |
274 | + } | |
275 | + | |
276 | + /// <summary> | |
277 | + /// 周囲を見渡すと、小さな家から少し離れて、ひときわ大きく、現代的な作りの建物が見えた。 | |
278 | + ///あそこなら何かわかるかもしれない。 | |
279 | + ///[goto 13] に類似しているローカライズされた文字列を検索します。 | |
280 | + /// </summary> | |
281 | + internal static string yume_012 { | |
282 | + get { | |
283 | + return ResourceManager.GetString("yume_012", resourceCulture); | |
284 | + } | |
285 | + } | |
286 | + | |
287 | + /// <summary> | |
288 | + /// [jump start] | |
289 | + ///―――――――――――――――――――――――― | |
290 | + /// | |
291 | + ///[jump end] | |
292 | + ///その建物の中は電気が通っているらしく、空調や電灯らしきものが動いている。 | |
293 | + ///中は一つの大きな区画と、小さな二つの部屋、それとトイレらしきものだけがあった。 | |
294 | + ///大きな区画の中には、大型の水耕栽培機らしきものが稼働している。モニターには栽培機や農作物の状態が映っている。作物の名前はわからないが、大根や人参、麦らしきものが育っているようだ。 | |
295 | + ///残る二つの部屋は、資料室らしきものと、コンピュータがいくつか置かれた部屋だった。 | |
296 | + ///コンピュータは見たこともない機種だった。ディスプレイと、キーボードのようなものはあるものの、刻印されているキーはアルファベットではなかった。 | |
297 | + /// | |
298 | + ///(そういえば、俺は今、どこの言葉を喋っているんだ……?) | |
299 | + /// | |
300 | + ///机の上に置かれた資料にも、見たことのない文字が並んでいる。 | |
301 | + ///しかし、その文字の意味は理解できた。 | |
302 | + ///『TBof-15の根絶不可能性の証明』。 | |
303 | + ///『遺伝情報保管について』。 | |
304 | + ///『精神感応型生物防護装置』。 | |
305 | + /// | |
306 | + ///「やっぱり、ここにいたか」 | |
307 | + ///振り向くと、そこにはガジが立っていた。 [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。 | |
308 | + /// </summary> | |
309 | + internal static string yume_013 { | |
310 | + get { | |
311 | + return ResourceManager.GetString("yume_013", resourceCulture); | |
312 | + } | |
313 | + } | |
314 | + | |
315 | + /// <summary> | |
316 | + /// [jump start] | |
317 | + ///―――――――――――――――――――――――― | |
318 | + /// | |
319 | + ///[jump end] | |
320 | + ///9か月後。 | |
321 | + ///あなたは、ガジの研究の助手として働いている。 | |
322 | + ///この世界では、すべての端末の計算力がオンラインで集約され、単一の汎用人工知能「ファイニグン」が必要な計算を順番に解決している。 | |
323 | + ///研究者は、端末を使って「次に何を計算すべきか」を話し合い、オンラインだけではできない実施試験をしていた。それが研究のすべてだった。 | |
324 | + ///「ファイニグン」は強力な人工知能だが、「人間にとって何が有用か」を決める権限は持っていなかった。 | |
325 | + ///TBof-15の蔓延に対して、人類が初めに行った研究は「TBof-15の根絶」だったが、大量の試験と計算を重ねた結果、短期的な解法は無いことがわかったのだった。 | |
326 | + /// | |
327 | + ///ガジとの話を思い出す。 | |
328 | + ///「それから、人類はだいたい二つの派閥に分かれた。『それでもTBof-15を根絶して、元の世界を取り戻す派』と、『TBof-15と共存する派』だ。お前と俺は前者だ」 | |
329 | + ///あなたは少し考えて答えた。 | |
330 | + ///「でも、そんな方法あるのか? 世界中の端末で計算しても、方法が無いってわかったんだろ?」 | |
331 | + ///「短期的 [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。 | |
332 | + /// </summary> | |
333 | + internal static string yume_020 { | |
334 | + get { | |
335 | + return ResourceManager.GetString("yume_020", resourceCulture); | |
336 | + } | |
337 | + } | |
338 | + | |
339 | + /// <summary> | |
340 | + /// [goto 24] に類似しているローカライズされた文字列を検索します。 | |
341 | + /// </summary> | |
342 | + internal static string yume_021 { | |
343 | + get { | |
344 | + return ResourceManager.GetString("yume_021", resourceCulture); | |
345 | + } | |
346 | + } | |
347 | + | |
348 | + /// <summary> | |
349 | + /// [goto 24] に類似しているローカライズされた文字列を検索します。 | |
350 | + /// </summary> | |
351 | + internal static string yume_022 { | |
352 | + get { | |
353 | + return ResourceManager.GetString("yume_022", resourceCulture); | |
354 | + } | |
355 | + } | |
356 | + | |
357 | + /// <summary> | |
358 | + /// [goto 24] に類似しているローカライズされた文字列を検索します。 | |
359 | + /// </summary> | |
360 | + internal static string yume_023 { | |
361 | + get { | |
362 | + return ResourceManager.GetString("yume_023", resourceCulture); | |
363 | + } | |
364 | + } | |
365 | + | |
366 | + /// <summary> | |
367 | + /// 「実は……子どもができたみたいなの」 | |
368 | + ///歩みが止まる。 | |
369 | + ///「名前、決めなきゃね」 | |
370 | + ///[jump start] | |
371 | + /// | |
372 | + ///―――――――――――――――――――――――― | |
373 | + /// | |
374 | + ///[jump end] | |
375 | + ///それからアルマと、生まれてくる子どもが男なのか女なのか、どんな子になるのか、毎日話し合った。生まれてくる子が女の子だとわかり、ついにあと1か月以内に生まれるとなると、いよいよ名前を決めなければならなかった。 | |
376 | + ///[write name 0] | |
377 | + ///[n]その女の子は、ふたりによって「[child name]」と名づけられた。 | |
378 | + ///[goto 25] に類似しているローカライズされた文字列を検索します。 | |
379 | + /// </summary> | |
380 | + internal static string yume_024 { | |
381 | + get { | |
382 | + return ResourceManager.GetString("yume_024", resourceCulture); | |
383 | + } | |
384 | + } | |
385 | + | |
386 | + /// <summary> | |
387 | + /// [jump start] | |
388 | + ///―――――――――――――――――――――――― | |
389 | + /// | |
390 | + ///[jump end] | |
391 | + /// | |
392 | + ///[n]あなたとアルマの娘、[child name]は無事生まれ、今日で10歳の誕生日を迎えた。 | |
393 | + ///[command] に類似しているローカライズされた文字列を検索します。 | |
193 | 394 | /// </summary> |
194 | - internal static string yume_6 { | |
395 | + internal static string yume_025 { | |
195 | 396 | get { |
196 | - return ResourceManager.GetString("yume_6", resourceCulture); | |
397 | + return ResourceManager.GetString("yume_025", resourceCulture); | |
197 | 398 | } |
198 | 399 | } |
199 | 400 | } |
@@ -121,22 +121,61 @@ | ||
121 | 121 | <data name="saruto_samurai" type="System.Resources.ResXFileRef, System.Windows.Forms"> |
122 | 122 | <value>..\txt\saruto_samurai.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> |
123 | 123 | </data> |
124 | - <data name="yume_1" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
125 | - <value>..\txt\yume_1.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
124 | + <data name="yume_001" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
125 | + <value>..\txt\yume_001.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
126 | 126 | </data> |
127 | - <data name="yume_2" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
128 | - <value>..\txt\yume_2.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
127 | + <data name="yume_002" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
128 | + <value>..\txt\yume_002.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
129 | 129 | </data> |
130 | - <data name="yume_3" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
131 | - <value>..\txt\yume_3.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
130 | + <data name="yume_003" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
131 | + <value>..\txt\yume_003.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
132 | 132 | </data> |
133 | - <data name="yume_4" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
134 | - <value>..\txt\yume_4.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
133 | + <data name="yume_004" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
134 | + <value>..\txt\yume_004.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
135 | 135 | </data> |
136 | - <data name="yume_5" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
137 | - <value>..\txt\yume_5.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
136 | + <data name="yume_005" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
137 | + <value>..\txt\yume_005.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
138 | 138 | </data> |
139 | - <data name="yume_6" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
140 | - <value>..\txt\yume_6.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
139 | + <data name="yume_006" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
140 | + <value>..\txt\yume_006.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
141 | + </data> | |
142 | + <data name="yume_007" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
143 | + <value>..\txt\yume_007.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
144 | + </data> | |
145 | + <data name="yume_008" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
146 | + <value>..\txt\yume_008.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
147 | + </data> | |
148 | + <data name="yume_009" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
149 | + <value>..\txt\yume_009.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
150 | + </data> | |
151 | + <data name="yume_010" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
152 | + <value>..\txt\yume_010.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
153 | + </data> | |
154 | + <data name="yume_011" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
155 | + <value>..\txt\yume_011.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
156 | + </data> | |
157 | + <data name="yume_012" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
158 | + <value>..\txt\yume_012.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
159 | + </data> | |
160 | + <data name="yume_013" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
161 | + <value>..\txt\yume_013.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
162 | + </data> | |
163 | + <data name="yume_020" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
164 | + <value>..\txt\yume_020.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
165 | + </data> | |
166 | + <data name="yume_021" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
167 | + <value>..\txt\yume_021.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis</value> | |
168 | + </data> | |
169 | + <data name="yume_022" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
170 | + <value>..\txt\yume_022.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis</value> | |
171 | + </data> | |
172 | + <data name="yume_023" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
173 | + <value>..\txt\yume_023.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis</value> | |
174 | + </data> | |
175 | + <data name="yume_024" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
176 | + <value>..\txt\yume_024.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
177 | + </data> | |
178 | + <data name="yume_025" type="System.Resources.ResXFileRef, System.Windows.Forms"> | |
179 | + <value>..\txt\yume_025.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value> | |
141 | 180 | </data> |
142 | 181 | </root> |
\ No newline at end of file |
@@ -7,10 +7,6 @@ | ||
7 | 7 | |
8 | 8 | ―――――――――――――――――――――――― |
9 | 9 | |
10 | - 砂漠の街 | |
11 | - | |
12 | -―――――――――――――――――――――――― | |
13 | - | |
14 | 10 | [jump end] |
15 | 11 | 視界が徐々に元に戻る。 |
16 | 12 | 何か妙だ。 |
@@ -22,5 +18,5 @@ | ||
22 | 18 | 彼女はあなたの元へ駆け寄ると、あなたの頭を優しくさすり「ケガはしてないみたいね……。本当にびっくりしたわ。転んだかと思ったら、突然走り去って、返事もしないんだもの」 |
23 | 19 | |
24 | 20 | 「心配かけてごめんよ」とりあえず取り繕う。 4へ。 |
25 | -「……ここはどこ? あなたは?」 6へ。 | |
21 | +「……ここはどこ? あなたは?」 5へ。 | |
26 | 22 | [command] |
\ No newline at end of file |
@@ -1,9 +1,8 @@ | ||
1 | 1 | [jump start] |
2 | - | |
3 | 2 | ―――――――――――――――――――――――― |
4 | 3 | |
5 | 4 | [jump end] |
6 | -それから、大変なことになった。 | |
5 | +それから、ちょっとした騒ぎになった。 | |
7 | 6 | あなたは本来の名前も、それまでの人生の記憶もすべて覚えている。しかし、それはかつてのあなたのことであって、この世界での「あなた」は全くの別人だった。 |
8 | 7 | そして、この別人、名は「ジーシャ」というらしいが、その記憶は全く持っていない。アルマのいう「自宅」も、今までの人生も、アルマが妻だということさえ、あなたには全く理解できなかった。 |
9 | 8 | 思い出せること、現実の日本での暮らしをどれだけ伝えても、アルマにとっては全く異世界の、空想か妄想の産物にしかとらえられなかった。 |
@@ -1,5 +1,4 @@ | ||
1 | 1 | [jump start] |
2 | - | |
3 | 2 | ―――――――――――――――――――――――― |
4 | 3 | |
5 | 4 | [jump end] |
@@ -7,12 +6,12 @@ | ||
7 | 6 | 「まったく……新婚のクセに嫁さんのことも忘れちまったってのかよ」 |
8 | 7 | ガジは呆れたように言う。 |
9 | 8 | 「しかしまぁ、健康状態に問題はないと思う。どこにもケガはないし。言葉は忘れなくてよかったな」 |
10 | -泣き腫らした顔のアルマが言った「あの、記憶が戻るのはいつになるの?」 | |
9 | +すっかり泣き腫らした顔のアルマが言った「あの、記憶が戻るのはいつになるの?」 | |
11 | 10 | ガジは答えて言う。「悪いけど、わからないよ。こんなの初めて見たんだし。ホンモノの医者が居れば、もう少し何かわかったかもしれないけどさ」 |
12 | 11 | ガジは冗談めかして続ける。 |
13 | -「まぁ、これはチャンスかもよ、奥さん。イチから教育できるかも。おいジーシャ、よーく聞けよ。この町ではな、旦那は奥さんのゴキゲンとメンドーをきっちり見るのが仕事なんだぜ。まずはこの家の家事のルールから覚えなおしだ。それと、この間貸したカネ、そろそろ返してくれよ。メシをおごってくれる約束も……」 | |
12 | +「まぁ、これはチャンスかもよ、奥さん。イチから教育するチャンス! おいジーシャ、よーく聞けよ。この村ではな、旦那は奥さんのゴキゲンとメンドーをきっちり見るのが仕事なんだぜ。まずはこの家の家事のルールから覚えなおしだ。それと、この間貸したカネ、そろそろ返してくれよ。メシをおごってくれる約束も……」 | |
14 | 13 | アルマは泣き笑いながら、ガジをはたいた。 |
15 | -「冗談冗談……。真面目な話、みんなから、この町のことや、お前のことを少しずつ教えてもらえよ。そうするうちに、記憶も戻るかもしれないだろ。今日は休みだし、早速授業といこうか。大切なことから順番にな。まずはこのガジ様の武勇伝から……」 | |
14 | +「冗談冗談……。真面目な話、みんなから、この村のことや、お前のことを少しずつ教えてもらえよ。そうするうちに、記憶も戻るかもしれないだろ。今日は休みだし、早速授業といこうか。大切なことから順番にな。まずはこのガジ様の武勇伝から……」 | |
16 | 15 | [jump start] |
17 | 16 | |
18 | 17 | ―――――――――――――――――――――――― |
@@ -20,9 +19,8 @@ | ||
20 | 19 | [jump end] |
21 | 20 | この世界には元々、たくさんの人類が暮らしていた。しかし十数年前、「TBof-16」と呼ばれるウィルスの大規模な蔓延によって、ほとんどが死亡してしまった。 |
22 | 21 | TBof-16は極めて感染力の高いウィルスで、潜伏期間も長く、発症すると、感染者は例外なく死亡してしまう。TBof-16はほとんどの哺乳類に、種を超えて容易に感染できるが、ヒトだけが発症するのだった。 |
23 | -「この町は運がよかった。砂漠に囲われていたから、感染経路になる哺乳類も、人もほとんどいなかったんだ」 | |
22 | +「この村は運がよかった。砂漠に囲われていたから、感染経路になる哺乳類も、人もほとんどいなかったんだ」 | |
24 | 23 | |
25 | -「他にも生き残っている町はあるのか?」 7へ。 | |
26 | -「食べ物は、どうやって賄ってるんだ?」 8へ。 | |
24 | +「他にも生き残っている村や町はあるのか?」 7へ。 | |
27 | 25 | 「今は西暦何年なんだ?」 9へ。 |
28 | 26 | [command] |
\ No newline at end of file |
@@ -0,0 +1,6 @@ | ||
1 | +「もちろんあるわ」アルマが答えた。「と言っても、簡単に行けるような距離にはないけれど。他の町の人たちとは、オンラインでつながっているわ。世界を元通りに戻すために、世界中の人が助け合っているの」 | |
2 | +「それが、俺とお前の重要な仕事のひとつでもある」ガジが誇らしげに答えた。 | |
3 | + | |
4 | +「食べ物は、どうやってまかなってるんだ?」 8へ。 | |
5 | +「今は西暦何年なんだ?」 9へ。 | |
6 | +[command] | |
\ No newline at end of file |
@@ -0,0 +1,8 @@ | ||
1 | +「それは、この村にある小さな研究室のおかげだ」ガジが少し誇らしげに答えた。 | |
2 | +アルマが悲しそうに話す。 | |
3 | +「ここは、元々は出稼ぎや内職なんかでほそぼそと暮らしていた小さな村だったの。ある日、あなたとガジさんが研究者として、この村にやってきた」 | |
4 | +「そう、俺たちはもともとこの村の住民じゃない。しかしあのウィルスが蔓延し始めてから、どこも封鎖されて、俺たちはここから出られなくなった。でも、俺たちは「新型の循環型水耕栽培機」の試験のためにここに来ていたんだ。それがあれば、水と食べ物もなんとかまかなえた。試験は大成功だ。報告する先もなくなっちまったが……」 | |
5 | +「でも、そのおかげで私たちは生き延びられたのよ」アルマが言う。 | |
6 | + | |
7 | +「今は西暦何年なんだ?」 9へ。 | |
8 | +[command] | |
\ No newline at end of file |
@@ -0,0 +1,6 @@ | ||
1 | +「セイレキ? 暦のことか。今は2053年だ」 | |
2 | +信じられないことだが、やはり「今」は未来なのだ。それも、たったの33年先の未来。こうしてはいられない。今すべきことは……。 | |
3 | + | |
4 | +なんとしても、元の時代の元の体へ戻らなければ。 10へ。 | |
5 | +早くこの時代に馴染まなければ。 20へ。 | |
6 | +[command] | |
\ No newline at end of file |
@@ -0,0 +1,8 @@ | ||
1 | +こうしては居られない。 | |
2 | +彼らの話によれば、おそらく2030年代のどこかで、人類を滅ぼすようなウィルスが蔓延してしまうのだ。 | |
3 | +あなたはいてもたってもいられなくなり、席を立ちあがり、玄関から飛び出した。 | |
4 | +家の中から、あなたを制止する声が聞こえるが、それどころではない。 | |
5 | + | |
6 | +「どんなことでも試すんだ」まずは最初に気が付いたあの場所へ……。 11へ。 | |
7 | +「落ち着け。冷静になるんだ」まずはウィルスについて調べないと……。 12へ。 | |
8 | +[command] | |
\ No newline at end of file |
@@ -0,0 +1,8 @@ | ||
1 | +手がかりはたったひとつ。最初にこの体で目覚めたあの場所だ。 | |
2 | +あなたはがむしゃらに走って、元の広場に戻った。 | |
3 | +周囲には小さな家が建ち並び、あなたを心配そうに見つめる人が数人いる。 | |
4 | +その場で必死に念じたり、目を瞑って、また開いてみたりしたが、何も変わる気配はない。 | |
5 | + | |
6 | +「外だ。ここから出るなら外に出なければ」村の外へ走る。 30へ。 | |
7 | +「中だ。この村の中にヒントがあるはずだ」周囲を見渡す。 12へ。 | |
8 | +[command] | |
\ No newline at end of file |
@@ -0,0 +1,3 @@ | ||
1 | +周囲を見渡すと、小さな家から少し離れて、ひときわ大きく、現代的な作りの建物が見えた。 | |
2 | +あそこなら何かわかるかもしれない。 | |
3 | +[goto 13] | |
\ No newline at end of file |
@@ -0,0 +1,26 @@ | ||
1 | +[jump start] | |
2 | +―――――――――――――――――――――――― | |
3 | + | |
4 | +[jump end] | |
5 | +その建物の中は電気が通っているらしく、空調や電灯らしきものが動いている。 | |
6 | +中は一つの大きな区画と、小さな二つの部屋、それとトイレらしきものだけがあった。 | |
7 | +大きな区画の中には、大型の水耕栽培機らしきものが稼働している。モニターには栽培機や農作物の状態が映っている。作物の名前はわからないが、大根や人参、麦らしきものが育っているようだ。 | |
8 | +残る二つの部屋は、資料室らしきものと、コンピュータがいくつか置かれた部屋だった。 | |
9 | +コンピュータは見たこともない機種だった。ディスプレイと、キーボードのようなものはあるものの、刻印されているキーはアルファベットではなかった。 | |
10 | + | |
11 | +(そういえば、俺は今、どこの言葉を喋っているんだ……?) | |
12 | + | |
13 | +机の上に置かれた資料にも、見たことのない文字が並んでいる。 | |
14 | +しかし、その文字の意味は理解できた。 | |
15 | +『TBof-15の根絶不可能性の証明』。 | |
16 | +『遺伝情報保管について』。 | |
17 | +『精神感応型生物防護装置』。 | |
18 | + | |
19 | +「やっぱり、ここにいたか」 | |
20 | +振り向くと、そこにはガジが立っていた。 | |
21 | +「ここが俺たちの職場だ。栽培機を整備する傍ら、オンラインで世界中の研究者と一緒に、世界を救おうと話し合ってる」 | |
22 | +「なぁ、なんか焦っているみたいだが、少し落ち着けよ。大丈夫だ。そりゃまぁ世界はサイコーって状態じゃないが、まだやれることはある」 | |
23 | +ガジはあなたの目をまっすぐ見て言った。 | |
24 | +「改めて頼むよ。一緒にやれることをやろうぜ。セカイヲスクウ、ってやつ」 | |
25 | +そういって、照れ臭かったのか、ガジは一人で笑っていた。 | |
26 | +[goto 20] |
@@ -0,0 +1,31 @@ | ||
1 | +[jump start] | |
2 | +―――――――――――――――――――――――― | |
3 | + | |
4 | +[jump end] | |
5 | +9か月後。 | |
6 | +あなたは、ガジの研究の助手として働いている。 | |
7 | +この世界では、すべての端末の計算力がオンラインで集約され、単一の汎用人工知能「ファイニグン」が必要な計算を順番に解決している。 | |
8 | +実験も、ほとんどの場合はシミュレーションで充分だったが、「ファイニグン」は「人間にとって何が有用か」を決める権限は持っていなかった。 | |
9 | +だから、研究者の主な仕事は「次に何を計算すべきか」を話し合うことだった。 | |
10 | + | |
11 | +TBof-15の蔓延に対して、人類が初めに行った研究は「TBof-15の根絶」だったが、大量の試験と計算を重ねた結果、短期的な解法は無いことがわかったのだった。 | |
12 | + | |
13 | +ガジとの話を思い出す。 | |
14 | +「それから、人類はだいたい二つの派閥に分かれた。『それでもTBof-15を根絶して、元の世界を取り戻す派』と、『TBof-15と共存する派』だ。お前と俺は前者だ」 | |
15 | +あなたは少し考えて答えた。 | |
16 | +「でも、そんな方法あるのか? 世界中の端末で計算しても、方法が無いってわかったんだろ?」 | |
17 | +「短期的な方法は、な。治療薬とか、ワクチンや接触の制限だけではダメだ。そこで検討された手段が「媒介生物の根絶」だが、媒介生物の種類はあまりにも多い。ある試算では、人類以外の哺乳類にとって、TBof-15はすでに常在ウィルスと化しているらしい。そこで――」 | |
18 | + | |
19 | +「おいっ」後ろからガジの声がした。 | |
20 | +「ぼーっとしてんなぁ。もう今日は上がろうぜ」それから、ガジはあなたの肩を抱き、耳打ちしてきた。 | |
21 | +「奥さんが迎えに来てるぞ。何か悪いことしたんだろ?」素直に謝っとけよ、とつぶやいて、ガジはそそくさと資料室へ入っていった。ガジはそこで寝泊まりしているのだ。 | |
22 | + | |
23 | +研究所の外で、アルマがうつむいて待っていた。とりあえず自宅の方へ一緒に歩き始める。 | |
24 | +アルマが口を開いた。 | |
25 | +「あのね、実は……」 | |
26 | +続きを待ったが、なかなか話さない。 | |
27 | + | |
28 | +「どうしたの。言ってみなよ」言わないとわからないじゃないか。 21へ。 | |
29 | +アルマが話すまで待つ。 22へ。 | |
30 | +「実は……魔法少女だったとか?」いまいちな冗談だ。 23へ。 | |
31 | +[command] |
@@ -0,0 +1 @@ | ||
1 | +[goto 24] | |
\ No newline at end of file |
@@ -0,0 +1 @@ | ||
1 | +[goto 24] | |
\ No newline at end of file |
@@ -0,0 +1 @@ | ||
1 | +[goto 24] | |
\ No newline at end of file |
@@ -0,0 +1,13 @@ | ||
1 | +「実は……子どもができたみたいなの」 | |
2 | +歩みが止まる。 | |
3 | +「名前、決めなきゃね」 | |
4 | +[jump start] | |
5 | + | |
6 | +―――――――――――――――――――――――― | |
7 | + | |
8 | +[jump end] | |
9 | +それからアルマと、生まれてくる子どもが男なのか女なのか、どんな子になるのか、毎日話し合った。生まれてくる子が女の子だとわかり、ついにあと1か月以内に生まれるとなると、いよいよ名前を決めなければならなかった。 | |
10 | +「ねぇ、たくさん候補はあったけど、やっぱりあなたに決めてほしいの」 | |
11 | +@娘の名前は……:[write name 0] | |
12 | +@その女の子は、ふたりによって「[name 0]」と名づけられた。 | |
13 | +[goto 25] | |
\ No newline at end of file |
@@ -0,0 +1,7 @@ | ||
1 | +[jump start] | |
2 | +―――――――――――――――――――――――― | |
3 | + | |
4 | +[jump end] | |
5 | + | |
6 | +@あなたとアルマの娘、[name 0]は無事生まれ、今日で10歳の誕生日を迎えた。 | |
7 | +[command] | |
\ No newline at end of file |