السلام عليكم
ادي كود برنامج ولكن لم افهم طريقة عمله واريد المساعدة لفهمه ثم كتابته بطريقتي الخاصة وشكرا
#include
void moveDisk(int numdsk, int source, int dest, int spare, int &movecount, bool printeachmove)
{
if(numdsk==1)
{
movecount++;
if(printeachmove)
cout<<" Move top disc from "< }
else
{
moveDisk(numdsk-1, source, spare, dest, movecount, printeachmove);
moveDisk(1, source, dest, spare, movecount, printeachmove);
moveDisk(numdsk-1, spare, dest, source, movecount, printeachmove);
}
}
int menu()
{
int menuchoice;
cout<<" [1] Print only the number of moves "< <<" [2] Print each move "< <<" [3] Quitn"
<<"Please enter the number of your choice. ";
cin>>menuchoice;
return menuchoice;
}
void main()
{
int menuchoice, numdisks, movecount;
bool printeachmove, playagain=true;
menuchoice=menu();
switch(menuchoice)
{
case 1:
printeachmove=false;
break;
case 2:
printeachmove=true;
break;
case 3:
playagain=false;
break;
}
while(playagain)
{
cout<<"nn How many disks? ";
cin>>numdisks;
cout<<"nn";
movecount=0;
moveDisk(numdisks, 1, 3, 2, movecount, printeachmove); // arguments: (num disks, source pole, dest pole, temp pole)
cout<<"n";
cout<<" It took "< menuchoice=1;
menuchoice=menu();
switch(menuchoice)
{
case 1:
printeachmove=false;
break;
case 2:
printeachmove=true;
break;
case 3:
playagain=false;
break;
default:
break;
}
}
cout< }