Shikuty - 市区町村パズル
Game
Game
読み込み中...
Screenshots
About
Shikuty - 市区町村パズル
日本の市区町村や都道府県のピースを、ドラッグ&ドロップで地図の正しい位置に置いていくパズルゲームです。
主な機能
- 3つのモード: 全国(47都道府県)・地方(8地方から選んで市区町村を配置、95〜355ピース)・県内(都道府県を選んで配置、10〜194ピース)
- 3段階の難易度: かんたん・ふつう・むずかしいで、ピースが吸い付く距離・お手本の表示・境界線の太さが変わります。かんたんでは、ピースの初期配置が地理的な位置を参考にしたものになり、時間がたつと段階的にヒントが点滅します
- 選び方: 地図をクリックして選ぶか、名前の一覧から選ぶかを切り替えられます
- 遊びやすさ: 市区町村名とよみがなのツールチップ(政令市は「京都市北区」の形)、完成形のプレビュー、0.5〜8倍のズーム、PC・タブレット・スマホへの対応
仕組み
- 地図データ: 国土数値情報の行政区域(2024年版)を Python のスクリプトで整え、124,133 の図形を 1,905 の市区町村にまとめています。mapshaper で形を約88%軽くしてから TopoJSON に変換し、全市区町村で 720KB(gzip で 156KB)に収めています
- よみがな: 政令市20市・169区のよみがなを別に付けています
- API: Ruby on Rails 7.2(API モード)と PostGIS で、都道府県と市区町村のデータを返します
- 描画: D3.js と TopoJSON で地図を描き、ピースを置くと名前のラベルを境界の内側に収めて表示します
技術構成
- Vite・TypeScript・D3.js v7・topojson-client
- Ruby on Rails 7.2・PostGIS
- Python・mapshaper・Node.js(データの前処理)
- Docker・GHCR・nginx-proxy・Let's Encrypt