форум программистов


Организатор конкурса - Форум программистов programmersforum.ru

20 Май 2010 | Автор: admin

Итак, наконец-то пришло время подведения итогов первого этапа конкурса на создание лучшего бота для игры Fortress 2. Всю информацию об игре можно найти на этом же сайте. Обсуждение игры здесь.
Были присланы следующие боты
uBot (evgn)
MakpoBupyc(Somebody)
Serg2252 bot v1.3 (Serg2252)
Alar_v55 (Alar)
GanaBot (Murmecis)
Crusader v2.1.8 (rpy3uH)
(Скачать пароль : crusader-super-bot)

Итак, начнём с тестирования с SimpleBot v1.2

uBot vs SimpleBot v1.2 (Pascal)
Первый игрок : uBot
Второй игрок : SimpleBot v1.2 (Pascal)
Количество игр: 10000
uBot : количество побед 9798
SimpleBot v1.2 (Pascal) : количество побед 202
Количество ничей 0

MakpoBupyc vs SimpleBot v1.2 (Pascal)

Первый игрок : MakpoBupyc
Второй игрок : SimpleBot v1.2 (Pascal)
Количество игр: 10000
MakpoBupyc : количество побед 9580
SimpleBot v1.2 (Pascal) : количество побед 420
Количество ничей 0
MakpoBupyc : количество ошибок 0
SimpleBot v1.2 (Pascal) : количество ошибок 0

Serg2252 bot v1.3 vs SimpleBot v1.2 (Pascal)

Первый игрок : Serg2252 bot v1.3
Второй игрок : SimpleBot v1.2 (Pascal)
Количество игр: 10000
Serg2252 bot v1.3 : количество побед 9019
SimpleBot v1.2 (Pascal) : количество побед 981
Количество ничей 0

Alar_v55 vs SimpleBot v1.2 (Pascal)

Первый игрок : Alar_v55
Второй игрок : SimpleBot v1.2 (Pascal)
Количество игр: 10000
Alar_v55 : количество побед 10000
SimpleBot v1.2 (Pascal) : количество побед 0
Количество ничей 0

GanaBot vs SimpleBot v1.2 (Pascal)

Первый игрок : GanaBot
Второй игрок : SimpleBot v1.2 (Pascal)
Количество игр: 10000
GanaBot : количество побед 9727
SimpleBot v1.2 (Pascal) : количество побед 211
Количество ничей 62

Crusader v2.1.8 vs SimpleBot v1.2 (Pascal)

Первый игрок : Crusader v2.1.8
Второй игрок : SimpleBot v1.2 (Pascal)
Количество игр: 10000
Crusader v2.1.8 : количество побед 8557
SimpleBot v1.2 (Pascal) : количество побед 1429
Количество ничей 14

Итак, преимущество каждого бота очевидно, у всех кроме Crusader v2.1.8 более 90% побед.

Все боты против SimpleBot v1.2 (Pascal) одинаково хороши. Теперь битвы ботов друг с другом. Битвы будут происходить по групповой системе, каждый с каждым, за победу 1 очко. Итак начнём.

uBot vs MakpoBupyc

Первый игрок : uBot
Второй игрок : MakpoBupyc
Количество игр: 10000
uBot : количество побед 355
MakpoBupyc : количество побед 9645
Количество ничей 0

Победа «макровируса» очевидна. Более 95% побед.

uBot vs Serg2252 bot v1.3

Первый игрок : uBot
Второй игрок : Serg2252 bot v1.3
Количество игр: 10000
uBot : количество побед 3373
Serg2252 bot v1.3 : количество побед 6627
Количество ничей 0

Победа Serg2252 bot v1.3 бесспорна, более 66% побед.

uBot vs Alar_v55

Первый игрок : uBot
Второй игрок : Alar_v55
Количество игр: 10000
uBot : количество побед 0
Alar_v55 : количество побед 10000
Количество ничей 0

