Wednesday, 19 August 2015

A CODE OF TOWER OF HONOII GAME

//THIS IS A CODE FOR THE GAME TOWER OF HNOII
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();
}