Ahoj, mám dvojrozměrné pole (9x9), kde se nacházejí tři oblasti nul:
0 0 0 0 1 1 1 0 0
0 0 1 1 1 1 1 0 0
0 1 1 1 1 1 0 0 0
0 1 1 1 1 1 1 0 0
0 1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1
Vyberu například pozici [0][0] a chci aby se všechny nuly, které jsou součástí této oblasti nakopírovali do pole1 (9x9), které bude, ale jinak naplněné 9. Vymyslel jsem následují kód, ale bohužel se mi odkryjí všechny nuly, ale já bych potřeboval ke hře hledání min, odkrýt jen to jednu oblast nul. Samozřejmě pozice 0 se mění, toto je pouze pole vytvořené pro zkoušku. Prosím poraďte...
#include <iostream>
using namespace std;
int pole[9][9];
int poleHrac[9][9];
void jsem1(int radek, int sloupec)
{
for(int i=(radek-1); i<=(radek+1); i++)//radky
{
for(int j=(sloupec-1); j<=(sloupec+1); j++)//sloupce
{
// if(i>(radek-1)&&i<(radek+1))
// if(j>(sloupec-1)&&j<(sloupec+1))
if (i > -1 && j > -1 && i < 9 && j < 9)
if(pole[i][j] ==0)
poleHrac[i][j]=0;
}
}
}
void jsem(int radek, int sloupec)
{
poleHrac[radek][sloupec] = 0;
for(int i=0; i<9; i++)//radky
{
for(int j=0; j<=9; j++)//sloupce
{
if (i > -1 && j > -1 && i < 9 && j < 9)
if(i>(radek-1)&&i<(radek+1))
if(j>(sloupec-1)&&j<(sloupec+1))
if(pole[i][j] <1)
poleHrac[i][j]=0;
jsem1(i,j);
}
}
}
int main()
{
for(int i =0; i < 9; i++)
{
for(int j =0; j < 9; j++)
{
pole[i][j]=1;
}
}
for(int i =0; i < 9; i++)
{
for(int j =0; j < 9; j++)
{
poleHrac[i][j]=9;
}
}
pole[0][0] = 0;
pole[0][1] = 0;
pole[0][2] = 0;
pole[0][3] = 0;
pole[1][0] = 0;
pole[1][1] = 0;
pole[2][0] = 0;
pole[3][0] = 0;
pole[4][0] = 0;
pole[8][0] = 0;
pole[8][1] = 0;
pole[8][2] = 0;
pole[7][2] = 0;
pole[8][3] = 0;
pole[8][4] = 0;
pole[0][7] = 0;
pole[0][8] = 0;
pole[1][7] = 0;
pole[1][8] = 0;
pole[2][6] = 0;
pole[2][7] = 0;
pole[2][8] = 0;
pole[3][7] = 0;
pole[3][8] = 0;
pole[4][7] = 0;
pole[4][8] = 0;
pole[5][7] = 0;
pole[5][8] = 0;
int radek = 0;
int sloupec =0;
if(pole[radek][sloupec]==0) {
jsem(radek,sloupec);
}
for(int i =0; i < 9; i++)
{
for(int j =0; j < 9; j++)
{
cout << pole[i][j]<<" ";
}
cout <<endl;
}
cout<<endl;
for(int i =0; i < 9; i++)
{
for(int j =0; j < 9; j++)
{
cout << poleHrac[i][j]<<" ";
}
cout <<endl;
}
}