No geral, isso parece beneficiar o primeiro jogador, mas depende de como você o mede.
Eu pensei em modelar isso programaticamente, pois será um pouco mais flexível do que usar o AnyDice. Eu escrevi um script que realiza o processo um grande número de vezes e calcula a média dos valores para cada jogador.
A principal dificuldade aqui é como você realmente interpreta os dados: o que faz com que um array de habilidades seja melhor que outro? Existem várias maneiras de julgar isso. Vou incluir alguns valores para métodos diferentes.
Total de todas as pontuações de habilidades
Jogador 1 tem valor médio de pontuação de habilidade 72.95522.
O jogador 2 tem um valor médio de pontuação de habilidade 73.43975.
O jogador 3 tem o valor médio de pontuação de habilidade 73.64131.
O jogador 4 tem um valor médio de pontuação de habilidade 73.72761.
Veredicto: Posteriormente, na ordem, é melhor
Total de todas as pontuações de habilidades, exceto a mais baixa
Jogador 1 tem valor médio de pontuação de habilidade 66.49585.
Jogador 2 tem valor médio de pontuação de habilidade 65.71347.
O jogador 3 tem um valor médio de pontuação de habilidade 65.10333.
O jogador 4 tem um valor médio de pontuação de habilidade de 64,57315.
Veredicto: Ser mais cedo na ordem é melhor
O total de pontos compra o custo de todas as pontuações de habilidade
(Eu usei pontos inventados para comprar números para números fora do intervalo permitido normal: 18 = 19, 17 = 15, 16 = 12, 6-7 = -1, 4-5 = -2, 3 = -1)
Jogador 1 tem valor médio de pontuação de habilidade 33.43838.
O jogador 2 tem um valor médio de pontuação de habilidade 31.80692.
O jogador 3 tem um valor médio de pontuação de habilidade de 31,00389.
O jogador 4 tem um valor médio de pontuação de habilidade de 30,64647.
Veredicto: Ser mais cedo na ordem é melhor
O total de pontos compra o custo de todas as pontuações de habilidade, exceto a mais baixa
Jogador 1 tem valor médio de pontuação de habilidade 34,33727.
O jogador 2 tem um valor médio de pontuação de habilidade de 31.88918.
O jogador 3 tem um valor médio de pontuação de habilidade de 30,39722.
O jogador 4 tem um valor médio de pontuação de habilidade de 29.45149.
Veredicto: Ser mais cedo na ordem é muito melhor
Eu incluí meu horrível código amador aqui para que você possa testá-lo.
#!/usr/bin/perl
use strict;
use warnings;
use List::Util qw(sum);
use Data::Dumper;
use POSIX;
use 5.010;
my $die_size = 6;
my $number_of_dice = 4;
my $number_of_players = 4;
my $number_of_runs = 10000;
sub get_single_ability_score {
my @rolls;
for (1..$number_of_dice) {
my $roll = 1 + int rand($die_size);
push @rolls, $roll;
}
@rolls = sort {$a <=> $b} @rolls;
for (1..$number_of_dice - 3) {
shift @rolls;
}
my $ability_score = sum(@rolls);
return $ability_score;
}
sub get_total_values {
my @group_ability_scores;
for (1..$number_of_players * 6) {
push @group_ability_scores, get_single_ability_score();
}
@group_ability_scores = sort { $b <=> $a } @group_ability_scores;
my @player_order = (1..$number_of_players);
my @reverse_player_order = sort { $b <=> $a } @player_order;
@player_order = (@player_order, @reverse_player_order, @player_order, @reverse_player_order, @player_order, @reverse_player_order);
my @player_ability_scores;
foreach my $player (@player_order) {
my @ability_scores;
my $chosen_ability_score = shift @group_ability_scores;
push @ability_scores, $chosen_ability_score;
push @{ $player_ability_scores[$player-1] }, @ability_scores;
}
my @total_values;
foreach my $player (1..$number_of_players) {
my @ability_scores = sort { $a <=> $b } @{ $player_ability_scores[$player-1] };
my $total_value = 0;
shift @ability_scores; # One dump stat is fine so discard the lowest ability score
foreach my $ability_score (@ability_scores) {
#$total_value += $ability_score; # Uses the score as the value
#$total_value += floor(($ability_score - 10) / 2); # Uses the modifier as the value
given ($ability_score) {
when ($_ == 18) {$total_value += 19}
when ($_ == 17) {$total_value += 15}
when ($_ == 16) {$total_value += 12}
when ($_ == 15) {$total_value += 9}
when ($_ == 14) {$total_value += 7}
when ($_ == 13) {$total_value += 5}
when ($_ == 12) {$total_value += 4}
when ($_ == 11) {$total_value += 3}
when ($_ == 10) {$total_value += 2}
when ($_ == 9) {$total_value += 1}
when ($_ == 8) {$total_value += 0}
when ($_ == 7) {$total_value += -1}
when ($_ == 6) {$total_value += -2}
when ($_ == 5) {$total_value += -3}
when ($_ == 4) {$total_value += -4}
when ($_ == 3) {$total_value += -5}
}
}
push @total_values, $total_value;
}
return @total_values;
}
my @all_values;
for (1..$number_of_runs) {
my @total_values = get_total_values();
foreach my $player (1..$number_of_players) {
push @{ $all_values[$player-1] }, $total_values[$player-1];
}
}
for my $player (1..$number_of_players) {
my $total_value;
foreach my $value (@{ $all_values[$player-1] }) {
$total_value += $value;
}
my $mean_value = $total_value / $number_of_runs;
print "Player $player has mean ability score value $mean_value.\n";
}