https://en.wikipedia.org/wiki/Fischer_random_chess
It makes the games far more complex and dynamic since the pieces are placed somewhat randomly. There are other variants which remove castling which makes the game even more dynamic as it prevent castling to secure your king from the middle of the rank.
To begin with each player puts one piece of their color on the board on their turn where-ever they want.
When all pieces are on table, the player who placed the last piece gets the first move, to compensate for the fact that the other player had the advantage to place the first piece on the board where-ever they wanted to.
Citation needed. AlphaZero was 'cheap' only if you have Google-scale resources at hand.
| 2
| 3
| 2
| 3
|2 3 2 3 K 3 2 3
| 3
| 2
| 3
Then by looking at the diagonals: |4 2 4
| 2 3 2
| 4 2 4
| 2 3 2
|2 3 2 3 K 3 2 3
| 2 3 2
| 4 2 4
| 2 3 2
|
|
Finally looking at the map: |
|8| 4 3 2 3 2 3 2 3
|7| 3 2 3 4 1 2 1 4
|6| 4 3 2 1 2 3 2 1
|5| 3 2 3 2 3 K 3 2
|4| 4 3 2 1 2 3 2 1
|3| 3 2 3 4 1 2 1 4
|2| 4 3 2 3 2 3 2 3
|1| 3 4 3 2 3 2 3 2
| +----------------
| a b c d e f g hYou win if you take your opponent's "king pawn", or move your "king pawn" onto the enemy's vacated throne. All other pawns are disposable, as in Chess. The throne (and king pawn starting location) is in the middle of a side of the 5x5 board, opposite the enemy's throne, with two normal pawns either side of it to cover the entire edge. The king pawn has no superpowers.
Here's an attempt at the implications this has. It's pretty hard to lose by having your King captured, so at least at my level, what can decide games is how safely gets their king further during the inevitable large trading of pawns that happens in the middle.
Knights move precisely the way they do because there whole concept is to be able to threaten any other piece without being threatened.
The knights movement is precisely designed to e the simplest movement possible that can fulfill this roll.
The knights ability to jump over pieces comes from the fact that there are always two ways for the knight to get to a square so no one piece can block a knight... I do understand that in theory 2 pieces could block a knight but that's the justification for its magical jumping ability.
I liked the way another commenter described it below: knights can move to the closest squares other pieces can't move to.
The code: https://lemoing.ca/scripts/knight.js
Just a bit of feedback in case you're thinking of doing similar articles in the future, which I hope you are, because this was fantastic.
I definitely appreciate the feedback! I'm hoping to write similar articles in the future so this is definitely helpful.
As a chess and chess variants player, who thinks about geometrical features of the game and pieces, especially the knight, one will have thought about most of the things described in that post, or they will seem immediately clear: "Yes ofc, that is because ...". However, if one is not a mathematician or looks at these things in detail, one might not have used the mathematical terminology or have known how to describe some criteria for a generalized knight reaching squares.
I find it also interesting, for how many chess players chess and software development in ones spare time go together. Chess can serve as a source for many interesting projects.
In xiangqi, the 馬 moves like the knight, in any direction, but it can be blocked (it is considered to go one orthogonal and then one diagonally outward); it is possible that one 馬s threatens the other, but not other way around because the opponent's one is blocked. (The rule that the kings are not allowed to look at each other can also have this non-mutual attacking effect, but 馬 does it even independently of that rule, and of the river.)
The King and rook can castle which involves moving multiple pieces and over each other.
So there's a lot of weirdness. But that's not to say this isn't a fascinating or worthwhile investigation.
> Pawns are a little weird, but in general they always have to move forward.
For example it has acrobats which jump to a square in a 3x3 square a certain distance away. It has a variant of a Bishop that rather than moving in a diagonal moves in an extended knights move style bumpy diagonal.
One of the things that comes out of this is that part of the power of these pieces is how many squares they can reach (as a proportion of those available on the board), and a generalisation of pieces’ moves to being slightly closer to arbitrary functions mapping squares to each other on the board.
// Break at scripts/knight.js:369 then run
sC = sequentialColor;
sequentialColor = (low, high, gap, long = false) => sC(240, 0, gap, long);I know OOP is out now-a-days, but bear with me cause I don't know of any equivalent functional papers/books to describe this idea as well. Elemental Design Patterns [1] shows a way of relating the formal lambda calculus of OOP relationships to design patterns by defining the set of the core operation relationships between types/objects/fns/etc. If you treat all objects/types/functions/etc as a cartesian grid, those core relationships define a basis vector that allows you to combine different operations that create the famous OOP design patterns. And in fact I've always thought of that basis vector the same way as the movements of a chess board, and I've wondered if there's other moves you could add to provide an easier way of hitting all squares.
Since a programming language selects specific syntax to navigate these relationships, if you could describe a language in terms of a lower level basis language, would it make it easier to see which patterns are missing from a language to help move from one concept to another? Could this help design committees select better language constructs that don't do the same things, or conflict in some way? And I'm going to go out here on a limb and hypothesize that a language is Turing Complete if it provides language constructs to allow you to hit every square on the grid, but again not enough skill to prove it myself.
Anyways, I've never thought about the modulo math of these operations like in the case of a Knight's move, so this was super interesting! Does anyone know of any good papers/talks on type theory mixed with modulo spaces, cause I'm certain you could build a different basis for more functional patterns using category theory, and now I'm curious how it might tie in.
[1] https://www.eecs.yorku.ca/course_archive/2006-07/F/6431/Stot..., https://www.amazon.ca/Elemental-Design-Patterns-Jason-Smith/...