Wednesday, January 03, 2018

Square Grids (2)

In a previous post ("Square Grids") we outlined several methods how to measure distances on a square grid, with the aim of approaching the Euclidean distance as closely as possible.

One of the possible solutions is to count a diagonal move as 1.5 movement points. Such a procedure allows for a more accurate movement compared to not allowing diagonals, or counting diagonals as 1 movement point.

However, one could take this a step further and also define movement points for other types of movement. E.g., we can define a number of movement points when executing a Knight's move (as in chess, 2 squares horizontally, 1 square vertically, or vice versa). Using Pythagoras' Theorem, one can easily compute that such a distance equals the square root of 2*2 + 1*1 = square root of 5 = 2.236, or approximotely 2.25.

Hence, let us define movement on a square grid as follows:
  • 1 movement point for a horizontel or vertical move;
  • 1.5 movement points for a diagonal move;
  • 2.25 movement points for a Knight's move.
The resulting movement ranges, for 3, 5 and 7 movement points, are illustrated in the diagram below. The dark shaded squares are the ones we can reach when rounding our movement allowance down, i.e. we can spend up to 3.5, 5.5 or 7.5 movement points.

Diagonal movememtn counts as 1 movement point; a Knight's move counts as 2.25 movement points.
Dark shaded squares indicate an expenditure 0.5 movement points above the nominal number.
The overal picture, especially when compared to the diagrams in the previous blogpost, is that we can approach the circle (the ideal Euclidean distance) even better.

And why stop here? We could define custom movement points for a move that would take us 3 squares forwards and 2 squares sideways ( a so-called Zebra move in chess), or a move that would take us 3 forwards, and 1 sideways (a Camel move in chess -- both Zebras and Camels are called "leapers" in the context of fairy chess pieces), etc. The more we include these special "moves", the closer we can get to approaching the ideal Euclidean distance. In the limit, every possible movement between a starting square and end square can be given its own customized movement point cost.

"But such a system would become totally unworkable!", I hear you say. Quite right, it would become unworkable, working with fractions, and remembering all those special moves with their own movement points expenditures.

That's why - in a wargame that uses a gridded playing field - we don't really want a measurement procedure, we want a counting procedure. There's a subtle difference between both. A measurement procedure would express the movement cost between two gridcells on the playing field. But a counting procedure is what we need when playing. We want to to go from gridcell to gridcell, physically moving the figures (or using our finger to point out the movement path), while counting and accumulating the spent movement points as we proceed along the movement path. Thus, complicated counts such as the Knight's move, the Camel move or the Zebra move, do not fit that pattern.

It is tempting to play around with more complicated counting procedures, but I think the game will suffer. And, the more complicated counts we include and the closer we approximate Euclidean distances, the more we should think about removing the grid and use a ruler in the first place!

No comments:

Post a Comment