Бридж-преферанс студия |
|
Примечание. Начиная с версии 5.2 программа работает только под 64х битными операционными системами. Версия windows должна быть не ниже чем Windows 7.
Введение
Бридж-преферанс студия предназначена для решения бриджевых и преферансных задач на открытых картах. Программа бесплатная с открытым исходным кодом. Основные возможности:- полный перебор до конца, всегда находится точное решение, которое включает в себя лучший ход и число взяток обеих сторон при оптимальной игре, возможен также разбор задачи
- опция оценки всех ходов с руки, то есть можно узнать, сколько взяток берут стороны не только при лучшем ходе, но и при всех других возможных ходах
- решение для всех играющих и всех возможных козырей
- решение всех раскладов. Для бриджа можно выбрать пару игроков с неизвестными картами север/юг или запад/восток. Для преферанса сделать полный перебор всех раскладов вистующих или ловящих мизер. Можно делать перебор всех раскладов когда первый ход еще не сделан или сделан один или несколько ходов. Одну или несколько карт у игроков с неизвестными картами можно зафиксировать. Есть экспорт всех сдач с результатами в csv файл
- расчет таблицы математических ожиданий при решении всех раскладов в зависимости от контракта
- программа находит одну из оптимальных линий игры (последовательность лучших ходов), которые отображаются в панели лучших ходов. На них можно кликнуть, чтобы сделать один или несколько лучших ходов
- калькулятор очков для обоих типов игры
- можно устанавливать задачу с любым числом карт, например, где заход вистующих ещё не сделан, или позицию после нескольких взяток
- загрузка списка задач из pbn (portable bridge notation) и df (deep finesse) файлов, возможна загрузка из нескольких файлов и каталогов
- внутренний формат файлов программы bts, pts является текстовым, что позволяет изменять задачи в текстовом редакторе
- редактор списка задач
- редактор тегов из pbn файлов
- конвертация/сохранение списка задач в bts, pbn, df, html форматы
- сохранение списка задач в html файл с лучшим ходом и числом взяток при оптимальной игре
- сохранение задачи в картинку
- поддержка скинов, выбор колоды и стрелок растровой и векторной графики (формат svg), шрифта, фона, задание порядка мастей и карт в масти
- после расчёта первого хода программа сохраняет рассчитанные позиции в памяти, поэтому второй и последующие ходы считаются во много раз быстрее первого
- многоязыковой интерфейс - русский, английский, итальянский, легкая возможность добавления новых языков
- вместе с программой устанавливается большая библиотека содержащая около 1000 задач
Скриншоты
Решение для всех игроков и козырей
Можно решать задачу для всех игроков и козырей не только в начале игры, но и после несколько взяток. В этом случае взятые взятки не будут считаться, так как в бридже разыгрывающий определяет кто ходит первым, а первый ход в первой взятке фиксирован, а в преферансе взятки, которые были сделаны до текущей позиции, были взяты при других условиях, например вистующие играли вместе, а если одного из вистующих рассматривать как игрока, то его стратегия изменится.
перейти к описанию опции для преферансаБридж
Бридж студия может быть полезной при проведении соревнований и комментаторам. Во первых она может найти оптимальный контракт для каждой пары север/юг и восток/запад. Во вторых программа может найти число взяток для каждого хода, например, найти лучший ход для атаки. Рассмотрим пример руки с реальных соревнований. Эта задача находится в библиотеке файл bts/www.doubledummy.net-Problem0423.bts.
север В 5 4 3 Д В 8 2 - Д В 8 5 2 | ||
запад 10 9 7 6 5 10 9 7 5 4 7 6 3 | восток Т К 7 6 2 К 9 Т Д Т К 10 4 | |
юг Д 8 Т 10 4 3 К В 8 6 3 2 9 |
Каждый игрок может быть разыгрывающим и может заказать козырем любую масть или бескозырную игру. Программа может рассчитать сколько взяток берет каждая сторона для любого типа игры и для любого разыгрывающего. Например, если юг закажет игру без козыря, тогда пара север/юг возьмет шесть взяток, если же юг закажет козырем трефу, тогда пара возьмет только пять взяток. Таким образом, можно создать таблицу с числом взяток, при оптимальной игре, для каждого разыгрывающего и типа игры.
Таблица взяток
| козырь | ||||||
|---|---|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | БК | ||
| и г р о к | север | 6 | 9 | 5 | 6 | 6 |
| восток | 7 | 4 | 8 | 8 | 7 | |
| юг | 6 | 8 | 5 | 5 | 6 | |
| запад | 7 | 4 | 7 | 7 | 7 | |
Теперь создадим таблицы достижимых и лучших контрактов для каждого разыгрывающего и типа игры.
Таблица достижимых контрактов
| козырь | ||||||
|---|---|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | БК | ||
| и г р о к | север | - | 3![]() | - | - | - |
| восток | 1![]() | - | 2![]() | 2![]() | 1БК | |
| юг | - | 2![]() | - | - | - | |
| запад | 1![]() | - | 1![]() | 1![]() | 1БК | |
Лучшие контракты
| север | 3![]() |
| восток | 1 2 2 1БК |
| юг | 2![]() |
| запад | 1 1 1 1БК |
Преферанс
Рассмотрим одну из широко известных преферансных задач - мизер Ковалевской.
север 10 9 8 7 9 8 9 8 7 8 | ||
запад Д В В 7 Т К Д 10 9 7 | восток Т K Т К Д 10 В Д В 10 |
В преферансе, в отличие от бриджа, игрок, делающий первый ход, не зависит от игрока заказавшего контракт. Таким образом, когда программа ищет решение для всех игроков и козырей, то первый ход могут делать три игрока. В преферансе каждый из трех игроков может заказать четыре масти или игру без козырей или мизер - всего 6 вариантов. То есть получается всего 3*3*6=54 задачи.
Таблица взяток и достижимых контрактов
Программа считает число взяток и возможные достижимые контракты для каждого игрока.
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Решение всех раскладов
Можно делать перебор всех раскладов когда первый ход еще не сделан или сделан один или несколько ходов. Карты, лежащие на столе считаются фиксированными и не учитываются при переборе. Опция будет активна пока у одного из игроков с неизвестными картами осталась хотя бы одна карта. Если у одного из игроков \(c_1\) незафиксированных карт, а у другого \(c_2\) незафиксированных карт, то общее число позиций равно биномиальному коэффициенту \(C^{c_1}_{c_1+c_2}\). Время расчета очень сильно меняется от задачи к задаче. Пока идет перебор программа показывает оставшееся время.
Примечание. Было замечено, что число вариантов увеличивается примерно в два раза, при увеличении на единицу числа неизвестных карт. Если обозначить суммарное число оставшихся карт за \(n=c_1+c_2\), тогда \(c_1\approx n/2\). Воспользовавшись формулой Стирлинга можно получить достаточно точную оценку биномиального коэффициента \(C^{n/2}_n\approx\sqrt{\frac{2}{\pi n}}\cdot 2^n\). Вывод формулы можно посмотреть в логической части. Ниже приводится таблица сравнений точного и приближенного значений.
| n | приближенное значение | точное значение | погрешность |
|---|---|---|---|
| 26 | 10 501 063 | 10 400 600 | 0.97% |
| 20 | 187 079 | 184 756 | 1.26% |
перейти к описанию опции для преферанса
сравнение числа взяток с первым ходом и без него (преферанс)
Бридж
Для бриджа можно выбрать пару игроков с неизвестными картами север/юг или запад/восток. При смене пары игроков расчет останавливается и начинается заново. Максимальное число вариантов достигается когда у игроков по 13 карт. Число раскладов в этом случае равно C1326=10 400 600. Так как в бридже задачи считаются очень долго, то для получения более точной оценки, пока задача не рассчитана до конца, сначала все варианты разбиваются на куски по 40 элементов, а затем случайно перемешиваются. При этом если дождаться окончания расчета - будет полный перебор всех раскладов. Рассмотрим задачу где первый ход еще не сделан, общее число вариантов равно C1326.
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Если первый ход сделан, то у запада остается 12 карт, его заход фиксируется. Тогда вариантов будет в два раза меньше C1225=C1325=5 200 300. Если сделать первые три или четыре хода в первой взятке, то число вариантов еще уменьшится и будет равно C1224= 2 704 156.
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Можно сделать несколько ходов и затем рассчитать расклады. В примере ниже у запада осталось 10 карт, у востока 9, число вариантов равно C1019=C919=92 378.

