0001 #include "../queen_brute_force_1/queen.h" 0002 0003 /****************************************************************************************** 0004 * 全局变量 0005 ******************************************************************************************/ 0006 RunMode runMode; //演示模式 0007 int nSolu = 0; //解的总数 0008 int nCheck = 0; //尝试的总次数 0009 0010 /****************************************************************************************** 0011 * 测试入口 0012 ******************************************************************************************/ 0013 int main ( int argc, char* argv[] ) { 0014 void ( *pPlaceQueens[] ) ( void ) = { 0015 place2Queens, //2皇后算法 0016 place3Queens, //3皇后算法 0017 place4Queens, //4皇后算法 0018 place5Queens //5皇后算法 0019 }; 0020 if ( argc < 2 ) //检查命令行格式 0021 { cout << "Usage: " << argv[0] << " <-step | -cont>" << endl; return -1; } 0022 if ( !strcmp ( "-step", argv[1] ) ) runMode = Step; //设定为单步演示模式 0023 else if ( !strcmp ( "-cont", argv[1] ) ) runMode = Continuous; //设定为连续演示模式 0024 else { cout << "Unrecognizable running mode" << endl; return -2; } 0025 for ( int i = 2; i <= 5; i++ ) { //对于2~5个皇后的情况,分别 0026 nSolu = 0; nCheck = 0; //初始化计数器 0027 ( *pPlaceQueens[i-2] ) (); //启动算法 0028 printf ( "#Queen = %d\t#Solution = %d\t#Check = %d\a\a\n", i, nSolu, nCheck ); //输出解 0029 getchar(); 0030 } 0031 }