Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. #include "SudokuChecker.h"
  2. #include <iostream>
  3. #include <sstream>
  4. #include <fstream>
  5.  
  6. SudokuChecker::SudokuChecker(int _board[][9]) {
  7.     for (int i = 0; i < 9; i++) {
  8.         std::vector<int> temp;
  9.         for (int j = 0; j < 9; j++) {
  10.             temp.push_back(_board[i][j]);
  11.         }
  12.         board.push_back(temp);
  13.     }
  14. }
  15.  
  16. SudokuChecker::SudokuChecker(const char *filename) {
  17.     std::ifstream infile(filename);
  18.     if (infile) {
  19.         std::string line;
  20.         while (std::getline(infile, line)) {
  21.             std::vector<int> temp;
  22.             std::istringstream ss(line);
  23.             int val;
  24.             while (ss >> val) {
  25.                 temp.push_back(val);
  26.             }
  27.             board.push_back(temp);
  28.         }
  29.     }
  30.     infile.close();
  31. }
  32.  
  33. void SudokuChecker::printBoard() const {
  34.     for (size_t i = 0; i < board.size(); i++) {
  35.         for (size_t j = 0; j < board[i].size(); j++) {
  36.             std::cout << board[i][j] << " ";
  37.         }
  38.         std::cout << std::endl;
  39.     }
  40. }
  41.  
  42. bool SudokuChecker::checkRow(int row) {
  43.     std::set<int> found;
  44.     for (int i = 0; i < 9; i++) {
  45.         int val = board[row][i];
  46.         if (found.count(val) == 1)
  47.             return false;
  48.         else
  49.             found.insert(val);
  50.     }
  51.     return found == required_vals;
  52. }
  53.  
  54. bool SudokuChecker::checkCol(int col) {
  55.     std::set<int> found;
  56.     for (int i = 0; i < 9; i++) {
  57.         int val = board[i][col];
  58.         if (found.count(val) == 1)
  59.             return false;
  60.         else
  61.             found.insert(val);
  62.     }
  63.     return found == required_vals;
  64. }
  65.  
  66. bool SudokuChecker::checkSquare(int startY, int startX) {
  67.     std::set<int> found;
  68.     for (int i = startY; i < startY + 3; i++) {
  69.         for (int j = startX; j < startX + 3; j++) {
  70.             int val = board[i][j];
  71.             if (found.count(val) == 1)
  72.                 return false;
  73.             else
  74.                 found.insert(val);
  75.         }
  76.     }
  77.     return found == required_vals;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement