Пок не зря сразу отходит в то место, куда до этого стрелял несколько ходов игрок - он таким образом пытается выровнять перекос отходов.
В конце первого поста как раз дан файл, в котором записано, как стреляли игроки и уворачивались поки в сжатом виде.
http://www.ganjafile.io/download.php?mid=91238&id=219744
Почему-то за эти дни никто не захотел проверить.
Пока я пишу код для анализа боев 2011 года, давайте сами посмотрим, как поки стреляли.
Начнем с пяти ходов (и больше).
Напишем регулярное выражение, которое ищет бои, где игрок стреляет 4 раза подряд в одну сторону, покемон эти 4 хода туда не отходит, а на пятый игрок стреляет в другую сторону, а пок отходит в ту первую
Напишем регулярное выражение, чтобы не тратить много времени на поиск вручную.
([LCP])(?!\1)[LCP]-\1(?!\1)[LCP]-\1(?!\1)[LCP]-\1(?!\1)[LCP]-(?!\1)[LCP]\1-
Что это означает?
([LCP]) любая из букв LCP с захватом
(?!\1) негативный просмотр вперед: убеждаемся, что после первой буквы не стоит такая же первая захваченная буква.
[LCP] любая из букв LCP
- буквально -
\1 первая захваченная группа, в нашем случае первая буква
(?!\1)[LCP] то же самое, что и в первый ход, негативный просмотр вперед, и одна из букв....
(?!\1)[LCP]\1 то же самое, но теперь мы поменяли местами наши буквы: не первый выстрел, за которым та же сторона, что и первый выстрел.
Ищем, сколько таких вариантов встречается в собранных.
831 совпадение в 830 строках.
(в CP-CP-CL-CL-PC-CL-PC-PC-LC-LC-LP-LC-PL-CL-PC-PL-CC-LL- 1 наша последовательность встречается дважды)
Вот файл с совпадениями по этому запросу.
http://www.ganjafile.io/download.php?mid=91238&id=219778
12*2 + 818*1
получаем 842 боя (и 843 повторений из-за упомянутой выше строки), в котором игроки стреляли в одну сторону 4 раза, не угадывали, а потом когда меняли сторону, поки уходили в первую.
Дальше найдем бои, в которых игроки стреляли в одну сторону 4 раза, не угадывали, а потом когда меняли сторону, угадывали.
([LCP])(?!\1)[LCP]-\1(?!\1)[LCP]-\1(?!\1)[LCP]-\1(?!\1)[LCP]-(?!\1)([LCP])\2-
изменился только конец: мы захватываем выстрел игрока, который отличается от первого выстрела, а потом повторяем эту же сторону.
811 совпадений в 807 строках (то есть 4 боя, в которых эта последовательность повторилась дважды: именно 4, потом что после всех боев 10 ходов и больше у нас всех по одному).
http://www.ganjafile.io/download.php?mid=91238&id=219783
929 боев, 933 повторений.
Теперь найдем бои, в которых игроки стреляли все 5 ходов в одну сторону а на пятую пок как дурак совался под выстрел.
([LCP])(?!\1)[LCP]-\1(?!\1)[LCP]-\1(?!\1)[LCP]-\1(?!\1)[LCP]-\1\1-
1819 совпадений, 1761 тип:
2821 таких боев (2879 повторений).
http://www.ganjafile.io/download.php?mid=91238&id=219781
В противовес этому найдем бои, в которых игроки стреляли 5 раз в одну сторону и на пятом ходу умный пок снова не совался под выстрел.
([LCP])(?!\1)[LCP]-\1(?!\1)[LCP]-\1(?!\1)[LCP]-\1(?!\1)[LCP]-\1(?!\1)[LCP]-
2427 совпадений, 2248 типов:
2795 боев (2974 повторений).
http://www.ganjafile.io/download.php?mid=91238&id=219782
Все как-то муторно и непонятно, наверное.
Неоднозачно.
Давайте найдем более конкретные примеры.
Пять ходов лево, пок только на пятый ход уходит влево.
L[^L]-L[^L]-L[^L]-L[^L]-LL-
Мы добавили группу "с отрицанием": [^L] - не L
http://www.ganjafile.io/download.php?mid=91238&id=219784
463 совпадения, 458 типов:
677 боев, 682 повторения.
Пять ходов влево, пок уходит в центр.
L[^L]-L[^L]-L[^L]-L[^L]-LC-
http://www.ganjafile.io/download.php?mid=91238&id=219785
413 совпадений, 406 типов:
451 бой, 458 повторений.
Пять ходов влево, пок уходит вправо.
L[^L]-L[^L]-L[^L]-L[^L]-LP-
http://www.ganjafile.io/download.php?mid=91238&id=219786
407 совпадений, 400 типов
462 боя, 469 повторений.
Продолжим с правой стороной (я немножко устал делать файлы, все это можно повторить и проверить в текстовых редакторах с поиском с поддержкой регулярных выражений вроде Netpad++ или Sublime text или вимах итд. Ссылка на общий файл дана в первом посте и в начале этого.)
Пять ходов вправо, пок уходит влево на пятый.
P[^P]-P[^P]-P[^P]-P[^P]-PL-
284 совпадений, 264 типа.
275 боев, 295 повторений.
Пять ходов вправо, пок уходит в центр.
P[^P]-P[^P]-P[^P]-P[^P]-PC-
310 совпадений, 299 типов.
307 боев, 318 повторений.
Пять ходов вправо, пок уходит вправо.
P[^P]-P[^P]-P[^P]-P[^P]-PP-
314 совпадений, 311 типов.
373 боя, 376 повторений.
Центр.
Пять ходов в центр, пок уходит влево на пятый.
C[^C]-C[^C]-C[^C]-C[^C]-CL-
909 совпадений, 854 типа.
1138 боев, 1193 повторений.
Пять ходов в центр, пок уходит вправо на пятый.
C[^C]-C[^C]-C[^C]-C[^C]-CP-
905 совпадений, 848 типов.
1075 боев, 1132 повторения.
Пять ходов в центр, пок уходит на пятый в центр.
C[^C]-C[^C]-C[^C]-C[^C]-CC-
1042 совпадения, 995 типов
1174 боя, 1221 повторения.
Мне довольно все понятно теперь. Смотрим дальше.