Commit graph

10 commits

Author SHA1 Message Date
Olivier Teulière
87e1d4795b Sorting the search results happens to be quite slow, often much slower than the search itself.
But we don't need to sort them all the time, and in general we don't even need to keep all the rounds.

This commit greatly improves the search performance by filtering the results in 3 different ways, depending on the context:
 - A limit to the number of results can be given (useful for the training mode). The kept results are the best ones, not the first ones found by the search.
 - When only the best round is needed (when the AI is playing with level 100, or when preparing the rack for an explosive game), we don't need to keep rounds with a lower score
 - When the AI has a level lower than 100, it is still possible to skip many rounds

The search limit in training mode is configurable (defaulting to 100) and can be deactivated.
2009-01-22 18:30:22 +00:00
Olivier Teulière
9e330cf83b In the text interface, display the seed used for the random number generator 2008-11-23 08:33:16 +00:00
Olivier Teulière
e3ef487ebb Sort the search result in a predictible way. The unit tests have been adapted accordingly. 2008-10-16 17:51:16 +00:00
Olivier Teulière
597673e8e5 Fixed an invalid read when sorting the search results and adapted regression scenarii 2008-07-04 19:03:12 +00:00
Olivier Teulière
c7f85ce151 - Search results with the same score are now sorted alphabetically
- Adapted test scenarii for the new order of results
2008-03-03 22:13:58 +00:00
Olivier Teulière
e7a8d01a8d Merged the "cppdic" branch back into HEAD.
There are too many change to list properly, here is an overview of the main changes:
 - the dictionary is now in C++
 - the dictionary has a new format, where it is possible to specify the letters,
   their points, their frequency, ... It is backwards compatible.
 - Eliot now supports non-ASCII characters everywhere
 - i18n of the compdic, listdic, regexpmain binaries
 - i18n of the wxWidgets interface (now in english by default)
2008-01-08 13:52:32 +00:00
Olivier Teulière
9949225b8b Fixed a nasty bug, due to the way jokers are handled 2006-11-05 17:04:39 +00:00
Antoine Fraboulet
f6fa78c32c - driver
add "training_cross" test that checks horizontal scores in board_cross.cpp
    add several load/save tests
    add regexp test

  - Corrections
       training_search.ref : correcting reference file - 5 points instead of 4 on (Eh, En, Es, Ex)
       training_back.ref : sorting order (linked to points bug - insertion order in list)
       duplicate_2_ai.ref : correct score, change the whole game
       freegame_passing.ref : correct score (JEUNE H11 +2 : 45 -> 47)
       freegame_3_ai.ref : correct score 13:CAPEYE+4, 14:VOLETE+3, 16:FULL+2, 17:VIDE+5
2006-01-01 19:25:10 +00:00
Olivier Teulière
f060497e47 Unlike libreadline 4, libreadline 5 echoes the input given with < input_file.
The regression scenarios are now adapted to the behaviour of libreadline 5.
2005-12-24 17:50:11 +00:00
Olivier Teulière
25304bd978 test/*: Added non-regression tests, based on the text interface.
'regression.pl' is the script that runs the regression, and 'drivers' contains
the list of scenario files to be played.
By default, the complete regerssion is played, but you can play specific
scenarios by adding them to the command-line.
Example: ./regression.pl training_bag freegame_change
2005-04-16 15:47:59 +00:00