Alar_v55 — стопроцентная победа!

uBot vs GanaBot

Первый игрок : uBot
Второй игрок : GanaBot
Количество игр: 10000
uBot : количество побед 0
GanaBot : количество побед 10000
Количество ничей 0

GanaBot тоже на все 100% справился в uBot’ом

uBot vs Crusader v2.1.8

Первый игрок : uBot
Второй игрок : Crusader v2.1.8
Количество игр: 10000
uBot : количество побед 1827
Crusader v2.1.8 : количество побед 8165
Количество ничей 8

Crusader v2.1.8 победил получив 81% побед и сыграв в ничью чуть менее 1%.

После первого круга Турнирная таблица выглядит следующим образом. Все получили по одному очку кроме uBot. Так как он больше не будет принимать участия ни в одной битве он занимает последнее место в нулевым результатом.

MakpoBupyc -1
Serg2252 bot v1.3 -1
Alar_v55 -1
GanaBot -1
Crusader v2.1.8 -1
uBot — 0

MakpoBupyc vs Serg2252 bot v1.3

Первый игрок : MakpoBupyc
Второй игрок : Serg2252 bot v1.3
Количество игр: 10000
MakpoBupyc : количество побед 9286
Serg2252 bot v1.3 : количество побед 714
Количество ничей 0

MakpoBupyc выигрывает более чем в 90% игр.

MakpoBupyc vs Alar_v55

Первый игрок : MakpoBupyc
Второй игрок : Alar_v55
Количество игр: 10000
MakpoBupyc : количество побед 4680
Alar_v55 : количество побед 5245
Количество ничей 75

Alar_v55 выигрывает с минимальным перевесом — 52% побед. Следует отметить что встретились два достойных соперника.

MakpoBupyc vs GanaBot

Первый игрок : MakpoBupyc
Второй игрок : GanaBot
Количество игр: 10000
MakpoBupyc : количество побед 9595
GanaBot : количество побед 405
Количество ничей 0

Снова MakpoBupyc на высоте — более 95% побед.

MakpoBupyc vs Crusader v2.1.8

Первый игрок : MakpoBupyc
Второй игрок : Crusader v2.1.8
Количество игр: 10000
MakpoBupyc : количество побед 3895
Crusader v2.1.8 : количество побед 6083
Количество ничей 22

Процент побед «крестоносца» 60%. MakpoBupyc снова встретился с сильным сопротивлением.

Итак, второй круг прошёл, как выглядит турнирная таблица?

MakpoBupyc -3
Alar_v55 -2
Crusader v2.1.8 -2
Serg2252 bot v1.3 -1
GanaBot -1
uBot — 0

Serg2252 bot v1.3 vs Alar_v55

Первый игрок : Serg2252 bot v1.3
Второй игрок : Alar_v55
Количество игр: 10000
Serg2252 bot v1.3 : количество побед 0
Alar_v55 : количество побед 10000
Количество ничей 0

Стопроцентный проигрыш Serg2252 bot v1.3!

Serg2252 bot v1.3 vs GanaBot

Первый игрок : Serg2252 bot v1.3
Второй игрок : GanaBot
Количество игр: 10000
Serg2252 bot v1.3 : количество побед 10000
GanaBot : количество побед 0
Количество ничей 0

Против GanaBot’a Serg2252 bot v1.3 показал стопроцентно положительный результат.

Serg2252 bot v1.3 vs Crusader v2.1.8

Первый игрок : Serg2252 bot v1.3
Второй игрок : Crusader v2.1.8
Количество игр: 10000
Serg2252 bot v1.3 : количество побед 275
Crusader v2.1.8 : количество побед 9725
Количество ничей 0

Победа за Crusader v2.1.8 — 97 % побед.

Остаётся ещё три, как же выглядит турнирная таблица?

MakpoBupyc -3
Alar_v55 -3
Crusader v2.1.8 -3
Serg2252 bot v1.3 -3
GanaBot -1
uBot — 0

