Based on Diplomacy and 5D Chess With Multiverse Time Travel, 5D Diplomacy With Multiverse Time Travel is an (entirely un-serious) attempt to introduce multiverse and time travelling elements to the classic game of pure negotiation.
The current code takes the simplest non-trivial Diplomacy board and turns it into the starting point of time travel shenanigans.
See this video for more information: https://www.youtube.com/watch?v=2__NGeY5JUw
The code is likely rather buggy, especially around retreats, and isn't resistant to badly formed inputs at all.
It's also horrendously ugly. I might fix that in the future, I might not. I consider this hackathon-esque in my approach, so please ignore my entirely undocumented, crazily formatted, paradigm-hopping mess. It works well enough for the demo, and that's all I need.
- Java 14 or higher
- 500 IQ
Compile the source code and run processing.GameRunner
from the command line or similar.
You'll be prompted to enter orders. You must submit an order for every unit of either colour on an active board (shown as more opaque) and cannot submit orders for units on inactive boards.
Enter orders on separate lines and write r
on a new line to finish submitting orders and resolve.
The format for orders is as follows:
-
Hold:
x1,x2,x3
, where thex1
is the column of the board on which the unit lies (left-most column is0
),x2
is the row of the board on which the unit lies (may be negative as the centre is0
), andx3
is one of[0, 1, 2]
to specify the unit's location within a board. Here,0
refers to the left region of the triangle,1
to the top region and2
to the right region. -
Move:
x1,x2,x3 m y1,y2,y3
wherex1,x2,x3
specifies the unit's location as above, andy1,y2,y3
similarly specifes the unit's destination. Units can move anywhere on their own board or anywhere on boards one space away horizontally, vertically or diagonally. -
Support:
x1,x2,x3 s y1,y2,y3 z1,z2,z3
wherex1,x2,x3
is the supporting unit's location,y1,y2,y3
is the supported unit's location andz1,z2,z3
is the supported unit's destination. Ify1,y2,y3
andz1,z2,z3
match, the order is a support to hold in place. The supported destination is subject to the same constraints as a move order, i.e. a unit can only support to places it could move.
If retreats are required, you'll be asked to enter orders again for each dislodged unit only. Disband orders have the same format as holds, and a retreat move has the same format as a regular move.