Red Rodgers  

Вернуться   Red Rodgers > Запасная полоса > Матчасть > АвиаСофт

Ответ
 
Опции темы Опции просмотра
Старый 10-11-2005, 11:27   #1
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Разборки с BW

Буду выкладывать тут историю своих разборок с кодом BW Если есть, чем дополнить - просьба не стесняться

файл: badc_gen_2.pl, функция: get_sqdname
параметры: $request

Функция ищет в файле *aircrafts.data директивы, типа "rusfig=176IAP,3IAK,7IAP,4IAP;" или "gerjab=I_LG2,III_KG27a;" и возвращает имя эскадрильи в зависимости от параметра $request.

Например, при $request = "rusfig" и строке "rusfig=176IAP,3IAK,7IAP,4IAP;" в файле *aircrafts.data, функция возвратит одно из названий: "176IAP", "3IAK", "7IAP", "4IAP", выбранное случайным образом.
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 10-11-2005, 11:49   #2
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
файл: badc_gen_2.pl, функция: build_grplsts


Может, конечно, я неправильно понял, но есть забавное условие:
if ($clima>90){ # clima 91..100 : low visibility rain , thunder
$fig_ai_skill=0; # Rookie
#$fig_ai_skill=1; # Average
#$fig_ai_skill=2; # veteran
#$fig_ai_skill=3; # Ace
...

Т.е. если погода жопа, то установить ботов-курсантов
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 10-11-2005, 11:57   #3
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Дефолтный уровень ботов-истребителей ставится в функции build_grplsts (файл badc_gen_2.pl).

Строка:
my $fig_ai_skill=1; # 0=Rookie 1=Normal 2=veteran 3=Ace
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ

Последний раз редактировалось RR_Spiro; 10-11-2005 в 12:32.
RR_Spiro вне форума   Ответить с цитированием
Старый 10-11-2005, 12:27   #4
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Климат в вылете задается двумя способами:
1) можно создать файл clima.txt следующего содержания:
10
6
68
1200


Первая строчка - часы
Вторая строчка - минуты
Третья строчка - погода (от 1 до 100, 100 - шторм)
Четвертая строчка - высота облаков

2) Если такого файла нет, то климат задается автоматически случайным образом в файле badc_gen_2.pl
Время - от 7:00 до 16:59
Погода - от 1 до 97 (шторма не будет)
Высота облаков - от 500 до 1500 метров

Нужные строчки:
$hora=int(rand(10)+7); # hour : 7 ~ 16
$minutos=int(rand(60)); # minutes: 0 ~ 59
$clima=int(rand(98)); #1..97 this is a number to set weather
$nubes=500+(int(rand(10))+1)*100; # 500 .. 1500 clouds
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 10-11-2005, 14:16   #5
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Логика работы функции get_flight (файл badc_gen_2.pl):

1) Если в реквесте задан тип самолета, а такого нет в файле *_aircrafts.data, то функция вываливается с ошибкой

2) Если в реквесте задан нелетабельный тип самолета для игрока, то функция вываливается с ошибкой

3) Если в реквесте не задан тип самолета, и доступен всего один тип, то функция выбирает этот тип и получает имя эскадрильи (get_sqdname)

4) Если в реквесте не задан тип самолета, и доступно несколько типов, то функция подсчитывает количество всех доступных самолетов ($plane_total), случайно выбирает один из них и получает имя эскадрильи

Как я понял, выборка происходит случайным образом, в зависимости от того, что выдаст команда:
my $select=int(rand($plane_total))+1

Т.е. последующий код, в котором этот $select сравнивается с количеством самолетов каждого типа $fly_matrix[$option][6] смысловой нагрузки особо не несет, потому что все зависит от того, чему будет равно значение $select.
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 10-11-2005, 14:32   #6
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Добавить перевод брифингов можно в функции print_briefing (файл badc_gen_2.pl).
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 11-11-2005, 11:59   #7
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Файл badc_gen_2.pl

Строчки:

if ($red_target =~ m/SUM-/ && $red_bom_attk_ai==1 && $red_bom_attk_type ne "Li-2" && $red_bom_attk_type ne "TB3-4M-34R")
{
$red_bom_attk_type="Li-2";
print GEN_LOG "Pid $$ : Red Ai suply set to Li-2\n";
}


задают Ли-2 по дефолту в качестве саплая для красных ботов.

Строчки:

if ($blue_target =~ m/SUM-/ && $blue_bom_attk_ai==1 && $blue_bom_attk_type ne "JU-52" && $blue_bom_attk_type ne "ME-323")
{
$blue_bom_attk_type="JU-52";
print GEN_LOG "Pid $$ : Blue Ai suply set to blue_bom_attk_type\n";
}


задают Ju-52 по дефолту в качестве саплая для синих ботов.
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 14-11-2005, 12:00   #8
RR_Flash
Добрый Начуч
Администратор
 
Аватар для RR_Flash
 
Регистрация: Jul 2004
Адрес: Пермь, Россия
Сообщений: 3,091
Был вопрос, как в миссии снабжения рассчитывается уменьшение повреждений города, если миссия осуществляется живыми пилотами.
Вот формула: int(rand(3))+5
То есть случайным образом, минимум 5%, максимум 8% для каждого пилота.

Для ботов начисляется всегда по 3% за каждого выжившего.
__________________
Too old to rock 'n' roll: too young to die!
RR_Flash вне форума   Ответить с цитированием
Старый 14-11-2005, 13:27   #9
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Уровень ботов-бомберов и ботов-штурмов в движке bw указан не переменной (нефик ее искать ), а просто вбит напрямую в функции build_grplsts (файл badc_gen_2.pl),в строчках типа:

push(@red_def_grplst, "BD",$sqdname."00",$red_bom_def_planes,$red_bom_de f_ai,"2",@vuelo);

Предпоследний аргумент как раз и означает уровень для бота:
"0" - Курсант
"1" - Нормальный
"2" - Ветеран
"3" - Ас
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 27-11-2005, 14:48   #10
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Однако ИМХО процедура выборки самолета должна быть примерно такой:

Код:
def select_plane(queue):
        count=0
        for n in range(len(queue)):
                count+=queue[n]

        rnd = random.randint(1, count)

        next=0
        for n in range(len(queue)):
                if next > rnd:
                        return n
                else:
                        next+=queue[n]

        return n

В queue передается список количества самолетов, что-то типа:

queue = [90, 2, 1, 5, 1, 1]

Но выходе получаем индекс самолета. В данном случае функция почти всегда будет возвращать 1 (кол-во 90, т.е. самый распространенный самолет).

Вот результат прогона после 100 вызовов:
1 1 1 1 1 2 1 1 5 1 1 1 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 4
1 5 1 1 1 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1
1 4 2 1 1 1 1 1 1 1 5 1 1

P.s. написано на Питоне, из-за отсутствия Перла дома, на работе переведу
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 03-02-2006, 13:32   #11
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Тесты плейнсета

Это для красной армии, нелетабельные крафты для типа задачи "I"
Plane: LaGG-3IT => 128
Plane: P-40E => 5
Plane: MIG-3UD => 72
Plane: Hurricane-MkIIb-Fmod => 28
Plane: MIG-3UB => 86
Plane: LA-5 => 10
Plane: P40-M => 82
Plane: Yak-1 => 11
Plane: Yak-7B => 84
Plane: LaGG-3S29 => 93
Plane: Yak-9 => 178
Plane: Yak-1B => 110
Plane: LaGG-3S35 => 99
Plane: Mig3-ShvaK => 14

А это тоже самое, но крафты летабельные:
Plane: LaGG-3IT => 114
Plane: P-40E => 4
Plane: Hurricane-MkIIb-Fmod => 30
Plane: MIG-3UD => 102
Plane: MIG-3UB => 82
Plane: LA-5 => 14
Plane: P40-M => 70
Plane: Yak-1 => 16
Plane: Yak-7B => 107
Plane: LaGG-3S29 => 70
Plane: Yak-9 => 147
Plane: Yak-1B => 116
Plane: LaGG-3S35 => 110
Plane: Mig3-ShvaK => 18
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 03-02-2006, 15:18   #12
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
[vladimir@vladimir unit-tests]$ ./get_flight.pl
=================Test Start=================
Test set: army: 1, task: BD, humn: 0

Plane: I-16t24 => 16
Plane: P-40E => 32
Plane: I-153-M62 => 4
Plane: P40-M => 22
Plane: PE-3BIS => 15
Plane: IL2 series3 => 4
Plane: IL-2M Early 1942 => 3
Plane: IL-2M Late 1942 => 18
Plane: IL-2 Field Mod => 89
Plane: I-153P => 797
=================Test End=================
=================Test Start=================
Test set: army: 1, task: BD, humn: 1

