Files
metro-puzzle-jp/resources/data/levels/003-shibuya.json
claude f762f9554e
All checks were successful
release / build-release (push) Successful in 1m34s
M9: navigeringslägen, linjenät och terminal
internal/nav med resources/data/network.json (76 stationer, 11 linjer,
Yamanote som ringlinje). Tåg bedöms från lineId + terminus mot banans
station/to: rätt, fel håll, för långt bort (fler än 12 stationer) eller
ingen trafik; correct räknas ut för nätkopplade banor, 1-4 rätta tåg.
Tågresan visar linjens riktiga stationer. Nya förlustorsaker "Fel håll"
och "För långt bort". Listläge (nästa tåg nere till vänster) och
skyltläge (+50 % poäng) växlas med N på bankartan och sparas; -mode.
Terminalen: biljettautomaten visar linjetavlan på nätbanor. Perronger
P p Q q R r. Bana 006 Ikebukuro med fyra perronger. Banorna 001-005
kopplade till nätet. Skript: waitover och pick calm; poängraden
radbryts; skärmdumpar uppdaterade.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-24 13:07:36 +02:00

133 lines
3.7 KiB
JSON

{
"id": "003-shibuya",
"kind": "main",
"order": 3,
"name": {
"en": "Shibuya Station",
"ja": "渋谷駅",
"sv": "Shibuya station"
},
"difficulty": 3,
"party": 4,
"ticketRequired": true,
"seatSelection": true,
"individualCards": true,
"rideStops": 5,
"destination": {
"en": "Ikebukuro",
"ja": "池袋",
"romaji": "Ikebukuro",
"sv": "Ikebukuro"
},
"timeLimitSec": 360,
"maxMissedTrains": 1,
"fareYen": 200,
"shop": [
"sun_hat",
"happi",
"geta",
"map_shibuya",
"powerbank",
"rail_pass"
],
"grid": [
"#################################",
"#S.........W#....i........#.....#",
"#.#####.#.###.###.#####.#.#.#####",
"#.#...#.#.....#...#.....#.#.....#",
"#.#.#.#.#######.###.#####.#.###.#",
"#.#.#.#.....#...#......i..#.#...#",
"#.#.#.#####.#.#.#.#####.#####.###",
"#...#.#...#...#.#.....#.#...#...#",
"#####.#.#.#####.#####.#.#.#.###.#",
"#T#...#.#...#K#.....#.#...#...#.#",
"#.#.###.###.#.#####.#.#######.#.#",
"#.#.#...#...#...#...#...#...#...#",
"#.#.#.#.#.#.#.###.#####.#.#.#####",
"#...#.#.#.#.#.....#...#...#..i..#",
"#.#####.#.#.#######.#.#######.#.#",
"#.....#.#.#.....#...#...#...#.#.#",
"#####.#.#.#####.#.#####.#.#.#.#.#",
"#...#...#.....#.#.#.#...#.#.#.#.#",
"#G#######.#####.#.#.#.###.#.#.#G#",
"#pG...............#.......#...GP#",
"#################################"
],
"trains": [
{
"crowded": true,
"destination": {
"en": "Ikebukuro",
"ja": "池袋",
"romaji": "Ikebukuro"
},
"line": {
"en": "Yamanote Line",
"ja": "山手線",
"romaji": "Yamanote-sen"
},
"platform": "P",
"schedule": {
"dwellSec": 7,
"intervalSec": 25,
"offsetSec": 6
},
"track": "2",
"lineId": "yamanote",
"terminus": "ikebukuro"
},
{
"destination": {
"en": "Yokohama",
"ja": "横浜",
"romaji": "Yokohama"
},
"line": {
"en": "Tokyu Toyoko Line",
"ja": "東急東横線",
"romaji": "Tokyu Toyoko-sen"
},
"platform": "p",
"schedule": {
"dwellSec": 8,
"intervalSec": 30,
"offsetSec": 12
},
"track": "4",
"lineId": "toyoko",
"terminus": "yokohama"
}
],
"signs": [
{
"text": {
"en": "Shibuya Station. Track 2 Yamanote Line for Ikebukuro: south-east. Track 4 Tokyu Toyoko Line for Yokohama: south-west. Tickets at the machine.",
"ja": "渋谷駅 2番線 山手線 池袋方面 → 南東 4番線 東急東横線 横浜方面 → 南西 切符 自動券売機",
"sv": "Shibuya station. Spår 2 Yamanote-linjen mot Ikebukuro: sydöst. Spår 4 Tokyu Toyoko-linjen mot Yokohama: sydväst. Biljetter i automaten."
},
"x": 17,
"y": 1
},
{
"text": {
"en": "<- Track 4 Tokyu Toyoko Line (Yokohama) Track 2 Yamanote Line (Ikebukuro) ->",
"ja": "← 4番線 東急東横線 横浜方面 2番線 山手線 池袋方面 →",
"sv": "<- Spår 4 Tokyu Toyoko-linjen (Yokohama) Spår 2 Yamanote-linjen (Ikebukuro) ->"
},
"x": 23,
"y": 5
},
{
"text": {
"en": "Track 2 Yamanote Line for Ikebukuro: the gate in the south-east corner. Everyone needs a ticket and card balance.",
"ja": "2番線 山手線 池袋方面 → 南東口 改札",
"sv": "Spår 2 Yamanote-linjen mot Ikebukuro: spärren i sydöstra hörnet. Alla behöver biljett och saldo på kortet."
},
"x": 29,
"y": 13
}
],
"station": "shibuya",
"to": "ikebukuro"
}