This dialog box allows the user to set the conditions under which battles are run. Drop-down list boxes provide several pre-defined values for each parameter, but any number may be typed in instead. Numbers may be specified using decimal notation (the default) or hexadecimal (a dollar sign followed by hex digits).
· Core Size can be fixed, staying the same for each round, or random, varying between maximum and minimum values.
o Fixed: Core size can be set to any value from 16 to 134,218,000 (hex $8000000). Note that the core size may be limited by available memory; each Core location requires 12 bytes of RAM.
o Random: The first box becomes the maximum size, and another box appears for the user to type in the minimum size. Note: Warriors are compiled once for each matchup, using the maximum core size. Therefore, warrior source code should not refer to the predefined variable CORESIZE when the core size is set to vary randomly each round.
o Max Cycles: the number of instructions each warrior executes before a battle is declared to be a draw. The maximum number is $80000000.
o Max Processes: the maximum number of live processes each warrior can have. It can be set to any number from 1 to $80000000.
o Max Length: the maximum number of compiled instructions a warrior can have.
o Min Distance: the minimum number of core locations separating any two warriors when they are initially placed into Core.
o Read Limit: the maximum distance over which one instruction may read a value from another memory location. The limit may be given as a fraction of the core size using the drop-down box, or a numerical value may be typed in.
o Write Limit: the maximum distance over which one instruction may write a value to another memory location. The limit may be given as a fraction of the core size using the drop-down box, or a numerical value may be typed in.
o P-space size: the size of the “personal” or “private” memory cache for each warrior, accessible using the STP and LDP instruction codes. The size may be given as a fraction of the core size using the drop-down box, or a numerical value may be typed in.
· Warrior Positions
o At the beginning of each battle, one warrior starts at location 0. The location of the second warrior may be random, fixed (for the first round only) at a location typed into the text box at the bottom, or set to permutate through all possible positions.
o The seed used to set the Random number generator (RNG) can be random, a checksum based on the compiled warrior codes of all warriors, or a fixed number typed into the text box. It is set at the beginning of each tournament.
· The Warrior List shows the list of warriors that will participate in the next tournament. The total number of warriors in the list is shown to the right of the list box.
o New: Brings up an empty Edit Warrior window, where the source code for a new warrior may be typed in.
o Add: Brings up a file browser, where the user may select one or more warriors to add. A warrior list file may also be selected, which will add all the warriors in the list.
o Remove: Select one or more warriors in the list, then click Remove to remove them from the list.
o Remove All: Clears the warrior list.
o Edit: Brings up the Edit Warrior window with the selected warrior.
o Standards: selects which Redcode language standards will be used when compiling warriors.
o Sort list: Sorts the warrior list alphabetically.
o Save list: Saves the warrior list to a text file.
· Initial Instruction
o The instruction that fills empty Core at the beginning of each battle can be set to DAT 0,0 or to any custom instruction. If Random is selected, each empty location of Core is set to a random combination of opcodes, modifiers, modes, and A and B values.
· Tournament options
o Melee: All warriors battle simultaneously. For this tournament type, there is only a single matchup (combination of warriors).
o Round Robin: Each warrior battles every other warrior, one on one. There are N*(N-1)/2 matchups, where N is the number of warriors in the warrior list.
o Challenge: The warrior selected by the drop-down box battles each of the other warriors, one on one. When a new warrior is chosen to be the Challenger, it is moved to the top of the warrior list. There are N-1 matchups.
o Benchmark: Each warrior in the warrior list battles each warrior in the benchmark list. The benchmark may consist of one warrior or a warrior list; selecting the Benchmark radio button brings up a file browser. There are N*B matchups, where B is the number of benchmark warriors.
o “Rounds per matchup” determines how many battles are fought by each matchup.
o To have each warrior battle itself during tournaments, check the Self Fights check box.
o Tip: Before starting a lengthy Round Robin or Challenge tournament, select Melee and click OK to close the Settings dialog. This will compile all warriors, and alert you if any of them fail to compile successfully. If all warriors compile, you may change the tournament type back to Round Robin or Challenge and then start the tournament.
· Save Settings saves the current parameters (including the settings in the Options dialog box) to a configuration file. The warrior list is not saved. Settings may be saved either to the default file, called default.cfg (parameters will be read from this file the next time CoreWin is started), or to a user-specified file, which may be loaded at any later time.
· Load Settings loads all parameters from a configuration file (either the default file or a user-specified file). If the default file does not exist, hard-coded defaults will be used.
· The OK button sets the Core parameters, cancels the current battle, and sets up a new tournament.
· The Cancel button keeps the old parameters and does not disturb the current battle.