Plane: I-16t24 => 15
Plane: P-40E => 41
Plane: I-153-M62 => 14
Plane: P40-M => 21
Plane: IL-2M Early 1942 => 2
Plane: IL-2M Late 1942 => 19
Plane: IL-2 Field Mod => 91
Plane: I-153P => 797
=================Test End=================
=================Test Start=================
Test set: army: 1, task: I, humn: 0

Plane: LaGG-3IT => 120
Plane: P-40E => 6
Plane: Hurricane-MkIIb-Fmod => 25
Plane: MIG-3UD => 106
Plane: MIG-3UB => 80
Plane: LA-5 => 12
Plane: P40-M => 69
Plane: Yak-1 => 12
Plane: Yak-7B => 88
Plane: LaGG-3S29 => 84
Plane: Yak-9 => 162
Plane: Yak-1B => 119
Plane: LaGG-3S35 => 94
Plane: Mig3-ShvaK => 23
=================Test End=================
=================Test Start=================
Test set: army: 1, task: I, humn: 1

Plane: LaGG-3IT => 128
Plane: P-40E => 3
Plane: Hurricane-MkIIb-Fmod => 33
Plane: MIG-3UD => 79
Plane: MIG-3UB => 83
Plane: LA-5 => 13
Plane: P40-M => 78
Plane: Yak-1 => 16
Plane: Yak-7B => 108
Plane: LaGG-3S29 => 71
Plane: Yak-9 => 159
Plane: Yak-1B => 129
Plane: LaGG-3S35 => 88
Plane: Mig3-ShvaK => 12
=================Test End=================
=================Test Start=================
Test set: army: 1, task: EBD, humn: 0

Plane: LaGG-3IT => 107
Plane: P-40E => 7
Plane: I-16t24 => 22
Plane: MIG-3UD => 80
Plane: Hurricane-MkIIb-Fmod => 158
Plane: MIG-3UB => 61
Plane: LA-5 => 8
Plane: P40-M => 71
Plane: Yak-1 => 16
Plane: Yak-7B => 61
Plane: LaGG-3S29 => 77
Plane: Yak-9 => 150
Plane: Yak-1B => 85
Plane: LaGG-3S35 => 81
Plane: Mig3-ShvaK => 16
=================Test End=================
=================Test Start=================
Test set: army: 1, task: EBD, humn: 1

Plane: LaGG-3IT => 84
Plane: I-16t24 => 21
Plane: P-40E => 8
Plane: Hurricane-MkIIb-Fmod => 173
Plane: MIG-3UD => 83
Plane: MIG-3UB => 64
Plane: LA-5 => 17
Plane: P40-M => 66
Plane: Yak-7B => 73
Plane: Yak-1 => 12
Plane: LaGG-3S29 => 77
Plane: Yak-9 => 125
Plane: Yak-1B => 107
Plane: LaGG-3S35 => 63
Plane: Mig3-ShvaK => 27
=================Test End=================
=================Test Start=================
Test set: army: 1, task: BA, humn: 0

Plane: PE-2 S110 => 13
Plane: SB2-M103 => 15
Plane: PE-3BIS => 117
Plane: IL-4-DB3B => 31
Plane: IL-2M Early 1942 => 14
Plane: TB3-4M-34R => 15
Plane: IL2 series3 => 9
Plane: IL-2M Late 1942 => 123
Plane: IL-2 Field Mod => 500
Plane: B-25J1 => 74
Plane: PE-2 S84 => 89
=================Test End=================
=================Test Start=================
Test set: army: 1, task: BA, humn: 1

Plane: IL2 series3 => 14
Plane: TB3-4M-34R => 100
Plane: IL-2M Early 1942 => 27
Plane: IL-2M Late 1942 => 173
Plane: IL-2 Field Mod => 686
=================Test End=================
=================Test Start=================
Test set: army: 1, task: R, humn: 0

Plane: Not found => 1000
=================Test End=================
=================Test Start=================
Test set: army: 1, task: R, humn: 1

Plane: Not found => 1000
=================Test End=================
=================Test Start=================
Test set: army: 1, task: ET, humn: 0

