Я хочу создать программу на c ++, которая бы решала проблему из 8 задач с использованием BFS.
Я хочу показать каждое сгенерированное состояние.
Но проблема в том, что я не знаю, как создать государство.
Я просто хочу некоторую чистую функцию, которая будет эффективно генерировать состояния, и будет массив Explored, который обеспечит отсутствие избыточного состояния.
Я изучил GitHub, но слишком много сложных решений
Я написал следующий код до сих пор
#include<iostream>
#include<conio.h>
using namespace std;
class puzzle{
private:
int initial[3][3],goal[3][3] = {{1,2,3},{4,5,6},{7,8,0}};
int queue[1000];
string data;
public:
void genratePuzzle();
void showState();
bool check_goal(int initial);
};
void puzzle::genratePuzzle(){
cout<<"\n***Create initial state 0-8***\n";
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
cout<<"Insert at ["<<i<<"]["<<j<<"] : ";
cin>>initial[i][j];
}
}
}
void puzzle::showState(){
cout<<"\n***State***\n";
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
cout<<initial[i][j]<<" ";
}
cout<<endl;
}
}
bool puzzle::check_goal(int initial){
bool check = true;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if(initial[i][j] != goal[i][j]){
check = false;
}
}
}
return check;
}
int main(){
puzzle p1;
p1.genratePuzzle();
p1.showState();
getch();
}
Состояние цели
1 2 3
4 5 6
7 8 0