QT's idea is a good one.(posted 9558 days ago)As for the programming, it is not too hard. I've thought about it a bit and have come up with the following recipe:
1.
Build your exclude list exclude.dat. It must be manually generated and consists of
a) Excluded games from the last 4 tournaments and their clones
b) Exclude games that don't work or with incomplete romsets
Now in what follows you can either generate a possible game list and knock off the exclusions by hand or you can integrate the exclusions into the selected list of games - gamelist.dat.
2.
If you're running Unix or have Unix tools, the dat file can be generated from MAME via
mame -listfull | tail +2 | awk '{print $1}' | grep -v -x -f exclude.dat > gamelist.dat
This generates a file gamelist.dat of all selectable games for the tournament, one game per line. For those who aren't familiar with Unix, the "tail +2" strips off the header line, "awk '{print $1}'" just retains the 1st field of every record, and the "grep -v -x -f exclude.dat" excludes the games in exclude.dat making sure to match entire lines. If you want to remove clones then just add the "-noclones" parameter to the MAME command. Now associate each game with the line number it is on, e.g. the first game is 1, the second 2, etc.
3.
Now find out how many games there are to select from via
wc -l gamelist.dat
Call this number x.
4.
Finally you just have to roll your x sided dice until you get your y unique numbers (30 or however many you want). You'll probably need a little program here for generating the random numbers. I could knock one up in an hour. I'd create random.exe that takes 2 parameters, x and y and would be run by the command
random x y > numlist.dat
5.
Read off the numbers and corresponding games - might be easier just to make this part of random.exe
If you want to classify the games by genre - e.g. shooter, platform, sports simulations, puzzles etc. then you'd have to generate several lists first (probably by hand since this classification is not build into MAME) and then run your random generation on each list. This of course would be more work.
If may be able to seriously help out on this one if needed (and asked nicely). It could be done in time for the up and coming tournament.
Cheers, Tim