Plane: LaGG-3IT => 105
Plane: P-40E => 5
Plane: I-16t24 => 22
Plane: MIG-3UD => 89
Plane: Hurricane-MkIIb-Fmod => 136
Plane: MIG-3UB => 74
Plane: LA-5 => 15
Plane: P40-M => 72
Plane: Yak-1 => 7
Plane: Yak-7B => 76
Plane: LaGG-3S29 => 78
Plane: Yak-9 => 125
Plane: Yak-1B => 109
Plane: LaGG-3S35 => 67
Plane: Mig3-ShvaK => 20
=================Test End=================
=================Test Start=================
Test set: army: 1, task: ET, humn: 1

Plane: LaGG-3IT => 94
Plane: I-16t24 => 23
Plane: P-40E => 8
Plane: MIG-3UD => 69
Plane: Hurricane-MkIIb-Fmod => 158
Plane: MIG-3UB => 56
Plane: LA-5 => 13
Plane: P40-M => 61
Plane: Yak-1 => 10
Plane: Yak-7B => 86
Plane: LaGG-3S29 => 75
Plane: Yak-9 => 152
Plane: Yak-1B => 107
Plane: LaGG-3S35 => 76
Plane: Mig3-ShvaK => 12
=================Test End=================
=================Test Start=================
Test set: army: 1, task: EBR, humn: 0

Plane: Not found => 1000
=================Test End=================
=================Test Start=================
Test set: army: 1, task: EBR, humn: 1

Plane: Not found => 1000
=================Test End=================
=================Test Start=================
Test set: army: 1, task: EBA, humn: 0

Plane: LaGG-3IT => 103
Plane: P-40E => 4
Plane: I-16t24 => 24
Plane: MIG-3UD => 85
Plane: MIG-3UB => 83
Plane: LA-5 => 8
Plane: P40-M => 75
Plane: Hurricane-MkIIb-FMod => 146
Plane: Yak-1 => 18
Plane: Yak-7B => 73
Plane: LaGG-3S29 => 77
Plane: Yak-9 => 117
Plane: Yak-1B => 94
Plane: LaGG-3S35 => 79
Plane: Mig3-ShvaK => 14
=================Test End=================
=================Test Start=================
Test set: army: 1, task: EBA, humn: 1

Plane: LaGG-3IT => 102
Plane: P-40E => 9
Plane: I-16t24 => 23
Plane: MIG-3UD => 80
Plane: MIG-3UB => 75
Plane: LA-5 => 13
Plane: P40-M => 63
Plane: Hurricane-MkIIb-FMod => 146
Plane: Yak-7B => 73
Plane: Yak-1 => 13
Plane: LaGG-3S29 => 76
Plane: Yak-9 => 128
Plane: Yak-1B => 106
Plane: LaGG-3S35 => 80
Plane: Mig3-ShvaK => 13
=================Test End=================
=================Test Start=================
Test set: army: 1, task: ESU, humn: 0

Plane: LaGG-3IT => 87
Plane: P-40E => 6
Plane: I-16t24 => 20
Plane: MIG-3UD => 70
Plane: MIG-3UB => 64
Plane: LA-5 => 19
Plane: P40-M => 88
Plane: Hurricane-MkIIb-FMod => 160
Plane: Yak-7B => 86
Plane: Yak-1 => 17
Plane: LaGG-3S29 => 73
Plane: Yak-9 => 128
Plane: Yak-1B => 99
Plane: LaGG-3S35 => 72
Plane: Mig3-ShvaK => 11
=================Test End=================
=================Test Start=================
Test set: army: 1, task: ESU, humn: 1

Plane: LaGG-3IT => 94
Plane: P-40E => 2
Plane: I-16t24 => 23
Plane: MIG-3UD => 72
Plane: MIG-3UB => 68
Plane: LA-5 => 13
Plane: P40-M => 70
Plane: Hurricane-MkIIb-FMod => 152
Plane: Yak-1 => 13
Plane: Yak-7B => 86
Plane: LaGG-3S29 => 72
Plane: Yak-9 => 145
Plane: Yak-1B => 101
Plane: LaGG-3S35 => 70
Plane: Mig3-ShvaK => 19
=================Test End=================
=================Test Start=================
Test set: army: 2, task: BD, humn: 0

Plane: BF-110C4B => 221
Plane: JU-87B2 => 102
Plane: JU-87D3 => 70
Plane: BF-109E7B => 607
=================Test End=================
=================Test Start=================
Test set: army: 2, task: BD, humn: 1

