Most players know that the unit location information on the city screen (unit "located near x") will give you a clue that you may be approaching a foreign city in unexplored territory. See the Free Information 1.1 in the
CHEATS 3.0 thread. However, this same information and a little geometry can be used to find the EXACT location of the foreign city in question. This type of methodology can be very useful for finding SP trade partners when they won't trade maps, or locating opponents in MP games.
How It Works
Suppose you have a unit out exploring the world. Its initial location is "near Alexandria", your closest city. As you move away from Alexandria, the unit's location eventually changes to "near Babylon", a foreign city which is somewhere out in the black unexplored territory. Where is Babylon? The following diagram illustrates how to figure this out.
BBAAAA
EBB
UAA__________
A
BBBBAA_________/
BBBBBA________/
______\______/
_______\____/
________\__/
_________
X
________/__\
_______/____\
______/
_____/
____/
___/
B
A = unit is closer to Alexandria
B = unit is closer to Babylon
U = unit location
A = Alexandria
B = Babylon
_ = other squares on the board
When you first notice that the unit's location is "near Babylon", move the unit a few squares left or right to find sets of squares to where the unit is closer to Alexandria (A) or Babylon (B). The boundary between these two sets of squares will be a straight line. Extend this straight line down your computer screen. (The straight line will not necessarily follow the horizontal and vertical grid of the screen. It may be something like "four squares to the right and one square down", much as if you were trying to locate the next goodie hut or a hidden special.) Next, draw a line from Alexandria to the closest point on the first line you drew. The point where the lines cross is labeled
X in the above diagram. The two lines will always be perpendicular when they cross, a fact that cannot easily be illustrated in the above graphic. Count the number of squares from Alexandria to point X (e.g., "five left, four down"). Count the same number of squares from point X into unknown territory. The result,
B is the location of Babylon. Note that
Babylon will not necessarily be found in the direction of point E, the direction you were originally headed. Heading in that direction amounts to assuming that you were already on the straight line between the two cities, which is not necessarily the case.
Why It Works
The shortest distance between any two cities on the board is a straight line. The midpoint on this line (point X) is half way between the two cities. The set of all points which are equidistant between the two cities is a straight line through point X and perpendicular to the line between the two cities. When the exploring unit stumbles across this perpendicular line, the unit location switches from "near Alexandria" to "near Babylon". (The actual program apparently uses a simple algorithm to compute distance, but the effect is the same.) The above procedure does the geometry in reverse, working backwards from the current unit location to the location of the cities.
Accuracy
This method will locate the city within one square. An odd number of squares between Alexandria and point X, not having enough squares to get an accurate read on the line the unit is on, or cities or units which are very far away, will all decrease the accuracy of this algorithm.
Qualifications
This method will locate the closest foreign city, i.e., on the edge of foreign territory. Interior foreign cities cannot be located using this method, and this method will not work if there are other cities nearby.
edit: graphics
------------------
Old posters never die.
They j.u.s.t f..a..d..e a...w...a...y...
[This message has been edited by Adam Smith (edited February 20, 2001).]