Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ Ходи и побеждай

Автор: James Montegry 11.12.2007 13:00

В игру играют игрок и компьтер, которые хадят по очереди. За каждым разом игрок передвигается вперед на одну, две или три клетки. Побеждает тот, кто первый окажется на последней клетке. Игрок перед началом игры стоит на первой клетке.

Помогите решить вот такую задачку.

Автор: Lapp 11.12.2007 14:28

Английское название этой игры - ним (русское, боюсь, не существует). Играют обычно в спички. Выкладывается некоторое количество спичек на стол, игроки (их двое) берут по очереди одну, две или три спички. Кто берет последнюю - проиграл.
Ним - это вообще-то название целого класса игр такого типа. Поищи в яндексе на "игра ним спички".

Что касается реализации - определись с интерфейсом. И говори, с чем трудности.

Автор: James Montegry 11.12.2007 14:59

Цитата
Что касается реализации - определись с интерфейсом. И говори, с чем трудности.

Количество ходов должно вводится с клавиатуры. Я не могу понять каким методом сделать эту игру.

Автор: Lapp 11.12.2007 15:17

Например, если компьютер (тупой) играет случайным образом, то можно примерно так:

  n:=12;  {начальное число клеток}
player:=0;
while n>0 do begin
WriteLn('Осталось пройти ',n,' клеток');
Write('Игрок ',player,', введите ваш ход: ');
repeat
if player=0 then ReadLn(m) else m:=Random(3)+1;
until (m>0)and(m<4)and(m<=n)
Dec(n,m);
Player:=1-Player
end;
WriteLn('Игрок ',player,' выиграл');


Автор: James Montegry 11.12.2007 15:38

Большое спасибо. Только как мне завершить программу? Просто "end." в конце мало

Автор: Lapp 11.12.2007 15:52

Цитата(James Montegry @ 11.12.2007 11:38) *

Просто "end." в конце мало

Верно.
Учи Паскаль, и все поймешь.
Выкладывать полное решение для тунеядцев не собираюсь.

Автор: James Montegry 11.12.2007 15:54

Цитата

Выкладывать полное решение для тунеядцев не собираюсь.


И на этом спасибо.

З.Ы. Когда я смогу ставить плюсики?

Автор: Lapp 11.12.2007 16:27

Цитата(James Montegry @ 11.12.2007 11:54) *

И на этом спасибо.
И тебе спасибо за адекватную реакцию smile.gif
Цитата(James Montegry @ 11.12.2007 11:54) *

З.Ы. Когда я смогу ставить плюсики?
А что, еще не можешь?.. Странно. Было вроде с 10 сообщений, а у тебя 14.

Автор: volvo 11.12.2007 16:28

С 25 сообщений, Lapp: http://forum.pascal.net.ru/index.php?s=&showtopic=15545&view=findpost&p=92448

По крайней мере другая информация не была обнародована...

Автор: Lapp 11.12.2007 16:32

volvo, спасибо.
Башка дырявая, клинн..

Автор: Michael_Rybak 11.12.2007 20:45

Плюсик добавил.

Автор: nopsrer 26.12.2007 23:33

Как зделать эту же задачу, НО в случае если комьютер должен быть "умным", то есть он должен не рандомом ходить, а продумывать шаги для выиграша?

Автор: Michael_Rybak 26.12.2007 23:38

каждым ходом оставлять кратное четырем количество шагов.

Автор: andriano 26.12.2007 23:49

Возможно.
Но иногда компьютер должен и ошибаться. :D