Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2011, 20:24   #1
Чуччи
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 17
По умолчанию игра 100 спичек

Игра «100 спичек». Из кучки, первоначально содержащей 100 спичек, двое играющих поочередно берут по нескольку спичек: не менее одной и не более 10. Проигрывает взявший последнюю спичку.

вот что есть....но думаю не то
вконце не работает

Код:
program cpi4ki;
uses crt;
var per, vtor, kol, num, min, max: integer; s : set of byte;
begin
repeat
clrscr;
num:=0;
writeln ('введите кол-во спичек для игры'); readln(kol);
writeln ('введите сколько спичек можно убрать минимум'); readln(min);
writeln ('введите сколько спичек можно убрать максимум'); readln(max);
s:=[min..max];
repeat
clrscr;
If (num mod 2)=0
then
begin
writeln ('ходит первый игрок');
writeln ('осталось ',kol,' спичек');
writeln ('сколько спичек вы хотели бы убрать?');readln(per);
If per in s then
begin
kol:=kol-per;
num:=num+1;
end
else
begin
clrscr;
writeln ('было введено не соответствуещее правилам кол-во');
writeln ('введите соответствующее правилам кол-во');
writeln ('');
writeln('Для продолжения нажмите клавишу');
readln();
end;
end
else
begin
clrscr;
writeln ('ходит второй игрок');
writeln ('осталось ',kol,' спичек');
writeln ('сколько спичек вы хотели бы убрать?');readln(vtor);
If vtor in s then
begin
kol:=kol-per;
num:=num+1;
end
else
begin
clrscr;
writeln ('было введено не соответствуещее правилам кол-во');
writeln ('введите соответствующее правилам кол-во');
writeln ('');
writeln('Для продолжения нажмите клавишу');
readln();
end;
end;
until kol<=1;
If (num mod 2)=0 then
begin
clrscr;
writeln('победа');
writeln('выйграл второй игрок');
end
else
begin
clrscr;
writeln('победа');
writeln('выйграл первый игрок');
end;
clrscr;
writeln ('если вы хотите сыграть еще раз нажмите любую клавишу');
writeln ('если вы хотите выйти нажмите Esc');
until readkey=#27;
end.

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 12.01.2011 в 21:56.
Чуччи вне форума Ответить с цитированием
Старый 12.01.2011, 21:13   #2
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

по моему есть в паскале абс пример этой игры)
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Старый 12.01.2011, 21:15   #3
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

Код:
// Игра "Спички"
const
  InitialCount=15;
var
  Count,Num,Player: integer;
  Correct: boolean;
begin
  cls;
  Player:=1;
  Count:=InitialCount;
  repeat
    if Player=1 then
    begin
      repeat
        write('Ваш ход. На столе ',Count,' спичек. ');
        write('Сколько спичек Вы берете? ');
        readln(Num);
        Correct:=(Num>=1) and (Num<=3) and (Num<=Count);
        if not Correct then
          writeln('Неверно! Повторите ввод!');
      until Correct;
    end
    else
    begin
      Num:=Random(3)+1;
      if Num>Count then Num:=Count;
      writeln('Мой ход. Я взял ',Num,' спичек');
    end;
    Count:=Count-Num;
    if Player=1 then Player:=2
    else Player:=1;
  until Count=0;
  if Player=1 then writeln('Вы победили!')
  else writeln('Вы проиграли!');
end.
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Старый 12.01.2011, 21:18   #4
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

вот под твое условие!
Код:
// Игра "Спички"
const
  InitialCount=100;
var
  Count,Num,Player: integer;
  Correct: boolean;
begin
  cls;
  Player:=1;
  Count:=InitialCount;
  repeat
    if Player=1 then
    begin
      repeat
        write('Ваш ход. На столе ',Count,' спичек. ');
        write('Сколько спичек Вы берете? ');
        readln(Num);
        Correct:=(Num>=1) and (Num<=10) and (Num<=Count);
        if not Correct then
          writeln('Неверно! Повторите ввод!');
      until Correct;
    end
    else
    begin
      Num:=Random(10)+1;
      if Num>Count then Num:=Count;
      writeln('Мой ход. Я взял ',Num,' спичек');
    end;
    Count:=Count-Num;
    if Player=1 then Player:=2
    else Player:=1;
  until Count=0;
  if Player=1 then writeln('Вы победили!')
  else writeln('Вы проиграли!');
end.
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Старый 13.01.2011, 11:03   #5
Чуччи
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 17
По умолчанию

спс)) работает
Чуччи вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Воплотить идею: for i:=0 to 100 Edit[i].text:=random(100) tigr1991 Общие вопросы Delphi 6 29.09.2010 18:53
ЦП работает на 100% Pensioner08 Помощь студентам 9 24.09.2010 18:17
Найти произведение всех чётных чисел от -100 до 100. Makcumqa Помощь студентам 8 18.03.2010 22:31
игра 100 спичек Igorek0886 Паскаль, Turbo Pascal, PascalABC.NET 4 14.04.2009 19:18
заполнить файл целыми числами из отрезка [—100; 100] с помощью датчика случайных чисел. ALEX-7-7-7 Паскаль, Turbo Pascal, PascalABC.NET 4 05.04.2009 14:51