REŠENJE ZADATKA "SKAKAČ NAPADA"
#include <iostream>
#include<string>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
string tabla[9][9];
for(int i=8; i>=1; i--)
{
for(int j=1; j<=8; j++)
{
if(i==m && j==n)
{
int v=0;
for(int r=i+2; r>=i-2; r--)
{
tabla[ i ][ j ]=" 0"; //Ispisuje 0 na mestu gde je zadata pozicija sa m i n
if(r>i)
v++; //pomeranje kolone za polje koje napada skakač
else if(r<i-1)
v--; //pomeranje kolone za polje koje napada skakač
else if(r==i) //U istom redu gde je skakač nema napadnutog polja, tu se stavlja zvezdica
{
tabla[i][j]=" *";
continue;
}
if(r<1||r>8)continue; //van opsega
int k1=n+v; //kolona napadnutog polja sa desne strane
int k2=n-v; //kolona napadnutog polja sa leve strane
char kol1='a'+k1-1; //oznaka kolone napadnutog polja desno(a-h)
char kol2='a'+k2-1; //oznaka kolone napadnutog polja levo(a-h)
char red='0'+r; //oznaka redanapadnutog polja desno(1-8)
string s1="";
s1+=kol1;
s1+=red;
string s2="";
s2+=kol2;
s2+=red;
if(k1<=8)
tabla[r][k1]=s1; //sifra napadnutog polja desno
if(k2>=1)
tabla[r][k2]=s2; //sifra napadnutog polja levo
}
}
else
{
if((tabla[i][j]).length()==0)
{
tabla[i][j]=" *"; //ostala polja popunjava sa zvezdicom
}
}
}
}
/* Ispisivanje*/
for(int i=8; i>=1; i--)
{
for(int j=1; j<=8; j++)
{
cout<<tabla[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
#include<string>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
string tabla[9][9];
for(int i=8; i>=1; i--)
{
for(int j=1; j<=8; j++)
{
if(i==m && j==n)
{
int v=0;
for(int r=i+2; r>=i-2; r--)
{
tabla[ i ][ j ]=" 0"; //Ispisuje 0 na mestu gde je zadata pozicija sa m i n
if(r>i)
v++; //pomeranje kolone za polje koje napada skakač
else if(r<i-1)
v--; //pomeranje kolone za polje koje napada skakač
else if(r==i) //U istom redu gde je skakač nema napadnutog polja, tu se stavlja zvezdica
{
tabla[i][j]=" *";
continue;
}
if(r<1||r>8)continue; //van opsega
int k1=n+v; //kolona napadnutog polja sa desne strane
int k2=n-v; //kolona napadnutog polja sa leve strane
char kol1='a'+k1-1; //oznaka kolone napadnutog polja desno(a-h)
char kol2='a'+k2-1; //oznaka kolone napadnutog polja levo(a-h)
char red='0'+r; //oznaka redanapadnutog polja desno(1-8)
string s1="";
s1+=kol1;
s1+=red;
string s2="";
s2+=kol2;
s2+=red;
if(k1<=8)
tabla[r][k1]=s1; //sifra napadnutog polja desno
if(k2>=1)
tabla[r][k2]=s2; //sifra napadnutog polja levo
}
}
else
{
if((tabla[i][j]).length()==0)
{
tabla[i][j]=" *"; //ostala polja popunjava sa zvezdicom
}
}
}
}
/* Ispisivanje*/
for(int i=8; i>=1; i--)
{
for(int j=1; j<=8; j++)
{
cout<<tabla[i][j]<<" ";
}
cout<<endl;
}
return 0;
}