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

Крестики-нолики: как определить победителя? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамические массивы (вывести новую последовательность чисел C, где каждое из чисел C(i) = A(i) + B(N-1-i)) http://www.cyberforum.ru/cpp-beginners/thread723482.html
Пользователь вводит в программу через консоль две последовательности положительных целых чисел А и B, каждая из которых завершается нулем либо отрицательным числом. Программа выводит новую...
C++ Классы. Файлы. Топ файлов написать программу Создать класс File. Добавить метод, который считает сколько файлов на определённом диске. Создать метод Competition. Он показывает файлов какого типа больше всего, а также их кол-во. Метод... http://www.cyberforum.ru/cpp-beginners/thread723472.html
C++ Добавить RichEdit 2.0 в VS2012 (MFC)
Добавляю на диалоговое окно RichEdit 2.0 из списка компонентов - приложение после запуска сразу же закрывается. Проход по мейну идёт так буд-то бы я сразу нажал кнопку завершения приложения!...
C++ Dev C++
Подскажите с советом. Если программа написанно на Visual Studio 2012, а нужно открыть в Dev C++, подскажите, что поменять нужно чтоб работала
C++ Работа со структурами http://www.cyberforum.ru/cpp-beginners/thread723455.html
Есть код программы,к сожалению не мой,пытаюсь его понять но не все понятно. #include <iostream> #include <string.h> #include <iomanip> using namespace std; const int MAX_TRIPS = 10; struct...
C++ объясните пожалуйста эту программу #include <conio.h> #include <iostream> struct STUDENT { char fio; /* фамилия и.о. */ char oc; /* 5 оценок + '\n' + '\0' */ }; void main() { setlocale (LC_ALL, "Russian_Russia.1251");... подробнее

Показать сообщение отдельно
owned
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 76

Крестики-нолики: как определить победителя? - C++

08.12.2012, 04:17. Просмотров 2107. Ответов 20
Метки (Все метки)

в некоторых местах го*** код, но всё таки. взялся сейчас делать крестики нолики, сделал рамку, а сейчас пытаюсь через переменную типа COORD печатать в нужном месте 'X' или 'О'. ну да, получилось. проверить занято ли там тоже получилось, НО как проверять что там написано, чтобы определить победителя. помогите кто чем может, если не тяжело. ещё нужен искусственный интеллект (алгоритм придумал), но плохо у меня с логикой и сейчас с квадратной головой тяжело соображать(

короче.

- проверить что написано по данных координатам для определения победителя...
- либо помогите это сделать другим нормальным способом
- помогите реализовать это с помощью cin.get() чтобы можно было стрелочками (клавишами) ставить X или О в определённую позицию. буду очень признателен.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream> 
#include <windows.h>
 
using namespace std;
 
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE); // Дескриптор окна
 
void Frame() // Ф-ия для таблички.
{
    char leftUpCorner = 201;
    char LeftDownCorber = 200;
    char RightUpCorner = 187;
    char RightDownCorner = 188;
    char vertical = 186;
    char horizontLine = 205;
    char middle = 206;
    char leftMiddle = 204;
    char rigthMiddle = 185;
    char downMiddle = 202;
    char upMiddle = 203;
 
    int size = 3;
 
    for(int i = 0; i < size; i++)
    {
        if(i == 0) // Верхушка рамки
        {
            for(int j = 0; j < size; j++)
            {
                if(j == 0)
                    cout << leftUpCorner << horizontLine << horizontLine;
                else
                    cout << upMiddle << horizontLine << horizontLine;
            }
            cout << RightUpCorner << endl;
        }
        else // Серединки рамки
        {
            for(int j = 0; j < size; j++)
            {
                if(j == 0)
                    cout << leftMiddle << horizontLine << horizontLine;
                else
                    cout << middle << horizontLine << horizontLine;
            }
            cout << rigthMiddle << endl;
        }
        for(int j = 0; j < size; j++) // Обязательный блок
        {
            cout << vertical << "  ";
        }
        cout << vertical << endl;
 
        if(i == size - 1) // Низ рамки
        {
            for(int j = 0; j < size; j++)
            {
                if(j == 0)
                    cout << LeftDownCorber << horizontLine << horizontLine;
                else
                    cout << downMiddle << horizontLine << horizontLine;
            }
            cout << RightDownCorner << endl;
        }
 
    }
    cout << endl;
}
 
void Game()
{
    COORD coord;
    cout << "Vvedite coordinaty kyda postavit X (v kakyu yacheiky)? (primer: 1 )\n";
    short input;
    cin >> input;
    if(input == 1)
    {
        coord.X = 1;
        coord.Y = 1;
        SetConsoleCursorPosition(h, coord);
        cout << " X";
        if(coord.X == 1 && coord.Y == 1)
        {
            cout << "####";
        }
        coord.X = 40;
        coord.Y = 13;
        SetConsoleCursorPosition(h, coord);
        cin >> input;
        coord.X = 1;
        coord.Y = 2;
        SetConsoleCursorPosition(h, coord);
        cout << " O";
    }
 
}
 
void main()
{
    Frame(); // Вызов ф-ии для вывода рамки.
    Game();
    CONSOLE_CURSOR_INFO cci; 
    cci.bVisible = 0;
    cci.dwSize = 100;
    SetConsoleCursorInfo(h, &cci);
    Sleep(INFINITE);
}
Добавлено через 2 часа 21 минуту
up up up. помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru