|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.05.2012, 06:44 | #1 |
Регистрация: 19.05.2012
Сообщений: 8
|
Реализация выигрышной стратегии на Паскаль: В первом ящике 68 шаров, а во втором - 97. Игроки берут шары по очереди.
В первом ящике 68 шаров, а во втором - 97. Двое играющих поочередно берут шары, причем за один ход игрок может взять из любого (но только одного) ящика произвольное количество имеющихся в нем шаров. Выигрывает берущий последние шары. Кто выигрывает при правильной игре, начинающий или его парт-нер, и как надо для этого играть?
Решение. Если первый игрок начнет с того, что уравняет количество шаров в ящиках (т.е. вынет из второго ящика 29 шаров), он получит возможность выиграть: его стратегия будет заключаться в том, чтобы все время и в дальнейшем уравнивать число шаров в ящиках после каждого хода второго игрока (так называемая "симметричная стратегия"). Поступая таким образом, он, очевидно, выиграет: поскольку второй игрок всегда своим ходом нарушает симметрию, он не может забрать последние шары (ведь тем самым он создаст симметричную ситуацию - оба ящика пусты) а когда второй игрок заберет все из одного ящика, (что рано или поздно неизбежно - ведь количество шаров после каждого хода уменьшается, что не может продолжаться бесконечно) первый следующим своим ходом сделает то же самое с другим ящиком - заберет все - и лишит второго игрока возможности сделать очередной ход. Если же первый игрок хотя бы один раз отступит от этой стратегии, второй получит возможность выиграть, если "перехватит инициативу" и сам начнет делать ходы, "симметричные" ходам первого. Ответ: при правильной игре выигрывает первый игрок. Не могу реализовать решение на Паскале ______________ Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы. На первый раз я исправил. В последующем, темы с подобным названием будут закрываться или удаляться, а автор такой темы будет получать штрафные баллы. Учтите это на будущее. Модератор. Последний раз редактировалось Serge_Bliznykov; 27.05.2012 в 09:35. |
27.05.2012, 09:38 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
во-первых, когда речь идёт о реализации игр, то один из важных вопросов - какой интерфейс Вы будете воплощать? (графика или консоль, что выводить, как игрок делает ход и т.д.)
во-вторых, Паскали - они разные, одно дело TurboPascal, другое Delphi или PascalABC.Net. ну и последнее, а что именно у вас не получается? Ведь статегия у Вас есть. Она простая. Осталось написать простенькую программу, которая эту стратегию воплощает на практике. всё. |
27.05.2012, 09:47 | #3 |
Регистрация: 19.05.2012
Сообщений: 8
|
я не могу сообразить как эту стратегию написать на ТурбоПаскале. Вроде и простенькая программка должна получиться.
|
28.05.2012, 20:19 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Вы на первый вопрос не ответили - Вы игру хотите делать в графике или в консоли?! и какой интерфейс должен быть? (как выглядеть должно игровое поле, грубо говоря!)
|
28.05.2012, 20:58 | #5 |
Регистрация: 19.05.2012
Сообщений: 8
|
Интерфейс в консоли, не нужно мудренного интерфейся. Главное чтоб программа работала и выводила ответ что выигрывает комп и все.
|
28.05.2012, 22:11 | #6 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Код:
|
29.05.2012, 07:31 | #7 |
Регистрация: 19.05.2012
Сообщений: 8
|
Я не понимаю, как записать чтоб один игрок уравнивал кол-во шаров
|
29.05.2012, 09:51 | #8 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Код:
Код:
программа — запись алгоритма на языке понятном транслятору
|
29.05.2012, 11:53 | #9 |
Регистрация: 19.05.2012
Сообщений: 8
|
Я не понял что значит эта строчка: else s:='не знаю что делать';
|
29.05.2012, 13:35 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ладно. наслаждайтесь...
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Реализация выигрышной стратегии для компьютера | makc56 | Паскаль, Turbo Pascal, PascalABC.NET | 13 | 18.05.2012 13:32 |
Два текстовых файла. Записать в третий те строки, которые есть и в первом, и во втором файлах (Паскаль) | dark999 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 28.03.2011 21:41 |
Два столбца таблицы, во втором - поле, в первом - визуальное название этого поля | Krasi | HTML и CSS | 1 | 31.07.2010 00:30 |
Игра состоит в том, что игроки по очереди выбирают одну из карточек и передвигают свою фишку по ленте | sverhuVniz | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 16.11.2008 02:46 |
Фильтрация данных на втором листе по данным на первом | ppl | Microsoft Office Excel | 3 | 13.08.2008 14:07 |