main.cpp
Upload User: daichengfu
Upload Date: 2020-11-23
Package Size: 14k
Code Size: 3k
Development Platform:

Java

  1. #include <iostream>
  2. #include "q8_riddle.hpp"
  3. #include "einsteins_riddle.hpp"
  4. #include "magic_squares.hpp"
  5. #include "magic_square_5.hpp"
  6. #include "solo.hpp"
  7. using namespace std;
  8. int
  9. main()
  10.     q8_riddle_solver *queen_riddle;
  11.     einsteins_riddle_solver *einsteins_riddle;
  12.     magic_square_solver *magic_square;
  13.     magic_square5_solver *magic_square5;
  14.     solo_solver *solo;
  15.     char c = 'n';
  16.     
  17.     while (c!= 'q' && c!= 'Q')
  18.     {
  19.         cout << endl << "Select puzzle to solve:" << endl;
  20.         cout << "1: 8 Queens Riddle" << endl;
  21.         cout << "2: Einstein's Riddle" << endl;
  22.         cout << "3: Magic Square 3x3" << endl;
  23.         cout << "4: Magic Square 4x4" << endl;
  24.         cout << "5: Magic Square 5x5" << endl;
  25.         cout << "6: Peg Solitaire" << endl;
  26.         cout << "Press q to exit." << endl << endl;
  27.         cin >> c;
  28.         switch(c)
  29.         {
  30.         case '1':
  31.             cout << "Solving 8 Queens Riddle..." << endl << endl;
  32.             queen_riddle = new (q8_riddle_solver);
  33.             queen_riddle->solve();
  34.             queen_riddle->print_all();
  35.             delete queen_riddle;
  36.             break;
  37.         case '2':
  38.             cout << "Solving Einstein's Riddle..." << endl << endl;
  39.             einsteins_riddle = new (einsteins_riddle_solver);
  40.             einsteins_riddle->solve();
  41.             einsteins_riddle->print_all();
  42.             delete einsteins_riddle;
  43.             break;
  44.         case '3':
  45.             cout << "Searching for Magic Squares 3x3..." << endl << endl;
  46.             magic_square = new (magic_square_solver);
  47.             magic_square->set_order(3);
  48.             magic_square->solve();
  49.             magic_square->print_all();
  50.             delete magic_square;
  51.             break;
  52.         case '4':
  53.             cout << "Searching for Magic Squares 4x4..." << endl << endl;
  54.             magic_square = new (magic_square_solver);
  55.             magic_square->set_order(4);
  56.             magic_square->solve();
  57.             cout << "Press a key to print solutions" << endl;
  58.             cin >> c;
  59.             magic_square->print_all();
  60.             delete magic_square;
  61.             break;
  62.         case '5':
  63.             cout << "Searching for Magic Squares 5x5..." << endl << endl;
  64.             magic_square5 = new (magic_square5_solver);
  65.             magic_square5->set_solutions_count(10);
  66.             magic_square5->solve();
  67.             cout << "Press a key to print solutions" << endl;
  68.             cin >> c;
  69.             magic_square5->print_all();
  70.             delete magic_square5;
  71.             break;
  72.         case '6':
  73.             cout << "Solving Peg Solitaire..." << endl << endl;
  74.             solo = new (solo_solver);
  75.             solo->set_solutions_count(1);
  76.             solo->solve();
  77.             solo->print_all();
  78.             cout << "Press a key to replay solution." << endl;
  79.             cin >> c;
  80.             solo->replay_solution();
  81.             delete solo;
  82.             break;
  83.         }
  84.     }
  85. }