Re: какое МО!? ID:10309 ответ на 10304 |
Пн, 7 ноября 2005 19:47 [#] |
|
|
2Blitz. Привет. Не хотите наладить взаимовыгодное сотрудничество. Унифицируем лог-файл игры наших программ для выявления ошибок. Скажем по такому правилу: каждая рука 12 байт (для русского и других потом можно расширить). Первые 5 байт наши карты B=karta_mast*4+(karta-2)
где B–значение в лог-файле
karta_mast – значение масти, например: 0-буби, 1-черви, 2-вини, 3-крксти (в принципе не важно)
karta – номинал карты: 2-двойка… 14-туз.
Потом 5 байт карты дилера по тому же принципу. Причем при раздаче мы знаем только первую. Одиннадцатая карта на замену, есть всегда, даже если не понадобилась (для выравнивания по ширине). Двенадцатый байт закодированное побитно решение:
1 бит – покупаем ли после нулевой комбинации у дилера (0-нет, 1-да),
2 бит – страхуем ли (0-нет, 1-да),
3 бит – играем ли (0-нет, 1-да), если биты 4-8 не нулевые то после замены, если нулевые до
4 бит – меняем ли 1 карту (0-нет, 1-да),
5 бит – меняем ли 2 карту (0-нет, 1-да),
6 бит – меняем ли 3 карту (0-нет, 1-да),
7 бит – меняем ли 4 карту (0-нет, 1-да),
8 бит – меняем ли 5 карту (0-нет, 1-да).
Замена 6 карты не поместилась, можно что-нибудь переставить.
Если для игры нужно больше 11 карт, закодированный байт смещаем дальше. После 10 первых карт помещаем максимально необходимое число карт на замену и покупку игры дилера. Между разными раскладами можно разделитель вставить.
Пишу на С++. Могу реализовать, но не очень скоро, в перспективе. Очень мало свободного времени. Придумал на вскидку. Можно совсем по-другому и не заморачиваться с битами. Хотел сжать до максимума. Миллион сдач это 12Мб. Не хило через Интернет тянуть. Хотя ошибки и в 100кб можно искать. Спасибо. Жду конструктивных предложений или мотивированного отказа.
|
|
|