This game strengthens the player's geography through randomly generated multiple-choice questions.
For example -
-
Which of these does not border Belize?
- A. Mexico
- B. Guatemala
- C. Honduras
(The answer is Honduras.)
Try it here!
You can create custom quizzes by playing with the URL. Examples -
- Countries that end with "stan"
- Country quiz excluding bodies of water
- Country quiz with two answer choices
- Countries in Africa starting with map
- U.S. states without starting map
- U.S. states that don't contain the letters 'a' or 'e'
- Canada and neighboring U.S. states starting with map
- Canada provinces, U.S. states, and Mexico states
- Random quiz mode
- Mega-quiz covering everything
(Google discontinued Fusion Tables on December 3, 2019. As a result, I've had to gut borders-quiz from 30 quiz modes to 6.)
First install Git and Node.js, then open your command prompt and run -
git clone https://github.com/denialromeo/borders-quiz
cd borders-quiz
npm install
npm start
Now you can play the game at http://localhost:8000!
Adding a quiz is simple. Just add relevant entries to borders.json and quiz-modes.json. You can also play with some settings in game-settings.json (e.g. more precise maps, prepending "the").
However, you must observe these rules or the game will break -
- The top-level labels of borders.json and quiz-modes.json must match.
- All entries in borders.json must be unique. Add trailing underscores to avoid conflicts with entries in existing quiz modes.
- If a territory is on an island and borders every other territory on that island (e.g. Haiti and the Dominican Republic), you must manually provide alternative answer choices in question-settings.json.
(Running npm run validate-data
will alert you to game-breaking data.)
-
Territory names in more recent quiz modes aren't properly abbreviated on mobile.
-
There's sometimes a distracting black flash when the maps load on Firefox. This has me stumped.
The idea for this project was taken from this beautiful diagram in Algorithms by Dasgupta, Papadimitriou, and Vazirani.