Martian Chess

# Rules

- The field promotion rules have now been implemented. When no Drones exist in your quadrant, you may move a Pawn onto another Pawn and form one. If you have no Queens, you may move a Pawn onto a Drone. The new notation is explained on the game board page. —
*ac.snotlad|noraa#noraA 23 Oct 2005 22:48* - (it's not specified on all variants of the page, but the terminology for field promotaion is a1+b2 —
*moc.oi|emenm#emenM 2 Apr 2007 14:45*

# Current Variants

**Of Knights and Kings**

In this variant:

- 3's still move like Queens
- 2's move like Knights
- 1's move like Kings

# Feedback & Suggestions

- The following comments were copied from the old wiki. It's such a mess with so many levels of indentation, that it's possible that I messed something up. If the comments below don't make any sense, feel free to fix indentation levels and stuff. — DiEvAl, 02 Jun 2015 14:34

- How hard would it be to allow three-player games?
- Give me a board configuration and I can try. Eeyore's martian wedges unfortunately are totally impractical to implement, IMO. If somebody wants to try it, they're welcome to. If you can think of some more straightforward configurations, let me know. —
*ac.snotlad|noraa#noraA 05 Nov 2005 13:05*- What's impractical about the wedges? Are they difficult to draw? Or are they incompatible with your current program logic? I would think that you would implement them much as you do Homeworlds, with each wedge being a separate board. Moves going from board to board take a little work, but it's not insurmountable. For display, you'd put the wedges together into a single board image, probably rotating some or all of them. All of these steps should be fairly straightforward, no? — rootbeer (Tom)
- I forgot to consider how to indicate board positions, e.g. for move notation. That may be tough. I would label each "seam" where two boards meet with a sequence: A, B, C, D for one; 1, 2, 3, 4 for another; and maybe a, b, c, d for the third? (Not i, ii, iii, and iv. Maybe Club, Heart, Spade, Diamond?) — rootbeer
- (
**Aaron**) Creating the board itself is not the issue. The problem is correctly placing pieces on the board. I can think of no algorithmic way to derive the correct X,Y coordinate for any given cell. Each point would have to be manually calculated. Then there's the issue of piece rotation. It is difficult (for me, as yet, impossible) to arbitrarily rotate a graphic while keeping the same scale. I would imagine this is possible, but I have yet to figure it out. Pieces placed on these boards are not simply rotated by 90 degree intervals (at least my eye doesn't think they are). These are the primary obstacles. That said, I am no genius nor the arbiter of all things possible. If anybody can give me some algorithms/code that would overcome these obstacles, I am more than open. There**are**other issues as well (mostly regarding pathfinding and notation) but those are at least somewhat surmountable, but would take time.- Each point would have to be manually calculated.
- Sure. But that is only 16 points, if you do each wedge separately.
- I need an X,Y coordinate that tells the system where to place a piece. This situation is difficult because the point may not be the same for each orientation. You can't just calculate the points for one wedge and then transform them either. You will need points for each cell.
- this is still fairly trivial, a 1-time calculation for 48 cells & lookup table would do it. Alternatively, you can use a pie-shaped board (3 wedges) & calculate in polar coordiates, then covert to cartesian. If a point P has polar coordinates (r, q) then the rectangular coordinates of P is (r cos(q), r sin(q)). In other words,

x = r cos(q)

y = r sin(q)

- this is still fairly trivial, a 1-time calculation for 48 cells & lookup table would do it. Alternatively, you can use a pie-shaped board (3 wedges) & calculate in polar coordiates, then covert to cartesian. If a point P has polar coordinates (r, q) then the rectangular coordinates of P is (r cos(q), r sin(q)). In other words,

- I need an X,Y coordinate that tells the system where to place a piece. This situation is difficult because the point may not be the same for each orientation. You can't just calculate the points for one wedge and then transform them either. You will need points for each cell.

- Sure. But that is only 16 points, if you do each wedge separately.
- Difficult or impossible to arbitrarily rotate or scale a graphic.
- That's a simple matter of programming. :-) But have you looked on CPAN?
- CPAN is my second home. The problem is not rotating and scaling. The problem is taking a given graphic, rotating it by some arbitrary angle, and then reducing the resulting graphic (now larger than the desired size) without wrecking the scale. One way to overcome this is to manually redraw the piece from scratch instead of using a stock graphic and rotating it.

- That's a simple matter of programming. :-) But have you looked on CPAN?
- Pieces aren't rotated by 90 degree intervals.
- Shouldn't be much of a problem, even if they stick out over the edges of their "squares" a little. You may need to make the piece images a little smaller. Or draw the wedges larger than you need so that they can look best when scaled and rotated.

- Notation
- I thought some more. There's no reason you can't use E, F, G, H and further quadruplets to label each edge, so each square can be the intersection of two letters. This scales even up to a six-player board.

- Pathfinding
- Yes, this could be a tough one. You might need to write an auxiliary program to enumerate all possible moves.
- Auxiliary or not, I still have to write it :-) I will need to examine this further. — rootbeer

- Yes, this could be a tough one. You might need to write an auxiliary program to enumerate all possible moves.

- Each point would have to be manually calculated.

- What's impractical about the wedges? Are they difficult to draw? Or are they incompatible with your current program logic? I would think that you would implement them much as you do Homeworlds, with each wedge being a separate board. Moves going from board to board take a little work, but it's not insurmountable. For display, you'd put the wedges together into a single board image, probably rotating some or all of them. All of these steps should be fairly straightforward, no? — rootbeer (Tom)

- (
**Aaron**) Don't get me wrong. I'm not saying this will never happen nor that it is impossible. I'm just saying it is distinctly non-trivial and with my limited time, it will likely not happen in the near future. I would**love**to get it to work though. I am not dismissing the idea completely.

- (
**jeep**) For the two player version of the variant, how about if you use different colors for the pieces? It would make it easier on me, at least. -JEEP

- (
**mneme**) Another option for 3-players would be to implement it as a teleport zone on a 4-player board, ie, have E4 orthogonally adjacent to D5, E3/C5, E2/B5, and E1/A5. Add in a diagonal rule for the central diagonal (probably "you can leave at either diagonal direction other than the one you came from), and you've got a perfectly playable board without having to code distortions.

- (
**Xoet**) what of combining the broken phwar with possible Martian Chess like Pieces and moves? for the three person game??