Alar_v55 vs GanaBot

Первый игрок : Alar_v55
Второй игрок : GanaBot
Количество игр: 10000
Alar_v55 : количество побед 10000
GanaBot : количество побед 0
Количество ничей 0

Снова Alar_v55 на высоте!

Alar_v55 vs Crusader v2.1.8

Первый игрок : Alar_v55
Второй игрок : Crusader v2.1.8
Количество игр: 10000
Alar_v55 : количество побед 312
Crusader v2.1.8 : количество побед 9528
Количество ничей 160

Победа за Crusader v2.1.8 — более 95% побед.

Турнирная таблица перед последней битвой

Alar_v55 -4
Crusader v2.1.8 -4
MakpoBupyc -3
Serg2252 bot v1.3 -3
GanaBot -1
uBot — 0

GanaBot vs Crusader v2.1.8

Первый игрок : GanaBot
Второй игрок : Crusader v2.1.8
Количество игр: 10000
GanaBot : количество побед 107
Crusader v2.1.8 : количество побед 9893
Количество ничей 0

Итак, каждый бот сыграл с каждым. Турнирная таблица

Crusader v2.1.8 -5
Alar_v55 -4
MakpoBupyc -3
Serg2252 bot v1.3 -3
GanaBot -1
uBot — 0

Первое место Crusader v2.1.8, второе место Alar_v55. У MakpoBupyc и Serg2252 bot v1.3 равное количество очков. Кто же из них лучше? если посмотреть результат битвы MakpoBupyc vs Serg2252 bot v1.3, то лучше оказывается MakpoBupyc.

ИТОГОВОЕ РАСПРЕДЕЛЕНИЕ МЕСТ

1. Crusader v2.1.8
2. Alar_v55
3. MakpoBupyc
4. Serg2252 bot v1.3
5. GanaBot
6. uBot

Какая же стратегия являлась наиболее эффективной в игре. Посмотрим лог игры битвы двух сильнейших ботов Crusader v2.1.8 и Alar_v55

Первый игрок : Alar_v55
Второй игрок : Crusader v2.1.8
Количество игр: 10000
Alar_v55 : количество побед 312
Crusader v2.1.8 : количество побед 9528
Количество ничей 160
Alar_v55 : количество ошибок 0
Crusader v2.1.8 : количество ошибок 0
Alar_v55 : 256160 очков
Crusader v2.1.8 : 1915040 очков


