COPY THIS CODE AND PAST IN CODE BUILDER TO SEE RESULT....
#include<iostream>
#include<conio.h>
using namespace std;
int x,y;
int stack1[4],stack2[4],stack3[4],ub1=4,ub2=-1,ub3=-1,temp;
main()
{
cout<<"welcome to the game tower of hanoi";
for(int n=0,m=ub1;n<=ub1,m>=0;n++,m--)
{
stack1[n]=m+1;
}
cout<<"apearence of towers";
cout<<"on tower 1\n";
for(int i = ub1 ; i >= 0 ; i--)
{
cout<<stack1[i];
cout<<endl;
}
cout<<"on tower 2\n";
for(int j = ub2 ; j >= 0 ; j--)
{
cout<<stack2[j];
cout<<endl;
}
cout<<"on tower 3\n";
for(int k = ub3 ; k >= 0 ; k--)
{
cout<<stack3[k];
cout<<endl;
}
X:
cout<<"\ngive your choice for picking for tower...........";
cin>>x;
switch(x)
{
case 1:
if(ub1==-1)
{
cout<<"\ninvalid choice.....!!!!\n";
break;
}
else
{
temp=stack1[ub1];
ub1--;
cout<<"item picked up";
cout<<"\ngive your choice to put this disck..for tower 2 press5 \n...for tower 3 press 6..";
cin>>y;
switch(y)
{
case '5':
if(ub2==4 )
{
cout<<"tower no 2 is Full \n";
break;
}
else if(ub2==-1)
{
ub2++;
stack2[ub2]=temp;
cout<<"\ndisck inserted";
break;
}
else if(temp<stack2[ub2])
{
ub2++;
stack2[ub2]=temp;
cout<<"\ndisck inserted";
break;
}
else
{
ub1++;
stack1[ub1]=temp;
cout<<"..............invelid choice.............";
}
case '6':
if(ub3==4 )
{
cout<<"tower no 3 is Full \n";
break;
}
else if(ub3==-1)
{
ub3++;
stack3[ub3]=temp;
cout<<"\ndisck inserted";
break;
}
else if(temp<stack3[ub3])
{
ub3++;
stack3[ub3]=temp;
cout<<"\ndisck inserted";
break;
}
else
{
ub1++;
stack1[ub1]=temp;
cout<<"..............invelid choice.............";
break;
}
}
break;
}
case 2:
if(ub2==-1)
{
cout<<"\ninvelid choice !\n";
break;
}
else
{
temp=stack2[ub2];
ub2--;
cout<<"item picked up";
cout<<"give your choice to put this disck on tower 1 or tower 3";
cin>>y;
switch(y)
{
case '1':
if(ub1==4 )
{
cout<<"tower no 2 is Full \n";
break;
}
else if(ub1==-1)
{
ub1++;
stack1[ub1]=temp;
cout<<"\ndisck inserted";
break;
}
else if(temp<stack1[ub1])
{
ub1++;
stack1[ub1]=temp;
cout<<"\ndisck inserted";
break;
}
else
{
ub2++;
stack2[ub2]=temp;
cout<<"..............invelid choice.............";
break;
}
case '3':
if(ub3==4 )
{
cout<<"tower no 3 is Full \n";
break;
}
else if(ub3==-1)
{
ub3++;
stack3[ub3]=temp;
cout<<"\ndisck inserted";
break;
}
else if(temp<stack3[ub3])
{
ub3++;
stack3[ub3]=temp;
cout<<"\ndisck inserted";
break;
}
else
{
ub2++;
stack2[ub2]=temp;
cout<<"..............invelid choice.............";
break;
}
}
break;
}
case 3:
if(ub3==-1)
{
cout<<"\nempty peg !\n";
break;
}
else
{
temp=stack3[ub3];
ub3--;
cout<<"item picked up";
cout<<"\ngive your choice to put this disck on tower 1 or tower 2";
cin>>y;
switch(y)
{
case '2':
if(ub2==4 )
{
cout<<"tower no 2 is Full \n";
break;
}
else if(ub2==-1)
{
ub2++;
stack2[ub2]=temp;
cout<<"\ndisck inserted";
break;
}
else if(temp<stack2[ub2])
{
ub2++;
stack2[ub2]=temp;
cout<<"\ndisck inserted";
break;
}
else
{
ub3++;
stack3[ub3]=temp;
cout<<"\n..............invelid choice.............";
break;
}
case '1':
if(ub1==4 )
{
cout<<"tower no 1 is Full \n";
break;
}
else if(ub1==-1)
{
ub1++;
stack1[ub1]=temp;
cout<<"\ndisck inserted";
break;
}
else if(temp<stack1[ub1])
{
ub1++;
stack1[ub1]=temp;
cout<<"\ndisck inserted";
break;
}
else
{
ub3++;
stack3[ub3]=temp;
cout<<"\n..............invelid choice.............";
break;
}
}
break;
}
}
cout<<"\nyour new apearence of game is as";
cout<<"\ndiscks on tower 1\n";
for(int i = ub1 ; i >= 0 ; i--)
{
cout<<stack1[i];
cout<<endl;
}
cout<<"discks on tower 2\n";
for(int j = ub2 ; j >= 0 ; j--)
{
cout<<stack2[j];
cout<<endl;
}
cout<<"discks on tower 3\n";
for(int k = ub3 ; k >= 0 ; k--)
{
cout<<stack3[k];
cout<<endl;
}
goto X;
cout<<"close";
getch();
}

