200 / 138 / 56
Регистрация: 25.12.2014
Сообщений: 442
1

Механический автомат для игры в подкидного дурака

01.04.2019, 21:15. Показов 1279. Ответов 3

В 1769 году (250 лет назад – юбилей!)) в Вене австрийский механик Вольфганг фон Кемпелен продемонстрирован механический автомат, играющий в шахматы. По своему внешнему виду автомат получил прозвище «Механический турок».
Автомат сам «видел» позицию, сам передвигал фигуры, качал головой для объявления шаха и оставался неподвижен при некорректном ходе противника. И всё это требовало всего лишь завода пружины (каждые 20 ходов).
Удивительным было бы, если автомат вообще как-то играл! А он ведь еще и играл весьма сильно.
Конечно же, это был обман – в ящике был спрятан живой человек, который и совершал ходы. Кемпелена называют обманщиком, но следует сказать в оправдание, что он сам никогда не утверждал ничего определенного. Наоборот, он называл свое изобретение зрелищем и иллюзионом. т.е. фокусом. Перед игрой, изобретатель открывал дверцы и показывал автомат со всех сторон, предоставляя публике самой судить, можно ли верить собственным глазам и могуществу механики. Так что он не больший обманщик, чем Кио, Акопян или Гудини.
Создать механический шахматный автомат, который играл бы на самом-самом слабом уровне (хотя бы просто соблюдал правила игры), сложная задача.
А вот создать механический автомат для игры в подкидного дурака вполне можно! И при этом не нужно никакого спрятанного внутри оператора.
Конечно, это не полный автомат: требуется нажимать кнопку «Ходи», «Крой» или «Подкидывай», вставлять в определенные прорези карты из колоды или со стола, вытаскивать и класть на стол карту, из имеющихся на руках у автомата. Но какой картой ходить, какой крыть и какую подкидывать решает сам автомат!
Ниже будет опубликована инструкция по эксплуатации такого автомата.

Добавлено через 27 секунд
Инструкция по эксплуатации игрового автомата «Дурак»

Автомат имеет 6 мест (окошек) для хранения имеющихся у него карт, расположенных горизонтально в ряд и обозначенных слева направо цифрами от 1 до 6. Там должны размещаться имеющиеся на руках у автомата карты рубашкой наружу, рисунком внутрь. Если у автомата на руках более 6 карт, то прочие карты помещаются стопкой в контейнер дополнительных карт (допконтейнер). Необходимо следить, чтобы во всякое время позиции 1-6 были заполнены имеющимися картами, причем карты размещались в этих позициях без разрывов, занимая позиции с наименьшими номерами. Например, если у автомата на руках 3 карты, то они должны быть размещены в позициях 1,2,3. Если карта автомата изымается для совершения хода, то необходимо сдвинуть остальные карты, чтобы заполнить пропуск, и добавить в самые правые позиции карты из допконтейнера (при наличии).
Под рядом с окошками расположена стрелка указателя. Первоначально она занимает позицию слева от окошка с номером 1 (обозначим эту позицию 0). Позицию указателя справа от окошка с номером 6 обозначим 7.
Игра начинается размещением 6 карт, снятых с колоды в 6 окошках автомата.
1) «Ход». Чтобы автомат сделал ход, нужно нажать кнопку «Ходи». Если стрелка указателя сдвинулась под одно из 6-ти окошечек, то именно эту карту выбрал автомат для хода. Эта карта вынимается и выкладывается на стол, карты в окошечках справа сдвигаются, чтобы заполнить пустое место. При необходимости справа добавляются карты из допконтейнера.
Если указатель сдвигается в позицию 7, значит автомат выбрал для хода карту, находящуюся в допконтейнере. В этом случае все 6 карт вынимаются из окошечек и временно куда-то откладываются (но не в допконтейнер), из допкойнере вынимается 6 карт (или меньше, если там менее 6 карт), которые в любом порядке вставляются в окошечки. После этого кнопка «Ходи» нажимается еще раз. Если указатель опять сдвинулся в позицию 7, то опять заменяются карты картами из допконтейнера. Так следует поступать, пока автомат не выберет карту для хода.
Следующая карта (следующие карты) для хода выбирается нажатием кнопки «Подкидывай». При этом указатель показывает нужную карту так, как это было указано выше. Если указатель остался в позиции 0, значит все карты для хода выбраны. Этими картами следует совершить ход.
После выкладывания на стол выбранных карт, временно отложенные карты возвращаются в окошечки или допконтейнер, таким образом, чтобы окошки 1-6 были по возможности заполнены начиная с позиций с наименьшими номерами.
2) «Подкидывай». Чтобы автомат выбрал карту для подкидывания какому-то игроку, нужно нажать кнопку «Подкидывай». Указатель покажет нужную карту в позициях 1-6 или в допконтейнере так, как это описано выше в п.1. Если указатель остался в позиции 0, значит карт для подкидывания нет.
3) «Крой». Карты для покрытия выстраиваются в одну линию в направлении от автомата. Нажимается кнопка «Крой». Указатель указывает карту среди первых шести или в допконтейнере так, как это указано выше в п.1. Этой картой кроется первая подходящая карта, расположенная ближе всего к автомату. Следующее нажатие кнопки «Крой» указывает следующую карту. Если указатель остался в позиции 0, это означает, что автомат забирает карты. Они должны быть помещены в позиции 1-6 и в допконтенер так, что в первый очередь заполняются пустые места в позициях 1-6, в порядке возрастания номеров.

За пополнением карт с колоды должен следить человек, если у автомата меньше 6 карт, то снятые с колоды карты помещаются в окошечки 1-6.
В упрощенной конструкции нет защиты от неверного ввода, т.е. нажимать кнопки «Ходи», «Крой» или «Подкидывай» нужно только тогда, когда действительно пришла очередь автомата должен сделать такой вид хода. Если же автомат вышел из игры (карты на руках у автомата и карты в колоде закончились), то никакие кнопки на автомате нажимать не следует, во избежание некорректного ответа.

Добавлено через 36 секунд
Можно построить механический (и весьма простой) автомат, действующий по такой инструкции. Он играет, конечно, слабо, но зато не нарушает правила (не путает масти, старшинство и козыри, в процессе покрытии или подкидывания).
Подумайте, пожалуйста, как он мог бы быть устроен. Позднее я опубликую одну из возможных конструкций.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2019, 21:15
Ответы с готовыми решениями:

Перечисление для дурака
Здравствуйте. Начал писать карточную игру в дурака, возник вопрос (ну или проблема, как угодно). ...

Механический цех
Помогите решить пожалуйста, не могу ни кк докурить че да как. Механический цех за смену может...

Механический инвертор DC-3Ф
Пока жду драйвера и быстрые диоды возникла мысль. Выпрямленное сетевое напряжение коммутировать...

Сборка ПК "для себя" - игры, игры, игры! Киев, бюджет 8300 грн с монитором.
Всем доброго времени суток. 1. Бюджет примерно 8300 грн (с монитором) 2. Украина, г. Киев,...

3
200 / 138 / 56
Регистрация: 25.12.2014
Сообщений: 442
04.04.2019, 22:29  [ТС] 2
Как и обещал выкладываю возможную конструкцию автомата (см. рисунок).

Кнопка "Ходи" жестко соединена со стрелкой указателя так, что при нажатии кнопки до упора стрелка переходит в позицию 1, а при отпускании под действием пружины возвращается в положение 0. Остальные две кнопки ни с чем не соединены.
Как видите, конструкция предельно простая, но позволяет играть в дурака, не нарушая правила, без путаницы мастей и козырей.
Миниатюры
Механический автомат для игры в подкидного дурака  
0
200 / 138 / 56
Регистрация: 25.12.2014
Сообщений: 442
08.04.2019, 07:48  [ТС] 3
А если два автомата играют друг с другом, чем закончится игра? А если автоматов будет 3? А что будет для 4-х? Можно ли предсказать результаты игры, если будут играть N автоматов?
0
200 / 138 / 56
Регистрация: 25.12.2014
Сообщений: 442
13.04.2019, 09:41  [ТС] 4
Если друг с другом играют 2 автомата, то второй будет снимать все карта, пока не соберет все 36 карт. Первый будет только ходить под второго по одной карте (и снимать карты с колоды).
Случай 3-х автоматов интереснее. 1-й сходит одной картой под второго, 2-й ее снимет, 3-й сходит картой под 1-го ,который ее снимет. Теперь очередь 2-го - он ходит одной картой под 3-го, который ее снимает. Опять наступает очередь 1-го. Понятно, что это будет продолжаться до бесконечности - автоматы будут передавать друг другу одну карту. С колоды при этом будет снято всего 2 карты (1-м и 3-м) в дополнение к 6, находящимся на руках у игроков первоначально.
Оказывается, игра в подкидного дурака может зациклиться, т.е. не является безусловно завершаемой. Вот ним, реверси и крестики-нолики - это игры безусловно завершаемые, потому что с каждым ходом уменьшается число камней или свободных полей. Поэтому такие игры завершаться через конечное число ходов, даже если игроки сговорятся затянуть партию до бесконечности. В шахматах и шашках, например, есть специальные правила (ничья при троекратном повторении позиции, ничья при голых королях, дамка против дамки и т.д.), которые не допускают затягивания партий до бесконечности.

Итак, для нечетного количества игроков игра зацикливается (если у каждого на руках первоначально хотя бы 2 карты).
Если игроков четное количество, то игроки с нечетными номерами будет передавать по 1 карте игрокам с четными номерами, пока нечетные не будут выбывать из игры один за другим.После этого игра либо зациклится либо завершится проигрышем одного из автоматов.
Если играют 4 автомата, то все карты розданы, колоды нет. 1 и 3-й будут передавать по одной карте игрокам 2-му и 4-му, после чего последовательно выйдут из игры. Следующий ход делает 2-й игрок, а 4-й снимает. Это повторяется, пока 2-й не передаст 4-му все карты и не выйдет. Проигрывает 4-й.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2019, 09:41
Помогаю со студенческими работами здесь

Механический смысл производной
Прошу помочь с данной задачей. Ордината точки, описывающей окружность x2+y2=25 , убывает со...

Механический треск из колонок
Здравствуйте,у меня возникла данная проблема месяц назад.Компьютер из колонок издает механический...

в чем ошибка пишу защиту от дурака для знака минус
if (((c==45))&&(i<L)&&(flag!=1)&&(i>0)) //минус { printf("%c",c); str=c; ...

Ужесточение механический свойств материалов
Какими технологическими приемами добиваются ужесточение механических свойств материалов? Буду...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru