Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Глобальные переменные http://www.cyberforum.ru/cpp-beginners/thread932271.html
Подскажите пожалуйста, почему данные в глобальной переменной перезаписываются, а не плюсуются? Пример: int peremennaya; void foo(); void main() { char ans;
C++ Не использовать имя класса при его реализации Из-за того, что не смог грамотно сформулировать свой вопрос, не нашел ничего в гугле :( Поэтому объясню на примере: Допустим, есть некий класс Example, объявление которого заключено в заголовочный файл Example.h: #ifndef EXAMPLE_H #define EXAMPLE_H class Example { Example(); http://www.cyberforum.ru/cpp-beginners/thread932270.html
C++ Указатель,объект класса размещенный в динамической памяти
Ребят,такой маленький нелепый вопрос. Как можно обратиться к объекту класса созданному в динамической памяти(через "new")?; В моей книге описано два способа. Первый ,к примеру вот #include <iostream> using namespace std; class cat { public: int a; }; int main()
Шаблон класса 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 { }; template <int N, int... Idx> struct sequence : sequence<N - 1, N - 1, Idx...> { };
C++ OpenGL для новичка Всем привет. Никак не могу найти книгу по OpenGL и C++, хотя нет, вру, находил. Но они так сказать далеко не первой свежести. Я хотел бы написать змейку (в консоле с графикой), и вот думаю использовать GL. Встречал так же уроки и видеоуроки, но мне хотелось бы книгу. Что подскажете по этотому поводу? Купить старую книгу? Учиться по урокам? Или вообще использовать другую библиотеку? подробнее

Показать сообщение отдельно
Wolkodav
 Аватар для Wolkodav
599 / 452 / 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; 
}
 
Текущее время: 11:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru