Форум программистов, компьютерный форум, киберфорум
Программирование игр
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 02.07.2009
Сообщений: 11
1

игра 37. придумать стратегию

12.01.2010, 16:22. Просмотров 1760. Ответов 7
Метки нет (Все метки)

Здаравствуйте. Я студент мне задали разработать игру 37 по программированию на ЯВУ, не могу придумать стратегию. Помогите пожалуйста. Вот задание: на столе лежат пять карточек, на которых соответственно написано 1, 2, 3, 4, 5. играют двое и ходят по очереди. первый игрок кладет монету на произвольную карточку, например, на 5, что дает ему 5 очков, затем второй перекладывает монету на 3, прибавит 5 к 3 получает 8 очков, затем первый игрок кладет монету допустим на 1 и получает сумму очков равную 9 и т.д. тот игрок который первым наберет 37 или принудит своего противника превзойти эту сумму, выигрывает. Играет компьютер против пользователя, нужно разработать стратегию когда комп ходит первым и когда узер ходит первым.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2010, 16:22
Ответы с готовыми решениями:

Придумать эффективную стратегию игры
мальчик и девочка по очереди закрашивают клеточки таблицы размером 1986х1986. за один ход...

Игра в карты на стратегию
Разложим на столе 24 раскрытые карты: все карты с номерами от 1 до 6 обычной колоды, где туз...

Нужно придумать стратегию для победы в игре "Цифровые войны"
Написать игру «Цифровые войны». На экран выводятся 20 случайных цифр от 0 до 9. Ходят по очереди...

Онлайн игра (только стратегию)
Я хочу сделать онлайн игру (только стратегию), но опыта ещё нет...вся проблема в системе боя. ...

7
2818 / 1628 / 252
Регистрация: 03.12.2007
Сообщений: 4,223
12.01.2010, 20:45 2
Если комп первый, то он ходит первый раз 1, потом все разы (6 минус ход юзера) и получает всегда 37. Если юзер ходит первый, то, когда он ступит, надо на эту же стратегию перейти, а если не ступит, то комп проигрывает.
1
0 / 0 / 0
Регистрация: 02.07.2009
Сообщений: 11
13.01.2010, 14:11  [ТС] 3
Спасибо большое Somebody
0
0 / 0 / 0
Регистрация: 02.07.2009
Сообщений: 11
17.01.2010, 17:31  [ТС] 4
Появилась проблема дело в том что занятую предыдущим игроком карточку следующий игрок выбирать не может, например, если юзер выбрал 3 комп ходит 6-3 получает 3 а три уже занято. Нужно как то этого избежать, но не потерять стратегию, и если можно подскажите еще стратегию компьютера когда юзер ходит первым, придумать самому не получается помогите пожалуйста.
0
2818 / 1628 / 252
Регистрация: 03.12.2007
Сообщений: 4,223
18.01.2010, 19:33 5
Идея такая. Смотрим, что будет, если сейчас сумма равна (каждая следующая строчка следует из предыдущих):
37 - то, к чему стремимся
36 - можно выиграть, если 1 не занята
35 - можно выиграть всегда (так как свободна или 1, или 2, ну, или обе)
34 - можно выиграть, если свободна 3
33 - если свободна 2 или 4
32 - если свободна 5
31 - если 3
30 - проиграли, так как при любом ходе противник попадёт в выигрышную позицию
29 - выиграем, если свободна 1
28 - если 1, или 2, или 3
27 - если 3 или 5
26 - если 4
и так далее. Если мы в выигрышной позици, то надо ставить противника в проигрышную. Если мы в проигрышной, то есть, например, в начале игры с нетупым юзером, то пофиг, как ходить, всё равно проиграем (можно, например, ходить цифрами поменьше, чтобы у юзера было больше шансов ошибиться). Если юзер сам сходит в проигрышную позицию, то надо поставить себя в выигрышную.
1
0 / 0 / 0
Регистрация: 02.07.2009
Сообщений: 11
19.01.2010, 02:33  [ТС] 6
Извините меня пожалуйста за то что намудрил все усложнил. Два варианта: можно сделать так чтобы карточку уже занятую первым игроком второй игрок на следующем ходе занимать не мог, и можно сделать так чтобы можно было занимать уже занятую предыдущим игроком карточку - это не важно, нужно выбрать тот вариант что проще и удобнее для вас и для написания.
Пишу на паскале если можно пожалуйста по ближе к его среде.
Я начал делать первый вариант когда второй игрок не может брать занятую карточку тогда используя предложенный вами алгоритм за что большое спасибо я наткнулся на проблему 6-3=3 так нельзя. Тогда начал делать другой вариант занимать любые карточки, когда компьютер ходит первым все безупречно у юзера шансов нет, но как наставить комп на эту стратегию когда он ходит вторым ни как не могу врубиться. Пробовал использовать кратность может поправите
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure get_pc(var h1:integer; last:integer; hum_n:integer);
begin
if pc_turns then {h1 - число которое возьмет компьютер за ход}
 begin           {last - занятая пользователем карточка}
 if last=0 then  {hum_n - сумма очков игрока}
  h1:=1          {pc_turns - признак компьютер ходит первым}
 else
  h1:=6-last
 end
else
if (hum_n mod 6)<>0 then
 h1:=6-last
else
 h1:=(hum_n mod 6);
 if h1=0 then
  h1:=5;
end;
0
2818 / 1628 / 252
Регистрация: 03.12.2007
Сообщений: 4,223
19.01.2010, 19:48 7
В общем-то ход зависит только от текущей суммы
Код
function GetOptimalTurn(sum: Integer): Integer;
var
  n: Integer;
begin
  n := (sum + 5) mod 6;
  if n <> 0 then
    GetOptimalTurn := 6 - n
  else
    GetOptimalTurn := 1;
end;
1
0 / 0 / 0
Регистрация: 02.07.2009
Сообщений: 11
29.01.2010, 00:50  [ТС] 8
Игра 37, может кому потребуется.
0
Вложения
Тип файла: rar Igra37.rar (1.9 Кб, 32 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2010, 00:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Какой придумать алгоритм для расстановки фигур в определённом порядке. По-сути это игра "пятнашки"
Нужно придумать алгоритм нахождения оптимального решения, то есть наименьшее количество...

Задача на выигрышную стратегию
Столкнулся с такой задачей, никогда таких не решал. Скажите, пожалуйста, в чём суть стратегии? ...

Найти старую стратегию
Говорю сразу ищутся не в смысле где скачать, а какие есть вообще. За точность названий не...

Как создать стратегию
Всем привет.Хочу создать простую стратегию. Знаю язык JAVA. Помогите не знаю с чего начать. Сразу...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.