Skip to content

Commit 8d8594e

Browse files
committed
Update main.cpp
1 parent 7c84d1d commit 8d8594e

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

src/main.cpp

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
/**
2-
* This another simple sudoku solver
2+
* This another typical simple sudoku solver
33
* Uses DFS for searching
4-
* This code is published under GPL version 3 (or later)
5-
* copyright Adib Hasan (Neehan)
4+
* This code is published under GPL version 3
5+
* Copyright (c) 2014-2015 Adib Hasan (Neehan)
66
**/
77

88
#include <iomanip>
99
#include <iostream>
10-
#include <fstream>
1110
#include <algorithm>
1211
#include <vector>
1312
#include <stack>
@@ -30,7 +29,6 @@ void check(){
3029

3130
/**COLUMN CHECK**/
3231

33-
int temp1=sudoku[53][0];
3432
myit=find(sudoku[k*9+row].begin(),sudoku[k*9+row].end(),j);
3533
if(myit!=sudoku[k*9+row].end()) sudoku[k*9+row].erase(myit);
3634

@@ -43,7 +41,6 @@ void check(){
4341
sudoku[i].push_back(j);
4442
}
4543
}
46-
4744
bool conflict(){
4845
for(int i=0;i<81;i++) if(sudoku[i].size()==0) return true;
4946
return false;
@@ -62,16 +59,16 @@ bool solved(){
6259
return true;
6360
}
6461
void print_sol(){
65-
for(int i=0;i<9;i++){
66-
for(int j=0;j<9;j++){
67-
for(int k=0;k<sudoku[9*i+j].size();k++) cout << sudoku[9*i+j][k];
68-
for(int k=0;k<3-sudoku[9*i+j].size();k++) cout << " ";
69-
}
70-
cout << endl;
62+
for(int i=0;i<81;i++){
63+
if( i % 27 == 0 ) cout << "\n+-------+-------+-------+\n| " << sudoku[i][0] << " ";
64+
else if( i % 27 == 26 ) cout << sudoku[i][0] << " |";
65+
else if( i % 9 == 0 ) cout << "|\n| " << sudoku[i][0] << " ";
66+
else if( i % 3 == 0 ) cout << "| " << sudoku[i][0] << " ";
67+
else cout << sudoku[i][0] << " ";
7168
}
69+
cout << "\n+-------+-------+-------+\n";
7270
}
73-
74-
int main(){
71+
int main() {
7572
register int i,j;
7673
for(i=0;i<9;i++) sudoku[0].push_back(i+1);
7774
for(i=0,j;i<81;i++)sudoku[i]=sudoku[0];
@@ -85,14 +82,20 @@ int main(){
8582
cout << "1 0 0 4 0 0 0 0 0\n";
8683
cout << "0 0 9 0 8 0 0 5 0\n";
8784
cout << "0 2 0 0 0 0 6 0 0\n";
88-
cout << "4 0 0 7 0 0 0 0 0\nWhere 0 stands for an empty cell\nNow write down your sudoku\n\n";
89-
for(i=0;i<81;i++){
90-
cin >> j; ///the cell of ith column and jth row.
91-
if(j>0){
92-
sudoku[i].clear();
93-
sudoku[i].push_back(j);
94-
check();
85+
cout << "4 0 0 7 0 0 0 0 0\nWhere 0 stands for an empty cell\nNow write down your sudoku. See README.html for details.\n\n";
86+
for(i=0;i<81;){
87+
char val;
88+
cin >> val; ///the cell of ith column and jth row.
89+
if(isdigit(val)){
90+
j=atoi(&val);
91+
if(j>0){
92+
sudoku[i].clear();
93+
sudoku[i].push_back(j);
94+
check();
95+
}
96+
i++;
9597
}
98+
else if(val=='.') i++;
9699
}
97100
clock_t t=clock();
98101
stack< vector < vector<int> > > mystack;
@@ -116,7 +119,7 @@ int main(){
116119
cout << "Press q to quit\n";
117120
char quit;
118121
cin >> quit;
119-
if(quit=='q') return 0;
122+
return 0;
120123
}
121124
else mystack.push(sudoku);
122125
}

0 commit comments

Comments
 (0)