eliot/test/driver
Olivier Teulière 3c7a84d543 Support saving/loading games (any game type) in XML format.
Status:
It works well, but there are still a few details to improve/fix

More details about the changes:
 - New dependency on Arabica and Libxml2 to parse the XML
 - Loading the old format is still supported for this release, but won't be supported anymore in the next one
 - Games are now only saved in the new format
 - In training mode, the player is now created externally, like in the other modes
 - Avoid using GameIO (the one from game/) whenever possible
 - Do not use a FILE* argument anymore when loading a game
 - Throw and catch exceptions correctly when a game cannot be loaded or saved
 - The non-regression tests now use a new method to print the game history
2009-11-29 16:01:31 +00:00

110 lines
3.1 KiB
Text

# Each regression scenario must be on one line, with the following syntax:
# scenario_name rand_seed
#
# The rand seed is a number, used to initialize the random numbers generator.
# To each scenario 'scenario' correspond an input file 'scenario.input' and a
# reference file 'scenario.ref'. The regression gives the input file to the
# text interface (along with the rand seed), which generates a 'scenario.run'
# file. This file is then compared to the reference file, and if there is no
# difference the scenario is considered successful.
#
# Everything after a # is ignored.
################
# Training mode
################
# Check various words in the dictionary
training_dict 0 # randseed unused
# Display the tiles remaining in the bag
training_bag 0 # randseed unused
# Enter a rack, then display all the possibilities
training_search 0 # randseed unused
# Display the benjamins for several words
training_benj 0 # randseed unused
# Display the "raccords" for several words
training_racc 0 # randseed unused
# Test the 7 + 1 feature
training_7pl1 0 # randseed unused
# Several ways of getting a rack and playing a word
training_play 0 # randseed unused
# Joker problem on game search
training_rosace 0
# Navigation in the game history
training_navigation 0
# Joker game
training_joker_variant 12
# Explosive game
training_explosive_variant 13
# Board cross off by one score
training_cross 0
# Board cross backward setAny
training_cross2 0
# Board cross backward joker
training_cross3 0
# Search with best word having a joker on the cross-set
training_cross4 0
# Joker problem on game load
training_joker 0
#################
# Duplicate mode
#################
# 2 AI players
duplicate_2_ai 5
# 2 human players, one IA, with manual change of human player
duplicate_humans_ai 6
# Only one player
duplicate_1_player 8
# One complete turn without a valid move
duplicate_invalid_turn 9
# Turn where the only valid move has 0 point
duplicate_no_point 68 # For 2 jokers in the rack
# Navigation in the game history
duplicate_navigation 11
# Joker game
duplicate_joker_variant 14
# Explosive game
duplicate_explosive_variant 15
#################
# Free game mode
#################
# 1 human plays and/or passes
freegame_play 7
# The human player always passes, letting the AI player do what it wants
freegame_passing 1
# 2 human players, changing letters a lot
freegame_change 3
# Three AI players
freegame_3_ai 2
# Navigation in the game history
freegame_navigation 10
# Joker game
freegame_joker_variant 16
# Explosive game
freegame_explosive_variant 17
##############
# Load / Save
##############
# load a standard training game (fumee)
load_game 0
# save and reload a training game, standard format
load_saved_game 0 # randseed unused
# load a training game with advanced format (test.elt)
# load_test_adv 0 # We need to specify a much more complete file format
# before we can handle load/save on duplicate and
# freegame games
#####################
# Regular Expression
#####################
# test some patterns
regexp 0