Калькулятор игры "21 очко"

Бюджет: по договоренности
Доброго времени суток!

Необходимо написать программу, которая вычисляла бы вероятность выигрыша в раздаче и показывала оптимальный ход для карточной игры "21 очко" с 1й колодой (36 карт).

Наверняка, все знают, как играть в "очко", но вот более подробное описание механики игры:

Правила:
-играют Дилер и Игрок. После раздачи карт (по 2 карты каждому), Игрок первым принимает решение – Добрать или Остановиться. Игрок побеждает, если сумма очков больше, чем у Дилера, или если Дилер перебирает. 
Дилер побеждает, если сумма его очков в итоге больше, или если Игрок перебирает.
Дилер добирает карты после того, как Игрок решит остановиться. Дилер обязан брать, если сумма его карт 16 и меньше. Если сумма карт от 17 до 21 – Дилер обязан остановиться.
В случае, если Игрок набирает 21 очко, Дилер имеет право добрать себе карты, чтобы также набрать 21 и вывести раунд в ничью.
В случае, если Игрок или Дилер получает карманные 21 (в первой же раздаче получает комбинацию Т+10 или два туза, которые тоже считаются за 21), это означает моментальную победу в раунде.

Значения карт: Т 11, К 4, Д 3, В 2, остальные – 6,7,8,9,10 – по номиналу.

Как вижу реализацию программы:
1. Ввести значения стартовых карт Игрока и Дилера
2. Программа покажет вероятность победы в раздаче, исходя из этих карт
3. Программа покажет оптимальный ход для Игрока
4. После совершения хода, в программу можно ввести значение полученной карты и снова увидеть оптимальный ход, в изменившейся ситуации.

Расчет несложный, поскольку используется 1 колода, известно общее кол-во карт, следовательно стартовая вероятность выпадения карты после 1-го добора Игроком – 1/32.

Но необходимо все это реализовать именно в формате десктопного софта. Язык написания, внешний вид – абсолютно любые, лишь бы систему не тормозило. Возможность сохранять историю – желательная, но не обязательная опция.

Пример программы, на которую этот софт может быть похож – Poker Stove.
Опубликован 14.09.2017 в 15:27

Выберите способ верификации:

Обновите страницу после прохождения верификации.