Lots of work on 4d chess
    
    
      
        Getty Ritter
        9 years ago
      
    
    
  
  
  | 1 | Back when I was an undergrad, I designed a family of four-dimensional | |
| 2 | chess variants. I have no idea how they play: I have literally never | |
| 3 | convinced another human being to play them with me, in part because I | |
| 4 | only ever implemented them as buggy software, and playing them with | |
| 5 | analog equipment is tedious and error-prone. But still, it seems like | |
| 6 | a shame to let the idea languish, so I'm going to describe my approach | |
| 7 | here, in hopes that it provides at least passing interest. | |
| 8 | ||
| 9 | ## The "Board" | |
| 10 | ||
| 11 | There's a trick to visualizing and working with discrete chunks of | |
| 12 | higher-dimensional spaces: you can always look at an _n_-dimensional | |
| 13 | space with _k_ discrete chunks as _k_ instances of an _n-1_-dimensional | |
| 14 | space. A basic example: a three-dimensional space, divided into | |
| 15 | three discrete chunks, can be displayed as three two-dimensional spaces: | |
| 16 | ||
| 17 | [image here] | |
| 18 | ||
| 19 | This obscures the connectivity of the space a bit: if we're talking about | |
| 20 | a 3D game in which a token can move one space at a time, then a token here | |
| 21 | ||
| 22 | [image] | |
| 23 | ||
| 24 | could, in one 'turn', move to any of these places: | |
| 25 | ||
| 26 | [image] | |
| 27 | ||
| 28 | It does mean that our visual is a bit misleading: it looks like the | |
| 29 | piece is 'hopping' from one 'square' to the next, but the squares here | |
| 30 | are a fiction to make it easier to see every part of a 3d space on a 2d | |
| 31 | web page. It'd be like having a dynamic map of each floor of a building | |
| 32 | set next to each other: | |
| 33 | ||
| 34 | [image] | |
| 35 | ||
| 36 | A person going upstairs here, viewed on a 2D map like this, would "jump" | |
| 37 | from one map to the next, in the same way that a piece moving upwards in | |
| 38 | our 3d game-space would "jump" from one square to the next. | |
| 39 | ||
| 40 | Now, we apply the same approach to a four-dimensional space, it means we | |
| 41 | can split apart a four-dimensional object into multiple three-dimensional | |
| 42 | "slices": | |
| 43 | ||
| 44 | [image] | |
| 45 | ||
| 46 | And again, we can split that three-dimensional object into several | |
| 47 | two-dimensional slices: our 3×3×3×3 hypercube has become three 3×3×3 cubes, | |
| 48 | which in turn became three sets of three 3×3 grids: | |
| 49 | ||
| 50 | [image] | |
| 51 | ||
| 52 | In a two-dimensional space, we have four possible cardinal directions: | |
| 53 | _up_, _down_, _left_, and _right_: | |
| 54 | ||
| 55 | [image] | |
| 56 | ||
| 57 | In a three-dimensional space, we add two new directions, which I will | |
| 58 | call _in_ and _out_: | |
| 59 | ||
| 60 | [image] | |
| 61 | ||
| 62 | And in a four-dimensional space, we add two _more_ directions, which are | |
| 63 | traditionally called _ana_ and _kata_: | |
| 64 | ||
| 65 | [image] | |
| 66 | ||
| 67 | So here's a 3×3×3×3 hypercube, sliced into sets of sets of grids, | |
| 68 | and all the possible non-diagonal 'moves' for a piece sitting at the center, | |
| 69 | each labeled with the cardinal direction to which it corresponds: | |
| 70 | ||
| 71 | [image] | |
| 72 | ||
| 73 | Whew! | |
| 74 | ||
| 75 | So, my original plan called for a 5×5×5×5 hypercube as the board. This means | |
| 76 | that there are a lot more _positions_ than on a standard chessboard: an | |
| 77 | 8×8 chessboard yields 8×8=64 possible locations, while a 5×5×5×5 board yields a | |
| 78 | whopping _625_ positions. On the other hand, a four-dimensional board has a | |
| 79 | _lot_ more connections and paths: on a 2d board, a given square is bordered | |
| 80 | non-diagonally by four squares, and another four diagonal squares: | |
| 81 | ||
| 82 | [image] | |
| 83 | ||
| 84 | On a 3d board, you'd have six non-diagonal connections and _twenty_ diagonal | |
| 85 | ones: | |
| 86 | ||
| 87 | [image] | |
| 88 | ||
| 89 | And on a 4d board, you'd have eight non-diagonal connections and _seventy-two_ | |
| 90 | diagonal ones: | |
| 91 | ||
| 92 | [image] | |
| 93 | ||
| 94 | Part of what that means is that you have a tradeoff when it comes to board size: | |
| 95 | a 3×3×3×3 board would only have 81 spaces, making it a lot closer to a | |
| 96 | classic chessboard size: on the other hand, almost every spot on that board is | |
| 97 | _closely adjacent to_ another spot: a piece in the center is literally diagonally | |
| 98 | adjacent to every single space on the board! On the other hand, if we try to take | |
| 99 | a cue from traditional chess-board sizing and used an 8×8×8×8 hypercube, we'd have | |
| 100 | a board with 4096 possible positions: a piece, hopping along cardinal directions | |
| 101 | from the bottom-left inward ana-most corner and hopping _towards_ the top-right | |
| 102 | outward kata-most corner would have to take 32 steps—and that's just for one | |
| 103 | piece! | |
| 104 | ||
| 105 | So we need some middle ground, and my completely unscientific kneejerk thoght | |
| 106 | is that 5×5×5×5 gives us enough space without giving us too much space. That | |
| 107 | might be wrong! But let's run with it for now. | |
| 108 | ||
| 109 | ## Moving in Four Dimensions | |
| 110 | ||
| 111 | What does it mean to move _diagonally_ in two dimensions? Pieces in chess | |
| 112 | usually move _horizontally_ or _vertically_, which means they move in exactly | |
| 113 | one cardinal direction at once: | |
| 114 | ||
| 115 | [image] | |
| 116 | ||
| 117 | Or they move _diagonally_, which means they move the same number of squares in | |
| 118 | two _orthogonal_ cardinal directions at once: | |
| 119 | ||
| 120 | [image] | |
| 121 | ||
| 122 | Well, what if we start moving this to three dimensions? We can still move in | |
| 123 | one dimension: left, right, in, out, up, or down. This isn't a standard | |
| 124 | term, but because we're moving in _one cardinal direction_, I'm going to | |
| 125 | call this a _1C_ movement: | |
| 126 | ||
| 127 | [image] | |
| 128 | ||
| 129 | We can also move diagonally in roughly the same way as before: we can move | |
| 130 | the same number of squares in _two orthogonal_ cardinal directions, or a | |
| 131 | _2C_ movement: | |
| 132 | ||
| 133 | [image] | |
| 134 | ||
| 135 | But there's another way to move diagonally, two: the same number of squares | |
| 136 | in _three orthogonal_ cardinal directions: here, we're moving right, up, and | |
| 137 | in, all at once, in a _3C_ movement: | |
| 138 | ||
| 139 | [image] | |
| 140 | ||
| 141 | That was in just three dimensions: in four, we have the _1C_ movements | |
| 142 | ||
| 143 | [image] | |
| 144 | ||
| 145 | The _2C_ movements: | |
| 146 | ||
| 147 | [image] | |
| 148 | ||
| 149 | The _3C_ movements: | |
| 150 | ||
| 151 | [image] | |
| 152 | ||
| 153 | And, of course, the _4C_ movements: | |
| 154 | ||
| 155 | [image] | |
| 156 | ||
| 157 | ## The Pieces | |
| 158 | ||
| 159 | Well, let's come up with some pieces, shall we? Pawns are the "most basic" | |
| 160 | piece, but how they move is in some ways harder to define than the other | |
| 161 | pieces, so I'm going to leave them for a lot later. I will, however, | |
| 162 | propose a piece that's _slightly_ more powerful: a **Squire**, which can | |
| 163 | move one hop in any _cardinal_ (non-diagonal) direction: | |
| 164 | ||
| 165 | [image] | |
| 166 | ||
| 167 | We don't have any trouble tackling **the Rook**, which in 2D chess can | |
| 168 | move as far as it wants in any one cardinal direction. Let's stick with | |
| 169 | this and generalize it: our rook can make _any unrestricted 1C movement_. | |
| 170 | ||
| 171 | [image] | |
| 172 | ||
| 173 | That gives us an approach for **the Bishop**, too: in chess, it can move as | |
| 174 | far as it wants diagonally, so our bishop can make _any unrestricted 2C | |
| 175 | movement_. | |
| 176 | ||
| 177 | [image] | |
| 178 | ||
| 179 | This also suggests another piece or two not present in chess: we could, | |
| 180 | for example, have a piece which can make _any unrestricted 3C_ movement, | |
| 181 | something with no proper chess analogue. The logical corresponding | |
| 182 | name for this piece is, of course, **the Trishop**. | |
| 183 | ||
| 184 | [image] | |
| 185 | ||
| 186 | We could also propose a **Quadshop**, but my instinct is that it would | |
| 187 | be too restrictive a set of moves. For completeness' sake: | |
| 188 | ||
| 189 | [image] | |
| 190 | ||
| 191 | How about the **Knight**? It moves in a characteristic _L_ shape which | |
| 192 | doesn't get covered by our movement descriptions, but we can describe | |
| 193 | it at a high level as _one step in one direction, two in an orthogonal | |
| 194 | direction_. We can keep this same description and allow any two orthogonal | |
| 195 | cardinal directions to be chosen, to get a piece that moves like this: | |
| 196 | ||
| 197 | [image] | |
| 198 | ||
| 199 | This is another movement we could play with: what if, instead of _one | |
| 200 | step in one direction, two in another_, we lengthened it, to _two | |
| 201 | steps in one direction, three in another_? Let's call this more far-reaching | |
| 202 | but unwieldy piece a **Baronet**: | |
| 203 | ||
| 204 | [image] | |
| 205 | ||
| 206 | Or, we could add another step in a third direction, orthogonal to the other | |
| 207 | two, and have another knight-like piece: let's take this piece, with | |
| 208 | _one step in one direction, one step in an orthogonal direction, and | |
| 209 | two steps in a direction orthogonal to both the first ones_, and call | |
| 210 | it a **Marquess**: | |
| 211 | ||
| 212 | [image] | |
| 213 | ||
| 214 | What does a **Queen** do? Well, in typical chess, she is allowed any _1C_ | |
| 215 | or _2C_ movement, so we should allow to use any _3C_ or _4C_ movement, | |
| 216 | as well. She _is_ the queen, after all: | |
| 217 | ||
| 218 | [image] | |
| 219 | ||
| 220 | And a **King**, like chess, should be able to move a single jump in any | |
| 221 | direction—which is to say, it can move the same way as a Squire: | |
| 222 | ||
| 223 | [image] | |
| 224 | ||
| 225 | ## Towards A Notation | |
| 226 | ||
| 227 | There were lots of repeated patterns in the definitions above: various | |
| 228 | kinds of "diagonality", number of steps, knight-like movements… I've | |
| 229 | already started using a shorthand notation for the different kinds of | |
| 230 | straight lines—that is, `1C` through `4C`—so let's extend that notation | |
| 231 | a bit more: | |
| 232 | ||
| 233 | * If I don't care about the number of directions—for example, in the case | |
| 234 | of the Queen, who can travel in any straight line—I'll use a star instead | |
| 235 | of a number: a Queen's motion can be described as `*C`. | |
| 236 | * If I want to limit a piece to a particular number of steps, then I'll | |
| 237 | mark it with an `@`: so, a King's motion can be described as `1@*C`, which | |
| 238 | is read as _one step in any direction_. We can think of a notation like | |
| 239 | `3C` as being the same as `*@3C`. | |
| 240 | * A knight-like sequence of moves in orthogonal directions is written | |
| 241 | with a slash: a Knight's motion is therefore summed up as `1/2`. | |
| 242 | ||
| 243 | With this notation, we can concisely describe all the "pieces" given | |
| 244 | above: | |
| 245 | ||
| 246 | ------------ ------------ | |
| 247 | Squire `1@1C` | |
| 248 | Rook `1C` | |
| 249 | Bishop `2C` | |
| 250 | Trishop `3C` | |
| 251 | Quadshop `4C` | |
| 252 | Knight `1/2` | |
| 253 | Baronet `2/3` | |
| 254 | Marquess `1/1/2` | |
| 255 | Queen `*C` | |
| 256 | King `1@*C` | |
| 257 | ------------ ------------ | |
| 258 | ||
| 259 | This is just one possible notation, and I'm not convinced it's the best | |
| 260 | one—for example, if we admitted variables, then we could use the knight-like | |
| 261 | notation to represent |