Redcoders Frenzy   

The Psycho Pair Round

Organiser: Nenad Tomasev



Rules:

Some would say that corewar battle is about winning. Some would say that winning doesn't matter, that it's all about having as much fun as you can. Well, the fun is there, alright :). However, you'll need to do much more if you want to win this round of Redcoders Frenzy Tournament! You'll have to WIN, you'll have to LOSE and you'll HAVE to TIE... in a way, at least... The key to this round lies in finding the balance between the strong and the weak, choosing weak in a unique way, if possible, planning, considering many available options. Slightly unusual battle parameters make it no easier to win. Will you take the challenge?
                       combat properties:
                       ------------------

                       CORESIZE:    8192
                       MAXPROC:     267
                       MAXCYCLES:   100000
                       MAXLENGTH:   267
                       MINDIST:     267
                       NUM. ROUNDS: 600

                       Pspace is not allowed!
Two warriors per author are NECESSARY!!!! (you can't submit only one warrior - read further for explanation) So, it is a tourney hill size, and the number of cycles, in a medium-process enviroment. But there is more... Here is how the battles will be run, and the score calculated: Players will all submit two warriors, but the score of player won't be calculated as the score of the best scoring warrior by that player, but in a different way. Let's say that player X is fighting player Y. Let x1, x2, y1, y2 denote, respectively, the warriors submitted by the first and second player. Let sc_xi_yj denote the number of points, calculated using standard score formula, that warrior xi got when fighting warrior yj. Then this is the score formula used in this round of Redcoder's Frenzy tournament:
k1 equ 1
k2 equ 1.1
k3 equ 1.2
pointsX :=  k1*bestX - k2*worstX - k3*not_similarX
bestX := max{0.5*((sc_x1_y1 - sc_y1_x1) + (sc_x1_y2 - sc_y2_x1)), 0.5*((sc_x2_y1 - sc_y1_x2) + (sc_x2_y2 - sc_y2_x2))}
explanation: bestX is the better of the two averaged differences of scores of your warriors against the opponents warriors
worstX := min{0.5*((sc_x1_y1 - sc_y1_x1) + (sc_x1_y2 - sc_y2_x1)), 0.5*((sc_x2_y1 - sc_y1_x2) + (sc_x2_y2 - sc_y2_x2))}
explanation: worstX is the worse of the two averaged differences of scores of your warriors against the opponents warriors. Notice that if worstX < 0, you gain points!!!! In other words, it is good to have one good warrior that beats the opponent - will contribute to bestX, and one that loses much to your opponent as well!!!!
not_similarX := abs(sc_x1_x2 - sc_x2_x1)
explanation: to prevent people from submiting a good warrior and something like dat 0, 0 that'll lose horribly to the opponent, this final part of the score is introduced. If one of your warriors defeats the other heavily, it will have a negative impact on the score. Also notice that k3 > k2 > k1, so it is, in a way, more important to have warriors that have mutual W% - L% -> 0, than the warrior that loses a lot to the opponent. But, the best combination of these is what will make the winner of this round! Since handshaking in a usual way is impossible due to absence of pspace, it will be up to your skill to come up with a way to achieve this. Also, don't forget that you also need to make a good warrior, to increase your bestX score. Good luck!


Deadline:

The DEADLINE is May, 1st, 2006

You'll be sending your entries to the following addresses:

tomasev at nspoint.net
or
pbrain at cincilator.com