Skip to content
sudoku.cc 833 B
Newer Older
Seblu's avatar
Seblu committed
#include <stdlib.h>
#include "sudoku.hh"

int main(int argc, char *argv[])
{
Seblu's avatar
Seblu committed
  int found;

Seblu's avatar
Seblu committed
  if (argc != 2 && argc !=3) {
    std::cerr << "Usage: sudoku [-v] file" << std::endl;
Seblu's avatar
Seblu committed
    return EXIT_USAGE;
Seblu's avatar
Seblu committed
  }
Seblu's avatar
Seblu committed
  if (argc == 3 && argv[1] == (std::string) "-v")
Seblu's avatar
Seblu committed
    Grid::verbose = true;
Seblu's avatar
Seblu committed
  if (argc == 3 && argv[1] == (std::string) "-p")
    Grid::advprint = true;
Seblu's avatar
Seblu committed
  Grid *grid = new Grid();
Seblu's avatar
Seblu committed
  if (!grid->load(argv[Grid::verbose || Grid::advprint ? 2 : 1])) {
    std::cerr << "Loading failed !" << std::endl;
    return EXIT_LOADFAIL;
Seblu's avatar
Seblu committed
  }
Seblu's avatar
Seblu committed
  if (Grid::verbose) {
    std::cout << "Loaded grid:" << std::endl;
    grid->print();
Seblu's avatar
Seblu committed
  }
Seblu's avatar
Seblu committed
  grid->resolve();
  found = grid->verify() ? EXIT_FOUND : EXIT_NOTFOUND;
  if (found == EXIT_FOUND && Grid::verbose > 0)
    std::cout << "Solution found." << std::endl;
  grid->print();
  return found;
Seblu's avatar
Seblu committed
}