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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2016, 16:30   #1
shaman7991
Новичок
Джуниор
 
Регистрация: 19.11.2016
Сообщений: 2
По умолчанию Игра 100 спичек

Игра "100 спичек". Из кучки, первоначально содержащей 100 спичек, двое играющих поочередно берут по несколько спичек: не менее одной и не более десяти. Выигрывает взявший последнюю спичку.
Нашёл пример программы на C++ объясните пожалуйста как она работает, если не сложно добавьте подробные комментарии к коду.
Код:
#include <iostream>
#include <Windows.h>
#include <ctime>
#include <cstdlib>
const int InitialCount=100;
int Count,Num,Player;
bool Correct;
int main (){
  srand(time(0));
  system ("cls");
  Player=1;
  Count=InitialCount;
  do{
  
    if (Player==1){
    do{
        std::cout<<"Ваш ход. На столе "<<Count<<" спичек.\n";
        std::cout<<"Сколько спичек Вы берете?\n";
        std::cin>>Num;
        if(Num>=1&&Num<=10&&Num<=Count)
            Correct=true;
        else
        {
            std::cout<<"Неверно! Повторите ввод!\n";
            Correct=false;
        } 
    }
    while (!Correct);
   }
    else
    {
    do{
      Num=rand()%10+1;
      if (Num>Count)
        Num=Count;
      std::cout<<"Мой ход. Я взял "<<Num<<" спичек\n";}
        while (!Correct);   
    }
    Count-=Num;
    if (Player==1) 
        Player=2;
    else 
        Player=1;
    }
  while (Count>0);
  if (Player=1)
    std::cout<<"Вы победили!";
  else std::cout<<"Вы проиграли!";
return 0;
}
shaman7991 вне форума Ответить с цитированием
Старый 19.11.2016, 19:55   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

shaman7991, а что тут объяснять? в переменную Count заносится начальное значение, игрок берёт число спичек от 1 до 10 (но не больше, чем есть спичек в переменной Count)
потом компьютёр делает свой ход - без всякой игровой стратегии, случайным образом: берёт случайное число спичек (причём, если случайное число выпало больше, чем есть спичек, то компьютер забирает все).
Игра продолжается, пока есть спички. На чьём ходу спички закончились, тот и победил.

Есть ещё вопросы?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти среднее арифметическое в массиве из 30 случайных чисел в диапазоне [-100; 100] kurdasov Помощь студентам 2 18.11.2016 22:40
Игра "100 спичек" NickLid C# (си шарп) 5 18.10.2011 22:14
игра 100 спичек Чуччи Паскаль, Turbo Pascal, PascalABC.NET 4 13.01.2011 11:03
игра 100 спичек Igorek0886 Паскаль, Turbo Pascal, PascalABC.NET 4 14.04.2009 19:18