Fischer Random Shuffle Library

Copying frshuf

Introduction

The Fischer Random Shuffle consists of 960 opening positions, where the pieces on the chess board are arranged in a random pattern according to a set of rules.

frshuf creates a library of subroutines for generating the 960 opening positions for Fischer Random chess. The main subroutine in this library is called shuffle(). This subroutine creates a list of opening positions in random sequence. From this list of opening positions, you can create draw sheets for each round in a tournament, where Fischer Random chess is played. For example, board 1 in each round takes the first position on the list. Board 2 takes the next position on the list. This is repeated until all the boards for each round are assigned.

On the other hand, if you are playing a game against a computer, you can run the frsfen program to generate a list of FEN positions. These FEN positions can be loaded into a chess playing program, one at a time, allowing you to play a game according to the current position.

Frsfen Syntax

The following is an example of frsfen execution.

      frsfen >filename.fen

In this example, filename.fen is the name of a FEN file to load into a computer chess program.

Viewing FEN Diagrams

http://ibiblio.org/pub/linux/games has a package, called fen2ppm. You may use the fen2ppm program to view the FEN diagrams produced by frsfen.

The following is a shell script to view the diagrams.

#!/bin/bash

frsfen |
while read FEN
do
      fen2ppm $FEN | xview stdin
done


Testing the library

tst.sh is a shell script for validating the permutations of the Fischer Random Shuffle. There are no parameters for this shell script. The result should be a one line report showing the number 960. This number indicates that all 960 positions in the permutation are unique.

References

Chess Life (magazine)
March, 2004, page 6.
UPC: 0-73361-64631-6   03

Describes a way of creating a Fischer Random Shuffle position with coin flips.


Network Working Group
Request for Comments: RFC-1321
The MD5 Message-Digest Algorithm
by Professor Ronald L. Rivest
MIT Laboratory for Computer Science
and RSA Data Security, Inc.
April, 1992

md5 is used to hash the randomizing seed in libfrshuf.a.