Статистика первого игрока (Alar_v55)
-------------------------------------------
Время игры : 46,314 мс
Всего накоплено энергии : 310248
Всего накоплено металла : 206832
Всего накоплено эллектроэллементов : 206832
Использованные проекты
Количество|     %|Проект
        0 |    0%|(1) Атака 1. En 4 : ->5
     1499 | 1,38%|(2) Атака 2. Me 4 : ->5
        0 |    0%|(3) Атака 3. El 5 : ->5
     6612 | 6,09%|(4) Атака 4. En 5, Me 3 : ->7
     1397 | 1,29%|(5) Атака 5. En 3, Me 5 : ->8
    13167 |12,13%|(6) Атака 6. En 1, Me 2, El 5 : ->8
     2059 |  1,9%|(7) Атака 7. En 9, Me 3 : ->10
     3531 | 3,25%|(8) Атака 8. En 3, Me 8 : ->10
     7872 | 7,25%|(9) Атака 9. En 2, Me 3, El 7 : ->10
    30023 |27,66%|(10) Атака2 1. En 9, Me 4, El 2 : ->14
        0 |    0%|(11) Атака2 2. En 5, Me 8, El 2 : ->15
        0 |    0%|(12) Атака2 3. En 10, Me 5, El 2  : ->25, <-10    
        0 |    0%|(13) Атака2 4. En 10, Me 5, El 2 : ->17
        0 |    0%|(14) Атака2 5. En 6, Me 9, El 3 : ->18
        0 |    0%|(15) Ремонт 1. En 5 : SS+6
     2008 | 1,85%|(16) Ремонт 2. En 9, El 2 : SS+10
        0 |    0%|(17) Ремонт 2. En 14, El 3 : SS+15
        0 |    0%|(18) Ремонт 3. Me 7, El 2 : SB+9
        0 |    0%|(19) Ремонт 4. En 5, Me 4 : Увеличение брони базы за счёт щита, в соотношении 2:1 (используется не более 6 единиц щита)
        0 |    0%|(20) Ремонт 5. Me 8, El 5 : SB+12
        0 |    0%|(21) Ремонт 6. Me 5, El 10 : SB+14
        0 |    0%|(22) Ремонт 7. En 16, Me 14 : SS+15, SB+12
        0 |    0%|(23) СпецАтака 1. Me 2, El 2 : Base-3
        0 |    0%|(24) СпецАтака 2. En 3, Me 3, El 5 : Base-7
        0 |    0%|(25) СпецАтака 3. En 2, Me 5, El 3 : Base-7
        0 |    0%|(26) СпецАтака 4. En 4, El 3 : Уменьшение щита (максимум 7 единиц) и прямая атака вражеской базы по формуле 1+2*(Кол-во единиц щита)
    24633 |22,69%|(27) СпецАтака 5. Me 3, El 4 : Если вражеский щит равен 0, то Base-11
        0 |    0%|(28) СуперАтака 1. En 17, Me 5 : Base-10, Shield-10
        0 |    0%|(29) СуперАтака 2. En 16, Me 14, El 6 : Base-20, Shield-15
        0 |    0%|(30) СуперАтака 3. En 18, Me 12, El 2 : ->49, <-20
        0 |    0%|(31) СуперАтака 4. En 26, Me 16, El 10 : ->49
        0 |    0%|(32) СуперАтака 5. En 16, Me 12, El 6: ->25, Base-5
        0 |    0%|(33) Развитие 1. En 2, Me 4, El 9 : Батареи+1
        0 |    0%|(34) Развитие 2. En 6, Me 4, El 5 : Рудники+1
        0 |    0%|(35) Развитие 3. En 4, Me 9, El 2 : Лаборатории+1
        0 |    0%|(36) Развитие 4. En 9, Me 9, El 14 : Батареи+1, Рудники+1
        0 |    0%|(37) Развитие 5. En 4, Me 15, El 4 : Лаборатории+1, SB+7
        0 |    0%|(38) Развитие 6. En 15 : Преобразование до 18 единиц металла в электроэлементы, в соотношении 1 Me = 2 El
        0 |    0%|(39) Развитие 7. En 3 : Преобразование до 15 единиц электроэлементов в металл.
        0 |    0%|(40) Развитие 8. En 4 : Преобразование до 18 единиц металла в электроэлементы.
     1585 | 1,46%|(41) Шпионаж 1. En 5, El 5 : Похищение до 5 единиц металла у врага
        0 |    0%|(42) Шпионаж 2. En 5, Me 5 : Похищение до 5 единиц эллектроэлементов у врага
        0 |    0%|(43) Шпионаж 3. En 4, Me 5, El 7 : Shield-7, если щит меньше 7, то похищение до 5 единиц энергии
        0 |    0%|(44) Шпионаж 4. En 6, Me 2, El 12 : Если у врага больше 2-х рудников, то -1 рудник
        0 |    0%|(45) Шпионаж 5. En 2, Me 6, El 12 : Если у врага больше 3-х батарей, то -1 батарея
        0 |    0%|(46) Шпионаж 6. En 8, Me 7, El 16 : ->15, уничтоженные единицы щита переходят в вашу энергию
        0 |    0%|(47) Шпионаж 7. En 8, Me 4, El 20 : Shield-15, если щит меньше 15 ед., то похищение до 20 ед. металла, иначе уничтожение до 20 ед. металла у врага
        0 |    0%|(48) Шпионаж 8. En 12, Me 4, El 20 : Base-15, если вражеский щит меньше 15 ед., то похищение до 22 ед. энергии, иначе уничтожение до 22 ед. энергии у врага
        0 |    0%|(49) Шпионаж 9. En 4, Me 5, El 20 : Shield-10, если щит меньше 10, то похищение до 20 ед. эллектроэлементов
    14172 |13,05%|(50) Пропуск хода. En+1, Me+1, El+1
