簡単な地名作成ツールを作る 検討編

Cities:Skylinesという超絶中毒性のあるまちづくりゲームにかれこれ4年以上ハマっているわけですが、町中に高速道路を引いたり、各地域に駅を設置したり、地下鉄を張り巡らせたり、モノレールを開業させたりとやっていくと路線の把握が非常にめんどくさくなります。

Cities:Skylines 個人的導入MOD&アセット&マップまとめ

また、街にリアリティをもたせエモさを求めたくなるわけです。そういう場合に便利なのが区域や駅、道路などに名称をつけられる機能です。

高速道路などは中心から数えて環状道路はC1、C2でその他はE1、E2・・・のようにナンバリングするだけでも良いのですが、せっかくならば地名にちなんだ名称もつけたいわけです。初蒼外環自動車道的な・・・

そこで地名を考えるわけですが、全国津々浦々に地名が存在しているわけで、かぶらずにそれっぽい地名を付けるのは至難の業です。(いっそのこと現実の地名を使えばいいじゃんという意見は仮想都市造り好きとしては認められません)

なので、プログラミングの力で地名作成をしようと思います。

Advertisement

とはいっても

とはいっても私はプログラミングつよつよマンではないので、難しいものは作れません。

私が脳内で組んだ内部処理のみのコードならばJavaで簡単に作れそうですが、今回何らかの方法でWeb上で動かせるようにしたいのです。JavaScriptで良いのでしょうか・・・

JavaはPaizaで簡単なBランク問題を必死にやってクリアできる程度の能力ですがJavaScriptはConsole.log()ぐらいしか知りません。まぁ今はインターネットの時代なので調べればやり方は大抵出てきます。最高。

想定実装方法

漢字一文字を配列に大量に入れ、指定文字数分配列内からランダムで出力することで地名を生成したいと思います。

はっきり言って地名っぽくないものも普通に出てきますがそれは再生成してもらうということで・・・

読み方も一緒に出力することも考えましたが、明らかに変な感じになるのは目に見えているので読み方は自分で良い感じのものをあててもらいます。

また、採用する漢字は某収集ゲームの日本艦からです。単純に名称が地名っぽくてかっこいい感じですし、これくしょんとか言っておきながら無課金だと100隻までしか集められないゲームで採用されている艦艇の名称はまとめられていて収集しやすいからです。

実装するために必要な機能

羅列した漢字から重複を除いた漢字を一文字ずつに分割しそのままコピペすれば配列として使えるように出力するやつ

一個一個手動で配列に入れても良いのですが、いちいち””でくくったり,を入れたり面倒ですし、重複チェックも手動だとかなり面倒なのでそこもプログラミングパワーに任せたいと思います。ちこっと調べた限りなさそうなので自分で作るしかありません。

ランダムに生成するやつ

一番重要なものです。そして存在しています。ですが日本艦由来の命名ツールは無いと思います。

上で作った配列を元にランダムで出力するやつです。

今後実装したいもの

Web上で動作できるようにする

とりあえずは一番今自分ができるであろうJavaで実装する予定なので、今後JavaScriptなりで書き直そうと思います。

更に便利な状態にして公開

“そのままコピペすれば配列として使えるように出力するやつ”だったら入力データの区切りを指定できるようにしたり、Javaだけではなく各種言語の配列として使えるようにしたり・・・

“ランダムに生成するやつ”ならば用意された羅列文字を利用して生成できるようにしたり、生成文字数を指定できるようにしたり、生成個数を指定できるようにしたり、テキストファイルではなくテキストエリアにそのまま入力で使えるようにしたり・・・

羅列した漢字から重複を除いた漢字を一文字ずつに分割しそのままコピペすれば配列として使えるように出力するやつ

簡単な地名作成ツールを作る 羅列した漢字から重複を除いた漢字を一文字ずつに分割しそのままコピペすれば配列として使えるように出力するやつ作成編

ランダムに生成するやつ

簡単な地名作成ツールを作る ランダムに生成するやつ作成編

JavaScript書き直し

簡単な地名作成ツールを作る JavaScriptで書き直し編

HTMLとCSS

簡単な地名作成ツールを作る HTMLとCSSを書く編

JavaScript修正

簡単な地名作成ツールを作る JavaScript修正編

由来指定地名ジェネレーター(β)Ver.1.0を公開

由来指定地名ジェネレーター(β)Ver.1.0を公開しました

由来指定地名ジェネレーター(β)Ver.2.1に更新

由来指定地名ジェネレーター(β)Ver.2.1に更新しました

Advertisement

ということで実装して記事にするたびにこの記事が更新されるはずです。私にやる気があれば・・・