18 lines
753 B
Plaintext
18 lines
753 B
Plaintext
g = ConstantArray["", {8, 8}];
|
|
While[Norm@First@Differences[r = RandomChoice[Tuples[Range[8], 2], 2]] <= Sqrt[2], Null];
|
|
g = ReplacePart[g, {r[[1]] -> "K", r[[2]] -> "k"}];
|
|
avail = Position[g, "", {2}];
|
|
n = RandomInteger[{2, 14}];
|
|
rls = Thread[RandomSample[avail, n] -> RandomChoice[Characters@"NBRQnbrq", n]];
|
|
g = ReplacePart[g, rls];
|
|
avail = RandomSample[DeleteCases[Position[g, "", {2}], {8, _}], RandomInteger[{2, 8}]];
|
|
g = ReplacePart[g, Thread[avail -> "P"]];
|
|
avail = RandomSample[DeleteCases[Position[g, "", {2}], {1, _}], RandomInteger[{2, 8}]];
|
|
g = ReplacePart[g, Thread[avail -> "p"]];
|
|
g //= Map[Split];
|
|
g = g /. (x : {"" ..}) :> ToString[Length[x]];
|
|
g //= Map[StringJoin@*Flatten];
|
|
g = StringRiffle[Reverse[g], "/"];
|
|
g = g <> " w - - 0 1";
|
|
g
|