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

Как присвоить ячейке число в матрице - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти ошибку в приведенном коде http://www.cyberforum.ru/cpp-beginners/thread1076157.html
Windows выдает ошибку, почему ? #include <iostream> #include <cstring> #include <cstdlib> using namespace std; class strtype { char *p;
C++ Интерфейс на C#, код на С++: возможно ли? Например, мне нужна прога в с++, а интерфейс для нее сделать в с#. Возможно ли объединить эти два файла в один??? http://www.cyberforum.ru/cpp-beginners/thread1076151.html
C++ Цифра из числа
Доброе время суток, интересует вот такой вот вопрос, необходимо присвоить значение переменной цифру из числа, т.е есть число A=12345 и мне надо присвоить, например, переменной S пятую цифру.
C++ Макросы в enum?
Есть макросы #define angles (1<<0) #define v_angle (1<<1) #define punchangle (1<<2) Можно сделать типа такого: ? enum ( <<= 1 ) {
C++ Подсчитать количество нечетных элементов http://www.cyberforum.ru/cpp-beginners/thread1076095.html
Кто что сможет помогите((( Подсчитать количество нечетных элементов.Замечание. Задачи из данного пункта решить двумя способами, используя одномерный массив, а затем двумерный. 2 Найти номер...
C++ Написать перегруженные функции для вывода на экран элементов массивов статического и динамического Здравствуйте! Нужна помощь с решением задачки :) Не могу разобраться с перегруженными функциями :( И, если можно, разъясните что к чему... Задача: Заданы элементы массива. Написать перегруженные... подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
20.01.2014, 19:01
Ну создаете вы клетку без массива. А дальше то все равно нужно 9 сущностей во что-то агрегировать, логичнее всего - в двумерный массив, но можно извратиться и в одномерный засунуть.

Вас интересует обращение к конкретному элементу по номеру? Ну вот тогда вам примерчик:
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
#include <cstdlib>
#include <iostream>
 
const int N = 3; // just for example, because I'm lazy
 
void fill(char A[N][N])
{
    for (int i=0; i < N; i++)
        for (int j=0; j < N; j++)
            A[i][j] = '_';
}
 
bool isFull(const char A[N][N])
{
    for (int i=0; i < N; i++)
        for (int j=0; j < N; j++)
            if (A[i][j] == '_')
                return false;
    return true;
}
 
void printRule()
{
    std::cout << "Rule:\n";
    for (int i=0; i < N; i++)
    {
        for (int j=0; j < N; j++)
            std::cout << i*N + j + 1 << " ";
        std::cout << std::endl;
    }
    std::cout << std::endl;
}
 
void print(const char A[N][N])
{
    #ifdef _WIN32
    system("cls");
    #else
    system("clear");
    #endif
 
    printRule();
    for (int i=0; i < N; i++)
    {
        for (int j=0; j < N; j++)
            std::cout << A[i][j] << " ";
        std::cout << std::endl;
    }
 
    std::cin.get(); // pause
}
 
void addAndPrint(char A[N][N], int n, const char c)
{
    // check
    if (n < 1 || n > N*N)
    {
        std::cout << "\aNeed integer from 1 to " << N*N << std::endl;
        return;
    }
 
    n--; // make index from number
 
    char *place = &A[n/N][n%N];
    if (*place != '_')
    {
        std::cout << "\aPlace is already filled\n";
        return;
    }
    else
        *place = c; // add new label
 
    print(A);
}
 
 
int main()
{
    char A[N][N];
    fill(A);
    const char players[2] = {'X', 'O'};
    bool state = false;
    printRule();
    for (int i; !isFull(A) && std::cin >> i; addAndPrint(A, i, players[state]), state ^=1);
}
Вообщем писал пока не надоело Проверок на победу нет, в случае попытки поставить на то же место игрок теряет ход, а не ходит заново.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru