if(t1==1)
{
if(a[last(a,n)]==n+1)
a[last(a,n)]=b[last(b,n)];
else
a[last(a,n)+1]=b[last(b,n)];
b[last(b,n)]=n+1;
last2='A';
}
if(t1==3)
{
if(c[last(c,n)]==n+1)
c[last(c,n)]=b[last(b,n)];
else
c[last(c,n)+1]=b[last(b,n)];
b[last(b,n)]=n+1;
last2='C';
}
}
if(t0==3)
{
if(t1==2)
{
if(b[last(b,n)]==n+1)
b[last(b,n)]=c[last(c,n)];
else
b[last(b,n)+1]=c[last(c,n)];
c[last(c,n)]=n+1;
last2='B';
}
if(t1==1)
{
if(a[last(a,n)]==n+1)
a[last(a,n)]=c[last(c,n)];
else
a[last(a,n)+1]=c[last(c,n)];
c[last(c,n)]=n+1;
last2='A';
}
}
i=-1;
level++;
}
}
}
cout<<"levels:"<
if(levels==1 || level
{
minLevel=level;
levelNumber=levels-1;
}
}
cout<<"Minimum number of the levels is:"<
cout<<"Press any key to print Levels . . ."<
getch();
//PRINTING MINIMUM LEVEL:
int number=1;
for(int i=0;i<6;i++)
{
mm[i][0]=mode[ jj[levelNumber][i]-1 ][0];
mm[i][1]=mode[ jj[levelNumber][i]-1 ][1];
mm[i][2]=mode[ jj[levelNumber][i]-1 ][2];
}
a=new int[n];
b=new int[n];
c=new int[n];
for(int i=0;i
{
a[i]=n-i;
b[i]=n+1;
c[i]=n+1;
}
while(!isFinished(a,b,c,n) )
{
for(int i=0;i<6;i++)
{
switch(mm[i][0])
{
case 'A' : t0=1;break;
case 'B' : t0=2;break;
case 'C' : t0=3;break;
}
switch(mm[i][1])
{
case 'A' : t1=1;break;
case 'B' : t1=2;break;
case 'C' : t1=3;break;
}
if(can(mm,i,a,b,c,n,last2))
{
cout<
number++;
if(t0==1)
{
cout<<"From A to ";
if(t1==2)
{
if(b[last(b,n)]==n+1)
b[last(b,n)]=a[last(a,n)];
else
b[last(b,n)+1]=a[last(a,n)];
a[last(a,n)]=n+1;
last2='B';
cout<<"B."<
}
if(t1==3)
{
if(c[last(c,n)]==n+1)
c[last(c,n)]=a[last(a,n)];
else
c[last(c,n)+1]=a[last(a,n)];
a[last(a,n)]=n+1;
last2='C';
cout<<"C."<
}
}
if(t0==2)
{
cout<<"From B to ";
if(t1==1)
{
if(a[last(a,n)]==n+1)
a[last(a,n)]=b[last(b,n)];
else
a[last(a,n)+1]=b[last(b,n)];
b[last(b,n)]=n+1;
last2='A';
cout<<"A."<
}
if(t1==3)
{
if(c[last(c,n)]==n+1)
c[last(c,n)]=b[last(b,n)];
else
c[last(c,n)+1]=b[last(b,n)];
b[last(b,n)]=n+1;
last2='C';
cout<<"C."<
}
}
if(t0==3)
{
cout<<"From C to ";
if(t1==2)
{
if(b[last(b,n)]==n+1)
b[last(b,n)]=c[last(c,n)];
else
b[last(b,n)+1]=c[last(c,n)];
c[last(c,n)]=n+1;
last2='B';
cout<<"B."<
}
if(t1==1)
{
if(a[last(a,n)]==n+1)
a[last(a,n)]=c[last(c,n)];
else
a[last(a,n)+1]=c[last(c,n)];
c[last(c,n)]=n+1;
last2='A';
cout<<"A."<
}
}
i=-1;
}
}
}
getch();
}
|