
A geography game where you guess cities based on compass arrows
The geography game to test your mental Map
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
City Angle
The geography game to test your mental Map
Weekly ChallengeHorror Hours
Active
Play Unlimited RoundsCreate a Free Account — Easy or Hard, every day
Choose Category Capital · Country · Sphere · Country cities
🏆 This Week's Top Members
1st Jonathan N 17,133
2nd Alt4ria 17,047
3rd furious17 17,038
4th Aadi J 17,027
5th l2o4v0a5 17,026
View Full Leaderboard
Create Account to Appear on Leaderboard
322 played · Avg 8,350 pts · Best 17,015
Make your own game Build a custom challenge & share it with friends
City Angle
Stream mode
Name the city that matches the angles to the cities shown.
English
Show all angles
Submit guess
✓
— —
Change mode for next round
Next round
List
Map −500
City Angle
Your WorldScore
0
Leaderboard
You leveled up! You're improving — tougher tests are on the way.
Play Again
Home
Normal Mode
Run complete!
Your score 0
Daily Challenge complete Next challenge in --:--:--
You 0
VS
Challenger 0
" when a personal best exists for this mode. -->
Play Again
Challenge a Friend Same 5 cities · see who wins
Try Another Category
Create Free Account Save scores · appear on the leaderboard
Top 5
#—
—
Loading top players…
See all games
Enjoying this? Buy me a coffee
Challenge a Friend
Send this link — your friend plays the exact same 5 cities, then you compare scores head-to-head.
Telegram
X
🧭
You've been challenged!
A friend played City Angle and dares you to beat them on the exact same 5 cities.
Cities sit at their true compass bearing from a hidden city. Name the city in the middle.
7 tries — wrong guesses become red hint arrows on the board.
Arrow length — longer arrow = farther city. Always on in Easy & Daily; toggle in Settings.
Speed bonus — answer within 20 s for extra points.
Streak — consecutive first-try wins multiply your bonus (not in the Daily Challenge).
Native spellings work — "Köln", "München", "Saigon" … all match.
Every arrow points from the centre city to its label…
…except one impostor. Tap it.
Each catch grows your streak — the fake gets sneakier.
One wrong tap ends the run.
Got it
Switch mode
Which Mode you wanna try?
You've already played this challenge — pick a mode for a fresh game.
Difficult No distances shown
Easy Distances shown
Special Modes
Settings
Design
Compass
Classic
Proportional arrows Longer arrows = farther cities. A visual hint without showing exact numbers.
Always on in Easy mode and Daily challenges.
You've already seen distances this round — the penalty applies even if you hide them again.
Km
Mi
State names Show names in their original language instead of English.
Stream / record mode A fixed capture frame for OBS, TikTok & Reels — face-cam friendly.
Open
Cities in the game
World Map
Pan & zoom to find the cities you need, then triangulate the hidden one. The answer is never shown.
on init so it can show before the game is revealed (the game container is opacity:0 / pointer-events:none until a mode is chosen). ═══════════════════════════════════════════ -->
Classic — choose difficulty
Play Easy Distances shown · friendlier
Play Difficult No distances · angle only
Choose a category
Capital Guess world capitals · switch Easy / Hard in-game
All Cities Every city in play · not only the famous ones
Online Multiplayer Play live with friends & others
Country Cities Play using only one country's cities
States & Regions Guess states, provinces or regions of a country
with the sheet; sits on its own fixed layer above the sheet. -->
Sphere — the hardest mode
Every other mode points its arrows the way a flat world map does — the direction your eyes expect. Sphere mode points them along the true shortest path over the round Earth, the route planes actually fly.
Over long distances the two disagree wildly: from New York, the shortest path to Tokyo starts out heading almost due north over the Arctic — not west across the Pacific. Your flat-map intuition will actively lie to you on nearly every arrow.
Really, really difficult — so it pays the most: 3,000 pts for a first-try win.
World — conquer your map
Ranked City Angle with your own world map. Every round moves your WorldScore and lights up cities you conquer.
One number: your WorldScore. Nail a city and it climbs, miss and it slips. Solving cities also colours in your map: grey → blue → deep blue.
Climb and more of the world unlocks. Season 1 — race the seasonal Top 100.
Get more from City Angle
You're playing free Classic Mode. Create a free account to save your progress, earn badges and play ranked Elo.
All categoriesPROTap to see every mode Pro unlocks
Capitals
Countries
Sphere · 3D
All cities
Country cities Pick one country and play a whole round using only its cities
Reverse ModeThe city is shown — you place the rest
Build your own gamePROCreate a custom round & challenge friends
Badges & saved progressKept in sync across all your devices
Join before Jul 31 — keep every free feature forever
Create free account
Takes 20 seconds · no card needed
Save your progress & badges — it only takes a moment.
Play unlimited rounds. Choose how much help you get.
Easy Distances to each city are shown — great for learning the ropes.
Hard No distances — read the angles alone. For seasoned players.
on init so it sits above the still-hidden game container. -->
Comp is on its way
City Angle 1v1 duels are almost ready. The Beta goes live tomorrow evening, Sept 9 — check back then to play your first ranked duel.
Bergen1 043 km
Hamburg720 km
Rome1 434 km
Valencia1 339 km
Dublin463 km
Guess wrong and that city joins the map as a new clue.
Same 5 cities your friend played. Beat their score.
Choose a difficulty for your first round.
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","mobyMin":25,"pool":152,"base":"https://visitwhale.com/wp-content/mu-plugins/WhaleGames/cityangle-passport"}};
(function(){ "use strict"; var AJAX = "https://visitwhale.com/wp-admin/admin-ajax.php"; var LOGGED_IN = false; // Hand-drawn tile art: /assets/catscreen/{iso2}.svg (country) or // st-{iso2}.svg (that country's States tile). Scanned at // render time, so dropping a new {cc}.svg in that folder is all it takes. // Served as (lazy, browser-cached) — not inlined, because the files // are large and their Illustrator .st0 classes would clash with each other. var CS_ART = {"at":"https://visitwhale.com/assets/catscreen/at.svg?v=1790969027","au":"https://visitwhale.com/assets/catscreen/au.svg?v=1790983319","br":"https://visitwhale.com/assets/catscreen/br.svg?v=1791119645","ca":"https://visitwhale.com/assets/catscreen/ca.svg?v=1790969027","capital":"https://visitwhale.com/assets/catscreen/capital.svg?v=1790984642","ch":"https://visitwhale.com/assets/catscreen/ch.svg?v=1790969397","cl":"https://visitwhale.com/assets/catscreen/cl.svg?v=1791154258","cn":"https://visitwhale.com/assets/catscreen/cn.svg?v=1790904956","co":"https://visitwhale.com/assets/catscreen/co.svg?v=1791119645","cz":"https://visitwhale.com/assets/catscreen/cz.svg?v=1790969027","de":"https://visitwhale.com/assets/catscreen/de.svg?v=1791154257","es":"https://visitwhale.com/assets/catscreen/es.svg?v=1790969027","fr":"https://visitwhale.com/assets/catscreen/fr.svg?v=1791154257","gb":"https://visitwhale.com/assets/catscreen/gb.svg?v=1790904897","gr":"https://visitwhale.com/assets/catscreen/gr.svg?v=1790981273","hu":"https://visitwhale.com/assets/catscreen/hu.svg?v=1790969563","id":"https://visitwhale.com/assets/catscreen/id.svg?v=1791119642","impostor":"https://visitwhale.com/assets/catscreen/impostor.svg?v=1790978451","in":"https://visitwhale.com/assets/catscreen/in.svg?v=1790969027","it":"https://visitwhale.com/assets/catscreen/it.svg?v=1790969563","jp":"https://visitwhale.com/assets/catscreen/jp.svg?v=1790969027","kh":"https://visitwhale.com/assets/catscreen/kh.svg?v=1791119643","kr":"https://visitwhale.com/assets/catscreen/kr.svg?v=1791119646","kz":"https://visitwhale.com/assets/catscreen/kz.svg?v=1790815066","la":"https://visitwhale.com/assets/catscreen/la.svg?v=1791119644","mx":"https://visitwhale.com/assets/catscreen/mx.svg?v=1791154257","my":"https://visitwhale.com/assets/catscreen/my.svg?v=1791119655","nl":"https://visitwhale.com/assets/catscreen/nl.svg?v=1790815066","passport":"https://visitwhale.com/assets/catscreen/passport.svg?v=1791752226","ph":"https://visitwhale.com/assets/catscreen/ph.svg?v=1791119645","pk":"https://visitwhale.com/assets/catscreen/pk.svg?v=1790981272","pl":"https://visitwhale.com/assets/catscreen/pl.svg?v=1790981272","pt":"https://visitwhale.com/assets/catscreen/pt.svg?v=1791154258","reverse":"https://visitwhale.com/assets/catscreen/reverse.svg?v=1790815655","ru":"https://visitwhale.com/assets/catscreen/ru.svg?v=1790984520","sights":"https://visitwhale.com/assets/catscreen/sights.svg?v=1790978451","sphere":"https://visitwhale.com/assets/catscreen/sphere.svg?v=1790815655","st-de":"https://visitwhale.com/assets/catscreen/st-de.svg?v=1790815066","th":"https://visitwhale.com/assets/catscreen/th.svg?v=1791119643","tr":"https://visitwhale.com/assets/catscreen/tr.svg?v=1790969027","us":"https://visitwhale.com/assets/catscreen/us.svg?v=1790815066","vn":"https://visitwhale.com/assets/catscreen/vn.svg?v=1791119644"}; var _csNonce = ''; var _csGameKey = ''; var _csFavs = new Set(); var _csRegistry = []; var _csCallbacks = {}; var _csOpen = false; var _csInitDone = {}; var _csServerFavs = {}; // gameKey -> last server-fav snapshot (seeds hearts instantly on reopen) var _csSearchTimer = null;
/* ── SVG icons ──────────────────────────────────────────────────────── */ var LOCK_ICON = ''; var HEART_ICON = '';
/* ── SVG scene library (from the Cartographer mock) ─────────────────── */ var _S = function(inner){ return ''+inner+''; }; var _sky = '';
var CS_SCENES = { germany: _S(_sky+ ''+ ''+ ''+ ''+ ''+ ''),
destates: _S( ''+ ''+ ''+ 'NiedersachsenBavariaBerlin'),
flags: '',
capital: '',
sphere: _S(''+ ''+ ''+ ''+ ''+ ''),
reverse: _S(''+ ''+
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。