Generate random chess position: Difference between revisions

m
→‎{{header|PicoLisp}}: update PicoLisp
(add PicoLisp)
m (→‎{{header|PicoLisp}}: update PicoLisp)
Line 345:
(nth
*B
(randapply
(if (= "p" P) 9 1)rand
(if (or (= "Pp" P) 56(= 64)"P" P) ) ) ) )
(9 56)
(1 64) ) ) ) ) ) )
(set @@ P) ) ) )
(loop
Line 360 ⟶ 362:
(neib @@@) ) )
(set @@ "k") ) )
(whilesetq *BFEN
(make
(prinl (cut 8 '*B)) )</lang>
(while *B
(let (C 0 Lst (cut 8 '*B))
(prinl Lst)
(link
(make
(for L Lst
(if (= L ".")
(inc 'C)
(and
(gt0 C)
(link (swap 'C 0)) )
(link L) ) )
(and
(gt0 C)
(link C) ) ) ) ) ) ) )
(println (pack (glue "/" *FEN) " w - - 0 1"))</lang>
{{out}}
<pre>
...n.PPb..B
p.p.BQ.PpB.K
B..N.P..QBr
BPpk.p......p
r.PpBrrk
.P..p...
.Pn..B.P.p.
.q..pr..K.
...Q.p..r.
"3n3B/1p1BQ1B1/B2P2Br/p6p/r1PpBrrk/3B1P2/3r2K1/6r1 w - - 0 1"
</pre>
 
298

edits