# How many Chess960 positions exist in which castling on one side does not require moving the rook on the other side?

Update: It's chess870 (or chess869). See answer.

Context/Motivation/Goal: In regular chess, you never have to move a rook (on 1 side) to castle (on the other side). My aim is to see how much of 9LX is lost if we retain this. My hope is that it's not much given that it appears to be that usually you don't have to move a rook (on 1 side) to castle (on the other side). This way, you can develop then queen, knights, and bishops without having to give away where you're castling.

Now for 9LX: From a not-so-random sample of some of my 9LX games, I notice that, in most positions, if you remove all the pieces besides the kings, rooks, and pawns, then you don't have to move a rook (on 1 side) to castle (on the other side)

Here is an example of not having to move a rook to castle:

`````` [FEN "bqnrkbrn/pppppppp/8/8/8/8/PPPPPPPP/BQNRKBRN w KQkq - 0 1"]
``````

Here is an example of having to move a rook to castle. (You have to move the short/h-side rook to castle long/a-side, assuming of course black doesn't interfere like black knight captures rook and then runs away.)

`````` [FEN "rknrbbqn/pppppppp/8/8/8/8/PPPPPPPP/RKNRBBQN w KQkq - 0 1"]
``````

Question: Restricting ourselves only to positions of the first kind, how many such positions exist?

Maybe related:

1. Chess480: Why 480?

2. Which side should I castle if I have opportunity to castle on both sides?

3. Update: This too I guess based on comment: Minimal number of moves before castling in Chess960

Note: It appears that separating the rooks by at least 2 squares in between them isn't sufficient based on the 2 examples above. I guess at least 2 squares for the kingside, but at least 3 squares for the queenside.

• Please clarify "if you remove all the pieces besides the king and rook, then you can castle one side without having to move the rook on the other side." If you don't move the rook on the other side, then you haven't moved or removed all the pieces besides the king and rook. Oct 2 '21 at 9:16
• @RosieF thanks. edited: king, rooks (plural) and pawns. clear now? also hopefully the difference between move and remove is clear? or not really? remove is take off from the board or develop. move is the regular move in chess. imagine like regular chess960 setup but there are no knights, bishops, queens. is it legal to castle either side from just the king move right away before 1st moving a rook to clear the path for castling? i mean what is the rest of post saying anyway if not this?
– BCLC
Oct 2 '21 at 11:15
• Please clarify again: QBBNNRKR starting position, you cleared the rank and castle long. The rook moves, but not into the "standard" direction. Shall this case be lumped into "jumps over king" or "doesn't move at all"? Oct 3 '21 at 7:52
• @HaukeReddmann not sure what you mean. QBBNNRKR is excluded from what i want because you cannot castle h-side (short) without moving the a-side rook (long).
– BCLC
Oct 3 '21 at 9:18
• Note that it is always possible to castle on one side without moving the other side rook : Even if it is in the way, it can be taken by a black knight beforehand... Oct 4 '21 at 9:15

Ah well, I can program that in MATHEMATICA in ten minutes, regardless of the details...

``````L = Permutations[{"K", "Q", "R", "R", "B", "B", "N", "N"}]; (* all permutations *)
T1[LL_] := (Position[LL, "R"] // First // First)
< (Position[LL, "K"] // First // First)
< (Position[LL, "R"] // Last // First); (* king between rooks true? *)
T2[LL_] := EvenQ[1 +
(Position[LL, "B"] // First // First) +
(Position[LL, "B"] // Last // First)]; (* unequal colored bishops true? *)
LF = Pick[L, (T1[#] && T2[#]) & /@ L]; (* CURRY STYLE YEAH! *)
(LF//Length) == 960 (* True! *)

GR[LL_] := (Position[LL, "K"] // First // First) < 7; (* OO king right *)
GS[LL_] := (Position[LL, "K"] // First // First) == 7; (* OO king stay *)
GL[LL_] := (Position[LL, "K"] // First // First) > 7; (* OO king left *)
CR[LL_] := (Position[LL, "K"] // First // First) < 3; (* OOO king right *)
CS[LL_] := (Position[LL, "K"] // First // First) == 3; (* OOO king stay *)
CL[LL_] := (Position[LL, "K"] // First // First) > 3; (* OOO king left *)
FR[LL_] := (Position[LL, "R"] // Last // First) < 6; (* OO rook right *)
FS[LL_] := (Position[LL, "R"] // Last // First) == 6; (* OO rook stay *)
FL[LL_] := (Position[LL, "R"] // Last // First) > 6; (* OO rook left *)
DR[LL_] := (Position[LL, "R"] // First // First) < 4; (* OOO rook right *)
DS[LL_] := (Position[LL, "R"] // First // First) == 4; (* OOO rook stay *)
DL[LL_] := (Position[LL, "R"] // First // First) > 4; (* OOO rook left *)

(* now counting we go! *)
{Pick[LF, GR[#] & /@ LF] // Length,
Pick[LF, GS[#] & /@ LF] // Length,
Pick[LF, GL[#] & /@ LF] // Length,
Pick[LF, CR[#] & /@ LF] // Length,
Pick[LF, CS[#] & /@ LF] // Length,
Pick[LF, CL[#] & /@ LF] // Length,
Pick[LF, FR[#] & /@ LF] // Length,
Pick[LF, FS[#] & /@ LF] // Length,
Pick[LF, FL[#] & /@ LF] // Length,
Pick[LF, DR[#] & /@ LF] // Length,
Pick[LF, DS[#] & /@ LF] // Length,
Pick[LF, DL[#] & /@ LF] // Length}

{852, 108, 0, 108, 168, 684, 174, 174, 612, 786, 102, 72}
``````

So you can read off: The "long" rook goes leftwards in 72 cases, stays put in 102 cases and goes rightwards (jumps) in 786 cases. And so on. You can also combine ad libitum:

``````SR[LL_] := (Position[LL, "K"] // First // First) == 6 &&
(Position[LL, "R"] // Last // First) == 7; (* OO in 1st move! *)
SL[LL_] := (Position[LL, "K"] // First // First) == 4 &&
(Position[LL, "R"] // First // First) == 3;(* OOO in 1st move! *)
{Pick[LF, SR[#] & /@ LF] // Length,
Pick[LF, SL[#] & /@ LF] // Length}

{90,72}
``````

And finally, if the right rook stands in the way of castling left or vice versa, this means

``````PR[LL_] := (Position[LL, "R"] // First // First) >= 6; (* left rook must clear at least f to OO *)
PL[LL_] := (Position[LL, "R"] // Last // First) <= 4; (* right rook must clear at least d to OOO *)
{Pick[LF, PR[#] & /@ LF] // Length,
Pick[LF, PL[#] & /@ LF] // Length}

{18,72}
``````

Conclusion: This means one rook obstructs castling with the other in 90 cases.

• (Actually one can do this in the head: on the long side, the right rook has to be at "d" or left to it, giving RKRX,RKXR,RXKR,XRKR, on the short, "f", so only ...XRKR works. Now always one B has 3 and the other 2 spots independently, and on the remaining the Q can be placed on 3 spots. Fill up with N. Altogether thus there are 5x3x2x3=90 positions where you can't castle before moving the other rook away.)
• Nope. 90+72 were added just for fun, here you can castle in the first move. After the 2nd clarification, I think I now understand what you mean. The left rook may stand in the way of castling with the right rook, or vice versa - how often does that happen? I just have to adapt the program a bit, but currently can't access my MATHEMATICA, so I edit that in this evening (hopefully). Oct 3 '21 at 13:20
• 90=90 is more or less accidental :-) Summing up: In 72+18 positions you can't castle without moving the other rook. In 90+72 positions you can castle even in the 1st move (you didn't ask but . Pick[LF, (SR[#] && SL[#]) & /@ LF] // Length==0. i.e. 90+72 don't intersect at all or with 72+18...See also chess.stackexchange.com/questions/25256/… confirming "90" for short castling in the first move. Oct 3 '21 at 17:40
• @BCLC: Exactly. (Being an OTB player who obnoxiously lets his king park in the center anyway, castling rules are irrelevant for me. :-) Oct 3 '21 at 19:05
• @BCLC: Looks good, but before making stats to the 2nd decimal, wait for a larger game corpus :-) (BTW, also consider the variant "no castling chess". I would expect any disallowance or tarrying of castling is to White's advantage, but haven't found a Wiki-able source yet.) Dec 19 '21 at 11:50
• @BCLC: Got an even better idea! Prepend all games with 1.Nf3 2.Rg1 3.Rh1 4.Ng1 etc. in all corners - you get it. (OK, in LiChess Stockfish you can simply delete KQkq in the FEN.) Interesting result: At low depth enthusiasm about 9.d4 (+0.6), but quickly waning at higher depth. Even h4 was in the best 5. Oh wait, d4 is going upward again, while e4 c5 gets -0.1. I always say Sicilian is winning for Black and better stop before Stockfish bursts my bubble :-) Dec 20 '21 at 9:16