表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
16/31

3章3話:スパゲッティ


▌// [LOG] 2018-08-27 13:55 JST


 (てる)がゲームを作り終えてWebサーバーに上げた。

 1日で作るゲームだったはずが、数日ガチで作り込んだものだった。

 やり出したら止まらなくなったそうだ。

 今は3年の手伝いだが部のパソコンに向かっている。それもイヤフォンをしながら。

 照も音楽聴くんか~と僕はちょっと嬉しくなって、遅い昼メシを食べながら訊ねたら、聴かせてくれた。アニソンだった。

 意外すぎて笑った。いや、そうでもねえのか? ゲームやるし?


 外部指導者が来て、照が作ったゲームをみんなでテストした。

 試用に関する説明は各自手元のパソコン画面で見た。


 それによると「わらしべ長者」をベースにした交換ゲームだった。

 ただし湯島が最初に見た「一本道」フローが変更して、「誰に」「何を渡すか」で結果が変わる仕組みだった。


 構造はシンプルに3つ。

 1つめ、Webインターフェースとの接続部分

 2つめ、ゲームロジック

 3つめ、データ


 ゲームの中身はJSONに書いてあり、NPCが何を欲しがっていて、何をくれるかはここで管理するとある。

「わざわざ書く意味がわかるかな?」と指導者に聞かれて、僕はドキッとした。

「えっと、ここを弄るだけでアイテムを変更したり増やしたりできる?」

「そういうこと。コードを書き換えなくても内容を増やせる構造だよ」

 交渉の仕組みは、プレイヤーが提示したアイテムの組み合わせが、NPCの条件と一致したら成立する。「状況を見て交換するゲーム」にしたことで、面白みある。


✦フローチャート

  開始

  ↓

  アイテム取得

  ↓

  交渉・交換ループ

  ↓

  条件分岐(行動ログ蓄積)

  ↓

  ゴール到達 or 終了条件

  ↓

  評価計算

   ↓

  エンディング決定

  ↓

  ランキング反映


 エンディングは4つ。

 富豪エンド(最大資産)

 仲介者エンド(交換回数最多)

 人助けエンド(満足度最大)

 カオスエンド(意味不明ルート)


 部員たちでやった結果、僕の画面はこうなった。


 総価値:85

 交渉成功率:72%

 特殊ボーナス:+20(困っている人を3人助けた)


 ランキング:

 1位:YUSHIMA 110点

 2位:IORI 98点


 ランキングまで出せるのかよ。

 僕はポカンとした。超簡単ボットで四苦八苦している僕には絶句レベル。アイテム増やせるとかのレベルじゃねえ。部品全部作ったんかな。 

 やべえな、照。



▌// [LOG] 2018-08-27 22:55 JST


 僕は2学期の部のマニュアルを見て、突然、猛烈に進めないとまずい気がした。

 次に学ぶことにMeCab(めかぶ)導入があった。

 和布蕪(めかぶ)だ、また食べ物かよと思ったら、開発者の好物だった。

 MeCabは、日本語の文章を単語ごとに分解し、品詞や読みなどを解析する形態素解析エンジンだという。


 英語はスペースで区切られている。

 → “I love mekabu”


 日本語だとどこで区切るか不明だから処理できない。そこでMeCabを使って区切りを入れる。

 → 「私は和布蕪が好き」

 → 「私 は 和布 蕪 が 好き」


 解説サイトを見て、導入を始めたがぜんぜんうまく動かない。

 インストールして開いたらすぐ使えると思ったら、Pathが見つからないと言われる。 夕飯も食わんと一個ずつ確認して、やっと使えるようになったときには23時近かった。

 クーラーで冷えすぎた部屋が寒くて、一度切ったら今度は汗が噴き出した。

 夏は嫌いだ。


 最初に書いたPythonのファイルにMeCabの部分を反映させて、動作確認した。


 方言:えらい

 標準語: 辛い

 方言:はよせい

 標準語: は よせ い

 方言:えんかった

 標準語: え ん かっ た


 結果、「はよせい」「えんかった」の置き換えはなかった。

 そりゃそうだ。JSONには分かち書きされる前の「はよせい」「えんかった」がある。「は よせ い」の形で「早くして」に置き換えないとマッチしない。MeCabを使うことで、意味のあるフレーズが区切られてしまったのだ。


 一方で、「考えんかった」は「考えん かっ た」になって、MeCab導入前の「考いなかった」にはならなかった。

 だが結局のところ、「拓人はえらいね」は「拓 人 は 辛い ね」になるから、文脈を判断するために品詞処理が必要になる。

 

 時計を見て、〈ことつて〉のSOSは避けた。

 照は夜型で起きているのは知っているが、朝にしよう。

 いや。夏休みやし、朝は寝てるよな。

 うじうじしていたら、照からキタ!


照『今だんね?』


「へ?」

 だんねは、「大丈夫」の意味だが祖父母くらいしか使っていなかった。

 照のやつ、調べたんだな。

 僕は笑った。


拓『だんねぞ~』

照『何か困ってる? 今聞くよ? 起きてる前提』

拓『どうせ部活だけやし夜更かし中』

照『どこまで何を考えて何をやったか話してみて』

拓『今メカブ入れて、分かち書きってのやったんだけど、「拓人はえらいね」の変換問題は解消できんかった。その前は、ifで書いてて』

照『ここに貼って』


拓『

# 3. 変換

result = input_text


if "目に" in input_text:

result = result.replace("えらい", "辛い")

elif "しんどい" in input_text:

result = result.replace("えらい", "辛い")

else:

for dialect, standard in d.items():

result = result.replace(dialect, standard) 』


照『見た』


 僕が書いたのは、「目に」が含まれているとき、「えらい目にあった」→「えらい」を「辛い」に変換して終わる。

 elseには行かない。

 「目に」はないが「しんどい」が含まれているとき「えらいしんどい」→「えらい」を「辛い」に変換して終わるだ。

 でも照には見せられないほど、大量に書いたやつもある……。


拓『この方言面倒くせえんだ。「えらい出世した」のときは、「すげえ出世した」なんだよ。でもこのままだと「辛い出世した」になる。「えらい先生」はそのままでええのに、「辛い先生」になる』

照『「えらい=辛い」「えらい=すごい」「えらい=えらい」のパターン全部必要になってくるね』

拓『それな! 全部ifで書いたんだ。「いまえらい」「えらいしんどい」「えらいしんどかった」「えらいめにあった」て。でもキリねえし、まだ単語1個めやぞ』

照『スパゲッティ』

拓『あ、これがかの有名なスパゲッティ』

照『シンプルなコードで書けるけど、でも拓人、範囲を決めて。今の拓人に、文脈とれるボットは早い。先輩たちにテストしてもらう時間も必要。この件に関してオレ、テスター向かない(笑)』

拓『だんねだんね』

照『あ、そうやって使うんだ!』

拓『ほやぞ』

照『高難度方言』


 僕は照には言いそびれたが、「えらい先生」にも二つ意味がある。肩書きのある「偉い先生」か、褒め言葉の「すごい先生」。それこそ話してる中身による。区別つかねえんだ。


照『とりあえず、MeCab使うのやめようか』

拓『へい』


 そんなふうにして、僕は照におんぶされる状態で方言を標準語にするボットを作り、文化祭当日を迎えた。


 我がプログラミング部でもっとも好評を得たのは照のゲームだった。

 何が面白かったか聞くと、ほぼ同じ理由だった。


「ランキング!」

「今日の1位とか出るのすごくない?」


 ランキングを取るためだけにゲームに来た生徒たちもいた。

 みんな格付けが好きだな。朝見る番組の占い、地味に不愉快なんだよな。その日の魚座、僕の星座は微妙な5位だった。



▌// [LOG] 2019-02-21 15:15 JST


拓『照、僕と同じで早生まれだったな。水瓶座』

テル『うん。オレ水瓶座。16歳』


 その言葉に僕は硬直した。

 こいつ、照の未来を生きてやがる……

 照の命日は12月25日、15歳だった。永遠の15歳だ。


 僕は窓の外を見た。西棟の寮部屋が見える。こうしてあらためて見ると、向かいの部屋がよく見える。

 見える……。

 カーテンさえ開いていればだが、照の異変に気づくことができた生徒は、西棟にもいたんだ。

 生徒のいない寮は沈黙が横たわっていた。

 嵐の前の静けさのように、僕の胸の内も今は静まり返っていた。





※MeCabの分割結果は辞書・バージョンによって異なります。本文の出力例は実際と差異がある場合があります。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