-------------------------------------------


Статистика второго игрока (Crusader v2.1.8)
-------------------------------------------
Время игры : 83,594 мс
Всего накоплено энергии : 486618
Всего накоплено металла : 508140
Всего накоплено эллектроэллементов : 312357
Использованные проекты
Количество|     %|Проект
        0 |    0%|(1) Атака 1. En 4 : ->5
        0 |    0%|(2) Атака 2. Me 4 : ->5
        0 |    0%|(3) Атака 3. El 5 : ->5
        0 |    0%|(4) Атака 4. En 5, Me 3 : ->7
     4153 | 3,68%|(5) Атака 5. En 3, Me 5 : ->8
     1216 | 1,08%|(6) Атака 6. En 1, Me 2, El 5 : ->8
        0 |    0%|(7) Атака 7. En 9, Me 3 : ->10
      562 |  0,5%|(8) Атака 8. En 3, Me 8 : ->10
        0 |    0%|(9) Атака 9. En 2, Me 3, El 7 : ->10
        0 |    0%|(10) Атака2 1. En 9, Me 4, El 2 : ->14
     4407 | 3,91%|(11) Атака2 2. En 5, Me 8, El 2 : ->15
        0 |    0%|(12) Атака2 3. En 10, Me 5, El 2  : ->25, <-10
     10760 | 9,54%|(13) Атака2 4. En 10, Me 5, El 2 : ->17
       55 | 0,05%|(14) Атака2 5. En 6, Me 9, El 3 : ->18
     8133 | 7,21%|(15) Ремонт 1. En 5 : SS+6
    24537 |21,76%|(16) Ремонт 2. En 9, El 2 : SS+10
       28 | 0,02%|(17) Ремонт 2. En 14, El 3 : SS+15
    10047 | 8,91%|(18) Ремонт 3. Me 7, El 2 : SB+9
        0 |    0%|(19) Ремонт 4. En 5, Me 4 : Увеличение брони базы за счёт щита, в соотношении 2:1 (используется не более 6 единиц щита)
    10277 | 9,11%|(20) Ремонт 5. Me 8, El 5 : SB+12
       21 | 0,02%|(21) Ремонт 6. Me 5, El 10 : SB+14
        0 |    0%|(22) Ремонт 7. En 16, Me 14 : SS+15, SB+12
        0 |    0%|(23) СпецАтака 1. Me 2, El 2 : Base-3
        0 |    0%|(24) СпецАтака 2. En 3, Me 3, El 5 : Base-7
       24 | 0,02%|(25) СпецАтака 3. En 2, Me 5, El 3 : Base-7
     2099 | 1,86%|(26) СпецАтака 4. En 4, El 3 : Уменьшение щита (максимум 7 единиц) и прямая атака вражеской базы по формуле 1+2*(Кол-во единиц щита)
    21314 | 18,9%|(27) СпецАтака 5. Me 3, El 4 : Если вражеский щит равен 0, то Base-11
        0 |    0%|(28) СуперАтака 1. En 17, Me 5 : Base-10, Shield-10
        0 |    0%|(29) СуперАтака 2. En 16, Me 14, El 6 : Base-20, Shield-15
        0 |    0%|(30) СуперАтака 3. En 18, Me 12, El 2 : ->49, <-20
     119 | 0,11%|(31) СуперАтака 4. En 26, Me 16, El 10 : ->49
        0 |    0%|(32) СуперАтака 5. En 16, Me 12, El 6: ->25, Base-5
     2423 | 2,15%|(33) Развитие 1. En 2, Me 4, El 9 : Батареи+1
     3711 | 3,29%|(34) Развитие 2. En 6, Me 4, El 5 : Рудники+1
     1500 | 1,33%|(35) Развитие 3. En 4, Me 9, El 2 : Лаборатории+1
        0 |    0%|(36) Развитие 4. En 9, Me 9, El 14 : Батареи+1, Рудники+1
        0 |    0%|(37) Развитие 5. En 4, Me 15, El 4 : Лаборатории+1, SB+7
     6688 | 5,93%|(38) Развитие 6. En 15 : Преобразование до 18 единиц металла в электроэлементы, в соотношении 1 Me = 2 El
        0 |    0%|(39) Развитие 7. En 3 : Преобразование до 15 единиц электроэлементов в металл.
       41 | 0,04%|(40) Развитие 8. En 4 : Преобразование до 18 единиц металла в электроэлементы.
        0 |    0%|(41) Шпионаж 1. En 5, El 5 : Похищение до 5 единиц металла у врага
        0 |    0%|(42) Шпионаж 2. En 5, Me 5 : Похищение до 5 единиц эллектроэлементов у врага
        0 |    0%|(43) Шпионаж 3. En 4, Me 5, El 7 : Shield-7, если щит меньше 7, то похищение до 5 единиц энергии
        0 |    0%|(44) Шпионаж 4. En 6, Me 2, El 12 : Если у врага больше 2-х рудников, то -1 рудник
        0 |    0%|(45) Шпионаж 5. En 2, Me 6, El 12 : Если у врага больше 3-х батарей, то -1 батарея
      638 | 0,57%|(46) Шпионаж 6. En 8, Me 7, El 16 : ->15, уничтоженные единицы щита переходят в вашу энергию
        0 |    0%|(47) Шпионаж 7. En 8, Me 4, El 20 : Shield-15, если щит меньше 15 ед., то похищение до 20 ед. металла, иначе уничтожение до 20 ед. металла у врага
       10 | 0,01%|(48) Шпионаж 8. En 12, Me 4, El 20 : Base-15, если вражеский щит меньше 15 ед., то похищение до 22 ед. энергии, иначе уничтожение до 22 ед. энергии у врага
        0 |    0%|(49) Шпионаж 9. En 4, Me 5, El 20 : Shield-10, если щит меньше 10, то похищение до 20 ед. эллектроэлементов
        0 |    0%|(50) Пропуск хода. En+1, Me+1, El+1
-------------------------------------------

Видно что Alar_v55 применял стратегию иногда называемую «рашем». «Раш» — это просто тупая атака противника без развития своей базы. Почти все используемые Alar_v55’ом проекты являются проектами атакующими. Crusader v2.1.8 тоже применял данную стратегию, но тем менее её стратегия оказалась эффективной так как предполагала ещё и защиту: использование проекта Ремонт 3. Me 7, El 2 : SB+9 — 8,91% , проекта (20) Ремонт 5. Me 8, El 5 : SB+12 — 9,11%, что сумме даёт 17%. Что сыграло немаловажную роль в его победе.
Для второй битвы ботов, в баланс игры будут внесены изменения чтобы исключить злоупотребление «раш»-стратегиями. Все кто собирается участвовать во второй битве ботов, ждём выхода нового билда игры.

Скачать игру и всех ботов участвующих в конкурсе

Комментарии (1) на "Первая битва. Результаты"

  1. Alar:

    Чудеса 🙂

    В первой игре Fortess мой бот — играющий по стратегии — раш — занял последнее место.

    В этой игре — пытался придумать что-то со шпионажем. и ремонтом. Но в этом боте используется только 1 ремонт. вероятно. надо было написать еще варианты ремонта. Так как свободные слоты для выбора стратегий были — а именно три. не доработал до первого места 🙁