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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
#1

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

20.01.2014, 08:00. Просмотров 466. Ответов 13
Метки нет (Все метки)

Есть матрица 3 на 3, как сделать чтобы каждой ячейке (всего получается 9) присвоить свое значение, чтобы в дальнейшем обращаться к ним по номерам...подкиньте идейку или направьте в нужное русло....
это надо чтобы сделать крестики нолики в OpenGL
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2014, 08:00     Как присвоить ячейке число в матрице
Посмотрите здесь:

Минимальное число в матрице C++
присвоить целой переменной L число, составленное из литерных переменных C++
C++ Как правильно число в ячейке типа string, перекинуть в ячейку в тип double ?
C++ Вывести сумму элементов с x-той по y-тую строку включительно. (1<=x<=y<=h) 2)2 x y z – изменить элемент в ячейке x, y на число z
Как присвоить переменной рандомное число в диапазоне 000000 до 999999 C++
C++ Какие значения можно присвоить целочисленной перемен- ной x, чтобы результатом выражения x/5 стало число 2014
C++ Как присвоить нужному элементу в матрице значение первого или последнего элемента?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
20.01.2014, 08:13     Как присвоить ячейке число в матрице #2
xTIGRx, храни в массиве int mass[9].
0 1 2
3 4 5
6 7 8
вот и всё в чём проблема-то
Ev_Hyper
Заблокирован
20.01.2014, 10:04     Как присвоить ячейке число в матрице #3
Enotniy, так неудобно. Если матрица 3x3, то и массив должен быть двухмерный int mas[3][3];
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
20.01.2014, 18:25  [ТС]     Как присвоить ячейке число в матрице #4
Enotniy, я не про консольный вариант сейчас говорю...матрицу создавать я умею если что...вы хоть понимаете что значит делать отрисовку клеток с массивом???, тему внимательнее читаем.

Ev_Hyper, ребята чиатйте пожалуйста вначале тему...я вообще создаю клетку без массива...
some_name
Вежливость-главное оружие
221 / 221 / 55
Регистрация: 19.02.2013
Сообщений: 1,431
20.01.2014, 18:33     Как присвоить ячейке число в матрице #5
чушь какае-то :
Цитата Сообщение от xTIGRx Посмотреть сообщение
Есть матрица 3 на 3 (всего получается 9)
==
Цитата Сообщение от xTIGRx Посмотреть сообщение
я вообще создаю клетку без массива
?????
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
20.01.2014, 18:41     Как присвоить ячейке число в матрице #6
Цитата Сообщение от xTIGRx Посмотреть сообщение
Есть матрица 3 на 3, как сделать чтобы каждой ячейке (всего получается 9) присвоить свое значение,
а чего кода пожалели? Отсюда и рождается недопонимание.
Arkaniy
106 / 106 / 6
Регистрация: 29.08.2012
Сообщений: 453
20.01.2014, 18:41     Как присвоить ячейке число в матрице #7
Можно сделать эдакое преобразование. К примеру нужно обратиться к 4 ячейке, тогда можно записать так
mass[4/3][4%3]; и получится mass[1][1]; что и соответствует 4 ячейке, если начинать отсчет с 0.
MrGluck
Ворчун
Эксперт CЭксперт С++
6634 / 3825 / 502
Регистрация: 29.11.2010
Сообщений: 10,110
20.01.2014, 19:01     Как присвоить ячейке число в матрице #8
Ну создаете вы клетку без массива. А дальше то все равно нужно 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);
}
Вообщем писал пока не надоело Проверок на победу нет, в случае попытки поставить на то же место игрок теряет ход, а не ходит заново.
Ev_Hyper
Заблокирован
20.01.2014, 20:27     Как присвоить ячейке число в матрице #9
Цитата Сообщение от xTIGRx Посмотреть сообщение
Enotniy, я не про консольный вариант сейчас говорю...матрицу создавать я умею если что...вы хоть понимаете что значит делать отрисовку клеток с массивом???, тему внимательнее читаем.
Ev_Hyper, ребята чиатйте пожалуйста вначале тему...я вообще создаю клетку без массива...
а что по вашему массивы только для консольных приложений нужны?

Насчет крестиков-ноликов, почему не сделать так, чтобы пользователь просто клацал на нужную кнопку?
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
21.01.2014, 20:04  [ТС]     Как присвоить ячейке число в матрице #10
Ev_Hyper, да можно, только как это реализовать в OpenGL, ведь там нет как в Builder кнопки которую можно перетащить на форму и клацать)))

MrGluck, то что надо)) осталось мне только разобраться в вашем коде и сделать это в OpenGL)). да кстати вопрос...как в консоли вы нарисовали матрицу с '_' и после ввода стирается та ячейка номер которой ввели и записывается Х или О???
Ev_Hyper
Заблокирован
21.01.2014, 20:06     Как присвоить ячейке число в матрице #11
Цитата Сообщение от xTIGRx Посмотреть сообщение
Ev_Hyper, да можно, только как это реализовать в OpenGL, ведь там нет как в Builder кнопки которую можно перетащить на форму и клацать)))
а вам что обязательно в OpenGl надо?
MrGluck
Ворчун
Эксперт CЭксперт С++
6634 / 3825 / 502
Регистрация: 29.11.2010
Сообщений: 10,110
21.01.2014, 20:09     Как присвоить ячейке число в матрице #12
Цитата Сообщение от xTIGRx Посмотреть сообщение
MrGluck, то что надо)) осталось мне только разобраться в вашем коде и сделать это в OpenGL)). да кстати вопрос...как в консоли вы нарисовали матрицу с '_' и после ввода стирается та ячейка номер которой ввели и записывается Х или О???
с помощью команд системы тут:
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
2
3
4
5
#ifdef _WIN32
system("cls");
#else
system("clear");
#endif
для винды это cls, для Linux (наверное и UNIX) clear.

Добавлено через 2 минуты
У меня просто каждый раз перерисовка идет
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
21.01.2014, 21:50  [ТС]     Как присвоить ячейке число в матрице #13
Ev_Hyper, да)) я же на чистом C++ пишу, а вы как я понял Builder используете а точнее Rad studio...

MrGluck, ок спс.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2014, 09:20     Как присвоить ячейке число в матрице
Еще ссылки по теме:

C++ Как присвоить константе число с клавиатуры
Как присвоить значение любое число C++
Присвоить переменной S определенное значение, если введенное число х лежит вне отрезков [2..5] и [-1..1] C++
C++ Если значения переменных не равны, то присвоить им максимальное из значений, иначе присвоить им ноль
Переменной целого типа присвоить число, образованное совместной записью трех символьных переменных C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ev_Hyper
Заблокирован
22.01.2014, 09:20     Как присвоить ячейке число в матрице #14
Цитата Сообщение от xTIGRx Посмотреть сообщение
Ev_Hyper, да)) я же на чистом C++ пишу, а вы как я понял Builder используете а точнее Rad studio...
неправильно поняли С Борландом совсем незнаком. Немного Qt знаю и С# начал учить
Yandex
Объявления
22.01.2014, 09:20     Как присвоить ячейке число в матрице
Ответ Создать тему
Опции темы

Текущее время: 18:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru