0001 0002 #include "hanoi.h" 0003 0004 int nDisk; //盘子总数 0005 Stack<int> Sx, Sy, Sz; //用三个栈模拟三根柱子,每个盘子的半径用整数表示 0006 0007 /****************************************************************************************** 0008 * 测试入口 0009 ******************************************************************************************/ 0010 int main ( int argc, char* argv[] ) { 0011 // 检查参数 0012 if ( 2 > argc ) { fprintf ( stderr, "\a\a\nUsage: %s <number>\n\nFor example %s 6\n\n", argv[0], argv[0] ); return -1; } 0013 nDisk = atoi ( argv[1] ); //盘子总数 0014 if ( nDisk < 0 ) { fprintf ( stderr, "\a\a\nMake sure the number of disks (%d?) is input correctly\n", nDisk ); return -2; } 0015 for ( Disk d = nDisk; d >= 1; d-- ) Sx.push ( d ); //所有盘子依次放到X柱 0016 displayHanoi(); 0017 // 启动游戏 0018 hanoi ( nDisk, Sx, Sy, Sz ); 0019 return 0; 0020 }