В игру играют игрок и компьтер, которые хадят по очереди. За каждым разом игрок передвигается вперед на одну, две или три клетки. Побеждает тот, кто первый окажется на последней клетке. Игрок перед началом игры стоит на первой клетке.
Помогите решить вот такую задачку.
Английское название этой игры - ним (русское, боюсь, не существует). Играют обычно в спички. Выкладывается некоторое количество спичек на стол, игроки (их двое) берут по очереди одну, две или три спички. Кто берет последнюю - проиграл.
Ним - это вообще-то название целого класса игр такого типа. Поищи в яндексе на "игра ним спички".
Что касается реализации - определись с интерфейсом. И говори, с чем трудности.
Например, если компьютер (тупой) играет случайным образом, то можно примерно так:
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,' выиграл');
Большое спасибо. Только как мне завершить программу? Просто "end." в конце мало
С 25 сообщений, Lapp: http://forum.pascal.net.ru/index.php?s=&showtopic=15545&view=findpost&p=92448
По крайней мере другая информация не была обнародована...
volvo, спасибо.
Башка дырявая, клинн..
Плюсик добавил.
Как зделать эту же задачу, НО в случае если комьютер должен быть "умным", то есть он должен не рандомом ходить, а продумывать шаги для выиграша?
каждым ходом оставлять кратное четырем количество шагов.
Возможно.
Но иногда компьютер должен и ошибаться. :D