Форумы-->Общий игровой форум--> <<|<|686|687|688|689|690|691|692|693|694|695|696|>|>>
Автор | Гильдия Картежников (Таверна) |
для Hero Of Dreams:
Дай угадаю, ты его обыграл?)
А вообще интересный он человек: играет в плюс, через раз обдирает миллионщинов, но при этом всё время ноет, да ещё так высокохудожественно..) | для Небылица:
Если выброшеная карта попала в самый верх нижней половины колоды и не закапывается под новыми картами, то нужно выбросить 44 карты, чтоб увидеть ее снова (она будет 45-й), верно? | Дэйв реинкарнация Листа | для Hero Of Dreams:
хаха, осталось мне его еще обыграть ^_^ | для Kiros:
Дерзай | Если выброшеная карта попала в самый верх нижней половины колоды и не закапывается под новыми картами, то нужно выбросить 44 карты, чтоб увидеть ее снова (она будет 45-й), верно?
Не обязательно
Если ты при розыгрыше своей нужной карты используешь все карты на игру снова, то у тебя на столе в итоге скопится 13 карт, колода будет уменьшаться на пополнение твоей руки, и в ней в итоге будет меньше 88 карт
То есть в принципе номер её может быть и меньше, но тогда придётся всё просеивать по 1 карте
А самый выгодный вариант получается вообще такой:
Карта получает #45, а все карты на игру снова сверху её (и игроки их используют)
Тогда экономится в общей сложности 12 полуходов (то есть 33 полухода делают игроки)
И нужную карту можно будет увидеть уже на 17 ходу после её выхода
Но ж говорю, это всё теория, не применимая напрямую в таверне | для Небылица:
все верно | [Сообщение удалено смотрителем Мирий // ] | прошу удалить пост: 13808.
Так как мой блог на дейли мерзким образом без причины прикрыли (привет OneNightInParis и Никитке^^. голд за статью по картам кстати они мне тоже зажали), то оставляю ответ для будущих поколений тут на форуме.
Итак, я недавно проводил 2 длительных эксперимента, чтобы получить ответ на этот вопрос.
При эксперименте были доступны данные о моих картах и картах противника во время каждого хода (какая карта вышла и какая пришла).
Любые запросы/ответы протоколлировались через программу fiddler и позже обрабатывались скриптом.
У нас есть 3 варианта:
1). 7 против 7 карт
2). 7 против 6 карт
3). 6 против 6 карт
Пример: У меня 7 карт, а и у противника 6 карт.
Скидываем карту:
I). Первый вопрос: через мин. сколько ходов придёт снова карта мне/врагу? (минимальный cooldown)
II). Второй вопрос: есть ли верхняя граница "неполучения" карты, то есть может ли карта не выходить подолгу, например 200 ходов?
*** I). Итак:
1) (102 карты - (7+7))/2 = 88/2 = 44 -> cooldown у сброшенной карты минимум 44 хода
3) (102 карты - (6+6))/2 = 90/2 = 45 -> cooldown у сброшенной карты минимум 45 ходов
Теперь интересный случай: 6 против 7:
2) (102 карты - (6+7))/2 = 89/2 = 44.5 -> округление идёт вверх или вниз?
Сделал длительный эксперимент (скидывал карты несколько часов). При втором варианте идёт округление вверх, т.е. cooldown 45 ходов
*** II). Теперь к вопросу - есть ли верхняя граница по невыпаданию карты?
Нет такой не наблюдалось. В первом эксперименте некоторые карты могли не приходить обратно более 200 ходов
Во втором (более длительном) некоторые карты не выходили более 400 ходов.
Однако, вероятность того, что такое случится крайне мала.
Скрин из анализа первого эксперимента:
https://www.heroeswm.ru/photo_pl_photos.php?aid=238239&pl_id=4658792&pid=1482792
http://dcdn.heroeswm.ru/photo-catalog/0001482/792-2323acea.jpg
X: "сколько ходов невыпадывала карта"
Y: "сколько раз происходило данное событие"
Скрин из анализа второго эксперимента (10-12 часов длилась игра):
https://www.heroeswm.ru/photo_pl_photos.php?aid=238239&pl_id=4658792&pid=1482797
http://photo.heroeswm.ru/photo-catalog/0001482/797-bbdd72da.jpg
X: "сколько ходов невыпадывала карта"
Y: "сколько раз происходило данное событие"
На обоих графиках видно, что в основном карта обязательно выходит где-то после 45-150 ходов. Но существует предположение, что максимальный cooldown связан с количеством ходов = "количество_ходов" / 10. Но это лишь необоснованное предположение и не обязано быть правильным. Скорее всего механизм такой: Скидываем карту, она попадает во вторую часть колоды (в радомное место). Полсле этого скидываем ещё одну карту, но она может отодвинуть карту до этого, т.е. может получиться, что мы будет постоянно отодвигать одну и ту же карту не давая ей шанс выйти на руки. Если мы будем играть 10.000 ходов, то может получится, что одна будет не выходить 1.000 ходов, но исходя из данных наблюдаемых в эксперименте вероятность такого события крайне мала. | *** I). Итак:
1) (102 карты - (7+7))/2 = 88/2 = 44 -> cooldown у сброшенной карты минимум 44 хода
3) (102 карты - (6+6))/2 = 90/2 = 45 -> cooldown у сброшенной карты минимум 45 ходов
Теперь интересный случай: 6 против 7:
2) (102 карты - (6+7))/2 = 89/2 = 44.5 -> округление идёт вверх или вниз?
Сделал длительный эксперимент (скидывал карты несколько часов). При втором варианте идёт округление вверх, т.е. cooldown 45 ходов
Если скидывать всё подряд, то всё будет именно так
Собственно, я об этом и писал
Но если в нашем мысленном эксперименте выше нужной карты с #45 оказались все доступные карты на игру снова, то мы успеем просеять карты с номерами 1-44 быстрее, чем если просто скидывать их
Оттуда и берутся 33 карты и 17 ходов
Вот и таво)
+ нюансы с терминологией
Я называю ходом совокупность из 2х полуходов (по 1 на каждого игрока), в каждый из которых разыгрывается по дефолту 1 карта, но может быть больше
Соотвественно, ваши 44 хода = моим 44 полуходам = моим 22 ходам (ну, и реально это не минимальное количество за счёт того, что можно разыграть >1 карты за полуход)
Хотя экспериментальная проверка самого базового допущения, что карта попадает именно в случайное место нижней половины, а не абы куда, тоже интересна
Ну и как округляется при нечётном числе карт
Спасибо за обнародование результатов исследования)
*** II). Теперь к вопросу - есть ли верхняя граница по невыпаданию карты?
Нет такой не наблюдалось. В первом эксперименте некоторые карты могли не приходить обратно более 200 ходов
Во втором (более длительном) некоторые карты не выходили более 400 ходов.
Однако, вероятность того, что такое случится крайне мала.
Да, после проверки базовой механики сортировки карт это можно получить и логически
А эксперимент позволил проверить, нет ли искусственной границы невыпадения | для Небылица:
извини, ты не прав. я исхожу из серверных запросов/ответов и как там определяется "ход". карте и серверу пофиг "играем снова" или нет. от этого там просеивание не меняется. и скорость просеивания от этого точно не меняется.
а механика на самом деле такая:
играем картой "играем снова" -> жмём на эту карту, отсылаем команду на сервер, получаем ответ от сервера, что может всё ещё наш ход и заодно получаем новую карту на руки. старая карта "играем снова" уходит во вторую половину.
у сервера нет полуходов ни чертверти хода и ничего похожего. есть только "turn"
вот тебе пример (тут я нажимаю на карту cardid=92 и есё номер на руках cardn=0):
CLIENT REQUEST:
https://www.heroeswm.ru/cardsgame.php?gameid=...&lchatid=0&action=drop&cardid=92&cardn=0&turn=1&r and2=1&rand=0.60537477202
SERVER RESPONSE:
2|0|1|122|1|1|1|1|5|5|6|6|6|6|30|30|50|50|20|20|40-49-69-14-6-77|0|0|d92-0|1|d92-|0|0|
-> получаем новую карту на место старой: 40 (аrray=[40,49,69,14,6,77], array[0]=40)
вот ещё один пример
https://www.heroeswm.ru/cardsgame.php?gameid=71729826
по-моему тут всё и без всяких просеиваний кристально ясно | 1. Наш ход. играем/скидываем карту
2. Получаем ответ от сервера
3. Если мы можем ходить, то иди к пункту 1. иначе ждём когда наступит наш ход и тогда опять пункт 1.
Если играем картой "играем снова", то всё по запросам/ответам к серверу происходит по выше описанной схеме. Нажали на карту - отослали запрос, но флеш нам её всё ещё графически отображает. После этого сервер ждёт от нас следующий действий - следующего хода. Когда нажимаем на карту "играем снова", номер хода увеличивается на 1. Если не веришь, то посмотри сам.
> Программа: Fiddler.
> Все АйДи карт: http://daily.heroeswm.ru/bu.php?i=alidndt6
> описание параметров: "аналог battle.php / баттлчата в таверне"
http://daily.heroeswm.ru/bu.php?i=0lp8e4f6
http://daily.heroeswm.ru/bu.php?i=177duhho | Ксерокс, кому нужны? твои списки с библиотеки. | играем картой "играем снова" -> жмём на эту карту, отсылаем команду на сервер, получаем ответ от сервера, что может всё ещё наш ход и заодно получаем новую карту на руки. старая карта "играем снова" уходит во вторую половину.
То есть если у меня при "игре снова" несколько карт рядком лежат, реально существует на столе лишь последняя?
А от остальных только картинка, в то время как сама карта для сервака уже вышла и была засунута в колоду?
Забавно
Ну а по полуходам — это вопрос терминов
Если при общении с сервером у флешки 1 ход = 1 карте, то пусть будет так
В шахматах, скажем, обычно считают 1 передвижение фигуры за 1 полуход, а передвижения фигур сначала одним, а потом другим игроком образуют ход и одну строчку в записи
Оттуда и перенёс нотацию, это не суть важно | вот так и происходит:
https://www.heroeswm.ru/photo_pl_photos.php?aid=238239&pl_id=4658792&pid=1482814
http://photo.heroeswm.ru/photo-catalog/0001482/814-fdfd8fdf.jpg
вот скрин из запросов моего допа (McHack)
1. action=turn, cardid=2, turn=33 ---> AbundantSoil "играем снова"
2. action=turn, cardid=31, turn=34 --> Barracks
Все карты из таверны. оффициальные ID карт.
http://daily.heroeswm.ru/bu.php?i=alidndt6
requests:
https://www.heroeswm.ru/cardsgame.php?gameid=69169089&lchatid=0&action=turn&cardid=2&cardn=5&turn=33& amp;rand2=27&rand=0.91370987566188
https://www.heroeswm.ru/cardsgame.php?gameid=69169089&lchatid=0&pl_id=6423765&rand=0.160871183499694
https://www.heroeswm.ru/cardsgame.php?gameid=69169089&lchatid=0&pl_id=6423765&rand=0.337830199394375
https://www.heroeswm.ru/cardsgame.php?gameid=69169089&lchatid=0&action=turn&cardid=31&cardn=0&turn=34 &rand2=24&rand=0.341012541670352
responses:
34|1|2|32|3|4|2|4|4|2|6|16|5|6|8|2|15|1|33|29|31-52-87-82-39-38|0|0|t2-5|2|t2-|0|0|
34|1|2|32|3|4|2|4|4|2|6|16|5|6|8|2|15|1|33|29|31-52-87-82-39-38|0|0|t2-5|2|t2-|0|0|
34|1|2|29|3|4|2|4|4|2|6|16|5|6|8|2|15|1|33|29|31-52-87-82-39-38|0|0|t2-5|2|t2-|0|0|
35|0|2|32|3|4|2|4|4|3|9|6|7|6|12|8|15|7|33|29|44-52-87-82-39-38|0|0|t31-0|2|t2-t31-|0|0| | Ксерокс, прекращай фигню писать. | для ULTRA_XEROX:
Окей, тогда действительно всегда будет 44/45 ходов минимум
requests:
https://www.heroeswm.ru/cardsgame.php?gameid=69169089&lchatid=0&action=turn&cardid=2&cardn=5&turn=33& amp; amp;rand2=27&rand=0.91370987566188
https://www.heroeswm.ru/cardsgame.php?gameid=69169089&lchatid=0&pl_id=6423765&rand=0.160871183499694
https://www.heroeswm.ru/cardsgame.php?gameid=69169089&lchatid=0&pl_id=6423765&rand=0.337830199394375
https://www.heroeswm.ru/cardsgame.php?gameid=69169089&lchatid=0&action=turn&cardid=31&cardn=0&turn=34 &rand2=24&rand=0.341012541670352
responses:
34|1|2|32|3|4|2|4|4|2|6|16|5|6|8|2|15|1|33|29|31-52-87-82-39-38|0|0|t2-5|2|t2-|0|0|
34|1|2|32|3|4|2|4|4|2|6|16|5|6|8|2|15|1|33|29|31-52-87-82-39-38|0|0|t2-5|2|t2-|0|0|
34|1|2|29|3|4|2|4|4|2|6|16|5|6|8|2|15|1|33|29|31-52-87-82-39-38|0|0|t2-5|2|t2-|0|0|
35|0|2|32|3|4|2|4|4|3|9|6|7|6|12|8|15|7|33|29|44-52-87-82-39-38|0|0|t31-0|2|t2-t31-|0|0|
А эти полотнища из лога игры или из фидлера, который писал в реалтайме?
Вроде в блоге читал, что все ходы игры не сохраняются, а разбираться сейчас лень
И без спойлеров читать их не слишком удобно, особенно если кто просто пофлудить сюда зашёл)
Переезжай с блогом на гайд или ещё где можно статьи постить, интересные материалы бывают | А эти полотнища из лога игры или из фидлера, который писал в реалтайме?
realtime (fiddler). в логе их сейчас не увидеть :(
И без спойлеров читать их не слишком удобно, особенно если кто просто пофлудить сюда зашёл)
согласен, без спойлеров читабельность тут убивается :) | Спасибо за ответы господа математики.)
Для танкеток: правильно ли я поняла, что скинутую карту я смогу получить минимально через 22 моих хода? | для KLEugene:
Для танкеток: правильно ли я поняла, что скинутую карту я смогу получить минимально через 22 моих хода?
честно говоря не знаю что это за мужик, этот "танкеток". не знаю такого.
> теперь ответ:
через 22-23 хода (зависит от количества карт на руках), при этом если никто не будет играть картами "играть снова".
Однако может получится такая ситуация: из 44/45 ходов мы играем из них большее количество с помощью карт "играть снова":
http://daily.heroeswm.ru/bu.php?i=djibdlnm.
Карт такого типа: 10 штук.
> Тут есть 2 варианта:
*** Вараинт 1). Может получится так, что мы сможем сыграть всеми этими картами за раз, пример:
LuckyCoin +
AbundantSoil +
Tremor +
SecretCavern +
Qaurtz +
SmokyQuartz +
Spite +
GhostFairy +
Prism + X +
ElvenScouts + Y + Z
-> В сумме за раз скинем 13 карт.
(44-13) = 15 + 16 -> 13+15 = 28, т.е. из 44 карт мы сыграем 28 карт
(45-13) = 16 + 16 -> 13+16 = 29, т.е. из 45 карт мы сыграем 29 карт
*** Вариант 2). Играем каждой такой картой раз в наш ход.
1. LuckyCoin + Х
2. AbundantSoil + Х
3. Tremor + Х
4. SecretCavern + Х
5. Qaurtz + Х
6. SmokyQuartz + Х
7. Spite + Х
8. GhostFairy + Х
9. Prism + X + Х
10. ElvenScouts + Х + Х
-> В сумме за 10 наших "ходов" скинем 22 карты.
(44-22) = 11 + 11 -> 22+11 = 33, т.е. из 44 карт мы сыграем 33 карты
(45-22) = 11 + 12 -> 22+11 = 33, т.е. из 45 карт мы сыграем 33 карты
Теперь подытожим:
> Где-то через 22...33 (из 44/45 ходов) наших хода мы можем получить снова сброшенную карту. Но толку от этого 0 (!), т.к. карта всё равно приходит рандомно и может вообще придти только через 200 ходов и покажет всем нашим ультра-расчётам фигушку. Т.е. даже если будем делать больше "наших" ходов из этих 44/45, то это ровным счётом н-и-ч-е-г-о не даст :-( |
<<|<|686|687|688|689|690|691|692|693|694|695|696|>|>>К списку тем
|