Преферанс
В преферансе делается перебор раскладов где неизвестные карты у вистующих или ловящих мизер игроков. Максимальное число вариантов достигается когда на руках у двух игроков по 10 карт. Число раскладов в этом случае равно C1020=184 756. Рассмотрим задачу Барбакару, где первый ход еще не сделан.
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Запад и север сделали по одному ходу. Карты лежащие на столе фиксируются, у севера остается 9 карт, число вариантов уменьшается в два раза C919=C1019=92 378.
Сделано шесть ходов. У запада и востока осталось по 8 карт, карты лежащие на столе не учитываются. Число вариантов равно C816=12 870.
Сравнение числа взяток с первым ходом и без него
Рассмотрим две задачи, в первой игрок заказал мизер, во второй 6
. Сравним когда первый ход сделан и первый ход не сделан. Ниже приведены таблицы для игр с первым ходом и без него. В любом случае если первый ход не сделан, то играющий получает лучшие условия, так как первый ход делает именно он. Суммарно по всем раскладам он берет не меньше взяток в случае немизерной игры и не больше взяток в случае мизера. В последней строке указано суммарное число взяток для всех раскладов.
|
282 286 = 14 966*1+612*2+9 582*3+34 032*4+19 582*5+552*6 10 962 = -1 134*1-220*3+1 580*4+1 172*5+96*6 = 293 248 - 282 286 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
1 150 790 = 972*4+19 025*5+101 762*6+62 771*7+226*8 -4 598 = 44*4+600*5+3 200*6-3 778*7-66*8 = 1 146 192 - 1 150 790 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Расчет таблицы математических ожиданий
Таблица математических ожиданий находится в меню дополнительно / решить все расклады, вкладка контракты.
перейти к описанию опции для преферанса
Бридж
Зная число взяток, при расчете всех раскладов, можно посчитать математические ожидания числа очков для каждого из заказанных контрактов. Игрок может заказать контракт от 1 до 7. Также есть два дополнительных параметра, выбираемых пользователем:
тип контракта
- простой
- контра
- реконтра
уязвимость
- да
- нет
Рассмотрим задачу. В этом раскладе пара север/юг берет восемь взяток.
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Перебрав 5 200 300 раскладов востока и запада получим таблицу вероятностей.
Посчитаем математическое ожидание очков пар север/юг и восток/запад при контракте юга 4
. Будем считать что заказан простой контракт (без контры и реконтры) и без уязвимости. Тогда таблица очков будет следующей, нас интересуют случаи от 7 до 11 взяток.
Зная вероятности prt и очки Sns(t), Sew(t) можно посчитать математические ожидания. $$ e_{ns}=\sum\limits_{t=0}^{13} S_{ns}(t)\times pr_t \hspace{1cm} e_{ew}=\sum\limits_{t=0}^{13} S_{ew}(t)\times pr_t=-e_{ns} $$ Отсюда получаем значения математических ожиданий
Аналогично математические ожидания вычисляются для других контрактов (1-7) и параметров (тип контракта и уязвимость).
Преферанс
Зная число взяток при расчете всех раскладов, можно посчитать математические ожидания числа очков для каждого из заказанных контрактов. В случае игры с козырем или игры без козыря игрок может заказать от 6 до 10 взяток включительно, в случае мизерной игры контракт только один. Также есть два дополнительных параметра выбираемые пользователем:
число игроков
- 3 игрока
- 4 игрока
тип вистования (только для немизерных игр)
- вист на выгодных раскладах, на остальных пас
- вист на выгодных раскладах, на остальных полвиста
- вист всегда
- полвиста всегда
- все всегда пас
перейти к примеру для мизерной игры
Расчет таблицы математических ожиданий для немизерной игры.
Рассмотрим сдачу из передачи "Преферанс по пятницам".
Юг, заложившись на плохой расклад, заказал 8
, а мог заказать 9
. Какой контракт для него более выгоден? Перебор всех раскладов позволяет узнать какой контракт для играющего даст ему больше очков. Рассмотрим четыре варианта: играют 3 или 4 игрока и контракт 8
или 9
. Расчет будет вестись для конвекции Сочи.
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Введем обозначения
- pgi - разница пули и горы i-ого игрока
- vij - висты i-ого игрока на j-ого
- p - число игроков (три или четыре)
- t - число взяток (от 0 до 10)
- prt - вероятность что игрок берет t взяток
- Si - число очков i-ого игрока
- Si(t) - число очков i-ого игрока если игрок берет t взяток
- для трех игроков 103(2pg1-pg2-pg3)+(v12-v21)+(v13-v31)
- для четырех игроков 104(3pg1-pg2-pg3-pg4)+(v12-v21)+(v13-v31)+(v14-v41)
В общем виде очки n-ого игрока вычисляются по формуле
$$ S_n=\frac{10(p-1)}{p}pg_n + \sum\limits_{\substack{i=1 \\ i\neq n}}^pv_{ni}-v_{in}-\frac{10}{p} pg_i $$В данной раздаче будем считать что играет игрок с номером 1, поэтому pg2=pg3=pg4=0 и vij=0 если i=1 или j≠1 при любом исходе расклада. Переберем все расклады севера и востока и получим, что при козыре бубна, юг берет от 7 до 10 взяток.
Будем считать, что север (игрок номер 2) вистует только на выгодных раскладах, то есть тогда когда юг не берет 10 взяток, а восток (игрок номер 3) всегда пасует. В этом случает север возьмет как минимум одну взятку и не получит ничего в гору. Тогда можно рассчитать сколько получит в пулю/гору юг и сколько вистов запишут на него остальные игроки для определенного числа взяток, а затем посчитать число очков для каждого игрока. Посчитанные очки выделены желтым цветом.
Теперь, зная вероятности и очки, можно посчитать математическое ожидание очков n-ого игрока оно равно \(e_n=\sum\limits_{t=0}^{10} S_n(t)\times pr_t\). В результате получаем две таблицы математических ожиданий. В обоих случаях заказывать девятерную игру выгоднее, чем восьмерную.
Расчет таблицы математических ожиданий для мизерной игры.
Рассмотрим задачу мизер Ковалевской. Север играет мизер, в этом раскладе он берет две взятки.
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Введем обозначения
- p - число игроков (три или четыре)
- t - число взяток (от 0 до 10)
- prt - вероятность что игрок берет t взяток
- S1(t) - число очков игрока если он берет t взяток
- Sj(t) - число очков j-ого игрока (2 ≤ j ≤ p) если игрок берет t взяток (равно для всех ловцов)
Переберем все расклады запада и востока, получим таблицу взяток севера.
В случае мизера висты не пишутся, только пуля или гора мизериста. 10 в пулю в случае если он не взял ни одной взятки (t=0), и 10×t в гору, если t>0. Теперь можно посчитать число очков игрока по формуле указанной выше. Если игрок не взял ни одной взятки (t=0), то S1(0)= 100×(p-1)p. Если же игрок взял хотя бы одну взятку (t>0), то S1(t)= – 100×(p-1)×tp. Теперь посчитаем очки ловцов. Воспользуемся тем, что суммарное число очков всех игроков должно быть равно нулю, и очки для всех ловцов равны. Получаем уравнение S1(t)+(p-1)S2(t)=0 отсюда S2(t)= – S1(t)p-1. Теперь можно построить таблицу очков для мизериста и ловцов для трех и четырех игроков в зависимости от числа взяток взятых игроком. Нас интересуют случаи где число взяток не больше шести.
Теперь посчитаем математическое ожидание очков n-ого игрока \(e_n=\sum\limits_{t=0}^{10} S_n(t)\times pr_t\). В результате получаем две таблицы математических ожиданий.
Анализ руки (панель лучших ходов)
Делая анализ руки, программа находит последовательность лучших ходов, до конца игры и отображает ее. Сначала находится лучший ход t1, затем лучший ход t2 после хода t1, потом лучший ход t3 после ходов t1 и t2 и так далее. Таким образом программа доходит до конца розыгрыша и находит оптимальную последовательность ходов. На любой из лучших ходов можно нажать, в этом случае будут сделаны ходы от начала анализа, до нажатого хода включительно. Если в момент нажатия программа делает расчет лучшего хода или оценку все ходов, то ничего не произойдет так как это опция неактивна.
Язык интерфейса
Для переключения языка выберите соответствующий пункт меню Язык. На данный момент доступны русский, английский и итальянский языки. Языковые настройки хранятся в текстовых файлах с расширением lng, что позволяет легко добавлять новые языки. Для создания нового языкового файла, достаточно скопировать уже существующий языковой файл и изменить копию в текстовом редакторе. Имя нового языкового файла должно быть названием языка на английском, например, french.lng. Затем просто скопировать новый файл в папку bin/lng. При желании можно добавить картинку страны в папку bin/images. Имя файла картинки должно совпадать с именем языкового файла и иметь расширение png. Если вы создали новый файл с языком пишите мне.Примечание Язык интерфейса по умолчанию английский
Примечание Язык интерфейса автоматически запоминается при выходе из программы
Бридж/преферанс
Для переключение с бриджа на преферанс и наоборот выберите меню дополнительно/бридж или дополнительно/преферансПримечание Параметр автоматически запоминается при выходе из программы.
Загрузка задач из pbn и deep finesse файлов
Pbn файлы это portable bridge notation файлы, являющиеся принятым международным стандартом записи бриджевых сдач. Если у Вас есть pbn или df файлы, то можете загружать задачи из них. Файлы можно просто перетащить в окно решателя, можно также перетаскивать сразу несколько файлов. Можно перетаскивать папки с файлами, тогда будут считаны все файлы типов pbn, df, bts, pts, при этом если папка содержит подпапки то файлы из них тоже считываются.Установка новой задачи
Для установки новой задачи выберите меню задача/новая или нажмите Ctrl+N - после этого все карты будут в у запада. Клик по карте находящейся у запада перемещает её к северу до тех пор пока у него меньше 13 карт в бридже или 10 карт в преферансе, после этого карты будут перемещаться к востоку и так далее. Если клик делается на карте, находящейся у севера, востока или юга, то она переместится к западу. При этом карты можно перетаскивать к игрокам север, юг, восток и при необходимости в снос. Можно использовать комбинацию Сtrl+левая клавиша мыши, тогда карта переместится к игроку, к которому вы в последний раз перетащили карту. Допустим, при установке задачи, вам надо перетащить из сноса к югу карты 2
3
9
10
6
.
Можно перетащить все эти карты к югу, но можно сделать и проще. Перетащим сначала к югу двойку пик, а после этого надо навести мышь на тройку бубён и нажать Сtrl+левая клавиша мыши. Тройка переместится к югу. Эту же операцию можно проделать с остальными картами. Затем установите козырную масть или игру без козыря, или мизер для преферансной задачи. Затем установите игрока в преферансе. Игрок или человек, играющий мизер выделяется подчеркиванием, для изменения игрока нужно просто нажать на соответствующую надпись. После этого устанавливается игрок, делающий первый ход. Он меняется нажатием на стрелку или кликом на область где будет стрелка, когда она укажет на нужного игрока. Если первый ход уже сделан - перетащите карту во внутренний квадрат. После этого стрелка будет указывать на следующего игрока. При необходимости можно сделать второй ход и так далее. После того как первая карта будет во внутреннем квадрате ход уже нельзя переключить.
Примечание Не обязательно устанавливать вначале у каждого игрока по 13 карт в бридже или по 10 в преферансе, можно по сколько угодно.
Разбор задачи
После установки задачи необходимо нажать кнопку
или правую клавишу мыши. Если кнопка неактивна, значит установлена ошибочная задача, например, игроки имеют разное число карт. После этого программа выдаст лучший ход, число взяток для пар север/юг и запад/восток при оптимальной игре. Теперь можно опять нажать на кнопку
или правую клавишу мыши, а также можно сделать ход самостоятельно. Ходы, которые делают компьютер и игрок, можно чередовать в любой последовательности. Можно отматывать ходы назад, для этого необходимо нажать на карту на столе, при этом произойдет отмена хода. Если нужно отменить все ходы начиная с карты захода, нажмите на карту захода. Для удобства пользователя на панели управления есть кнопки
все ходы назад,
ход назад,
и
ход вперёд,
все ходы вперёд.
Редактирование задачи
В процессе разбора задачи можно менять параметры задачи, например, расклад, козырь, контракт и так далее. Для этого используйте меню задача/редактировать задачу или клавиши Ctrl+E, после этого карты не уйдут в снос, но при этом можно менять все параметры.Сохранение задачи в html файл
Эта опция полезна для публикации задач в интернете, а также распечатки. Задачу можно сохранять с картинками или без них.
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Задача сохраняется в html файл так, что на неё можно ссылаться, перед задачей вставляется html-таг <p>, например, для этой задачи было вставлено <p id='HughDarwen1'>. Можно сохранять задачу с лучшим ходом, а также числом взяток пар [север-юг]/[запад-восток] обеих сторон при оптимальной игре. Любой из этих параметров или оба сразу можно отключить. Ниже приведена задача сохранённая с лучшим ходом и числом взяток.
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Если вы выбираете сохранение задачи с лучшим ходом или с числом взяток при оптимальной игре, вы должны подождать пока программа произведёт полный расчёт задачи.
Примечание. Вид сохраненной задачи зависит от языка интерфейса.
Конвертер
Можно конвертировать библиотеки pbn, deep finesse, bts, pts файлов в форматы pbn, deep finesse, bts, html. Чтобы сконвертировать файлы выберете меню дополнительно/конвертировать затем добавьте файлы, которые вы хотите конвертировать. Затем нажмите OK. Чтобы сохранить список текущих задач, нужно нажать меню задача/сохранить как... и выбрать нужный формат.Оценка всех ходов
Опция оценки всех ходов полезна тем, что можно видеть сколько взяток берёт ходящая сторона не только при лучшем ходе, но и при всех других возможных ходах. Оценка всех ходов находится в меню опции. Возможно несколько вариантов- не оценивать ходы - После поиска оптимального хода компьютер не будет оценивать ходы и не будет показывать оценки ходов
- оценивать только лучший ход (частичные взятки) - После поиска оптимального хода компьютер покажет оценку лучшего хода, а также всех карт, находящихся в секвенсе с лучшим ходом. При этом взятки, которые уже взяты текущей стороной не будут добавлены. Поскольку лучший ход уже имеет оценку, компьютеру не потребуется дополнительное время для расчёта
- оценивать только лучший ход (итоговые взятки) - После поиска оптимального хода компьютер покажет оценку лучшего хода, а также всех карт, находящихся в секвенсе с лучшим ходом. При этом взятки, которые уже взяты текущей стороной будут добавлены. Поскольку лучший ход уже имеет оценку, компьютеру не потребуется дополнительное время для расчёта
- оценивать все ходы (частичные взятки) - После поиска оптимального хода компьютер оценит все возможные ходы и покажет число взяток, которая берёт его сторона. Взятки, которые уже взяты текущей стороной не будут добавлены. Если выбрана эта опция - компьютеру потребуется некоторое время, чтобы оценить все ходы
- оценивать все ходы (итоговые взятки) - После поиска оптимального хода компьютер оценит все возможные ходы и покажет число взяток, которая берёт его сторона. Взятки, которые уже взяты текущей стороной будут добавлены. (Эта опция используется по умолчанию). Если выбрана эта опция - компьютеру потребуется некоторое время, чтобы оценить все ходы



en
Д В 8 2

