Форум программистов, компьютерный форум, киберфорум
Наши страницы

Крестики-нолики - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Глобальные переменные http://www.cyberforum.ru/cpp-beginners/thread932271.html
Подскажите пожалуйста, почему данные в глобальной переменной перезаписываются, а не плюсуются? Пример: int peremennaya; void foo(); void main() { char ans;
C++ Не использовать имя класса при его реализации Из-за того, что не смог грамотно сформулировать свой вопрос, не нашел ничего в гугле :( Поэтому объясню на примере: Допустим, есть некий класс Example, объявление которого заключено в заголовочный... http://www.cyberforum.ru/cpp-beginners/thread932270.html
C++ Указатель,объект класса размещенный в динамической памяти
Ребят,такой маленький нелепый вопрос. Как можно обратиться к объекту класса созданному в динамической памяти(через "new")?; В моей книге описано два способа. Первый ,к примеру вот #include...
Шаблон класса complex. Ошибка undefined reference to `complex<double>::SetRe(double)' C++
Есть такой файл complex.h #ifndef COMPLEX_H #define COMPLEX_H template<class Type> class complex{ public: Type Re; Type Im; complex(Type re = 0, Type im = 0):Re(re),Im(im){}
C++ Перехват значений параметров шаблона http://www.cyberforum.ru/cpp-beginners/thread932253.html
Вопрос, собственно, в развитие этой темы - http://www.cyberforum.ru/cpp-beginners/thread930128.html Есть вот такой код: namespace spec { template <int... Idx> struct index { }; ...
C++ OpenGL для новичка Всем привет. Никак не могу найти книгу по OpenGL и C++, хотя нет, вру, находил. Но они так сказать далеко не первой свежести. Я хотел бы написать змейку (в консоле с графикой), и вот думаю... подробнее

Показать сообщение отдельно
Wolkodav
605 / 458 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
01.08.2013, 23:10
dima55501, почитай в интернете, там есть описания алгоритмов для ии в крестики-нолики, если правильно напишите, то сами никогда не выйграете).
1) Переписал бы уж так,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void get_player_move()
{
    int x, y;
    cout << "Введите координаты: ";
    cin >> x >> y;
    if (is_nothing(x, y)) // проверяем верны ли координаты
    {
        matrix[--x][--y] = 'X';
    }
    else
    {
        cout << "Неверный ход. " << endl;
        return get_player_move(); // запрашиваем координаты еще раз
    }
}
Или вообще:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void get_player_move()
{
    int x, y;
    cout << "Введите координаты: ";
    cin >> x >> y;
    while (!is_nothing(x, y))
    {
         cout << "Неверный ход. " << endl;
         cout << "Введите координаты: ";
         cin >> x >> y;
    }
    matrix[--x][--y] = 'X';
}
Всё таки вы тут не граф обходите. Решения с рекурсией элегантный, но ей злоупотреблять не надо.

Добавлено через 2 минуты
И проверка координат:
C++
1
2
3
4
5
6
bool is_nothing(int x, int y)
{
    if ((x > 3) || (y > 3) || (y < 0) || (x < 0))
        return false;
    return (matrix[--x][--y] == ' ') ? true : false; 
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru