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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 20:50   #1
Freddieden
Новичок
Джуниор
 
Регистрация: 22.11.2011
Сообщений: 1
По умолчанию Крестики-нолики на с++

Привет ребята!
Вообщем такое задание: Создать класс типа игра крестики-нолики. Поле класса - массив из (3х3).
Ставить можна только на свободные.
Написал прогу: Процесс игры ведется в консоли. Игрок задает положение игры координатой: столбец, строка.
Но проблемка в том:
Если координата находится вне доски то выдается сигнал об ошибке и координата запрашивается заново. Как жахнуть так, что бы выдавало ошибку при вводе букв, а не чисел и предлогало игроку ввести реальные координаты.
Код:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
 #include <iostream>
 #include <conio.h>
using namespace std;
///////////////////////////////////////////////////////////
    enum {Maxn=3}; //Максимальное количевство элементов в массиве
    enum {Maxm=3}; //Максимальное количевство элементов в массиве
    int mass[Maxn][Maxm];
   class game {
   private:
    int x;
    int y;
    bool a;
    int b;
    char znac1,znac2,znac3,znac4,znac5,znac6,znac7,znac8,znac9;
    public:
   int init()
    {
    a=true;    //pl X
            for (int i = 0; i <=3; i++)
             {
              for(int j = 0; j <=3; j++)
              {
               mass[i][j]=46;
              }
             }
     }
      //Вывод таблицы
    void show_table( )
      {
        cout << "(00) (01) (02)"<<endl;
        cout << endl;
        cout << "(10) (11) (12)"<<endl;
        cout << endl;
        cout << "(20) (21) (22)"<<endl;
       }
    //Получение координат
         void give_coord( )
      {
      if (a==true)
      {
        cout <<endl<<"Player X";
        b=88;
        a=false;       //pl 0
      }
      else
      {
        cout <<endl<<"Player 0";
        b=48;
        a=true;        //pl X
      }
        cout <<endl<<"Enter x: ";
        cin>>x;
        cout <<endl<<"Enter y: ";
        cin>>y;
        if((mass[x][y]!=88)&&(mass[x][y]!=48))
        {
        mass[x][y]=b;
        }
        else
        {
         cout<<"error"<<endl;
             if (a==true)
             {
                a=false;
             }
             else
             {
                a=true;
             }
       }
       }
 
}
Freddieden вне форума Ответить с цитированием
Старый 07.12.2011, 04:54   #2
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Цитата:
Как жахнуть так, что бы выдавало ошибку при вводе букв, а не чисел и предлогало игроку ввести реальные координаты.
Код:
int number;

while ( (cin >> number) == false )	// нужно вводить только числа
{
  cin.clear();	            // переустановка результатов ввода
  while (cin.get() != '\n')	 // считываем остальные вводимые данные до конца строки
     continue;	           // устранение неверного введенного ввода
  cout << "Please enter a number: ";
}
viron вне форума Ответить с цитированием
Старый 10.12.2011, 03:46   #3
Trust_357
Пользователь
 
Регистрация: 10.03.2011
Сообщений: 68
По умолчанию

Да ещё там не хватает is_digit
Trust_357 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Крестики-Нолики Jasper92 Помощь студентам 3 01.11.2010 18:35
Крестики нолики на C++ Alar Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 15.03.2010 16:09
Крестики-Нолики. oblachko Помощь студентам 5 23.01.2009 19:32
Крестики нолики Gorbunov Общие вопросы C/C++ 5 22.01.2009 16:04
КРЕСТИКИ-НОЛИКИ oblachko Паскаль, Turbo Pascal, PascalABC.NET 1 17.01.2009 22:21