Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 09.12.2019
Сообщений: 14

Заменить статический массив на динамический

17.05.2020, 15:49. Показов 448. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
#include<iostream>
#include <ctime>

using namespace std;

void map_show(int map[3][3])
{

// Вывод поля на экран
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
cout << map[j][i];
}
cout << endl;
}

}

bool game_over(int map[3][3])
{
int c0 = 0;// счетчик
int c1 = 0;//
int c2 = 0;//
int c3 = 0;

int count1 = 0;

// Проверка на заполнение единицами
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++) // Вложенный цикл, так как массив 2 мерный
{
if (map[j][i] == 1)// Если очередной элемент массива = 1, то увеличь счетчик на единицу, для подсчета ко-ва единиц в строке
c0++, count1++;

if (map[i][j] == 1)// проверка заполнения в столбцах
c1++, count1++;

if (map[j][j] == 1)// проверка заполнения в диагонали
c2++, count1++;

if (map[2 - j][j] == 1)// проверка заполнения в диагонали (с верхнего правого угла в нижний левый)
c3++, count1++;


}
if (c0 == 3 || c1 == 3 || c2 == 3 || c3 == 3)// Проверка, чему равен счетчик, если 3, обнаружена строка заполнена единицами
{

return true;//Игра завершилась
break;// Завершения работы цикла
}


c0 = 0;// Сброс
c1 = 0;// Сброс (Если не сбросить, то получим значение больше чем 3)
c2 = 0;// Сброс
c3 = 0;
count1 = 0;

}
return false;//если не один cсчетчик не стал = 3
}

bool game_over2(int map[3][3])//Функция. Если завершилась, то возвращает значение true
{
int c0 = 0;// Сброс
int c1 = 0;// Сброс (Если не сбросить, то получим значение больше чем 3)
int c2 = 0;// Сброс
int c3 = 0;

int count1 = 0;

// Проверка на заполнение единицами
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++) // Вложенный цикл, так как массив 2 мерный
{



if (map[j][i] == 2)// Если очередной элемент массива = 1, то увеличь счетчик на еденицу, для подсчета ко-ва едениц в строке
c0++, count1++;

if (map[i][j] == 2)// проверка заполнения в столбцах
c1++, count1++;

if (map[j][j] == 2)// проверка заполнения в диагонали
c2++, count1++;

if (map[2 - j][j] == 2)// проверка заполнения в диагонали (с верхнего правого угла в нижний левый)
c3++, count1++;



}
if (c0 == 3 || c1 == 3 || c2 == 3 || c3 == 3)// Проверка, чему равен счетчик, если 3, обнаружена строка заполнена единицами
{

return true;//Игра завершилась
break;// Завершения работы цикла
}


c0 = 0;// Сброс
c1 = 0;// Сброс (Если не сбросить, то получим значение больше чем 3)
c2 = 0;// Сброс
c3 = 0;

count1 = 0;

}
return false;//если не один cсчетчик не стал = 3
}


//x y
int map[3][3] = { 0 };// Двумерный массив 3 на 3, заполнен нулями (пустой)

int x = 0, y = 0;

int main()
{
srand(time(NULL));//Рандомная генерация для компьютера
setlocale(LC_ALL, "Russian");
int count1 = 0;



while (count1 != 9)// Бесконечный цикл
{
count1++;
//Ввод координат
cout << "Введите координаты:";
cin >> x >> y; // Координаты
//Ввод координат

// Заполнение
map[x][y] = 1; //Заполнение ячейки массива
// Заполнение
map_show(map);//Вызов функции и передача двумерного массива


if (game_over(map) == true)
{

cout << "Вы победили!" << endl;
break;

}

cout << "Ход компьютера" << endl;

do
{
x = rand() % 3;// Генерация случайно числа от 0 до 2
y = rand() % 3;// Генерация случайно числа от 0 до 2

} while (map[x][y] != 0);



map[x][y] = 2;//Заполнение ячейки массива
map_show(map);
if (game_over2(map) == true)
{

cout << "Вы проиграли!" << endl;
break;

}
}


return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.05.2020, 15:49
Ответы с готовыми решениями:

Заменить в программе статический массив на динамический
Программа работает, но теперь нужно привести ее к виду, в котором участвует уже динамический массив. ЕСЛИ ВОЗМОЖНО не меняйте printf и...

Можно ли заменить динамический массив на статический в реализации списка, и если да, то как?
Есть программа с реализованным списком через динамический массив. Много ли нужно будет в ней менять, чтобы сделать массив статическим? ...

Динамический и статический массив
Подскажите, в чем разница. Имеется статический массив, который просто задается: long mas = { 0 }; Т.е. просто вставляем массив...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.05.2020, 15:49
Помогаю со студенческими работами здесь

Переделать статический массив в динамический
Помогите переделать статический массив в динамический #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include...

Переделать статический массив в динамический
Помогите пожалуйста переделать статический массив в динамический #include &lt;iostream&gt; #include &lt;iomanip&gt; #define N 6 ...

Переделать статический массив в динамический
Помогите переделать статический массив в динамический. #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using...

Автоматический, статический, динамический массив
Всем хай! Сходу к делу! Мне казалось, что автоматический и статический массив - синонимы, т е это массивы, размер которых известен на...

Двумерный массив (поменять статический массив на динамический)
Нужно поменять статический массив на динамический с выделением памяти #include &lt;iostream&gt; #include &lt;iomanip&gt; #include...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru