Build Capital Quest for CoCo 3 with maps and emulator tests
This commit is contained in:
commit
9f7d6f4786
44 files changed
+6238
No files matched your search
@@ -0,0 +1,27 @@
|
||||
# State/capital verification
|
||||
|
||||
`states.tsv` is the canonical 50-row alphabetical dataset. Postal code, full
|
||||
state name, and capital travel together into `src/states.c`. Geography span
|
||||
index N is always TSV row N; no second alphabetical ordering is introduced.
|
||||
Alaska = Juneau; Hawaii = Honolulu. DC and territories are excluded.
|
||||
|
||||
Checked 2026-11-09 against both full lists:
|
||||
|
||||
- <https://www.50states.com/tools/thelist.htm>
|
||||
- <https://factsinstitute.com/countries/state-capitals/>
|
||||
|
||||
Minnesota is displayed as **Saint Paul**. Normalization also accepts **St. Paul**
|
||||
and **St Paul**, in any case and with repeated or surrounding whitespace.
|
||||
|
||||
`map-seeds.json` documents source SVG interior coordinates, replacing outside
|
||||
callout-label positions for small Northeast states. The conversion asserts
|
||||
that each seed is land and is in a distinct connected state region. Detached
|
||||
land is assigned to its nearest identified region, with explicit geographic rules for the
|
||||
Alaska/Hawaii inset islands and Michigan's Upper Peninsula. Geometry is a simplified educational
|
||||
map, not a survey or political boundary authority.
|
||||
|
||||
`map-manifest.json` records source region sizes, per-view dimensions, source
|
||||
crop bounds and per-state pixel coverage. `tests/check_assets.py` checks all
|
||||
50 identity slots, disjoint span coverage, bounds, and small-state/inset
|
||||
presence. `tools/prepare_assets.py` reproduces all generated C and previews
|
||||
using only Python's standard library; no SVG is parsed by the CoCo program.
|
||||
@@ -0,0 +1,249 @@
|
||||
{
|
||||
"national": {
|
||||
"size": [
|
||||
200,
|
||||
110
|
||||
],
|
||||
"source_box": [
|
||||
0,
|
||||
0,
|
||||
2000,
|
||||
1200
|
||||
],
|
||||
"pixels": {
|
||||
"AL": 155,
|
||||
"AK": 266,
|
||||
"AZ": 374,
|
||||
"AR": 160,
|
||||
"CA": 516,
|
||||
"CO": 327,
|
||||
"CT": 18,
|
||||
"DE": 7,
|
||||
"FL": 204,
|
||||
"GA": 180,
|
||||
"HI": 20,
|
||||
"ID": 251,
|
||||
"IL": 173,
|
||||
"IN": 105,
|
||||
"IA": 172,
|
||||
"KS": 256,
|
||||
"KY": 109,
|
||||
"LA": 150,
|
||||
"ME": 111,
|
||||
"MD": 22,
|
||||
"MA": 21,
|
||||
"MI": 177,
|
||||
"MN": 265,
|
||||
"MS": 143,
|
||||
"MO": 205,
|
||||
"MT": 473,
|
||||
"NE": 236,
|
||||
"NV": 350,
|
||||
"NH": 19,
|
||||
"NJ": 23,
|
||||
"NM": 395,
|
||||
"NY": 134,
|
||||
"NC": 156,
|
||||
"ND": 219,
|
||||
"OH": 124,
|
||||
"OK": 204,
|
||||
"OR": 303,
|
||||
"PA": 138,
|
||||
"RI": 3,
|
||||
"SC": 94,
|
||||
"SD": 243,
|
||||
"TN": 121,
|
||||
"TX": 913,
|
||||
"UT": 263,
|
||||
"VT": 22,
|
||||
"VA": 113,
|
||||
"WA": 210,
|
||||
"WV": 67,
|
||||
"WI": 183,
|
||||
"WY": 308
|
||||
},
|
||||
"bytes": 2676
|
||||
},
|
||||
"northeast": {
|
||||
"size": [
|
||||
100,
|
||||
100
|
||||
],
|
||||
"source_box": [
|
||||
1540,
|
||||
120,
|
||||
1980,
|
||||
600
|
||||
],
|
||||
"pixels": {
|
||||
"AL": 0,
|
||||
"AK": 0,
|
||||
"AZ": 0,
|
||||
"AR": 0,
|
||||
"CA": 0,
|
||||
"CO": 0,
|
||||
"CT": 92,
|
||||
"DE": 28,
|
||||
"FL": 0,
|
||||
"GA": 0,
|
||||
"HI": 0,
|
||||
"ID": 0,
|
||||
"IL": 0,
|
||||
"IN": 0,
|
||||
"IA": 0,
|
||||
"KS": 0,
|
||||
"KY": 3,
|
||||
"LA": 0,
|
||||
"ME": 551,
|
||||
"MD": 148,
|
||||
"MA": 128,
|
||||
"MI": 0,
|
||||
"MN": 0,
|
||||
"MS": 0,
|
||||
"MO": 0,
|
||||
"MT": 0,
|
||||
"NE": 0,
|
||||
"NV": 0,
|
||||
"NH": 137,
|
||||
"NJ": 134,
|
||||
"NM": 0,
|
||||
"NY": 813,
|
||||
"NC": 0,
|
||||
"ND": 0,
|
||||
"OH": 221,
|
||||
"OK": 0,
|
||||
"OR": 0,
|
||||
"PA": 774,
|
||||
"RI": 14,
|
||||
"SC": 0,
|
||||
"SD": 0,
|
||||
"TN": 0,
|
||||
"TX": 0,
|
||||
"UT": 0,
|
||||
"VT": 149,
|
||||
"VA": 395,
|
||||
"WA": 0,
|
||||
"WV": 383,
|
||||
"WI": 0,
|
||||
"WY": 0
|
||||
},
|
||||
"bytes": 1128
|
||||
},
|
||||
"hawaii": {
|
||||
"size": [
|
||||
100,
|
||||
82
|
||||
],
|
||||
"source_box": [
|
||||
565,
|
||||
995,
|
||||
785,
|
||||
1185
|
||||
],
|
||||
"pixels": {
|
||||
"AL": 0,
|
||||
"AK": 0,
|
||||
"AZ": 0,
|
||||
"AR": 0,
|
||||
"CA": 0,
|
||||
"CO": 0,
|
||||
"CT": 0,
|
||||
"DE": 0,
|
||||
"FL": 0,
|
||||
"GA": 0,
|
||||
"HI": 474,
|
||||
"ID": 0,
|
||||
"IL": 0,
|
||||
"IN": 0,
|
||||
"IA": 0,
|
||||
"KS": 0,
|
||||
"KY": 0,
|
||||
"LA": 0,
|
||||
"ME": 0,
|
||||
"MD": 0,
|
||||
"MA": 0,
|
||||
"MI": 0,
|
||||
"MN": 0,
|
||||
"MS": 0,
|
||||
"MO": 0,
|
||||
"MT": 0,
|
||||
"NE": 0,
|
||||
"NV": 0,
|
||||
"NH": 0,
|
||||
"NJ": 0,
|
||||
"NM": 0,
|
||||
"NY": 0,
|
||||
"NC": 0,
|
||||
"ND": 0,
|
||||
"OH": 0,
|
||||
"OK": 0,
|
||||
"OR": 0,
|
||||
"PA": 0,
|
||||
"RI": 0,
|
||||
"SC": 0,
|
||||
"SD": 0,
|
||||
"TN": 0,
|
||||
"TX": 0,
|
||||
"UT": 0,
|
||||
"VT": 0,
|
||||
"VA": 0,
|
||||
"WA": 0,
|
||||
"WV": 0,
|
||||
"WI": 0,
|
||||
"WY": 0
|
||||
},
|
||||
"bytes": 276
|
||||
},
|
||||
"source_component_pixels": {
|
||||
"TX": 99510,
|
||||
"NY": 17088,
|
||||
"AZ": 42572,
|
||||
"CA": 58649,
|
||||
"NV": 41220,
|
||||
"UT": 31555,
|
||||
"CO": 38944,
|
||||
"NM": 45545,
|
||||
"AK": 23435,
|
||||
"HI": 1239,
|
||||
"OK": 25671,
|
||||
"KS": 30684,
|
||||
"NE": 28657,
|
||||
"SD": 28575,
|
||||
"WY": 36519,
|
||||
"ID": 30691,
|
||||
"OR": 36095,
|
||||
"WA": 24459,
|
||||
"MT": 55176,
|
||||
"ND": 26235,
|
||||
"MN": 31079,
|
||||
"WI": 20411,
|
||||
"IA": 20753,
|
||||
"IL": 20647,
|
||||
"MO": 25757,
|
||||
"AR": 19475,
|
||||
"LA": 16798,
|
||||
"MS": 17411,
|
||||
"AL": 18924,
|
||||
"GA": 21645,
|
||||
"FL": 20584,
|
||||
"SC": 11222,
|
||||
"NC": 17586,
|
||||
"TN": 15180,
|
||||
"KY": 14470,
|
||||
"IN": 13097,
|
||||
"MI": 14854,
|
||||
"OH": 14990,
|
||||
"WV": 8390,
|
||||
"VA": 13925,
|
||||
"PA": 16573,
|
||||
"ME": 11502,
|
||||
"VT": 3240,
|
||||
"NH": 3064,
|
||||
"MA": 2498,
|
||||
"RI": 227,
|
||||
"CT": 1599,
|
||||
"NJ": 2543,
|
||||
"DE": 517,
|
||||
"MD": 2607
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
{
|
||||
"TX": [
|
||||
983,
|
||||
910
|
||||
],
|
||||
"NY": [
|
||||
1732,
|
||||
330
|
||||
],
|
||||
"AZ": [
|
||||
532,
|
||||
728
|
||||
],
|
||||
"CA": [
|
||||
280,
|
||||
568
|
||||
],
|
||||
"NV": [
|
||||
402,
|
||||
480
|
||||
],
|
||||
"UT": [
|
||||
572,
|
||||
524
|
||||
],
|
||||
"CO": [
|
||||
760,
|
||||
558
|
||||
],
|
||||
"NM": [
|
||||
726,
|
||||
744
|
||||
],
|
||||
"AK": [
|
||||
338,
|
||||
988
|
||||
],
|
||||
"HI": [
|
||||
739,
|
||||
1130
|
||||
],
|
||||
"OK": [
|
||||
1042,
|
||||
728
|
||||
],
|
||||
"KS": [
|
||||
1004,
|
||||
594
|
||||
],
|
||||
"NE": [
|
||||
970,
|
||||
462
|
||||
],
|
||||
"SD": [
|
||||
950,
|
||||
334
|
||||
],
|
||||
"WY": [
|
||||
714,
|
||||
374
|
||||
],
|
||||
"ID": [
|
||||
524,
|
||||
314
|
||||
],
|
||||
"OR": [
|
||||
330,
|
||||
264
|
||||
],
|
||||
"WA": [
|
||||
370,
|
||||
126
|
||||
],
|
||||
"MT": [
|
||||
684,
|
||||
198
|
||||
],
|
||||
"ND": [
|
||||
952,
|
||||
206
|
||||
],
|
||||
"MN": [
|
||||
1126,
|
||||
260
|
||||
],
|
||||
"WI": [
|
||||
1278,
|
||||
326
|
||||
],
|
||||
"IA": [
|
||||
1170,
|
||||
440
|
||||
],
|
||||
"IL": [
|
||||
1312,
|
||||
516
|
||||
],
|
||||
"MO": [
|
||||
1196,
|
||||
598
|
||||
],
|
||||
"AR": [
|
||||
1206,
|
||||
754
|
||||
],
|
||||
"LA": [
|
||||
1214,
|
||||
912
|
||||
],
|
||||
"MS": [
|
||||
1310,
|
||||
834
|
||||
],
|
||||
"AL": [
|
||||
1418,
|
||||
824
|
||||
],
|
||||
"GA": [
|
||||
1534,
|
||||
816
|
||||
],
|
||||
"FL": [
|
||||
1636,
|
||||
1008
|
||||
],
|
||||
"SC": [
|
||||
1626,
|
||||
756
|
||||
],
|
||||
"NC": [
|
||||
1678,
|
||||
672
|
||||
],
|
||||
"TN": [
|
||||
1420,
|
||||
696
|
||||
],
|
||||
"KY": [
|
||||
1462,
|
||||
612
|
||||
],
|
||||
"IN": [
|
||||
1410,
|
||||
512
|
||||
],
|
||||
"MI": [
|
||||
1432,
|
||||
364
|
||||
],
|
||||
"OH": [
|
||||
1512,
|
||||
488
|
||||
],
|
||||
"WV": [
|
||||
1584,
|
||||
556
|
||||
],
|
||||
"VA": [
|
||||
1670,
|
||||
582
|
||||
],
|
||||
"PA": [
|
||||
1676,
|
||||
434
|
||||
],
|
||||
"ME": [
|
||||
1886,
|
||||
186
|
||||
],
|
||||
"VT": [
|
||||
1800,
|
||||
280
|
||||
],
|
||||
"NH": [
|
||||
1840,
|
||||
280
|
||||
],
|
||||
"MA": [
|
||||
1830,
|
||||
340
|
||||
],
|
||||
"RI": [
|
||||
1860,
|
||||
360
|
||||
],
|
||||
"CT": [
|
||||
1830,
|
||||
375
|
||||
],
|
||||
"NJ": [
|
||||
1780,
|
||||
440
|
||||
],
|
||||
"DE": [
|
||||
1764,
|
||||
509
|
||||
],
|
||||
"MD": [
|
||||
1720,
|
||||
536
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
AL Alabama Montgomery
|
||||
AK Alaska Juneau
|
||||
AZ Arizona Phoenix
|
||||
AR Arkansas Little Rock
|
||||
CA California Sacramento
|
||||
CO Colorado Denver
|
||||
CT Connecticut Hartford
|
||||
DE Delaware Dover
|
||||
FL Florida Tallahassee
|
||||
GA Georgia Atlanta
|
||||
HI Hawaii Honolulu
|
||||
ID Idaho Boise
|
||||
IL Illinois Springfield
|
||||
IN Indiana Indianapolis
|
||||
IA Iowa Des Moines
|
||||
KS Kansas Topeka
|
||||
KY Kentucky Frankfort
|
||||
LA Louisiana Baton Rouge
|
||||
ME Maine Augusta
|
||||
MD Maryland Annapolis
|
||||
MA Massachusetts Boston
|
||||
MI Michigan Lansing
|
||||
MN Minnesota Saint Paul
|
||||
MS Mississippi Jackson
|
||||
MO Missouri Jefferson City
|
||||
MT Montana Helena
|
||||
NE Nebraska Lincoln
|
||||
NV Nevada Carson City
|
||||
NH New Hampshire Concord
|
||||
NJ New Jersey Trenton
|
||||
NM New Mexico Santa Fe
|
||||
NY New York Albany
|
||||
NC North Carolina Raleigh
|
||||
ND North Dakota Bismarck
|
||||
OH Ohio Columbus
|
||||
OK Oklahoma Oklahoma City
|
||||
OR Oregon Salem
|
||||
PA Pennsylvania Harrisburg
|
||||
RI Rhode Island Providence
|
||||
SC South Carolina Columbia
|
||||
SD South Dakota Pierre
|
||||
TN Tennessee Nashville
|
||||
TX Texas Austin
|
||||
UT Utah Salt Lake City
|
||||
VT Vermont Montpelier
|
||||
VA Virginia Richmond
|
||||
WA Washington Olympia
|
||||
WV West Virginia Charleston
|
||||
WI Wisconsin Madison
|
||||
WY Wyoming Cheyenne
|
||||
|
Reference in new issue
Block a user