东北雪人案件:我的C++毕业设计(关于魔方的),现在没有一点眉目!

来源:百度文库 编辑:高校问答 时间:2024/05/04 07:19:23
我的C++毕业设计,现在没有一点眉目!
魔方玩法求解,要求以图形直观方式输入魔方的初始状态,计算出完成魔方的一套完整的步骤。
请高手解答,谢谢了!

//运行程序前,请先确定魔方的维数(维数必须是奇数)
// 默认情况下为5×5的魔方
//通过修改“N”的值(N必须是奇数!!!)
# include<iostream.h>
const int N=5; //魔方维数确认值
void Mi_Sq(int a[][N])
{
int p=0;
int q=(N-1)/2;
a[0][q]=1;
for(int i=2;i<=N*N;i++)
{
p=(p-1+N)%N;
q=(q-1+N)%N;
if(a[p][q]>0)
{
p=(p+2)%N;
q=(q+1)%N;
}
a[p][q]=i;
}
}
void Output(int b[][N])
{
cout<<N<<"维魔方阵如下:"<<endl;
for(int i=0;i<=N-1;i++)
{for(int j=0;j<=N-1;j++)
cout<<b[i][j]<<" ";
cout<<endl;
}
}
void main()
{
int Sq[N][N];
Mi_Sq(Sq);
Output(Sq);
}
//在VC++6.0下运行通过
//注:1.魔方好像没有初始状态;2.计算算法参见魔方函数(void Mi_Sq(int a[][N]))