Hej, chce napisać program, który będzie wyznaczał współrzędne strzałów w grze statki. Pole mapy wynosi 7 x 7, są 4 statki - 1 masztowiec, 2 masztowiec, 3 i 4. Miał być to prosty program bo dopiero uczę się programować . Algorytm wymyśliłem też raczej nie za wybitny, abym był w stanie go zrealizować (chce po kolei od lewej do prawej strzelać, aż zatopie wszystkie statki) .
Jednakże coś mi nie wychodzi, a sam nie mogę się dopatrzeć gdzie popełniam błąd.
#include <iostream>
using namespace std;
int Z=0,N=0;
int mapa[7][7]= {0};
void wczytanie_mapy()
{
Z=0;
for(int i=0; i < 7; i++)
{
for(int j=0; j < 7; j++)
{
cin >> mapa[i][j];
if(mapa[i][j]== 2) Z++;
}
}
}
int main()
{
int W,K,X;
bool T;
while(N <= 45 && Z < 10)
{
wczytanie_mapy();
W=0;
K=0;
do{
T=false;
if(W != 0 && mapa[W][K] != 2)
{
X=K;
do
{
if(K==0)
{
if(mapa[W-1][K]==2 || mapa[W-1][K+1]==2 || mapa[W][K+1]==2)
{
K++;
X++;
}
}
else if(K==6)
{
if(mapa[W-1][K]==2 || mapa[W-1][K-1]==2 || mapa[W][K-1]==2)
{
K++;
X++;
}
}
else if(mapa[W-1][K]==2 || mapa[W-1][K+1]==2 || mapa[W][K-1]==2 || mapa[W-1][K-1]==2)
{
K++;
X++;
}
else X++;
}
while(X == K );
}
if(mapa[W][K]==0)
{
N++;
cout << W<<" "<< K <<endl;
T=true;
}
else if(mapa[W][K]==9)
{
if(K>0)
{
if(mapa[W][K-1]==1)
{
K--;
W++;
}
else if(K < 6)
{
K++;
}
else
{
K=0;
W++;
}
}
else if(K < 6)
{
K++;
}
else
{
K=0;
W++;
}
}
else if(mapa[W][K]==1)
{
if(W > 0)
{
if(mapa[W-1][K]==1) W++;
else K++;
}
else K++;
}
else if(K <6) K++;
else
{
K=0;
W++;
}
}while(T==false);
}
return 0;
}```
Ogólnie to program będzie podawał kordy strzału do innego programu, który podaje czy trafiłem czy nie