Plane: JU-87B2 => 210
Plane: JU-87D3 => 86
Plane: BF-109E7B => 704
=================Test End=================
=================Test Start=================
Test set: army: 2, task: I, humn: 0

Plane: BF-109G2 => 157
Plane: BF-109F4 => 843
=================Test End=================
=================Test Start=================
Test set: army: 2, task: I, humn: 1

Plane: BF-109G2 => 126
Plane: BF-109F4 => 874
=================Test End=================
=================Test Start=================
Test set: army: 2, task: EBD, humn: 0

Plane: BF-109G2 => 133
Plane: BF-109F4 => 867
=================Test End=================
=================Test Start=================
Test set: army: 2, task: EBD, humn: 1

Plane: BF-109G2 => 146
Plane: BF-109F4 => 854
=================Test End=================
=================Test Start=================
Test set: army: 2, task: BA, humn: 0

Plane: HE-111H2 => 63
Plane: JU-88A4 => 295
Plane: HE-111H6 => 66
Plane: BF-110C4B => 277
Plane: JU-87B2 => 239
Plane: JU-87D3 => 60
=================Test End=================
=================Test Start=================
Test set: army: 2, task: BA, humn: 1

Plane: HE-111H2 => 385
Plane: HE-111H6 => 80
Plane: JU-87B2 => 458
Plane: JU-87D3 => 77
=================Test End=================
=================Test Start=================
Test set: army: 2, task: R, humn: 0

Plane: Not found => 1000
=================Test End=================
=================Test Start=================
Test set: army: 2, task: R, humn: 1

Plane: Not found => 1000
=================Test End=================
=================Test Start=================
Test set: army: 2, task: ET, humn: 0

Plane: BF-109G2 => 90
Plane: BF-109E7B => 717
Plane: BF-109F4 => 193
=================Test End=================
=================Test Start=================
Test set: army: 2, task: ET, humn: 1

Plane: BF-109G2 => 87
Plane: BF-109E7B => 729
Plane: BF-109F4 => 184
=================Test End=================
=================Test Start=================
Test set: army: 2, task: EBR, humn: 0

Plane: Not found => 1000
=================Test End=================
=================Test Start=================
Test set: army: 2, task: EBR, humn: 1

Plane: Not found => 1000
=================Test End=================
=================Test Start=================
Test set: army: 2, task: EBA, humn: 0

Plane: BF-109G2 => 122
Plane: BF-109F4 => 878
=================Test End=================
=================Test Start=================
Test set: army: 2, task: EBA, humn: 1

Plane: BF-109G2 => 158
Plane: BF-109F4 => 842
=================Test End=================
=================Test Start=================
Test set: army: 2, task: ESU, humn: 0

Plane: BF-109G2 => 156
Plane: BF-109F4 => 844
=================Test End=================
=================Test Start=================
Test set: army: 2, task: ESU, humn: 1

Plane: BF-109G2 => 151
Plane: BF-109F4 => 849
=================Test End=================
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 03-02-2006, 15:46   #13
RR_Flash
Добрый Начуч
Администратор
 
Аватар для RR_Flash
 
Регистрация: Jul 2004
Адрес: Пермь, Россия
Сообщений: 3,091
Это у тебя с тем генератором и плэйнсетом, что я тебе прислал?
__________________
Too old to rock 'n' roll: too young to die!
RR_Flash вне форума   Ответить с цитированием
Старый 03-02-2006, 17:01   #14
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Да, плейнсет перекодирован.
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 12-05-2006, 16:15   #15
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Файл badc_par_2.pl, функция print_mis_objetive_result. Похоже, что в ней забито время на атаку сектора (40 минут) и количество танков, которое надо уничтожить (7), чтобы сектор считался захваченным:

Время на атаку:
Код:
if ( (get_segundos($1)-get_segundos($stime_str))  <= 2400 ){ # 40 minutos
Количество танков:
Код:
$tank_dead_limit=7;
Там еще есть одно непонятное условие, при котором количество танков может уменьшаться до 4-х:
Код:
if ($2==1 || $1>=$TTL_SUPPLYED) { # CON suministro                 
        $tank_dead_limit=4; # matan 5 taques y no se gana el sector
}
Правда я пока что хз, что это такое
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 14-01-2008, 02:00   #16
RR_Joy
불친절한 한국어 사기꾼™ True хохол
Администратор
 
Аватар для RR_Joy
 
Регистрация: Jul 2004
Адрес: 54°43' с.ш. 20°30' в.д.
Сообщений: 7,246
Цитата:
Сообщение от RR_Spiro Посмотреть сообщение
Однако ИМХО процедура выборки самолета должна быть примерно такой:

Код:
def select_plane(queue):
        count=0
        for n in range(len(queue)):
                count+=queue[n]

        rnd = random.randint(1, count)

        next=0
        for n in range(len(queue)):
                if next > rnd:
                        return n
                else:
                        next+=queue[n]

        return n
В queue передается список количества самолетов, что-то типа:

queue = [90, 2, 1, 5, 1, 1]

Но выходе получаем индекс самолета. В данном случае функция почти всегда будет возвращать 1 (кол-во 90, т.е. самый распространенный самолет).

Вот результат прогона после 100 вызовов:
1 1 1 1 1 2 1 1 5 1 1 1 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 4
1 5 1 1 1 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1
1 4 2 1 1 1 1 1 1 1 5 1 1

P.s. написано на Питоне, из-за отсутствия Перла дома, на работе переведу
Нуна на перле
__________________
DAAAAAAHHHH!!!
Админ, прежде всего - Царь и Бог, а потом уже читак и п***рас © bash.org.ru

RR_Joy вне форума   Ответить с цитированием
Старый 14-01-2008, 09:08   #17
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Уже должно быть в движке, я туда этот кусок запихивал.
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 14-01-2008, 11:29   #18
RR_Joy
불친절한 한국어 사기꾼™ True хохол
Администратор
 
Аватар для RR_Joy
 
Регистрация: Jul 2004
Адрес: 54°43' с.ш. 20°30' в.д.
Сообщений: 7,246
это не функция get_flight?
кстати, ты говорил ее отдельно можно прогнать - как?
__________________
DAAAAAAHHHH!!!
Админ, прежде всего - Царь и Бог, а потом уже читак и п***рас © bash.org.ru

RR_Joy вне форума   Ответить с цитированием
Старый 14-01-2008, 14:56   #19
RR_Spiro
Flying Officer
 
Аватар для RR_Spiro
 
Регистрация: Mar 2005
Сообщений: 831
Ага, она. Глянь если в коде есть русские коменты, то моя.

Для тестов есть отдельный скрипт - get_flight.pl. Рядом с этим скриптом надо положить файлик planes.data, со списком самолетов. Потом просто запустить, он выдаст результаты в читабельном виде. Наверное
Вложения
Тип файла: txt get_flight.pl.txt (5.8 Кб, 402 просмотров)
__________________
Мотайте это себе на усы! У кого нет усов - мотайте на уши, вырастут усы - перемотаете!



ҕљяҭҍ ӑḡңӥ ҟӓҫяқų ҥӑҳ
RR_Spiro вне форума   Ответить с цитированием
Старый 15-01-2008, 22:03   #20
RR_Joy
불친절한 한국어 사기꾼™ True хохол
Администратор
 
Аватар для RR_Joy
 
Регистрация: Jul 2004
Адрес: 54°43' с.ш. 20°30' в.д.
Сообщений: 7,246
Цитата:
Сообщение от RR_Spiro Посмотреть сообщение
Ага, она. Глянь если в коде есть русские коменты, то моя.

Для тестов есть отдельный скрипт - get_flight.pl. Рядом с этим скриптом надо положить файлик planes.data, со списком самолетов. Потом просто запустить, он выдаст результаты в читабельном виде. Наверное %)
Работает, но криво, ибо зависимость явно линейная от положения крафта в списке *.data (не по проценту), из которого потом рандомно выбирается крафт.
Немного поколдовал, сделал гибрид из твоего скрипта и оригинального генератора. Вроде пашет в соответствии с прописанными шансами на выпадение в файле *.data. Потестим на войне.
Вложения
Тип файла: txt get_flight_Joy.pl.txt (4.9 Кб, 416 просмотров)
__________________
DAAAAAAHHHH!!!
Админ, прежде всего - Царь и Бог, а потом уже читак и п***рас © bash.org.ru

RR_Joy вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:52.


Red Rodgers official site. Powered by TraFFa. ©2000 - 2018, Red Rodgers
vBulletin Version 3.8.11. Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot