سعی کن این جور سوالات رو خودت حل کنی اگر مشکلی جاییش داشتی این جا بپرسی این دفعه رو جواب میدم ولی دفعه بعد اگر سوال به این شکل باشه پاک میشه !
#include <iostream>
#include <vector>
int main ()
{
std::pair<int,int> p1;
std::pair<int,int> p2;
std::cin>>p1.first>>p1.second;//rokh
std::cin>>p2.first>>p2.second;//asb
std::cout<<p1.first<<" "<<p2.second;
//fill moves
std::vector<std::pair<int,int>> availableMoves;
for(int i=1;i<=8;i++)
{
for(int j=1;j<=8;j++)
{
if(p1.first == i || p1.second == j //hazf satr va sotoon rokh
|| (p2.second-2 == j && (p2.first == i-1 || p2.first == i+1)) //hazf 2 ta harkat samt chap asb
|| (p2.second+2 == j && (p2.first == i-1 || p2.first == i+1)) //hazf 2 ta harkat samt rast asb
|| (j-2==p1.second &&(i-1==p1.first || i+1 == p1.first )) //hazf 2 ta harkat chap asb jadid
|| (j+2==p1.second &&(i-1==p1.first || i+1 == p1.first )) //hazf 2 ta harkat rast asb jadid
|| (i == p1.first && j == p1.second) //shart khali boodan
|| (i == p2.first && j == p2.second) //shart khali boodan
)
continue;
std::pair<int,int> t;
t.first=i;
t.second=j;
availableMoves.push_back(t);
}
}
//show available moves
std::cout<<"\nAvailable moves : "<<availableMoves.size()<<"\n" ;
for(std::pair<int,int>& i:availableMoves)
{
std::cout<<i.first<<" "<<i.second<<"\n";
}
}