|
Всем известно что стандартная БС оптимальна для нескончаемой колоды.
Если же число колод ограниченное количество (например 6) то применяя счет карт и обнаруживая перекосы вероятности, при коррекции базовой стратегии игрок получает большее преимущество перед казино.
В БД я новичек но вот как программист кое чего стою .
Я хочу разработать программу которая бы рассчитывала оптимальную стратегию игры для каждого конкретного случая оставшихся в башмаке карт, так сказать адаптивную БС.
Например если известно что в отбой вышло пять семерок, шесть десяток, три туза, и т.д. то программа будет высчитывать оптимальную стратегию с учетом оставшихся в башмаке карт.
Конечно это программа носит чисто академический характер, и применения ее для конкретной игры невозможно, но вот платформой для исследований, программа может послужить очень хорошей, также на базе этой программы можно будет разработать тренажер для игроков.
Для разработки программы мне нужны математическая модель, формулы, алгоритмы расчета оптимальной стратеги для нескончаемой колоды, оттолкнувшись от нее я смогу рассчитывать оптимальную стратегию для остаточного количества карт в башмаке.
Всем кто поможет информацией обещаю внести в список благодарности в программе а также все получать копию проги, при существенной помощи готов даже поделиться исходниками будещей прграммы.
|
|
|
|
Идея неплоха, но практической пользы не видно. Ты говоришь, тренажёр сделать? Ну во-первых, их уже много, ты идёшь на очень конкурентный рынок. Во-вторых, я не очень понимаю, зачем "адаптивная" БС нужна в смысле тренировок.
Что касается изменений базовой стратегии в зависисмости от счёта - поздравляю, ты изобрёл велосипед. Это называется "индексы" и они есть в любой грамотной книге, интернете и вообще давно посчитаны и опубликованы.
А что касается информации во этому вопросу - обязательно прочитай "Теорию блэкджека" Гриффина, там усё написано. А на сайте bjmath.com есть программа с исходниками.
|
|
|
|
|
А что касается фразы "Всем известно что стандартная БС оптимальна для нескончаемой колоды", то позволь не согласиться. Например, БС на этом форуме посчитана именно для 6 колод.
|
|
|
|
|
Дело в том что я не хочу использывать уже разработаные системы счета а хочу построить программу исключительно на математической модели.
|
|
|
|
Описание базовых функций (C) Korovin corp.
procedure KartOut(k: integer);
begin
ArKard[k]:=ArKard[k]-1; NumKar:=NumKar-1;
end;
procedure KartInp(k: integer);
begin
ArKard[k]:=ArKard[k]+1; NumKar:=NumKar+1;
end;
function mDil2(fi,sd,td: Integer): Double;
var i,fd,ts,tt: Integer; v: Double;
begin Result:=0;
for i:=1 to 10 do if ArKard[i]>0 then begin ts:=sd+i;
if (ts<12) and ((i=1) or (td=1)) then tt:=1 else tt:=0;
fd:=ts+tt*10; if (fd>16) then begin
if (fd>21) or (fd<fi) then Result:=Result+ArKard[i]/NumKar;
if (fd<22) and (fd>fi) then Result:=Result-ArKard[i]/NumKar;
end else begin v:=ArKard[i]/NumKar; KartOut(i);
Result:=Result+mDil2(fi,ts,tt)*v; KartInp(i);
end;
end;
end;
function mDil1(si,ti,sd: Integer): Double;
var i,fi,fd,ts,tt: Integer; v: Double;
begin Result:=0; fi:=si+ti*10;
for i:=1 to 10 do if ArKard[i]>0 then begin ts:=sd+i;
if (ts<12) and ((i=1) or (sd=1)) then tt:=1 else tt:=0;
fd:=ts+tt*10; if (fd>16) then begin
if (fd>21) or (fd<fi) then Result:=Result+ArKard[i]/NumKar;
if (fd>fi) or (fd=21) then Result:=Result-ArKard[i]/NumKar;
end else begin v:=ArKard[i]/NumKar; KartOut(i);
Result:=Result+mDil2(fi,ts,tt)*v; KartInp(i);
end;
end;
end;
function mDubl(si,ti,sd: Integer): Double;
var i,ts,tt: Integer; v: Double;
begin Result:=0;
for i:=1 to 10 do if ArKard[i]>0 then begin ts:=si+i;
if (ts<12) and ((i=1) or (ti=1)) then tt:=1 else tt:=0;
if (ts>21) then Result:=Result-2*ArKard[i]/NumKar
else begin v:=ArKard[i]/NumKar; KartOut(i);
Result:=Result+2*mDil1(ts,tt,sd)*v; KartInp(i);
end;
end;
end;
function mHits(si,ti,sd: Integer): Double;
var i,ts,tt: Integer; v: Double;
begin Result:=0;
for i:=1 to 10 do if ArKard[i]>0 then begin ts:=si+i;
if (ts<12) and ((i=1) or (ti=1)) then tt:=1 else tt:=0;
if (ts>21) then Result:=Result-ArKard[i]/NumKar
else begin v:=ArKard[i]/NumKar; KartOut(i);
Result:=Result+max(mDil1(ts,tt,sd),mHits(ts,tt,sd) )*v;
KartInp(i);
end;
end;
end;
function mSplt(si,sd,sp: Integer): Double;
var i,ts,tt: Integer; h,d,s,p: Double;
begin Result:=0;
for i:=1 to 10 do if ArKard[i]>0 then begin KartOut(i); ts:=si+i;
if (i=1) or (si=1) then tt:=1 else tt:=0; s:=mDil1(ts,tt,sd);
if (si<>1) then h:=mHits(ts,tt,sd) else h:=-5;
if (si<>1) then d:=mDubl(ts,tt,sd) else d:=-5;
if (i =si) and (sp<3) then p:=mSplt(si,sd,sp+1) else p:=-5;
KartInp(i); Result:=Result+2*max(s,max(h,max(d,p)))*ArKard[i]/NumKar;
end;
end;
|
|
|
|
Хорошо, счёт забыли. Играем computer-optimal. Вопрос - зачем? Предполагаемые варианты ответов:
1. Сделать скрытый компьютер.
2. Простое желание прграммиста сделать что-то интересное.
В первом случае не советую этого делать по причине того, что здоровье дороже. Во втором случае никаких проблем, делай что хочешь, но, повторяю, практического смысла не вижу.
|
|
|
|
Впринципе пока руководствуюсь только 2-м вариантом
но мысли о первом тоже были
|
|
|
|
Хотя если и рисковать здоровьем, то лучше уже использовать схему с внешним оператором:
1. на игрока цепляем микровидео камеру чтобы оператор мог видеть столи и вводить вышедшие карты
2. оборудуем игрока сигнализаторами например вибромоторами в каблуки
Оператор вводит вышедшие карты в комп, тот расчитывает оптимальный следующий ход для игрока и оператор по средствам сигнализаторов передает игроку что делать брать еще карту, сплитовать, удваеввать и т.п.
Кто еще что предложит?
|
|
|
|
Приветствую!
2 Sergey30
Красиво все описАл, но сдается мне что скорость игры будет ну просто никакая.
|
|
|
|
Я бы предложил играть так в Русский покер на 4 бокса баксов по 500 в анте
|
|
|
|
Приветствую!
2 Korovin
| Цитата: | | Описание базовых функций (C) Korovin corp. | Спасибо.
Описание праметров функций будет?
|
|
|
|
А чего там комментировать? Кстати, это у меня на сайте 2 года лежало.
Вот еще идея есть: Подключится к видеокамере что над столм висит, тогда вообще никакого палева не будет. Ну найдут наушник в ухе, ну и что?
|
|
|
|
Приветствую!
2 Korovin
| Цитата: | | Кстати, это у меня на сайте 2 года лежало. | На сайте описание функций видел.
Почему-то подумалось, что здесь полнее. 
Короче я разобрался.
|
|
|
|
| Sergey30 писал ср, 03 августа 2005 19:17 | Хотя если и рисковать здоровьем, то лучше уже использовать схему с внешним оператором:
1. на игрока цепляем микровидео камеру чтобы оператор мог видеть столи и вводить вышедшие карты
2. оборудуем игрока сигнализаторами например вибромоторами в каблуки
Оператор вводит вышедшие карты в комп, тот расчитывает оптимальный следующий ход для игрока и оператор по средствам сигнализаторов передает игроку что делать брать еще карту, сплитовать, удваеввать и т.п.
Кто еще что предложит? | Тогда уж микрокамеру лучше на дилера цеплять, чтобы видеть раздаваемые карты снизу Особенно на покере хорошо знать игру дилера
|
|
|
|
1. Сделать скрытый компьютер.
А почему бы не сделать эту програмку для честного интернет-казино (если в такие кто-то верит), и еще вмонтировать как-то ее в софт казино , пусть сама играет, идеально как Хофман в "Человеке Дождя"
|
|
|
|
|
Честных интернет-казино с положительными правилами не встречал.
|
|
|
|
| Korovin писал вт, 09 августа 2005 12:09 | | Честных интернет-казино с положительными правилами не встречал. |
Казино от Криптолоджика предлагают игры с подрезкой 3/8. Возможен просто огромный спред.
Честность проверяется звестными аудиторскими фирмами
|
|
|
|
|
блэкджек МО=-0,5%, что конечно преодолевается но всё же не фонтан. А вот понтун всего -0,17%(ранее я ошибочно запостил что -0,62%). Так что вполне можно играть в +.
|
|
|
|
|
А разве понтун на 8-ми колодах играется? Мне казалось что на одной, шафл после каждой сдачи. Но могу ошибаться.
|
|
|