[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Компьютеры » Программирование » C++, C# » Игры в угадайку
Игры в угадайку
АлексейДата: Вторник, 01.12.2015, 00:07 | Сообщение # 1
Продвигающийся
Группа: Администраторы
Сообщений: 324
Награды: 4
Репутация: 1
Статус: Оффлайн
Цитата
Угадать число, которое загадал пользователь,используя только инструкцию if-else


Код программы:
Код
static int MAX = 10; //число попыток

int gamer() //угадывает игрок
{
    int i, b = 1 + rand() % 1001, r;
    cout << "Попробуйте угадать число от единицы до 1 милиона. У тебя 10 попыток." << endl;
    cout << "Введите число: "; cin >> r;
    for (i = 1; i < MAX; i++)
    {
  hi:
  if (r < 1 || r > 1001) { goto hi; }
  else if (r < b)
  {
   cout <<"Введенное вами число меньше загаданного" << endl << "Введите число: "; cin >> r;
  }
  else if (r > b)
  {
   cout << "Введенное вами число больше загаданного" << endl << "Введите число: "; cin >> r;
  }
  else if (r == b)
  {
   cout << "Вы угадали загаданное число " << b << " с " << i+1 << " попытки. Поздравляем!" << endl;
   return 0;
  }
    }
    cout << "Сожалением. Вы не смогли угадать число" << endl; return 0;
}

int comp() //угадывает компьютер
{
    int i, b = -1;
    int min = 1, max = 1001;
    
    while (b < 1 || b > 1000)
    {
  cout << "Введите число, которое будет угадывать компьютер (диапазон от единицы до 1 миллиона). У компьютера 10 попыток. Число: ";
  cin >> b;
    }
    int r = min + rand() % max;
    for (i = 0; i < MAX; i++)
    {
  cout << "Компьютер: мое число - " << r;
  if (r > b)
  {
   if (max > r) { max = r; }
   while (r >= max || r <= min) { r = min + rand() % max; }
   cout << "Игрок: это число больше моего" << endl;
   goto endd;
  }
  else if (r < b)
  {
   if (min < r) { min = r; }
   while (r <= min || r >= max) { r = min + rand() % max; }
   cout << "Игрок: это число меньше моего" << endl;
   goto endd;
  }
  else if (r == b)
  {
   cout << "Компьютер угадал загаданное число " << b << " с " << i + 1 << " попытки. Поздравляем его!" << endl;
   return 0;
  }
    endd:;
    }

    cout << "Сожалением. Компьютер не смог угадать число" << endl; return 0;
}

int main(int argc, char *argv)
{
    setlocale(LC_ALL, "Russian"); start:
    srand(time(NULL));
    cout << " Выберите режим в котором вы хотите играть! (Введите - 1, чтобы начать угадывать числа у компьютера. Введите - 2, чтобы компьютер угадывал число у вас)";
    cout << " Чтобы завершить игру введите \"exit\". " << endl;
    string ili;
    cin >> ili;
    
    if (ili == (string)"1")
    {
  gamer(); goto start;
    }
    else if (ili == (string)"2")
    {
  comp(); goto start;
    }
    else if (ili == (string)"exit")
    {
  system("pause"); return 0;
    }
    else
    {
  cout << "Неправильный ввод." << endl; goto start;
    }
}


Библиотеки:
Код
#include <fstream>
#include<locale.h>
#include<time.h>
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
#include <iostream>
#include <string>
using namespace std;
Прикрепления: 7741499.cpp (2.5 Kb)
 
Форум » Компьютеры » Программирование » C++, C# » Игры в угадайку
  • Страница 1 из 1
  • 1
Поиск: