本文へ移動

Chizu地図

SVGの地図を描き、地域を表示範囲に収め、番号付きの注記や地理クイズを英語と日本語の名前で作れます。

「地図」は、土地や場所を図で表したものです。 名前について(英語)

目次

やり方

シード付きの地理クイズを作る

地図・正解・候補・乱数をそろえて、問題を再現します。

標準の問題を作る

import WORLD from "@johnmorrisdotca/chizu/world";
import { findQuestion, seededRandom } from "@johnmorrisdotca/chizu";
const question=findQuestion(WORLD,"JP",seededRandom(42),{count:3});
console.log(question?.target,question?.choices,question?.answerIndex);
JP [ 'PH', 'KR', 'JP', 'KP' ] 2

countは誤答の数です。並べ替えた選択肢には正解も含まれます。answerIndexは、その選択肢の中の正解位置です。不明な地域や、名前のない地域として明示されたものはnullになります。候補が少なければ、選択肢も少なくなります。誤答の得点は、隣接する地域、同じグループ、近い位置などを考慮します。

入力を固定する

同じシードから乱数を作り直すと、同じ問題を再現できます。1つの乱数を続けて使うと、値は先へ進みます。シードだけでなく、データの版、候補の制限、正解の順序、誤答の数もそろえます。地物のクイズには、対応するキャンバス上で地物を地域として扱う地図を作ります。点数や解答の保存はアプリ側の役割です。

地物レイヤーとAPIは、デモと埋め込みでも使う同じ規則です。

ソースを見るGitHub で編集@johnmorrisdotca/chizu 1.5.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。