before total refactoring

This commit is contained in:
Reza Behzadan 2020-05-28 22:32:51 +04:30
parent 8b6e208c85
commit 2cc3e856c5
33 changed files with 622 additions and 17 deletions

19
boards/hard/04.txt Normal file
View File

@ -0,0 +1,19 @@
0 0 1 2 0 3 4 0 0
0 0 0 6 0 7 0 0 0
5 0 0 0 0 0 0 0 3
3 7 0 0 0 0 0 8 1
0 0 0 0 0 0 0 0 0
6 2 0 0 0 0 0 3 7
1 0 0 0 0 0 0 0 8
0 0 0 8 0 5 0 0 0
0 0 6 4 0 2 5 0 0
7 8 1 2 5 3 4 9 6
2 4 3 6 9 7 8 1 5
5 6 9 1 4 8 7 2 3
3 7 5 9 2 4 6 8 1
9 1 8 3 7 6 2 5 4
6 2 4 5 8 1 9 3 7
1 5 2 7 6 9 3 4 8
4 9 7 8 3 5 1 6 2
8 3 6 4 1 2 5 7 9

View File

@ -1,16 +0,0 @@
return {
problem = {
{8, 0, 0, 0, 5, 0, 0, 0, 7},
{0, 6, 1, 0, 0, 0, 0, 0, 0},
{3, 7, 0, 0, 0, 0, 0, 6, 8},
{0, 0, 0, 6, 0, 0, 8, 0, 0},
{0, 1, 0, 0, 9, 0, 0, 2, 0},
{0, 3, 0, 2, 0, 0, 0, 9, 0},
{0, 8, 0, 0, 0, 7, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 4, 0, 1},
{0, 0, 5, 0, 0, 0, 9, 8, 3},
}
solution = {
}
}

View File

@ -7,3 +7,13 @@
0 8 0 0 0 7 0 0 0 0 8 0 0 0 7 0 0 0
0 0 0 0 0 0 4 0 1 0 0 0 0 0 0 4 0 1
0 0 5 0 0 0 9 8 3 0 0 5 0 0 0 9 8 3
8 9 4 3 5 6 2 1 7
5 6 1 7 2 8 3 4 9
3 7 2 4 1 9 5 6 8
2 5 9 6 7 1 8 3 4
4 1 8 5 9 3 7 2 6
6 3 7 2 8 4 1 9 5
1 8 3 9 4 7 6 5 2
9 2 6 8 3 5 4 7 1
7 4 5 1 6 2 9 8 3

19
boards/veryhard/02.txt Normal file
View File

@ -0,0 +1,19 @@
8 3 0 0 0 0 4 0 9
4 0 0 6 1 0 2 0 0
6 5 0 0 0 4 0 0 0
0 0 9 0 0 0 0 0 0
0 0 0 0 6 0 0 0 7
0 0 0 1 0 2 0 0 0
7 0 0 0 0 0 0 3 0
0 0 4 8 3 0 9 2 0
0 0 0 0 0 0 8 0 4
8 3 1 7 2 5 4 6 9
4 9 7 6 1 8 2 5 3
6 5 2 3 9 4 7 8 1
1 7 9 5 8 3 6 4 2
2 8 5 4 6 9 3 1 7
3 4 6 1 7 2 5 9 8
7 2 8 9 4 6 1 3 5
5 1 4 8 3 7 9 2 6
9 6 3 2 5 1 8 7 4

19
boards/veryhard/03.txt Normal file
View File

@ -0,0 +1,19 @@
9 0 7 6 0 0 0 0 0
0 1 0 2 0 0 0 0 5
8 2 0 0 1 0 0 0 0
5 6 1 0 0 0 0 3 0
4 0 0 9 3 5 0 0 6
0 7 0 0 0 0 2 5 4
0 0 0 0 4 0 0 1 2
1 0 0 0 0 9 0 6 0
0 0 0 0 0 1 4 0 9
9 5 7 6 8 4 3 2 1
6 1 3 2 9 7 8 4 5
8 2 4 5 1 3 6 9 7
5 6 1 4 7 2 9 3 8
4 8 2 9 3 5 1 7 6
3 7 9 1 6 8 2 5 4
7 9 8 3 4 6 5 1 2
1 4 5 8 2 9 7 6 3
2 3 6 7 5 1 4 8 9

19
boards/veryhard/04.txt Normal file
View File

@ -0,0 +1,19 @@
9 0 0 3 0 0 1 0 7
0 0 0 0 7 0 0 0 0
0 7 0 2 9 0 0 0 0
0 0 4 0 5 2 3 0 6
6 1 0 0 0 0 0 8 5
3 0 2 6 1 0 7 0 0
0 0 0 0 8 3 0 5 0
0 0 0 0 6 0 0 0 0
4 0 7 0 0 9 0 0 1
9 6 8 3 4 5 1 2 7
2 4 1 8 7 6 5 3 9
5 7 3 2 9 1 6 4 8
7 8 4 9 5 2 3 1 6
6 1 9 4 3 7 2 8 5
3 5 2 6 1 8 7 9 4
1 9 6 7 8 3 4 5 2
8 2 5 1 6 4 9 7 3
4 3 7 5 2 9 8 6 1

19
boards/veryhard/05.txt Normal file
View File

@ -0,0 +1,19 @@
0 5 0 0 0 0 2 0 0
6 3 0 0 8 0 0 0 4
9 0 0 0 0 0 0 0 1
7 0 2 0 9 0 4 0 0
8 0 0 0 0 4 0 0 0
0 0 0 0 0 6 1 0 0
0 0 0 1 0 0 5 0 0
0 0 0 0 0 0 0 0 8
0 4 0 0 0 0 3 6 7
4 5 8 7 1 9 2 3 6
6 3 1 5 8 2 7 9 4
9 2 7 6 4 3 8 5 1
7 6 2 3 9 1 4 8 5
8 1 3 2 5 4 6 7 9
5 9 4 8 7 6 1 2 3
3 8 9 1 6 7 5 4 2
2 7 6 4 3 5 9 1 8
1 4 5 9 2 8 3 6 7

19
boards/veryhard/06.txt Normal file
View File

@ -0,0 +1,19 @@
7 3 8 0 0 0 0 0 1
0 5 0 0 0 0 0 3 0
0 0 0 4 7 0 0 0 9
0 8 0 0 4 0 0 1 0
3 0 0 0 0 9 0 0 0
0 4 5 0 6 0 9 0 0
0 0 0 0 0 4 0 0 7
0 7 6 0 0 0 5 0 0
0 0 0 0 0 0 2 0 8
7 3 8 6 9 5 4 2 1
9 5 4 1 8 2 7 3 6
2 6 1 4 7 3 8 5 9
6 8 9 2 4 7 3 1 5
3 2 7 5 1 9 6 8 4
1 4 5 3 6 8 9 7 2
5 9 2 8 3 4 1 6 7
8 7 6 9 2 1 5 4 3
4 1 3 7 5 6 2 9 8

19
boards/veryhard/07.txt Normal file
View File

@ -0,0 +1,19 @@
0 6 0 7 2 0 9 3 5
9 0 0 0 0 3 0 0 0
3 0 0 9 0 0 0 0 0
0 9 0 0 0 6 1 0 7
8 0 0 0 7 0 0 0 9
5 0 7 8 0 0 0 4 0
0 0 0 0 0 5 0 0 2
0 0 0 2 0 0 0 0 1
7 2 1 0 6 8 0 9 0
1 6 8 7 2 4 9 3 5
9 5 2 6 8 3 7 1 4
3 7 4 9 5 1 6 2 8
2 9 3 5 4 6 1 8 7
8 4 6 1 7 2 3 5 9
5 1 7 8 3 9 2 4 6
6 8 9 3 1 5 4 7 2
4 3 5 2 9 7 8 6 1
7 2 1 4 6 8 5 9 3

19
boards/veryhard/08.txt Normal file
View File

@ -0,0 +1,19 @@
0 0 0 0 0 8 0 0 0
6 0 0 0 0 4 0 0 3
9 0 7 0 5 0 2 0 0
4 0 0 0 0 0 0 5 0
0 0 1 0 0 0 7 0 0
0 9 0 0 0 6 1 0 0
0 1 0 2 0 0 0 0 0
8 0 0 0 0 0 0 0 1
0 5 0 7 0 0 0 9 4
1 2 3 9 7 8 4 6 5
6 8 5 1 2 4 9 7 3
9 4 7 6 5 3 2 1 8
4 6 2 3 1 7 8 5 9
5 3 1 8 9 2 7 4 6
7 9 8 5 4 6 1 3 2
3 1 4 2 6 9 5 8 7
8 7 9 4 3 5 6 2 1
2 5 6 7 8 1 3 9 4

19
boards/veryhard/09.txt Normal file
View File

@ -0,0 +1,19 @@
6 0 0 7 5 0 2 8 0
1 0 0 0 0 9 0 0 5
5 0 0 8 0 0 0 0 0
0 1 0 3 0 0 6 0 4
2 0 0 0 7 0 0 0 3
7 0 5 0 0 4 0 2 0
0 0 0 0 0 7 0 0 8
3 0 0 5 0 0 0 0 2
0 5 1 0 4 6 0 0 7
6 9 4 7 5 3 2 8 1
1 8 2 4 6 9 7 3 5
5 7 3 8 1 2 9 4 6
9 1 8 3 2 5 6 7 4
2 4 6 9 7 1 8 5 3
7 3 5 6 8 4 1 2 9
4 2 9 1 3 7 5 6 8
3 6 7 5 9 8 4 1 2
8 5 1 2 4 6 3 9 7

19
boards/veryhard/10.txt Normal file
View File

@ -0,0 +1,19 @@
0 7 0 0 8 5 3 0 2
0 0 0 6 0 7 4 8 0
0 0 0 0 0 3 0 0 5
0 0 0 0 7 0 0 2 4
0 0 4 0 6 0 5 0 0
8 3 0 0 2 0 0 0 0
9 0 0 4 0 0 0 0 0
0 4 3 8 0 9 0 0 0
2 0 1 7 5 0 0 4 0
4 7 9 1 8 5 3 6 2
3 5 2 6 9 7 4 8 1
6 1 8 2 4 3 7 9 5
5 9 6 3 7 1 8 2 4
1 2 4 9 6 8 5 3 7
8 3 7 5 2 4 6 1 9
9 6 5 4 3 2 1 7 8
7 4 3 8 1 9 2 5 6
2 8 1 7 5 6 9 4 3

19
boards/veryhard/11.txt Normal file
View File

@ -0,0 +1,19 @@
9 0 5 0 0 0 0 7 1
0 0 3 0 6 2 0 0 5
0 0 0 5 0 0 0 4 2
0 0 0 0 0 0 9 0 0
8 0 0 0 2 0 0 0 0
0 0 0 3 0 6 0 0 0
0 7 0 0 0 0 0 0 8
0 3 9 0 7 1 5 0 0
5 0 1 0 0 0 0 0 0
9 2 5 4 3 8 6 7 1
7 4 3 1 6 2 8 9 5
6 1 8 5 9 7 3 4 2
3 5 2 7 1 4 9 8 6
8 6 7 9 2 5 4 1 3
1 9 4 3 8 6 2 5 7
4 7 6 2 5 9 1 3 8
2 3 9 8 7 1 5 6 4
5 8 1 6 4 3 7 2 9

19
boards/veryhard/12.txt Normal file
View File

@ -0,0 +1,19 @@
2 1 9 0 3 7 0 6 0
0 0 0 1 0 0 0 0 9
0 0 0 0 0 8 0 0 1
8 0 2 7 0 0 0 5 0
7 0 0 0 2 0 0 0 6
0 6 0 0 0 3 9 0 2
4 0 0 6 0 0 0 0 0
6 0 0 0 0 4 0 0 0
0 3 0 2 1 0 6 4 8
2 1 9 5 3 7 8 6 4
5 4 8 1 6 2 7 3 9
3 7 6 4 9 8 5 2 1
8 9 2 7 4 6 1 5 3
7 5 3 9 2 1 4 8 6
1 6 4 8 5 3 9 7 2
4 2 5 6 8 9 3 1 7
6 8 1 3 7 4 2 9 5
9 3 7 2 1 5 6 4 8

19
boards/veryhard/13.txt Normal file
View File

@ -0,0 +1,19 @@
0 6 0 4 8 0 3 7 5
3 0 0 0 0 7 0 0 0
7 0 0 3 0 0 0 0 0
0 3 0 0 0 6 9 0 4
1 0 0 0 4 0 0 0 3
5 0 4 1 0 0 0 2 0
0 0 0 0 0 5 0 0 8
0 0 0 8 0 0 0 0 9
4 8 9 0 6 1 0 3 0
9 6 1 4 8 2 3 7 5
3 5 8 6 1 7 4 9 2
7 4 2 3 5 9 6 8 1
8 3 7 5 2 6 9 1 4
1 2 6 9 4 8 7 5 3
5 9 4 1 7 3 8 2 6
6 1 3 7 9 5 2 4 8
2 7 5 8 3 4 1 6 9
4 8 9 2 6 1 5 3 7

19
boards/veryhard/14.txt Normal file
View File

@ -0,0 +1,19 @@
7 0 9 0 0 0 5 0 8
0 1 0 7 0 0 0 0 0
0 0 0 0 0 9 0 2 6
0 0 0 0 9 0 3 0 0
0 0 5 3 0 4 0 0 0
0 0 3 0 0 0 0 0 0
8 0 0 0 0 2 0 4 0
1 2 0 8 0 3 0 5 0
5 0 0 0 1 0 0 0 0
7 4 9 2 3 6 5 1 8
6 1 2 7 8 5 4 3 9
3 5 8 1 4 9 7 2 6
2 6 1 5 9 8 3 7 4
9 8 5 3 7 4 1 6 2
4 7 3 6 2 1 8 9 5
8 3 7 9 5 2 6 4 1
1 2 4 8 6 3 9 5 7
5 9 6 4 1 7 2 8 3

19
boards/veryhard/15.txt Normal file
View File

@ -0,0 +1,19 @@
8 0 4 0 0 0 0 7 1
0 0 3 0 2 5 0 0 4
0 0 0 4 0 0 0 6 5
0 0 0 0 0 0 8 0 0
9 0 0 0 5 0 0 0 0
0 0 0 3 0 2 0 0 0
0 7 0 0 0 0 0 0 9
0 3 8 0 7 1 4 0 0
4 0 1 0 0 0 0 0 0
8 5 4 6 3 9 2 7 1
7 6 3 1 2 5 9 8 4
2 1 9 4 8 7 3 6 5
3 4 5 7 1 6 8 9 2
9 2 7 8 5 4 6 1 3
1 8 6 3 9 2 5 4 7
6 7 2 5 4 8 1 3 9
5 3 8 9 7 1 4 2 6
4 9 1 2 6 3 7 5 8

19
boards/veryhard/16.txt Normal file
View File

@ -0,0 +1,19 @@
0 0 0 0 0 0 7 0 5
0 9 3 0 0 0 1 0 0
0 0 0 0 0 2 0 0 9
0 2 1 0 3 0 4 0 0
6 0 0 0 0 4 0 0 0
0 5 0 0 2 0 0 8 0
0 0 0 2 9 0 0 0 4
0 1 0 0 0 0 0 6 0
9 6 5 0 0 0 0 0 8
2 8 6 9 1 3 7 4 5
5 9 3 4 7 8 1 2 6
1 4 7 5 6 2 8 3 9
8 2 1 6 3 5 4 9 7
6 7 9 1 8 4 3 5 2
3 5 4 7 2 9 6 8 1
7 3 8 2 9 6 5 1 4
4 1 2 8 5 7 9 6 3
9 6 5 3 4 1 2 7 8

19
boards/veryhard/17.txt Normal file
View File

@ -0,0 +1,19 @@
7 8 0 0 0 6 0 9 0
4 0 0 0 0 0 0 0 3
0 0 0 0 0 5 0 4 0
0 0 4 2 0 0 0 8 0
0 0 6 0 0 0 4 0 0
0 9 0 0 0 0 0 0 7
0 0 5 0 9 0 6 0 8
1 0 0 7 0 0 0 0 2
0 0 0 3 0 0 0 0 0
7 8 1 4 3 6 2 9 5
4 5 2 9 1 7 8 6 3
6 3 9 8 2 5 7 4 1
5 1 4 2 7 9 3 8 6
2 7 6 5 8 3 4 1 9
8 9 3 6 4 1 5 2 7
3 4 5 1 9 2 6 7 8
1 6 8 7 5 4 9 3 2
9 2 7 3 6 8 1 5 4

19
boards/veryhard/18.txt Normal file
View File

@ -0,0 +1,19 @@
0 3 4 0 0 0 6 7 0
2 0 0 0 0 0 0 0 8
1 0 0 0 4 0 0 0 9
0 0 0 8 0 3 0 0 0
0 0 7 0 0 0 5 0 0
0 0 0 2 0 6 0 0 0
3 0 0 0 1 0 0 0 5
7 0 0 0 0 0 0 0 6
0 6 9 0 0 0 1 4 0
9 3 4 5 8 2 6 7 1
2 7 5 9 6 1 4 3 8
1 8 6 3 4 7 2 5 9
6 5 1 8 7 3 9 2 4
8 2 7 1 9 4 5 6 3
4 9 3 2 5 6 8 1 7
3 4 2 6 1 9 7 8 5
7 1 8 4 2 5 3 9 6
5 6 9 7 3 8 1 4 2

19
boards/veryhard/19.txt Normal file
View File

@ -0,0 +1,19 @@
0 8 0 0 2 0 5 6 0
0 0 0 1 0 0 0 0 7
0 0 0 0 0 0 0 0 0
0 5 0 0 9 0 4 0 8
0 0 7 8 0 0 0 0 3
0 9 0 0 1 0 0 5 0
2 0 4 0 0 0 8 0 0
0 6 0 0 8 5 0 0 0
0 0 0 2 0 0 1 0 0
4 8 3 7 2 9 5 6 1
5 2 9 1 4 6 3 8 7
7 1 6 5 3 8 2 4 9
1 5 2 6 9 3 4 7 8
6 4 7 8 5 2 9 1 3
3 9 8 4 1 7 6 5 2
2 7 4 9 6 1 8 3 5
9 6 1 3 8 5 7 2 4
8 3 5 2 7 4 1 9 6

19
boards/veryhard/20.txt Normal file
View File

@ -0,0 +1,19 @@
6 0 0 0 9 0 0 0 7
0 4 0 0 0 7 1 0 0
0 0 2 8 0 0 0 5 0
8 0 0 0 0 0 0 9 0
0 0 0 0 7 0 0 0 0
0 3 0 0 0 0 0 0 8
0 5 0 0 0 2 3 0 0
0 0 4 5 0 0 0 2 0
9 0 0 0 3 0 0 0 4
6 8 3 1 9 5 2 4 7
5 4 9 6 2 7 1 8 3
7 1 2 8 4 3 9 5 6
8 6 5 3 1 4 7 9 2
4 9 1 2 7 8 6 3 5
2 3 7 9 5 6 4 1 8
1 5 6 4 8 2 3 7 9
3 7 4 5 6 9 8 2 1
9 2 8 7 3 1 5 6 4

19
boards/veryhard/21.txt Normal file
View File

@ -0,0 +1,19 @@
0 7 4 0 2 8 0 0 9
2 0 0 1 0 0 0 0 6
0 0 0 0 0 7 0 0 2
3 0 9 0 0 5 0 6 0
5 0 0 0 8 0 0 0 4
0 4 0 3 0 0 2 0 8
7 0 0 8 0 0 0 0 0
4 0 0 0 0 2 0 0 5
8 0 0 9 3 0 6 2 0
6 7 4 5 2 8 3 1 9
2 5 8 1 9 3 4 7 6
9 3 1 4 6 7 5 8 2
3 8 9 2 4 5 7 6 1
5 2 7 6 8 1 9 3 4
1 4 6 3 7 9 2 5 8
7 9 2 8 5 6 1 4 3
4 6 3 7 1 2 8 9 5
8 1 5 9 3 4 6 2 7

19
boards/veryhard/22.txt Normal file
View File

@ -0,0 +1,19 @@
1 0 2 0 0 0 0 0 0
0 7 9 0 8 2 1 0 0
0 8 0 0 0 0 0 0 4
0 0 0 7 0 6 0 0 0
4 0 0 0 3 0 0 0 0
0 0 0 0 0 0 9 0 0
0 0 0 1 0 0 0 5 3
0 0 7 0 6 3 0 0 1
9 0 1 0 0 0 0 8 2
1 4 2 6 5 7 8 3 9
3 7 9 4 8 2 1 6 5
5 8 6 3 1 9 2 7 4
2 9 5 7 4 6 3 1 8
4 6 8 9 3 1 5 2 7
7 1 3 8 2 5 9 4 6
6 2 4 1 9 8 7 5 3
8 5 7 2 6 3 4 9 1
9 3 1 5 7 4 6 8 2

19
boards/veryhard/23.txt Normal file
View File

@ -0,0 +1,19 @@
0 5 0 0 6 4 9 0 3
0 0 0 8 0 5 1 6 0
0 0 0 0 0 9 0 0 4
0 0 0 0 5 0 0 3 1
0 0 1 0 8 0 4 0 0
6 9 0 0 3 0 0 0 0
2 0 0 1 0 0 0 0 0
0 1 9 6 0 2 0 0 0
3 0 7 5 4 0 0 1 0
1 5 2 7 6 4 9 8 3
9 4 3 8 2 5 1 6 7
8 7 6 3 1 9 5 2 4
4 2 8 9 5 7 6 3 1
7 3 1 2 8 6 4 9 5
6 9 5 4 3 1 8 7 2
2 8 4 1 9 3 7 5 6
5 1 9 6 7 2 3 4 8
3 6 7 5 4 8 2 1 9

19
boards/veryhard/24.txt Normal file
View File

@ -0,0 +1,19 @@
5 0 3 0 0 0 0 0 0
0 0 6 0 0 0 4 2 0
2 0 0 8 0 0 0 0 0
0 0 9 0 4 0 6 8 0
0 0 0 9 0 0 0 0 1
0 7 0 0 8 0 0 5 0
9 0 0 0 2 8 0 0 0
0 1 0 0 0 0 0 6 0
7 0 0 0 0 0 5 1 2
5 9 3 4 6 2 1 7 8
1 8 6 7 3 9 4 2 5
2 4 7 8 1 5 3 9 6
3 2 9 5 4 1 6 8 7
8 5 4 9 7 6 2 3 1
6 7 1 2 8 3 9 5 4
9 6 5 1 2 8 7 4 3
4 1 2 3 5 7 8 6 9
7 3 8 6 9 4 5 1 2

19
boards/veryhard/25.txt Normal file
View File

@ -0,0 +1,19 @@
0 5 8 9 1 0 0 0 0
3 4 0 0 0 0 0 0 6
0 0 0 2 0 0 0 0 0
0 0 0 0 0 0 7 0 0
0 1 0 8 0 0 0 0 0
0 0 0 0 6 5 0 0 0
2 0 0 6 0 7 3 0 4
0 0 0 0 0 0 0 0 5
0 6 7 0 0 0 0 1 9
6 5 8 9 1 3 4 2 7
3 4 2 5 7 8 1 9 6
1 7 9 2 4 6 8 5 3
9 3 5 4 2 1 7 6 8
7 1 6 8 3 9 5 4 2
8 2 4 7 6 5 9 3 1
2 9 1 6 5 7 3 8 4
4 8 3 1 9 2 6 7 5
5 6 7 3 8 4 2 1 9

19
boards/veryhard/26.txt Normal file
View File

@ -0,0 +1,19 @@
9 0 3 0 0 7 0 0 4
0 0 0 0 1 0 0 0 0
0 0 0 0 6 2 0 8 0
2 0 5 1 4 0 3 0 0
1 4 0 0 0 0 0 6 8
0 0 9 0 8 5 2 0 1
0 3 0 5 7 0 0 0 0
0 0 0 0 3 0 0 0 0
7 0 0 2 0 0 4 0 3
9 2 3 8 5 7 6 1 4
6 5 8 4 1 9 7 3 2
4 7 1 3 6 2 9 8 5
2 8 5 1 4 6 3 7 9
1 4 7 9 2 3 5 6 8
3 6 9 7 8 5 2 4 1
8 3 2 5 7 4 1 9 6
5 9 4 6 3 1 8 2 7
7 1 6 2 9 8 4 5 3

9
boards/veryhard/27.txt Normal file
View File

@ -0,0 +1,9 @@
2 3 0 0 0 0 1 0 8
1 0 0 9 4 0 6 0 0
9 5 0 0 0 1 0 0 0
0 0 8 0 0 0 0 0 0
0 0 0 0 9 0 0 0 7
0 0 0 4 0 6 0 0 0
7 0 0 0 0 0 0 3 0
0 0 1 2 3 0 8 6 0
0 0 0 0 0 0 2 0 1

View File

@ -1,3 +1,4 @@
TextBox = require "ui.textbox"
require "ui.globals" require "ui.globals"
require "ui.config" require "ui.config"
require "ui.colors" require "ui.colors"
@ -19,10 +20,14 @@ function love.load()
uiBoard[1] = cloneBoard(board[1]) uiBoard[1] = cloneBoard(board[1])
uiBoard[2] = cloneBoard(board[1]) uiBoard[2] = cloneBoard(board[1])
uiBoard[3] = cloneBoard(board[1]) uiBoard[3] = cloneBoard(board[1])
inputBox = TextBox(50, 50, 500, 45)
inputBox.focused = false
inputBox.enabled = false
initUI() initUI()
end end
function love.update(dt) function love.update(dt)
inputBox:blink(dt)
end end
function love.draw() function love.draw()
@ -32,4 +37,9 @@ function love.draw()
drawBigNumbers() drawBigNumbers()
drawCursor() drawCursor()
drawMessages() drawMessages()
inputBox:draw()
end
function love.textinput(t)
inputBox:append(t)
end end

View File

@ -28,4 +28,5 @@ colors.boardThikLines = "000000"
board.fn = "boards/veryhard/01.txt" board.fn = "boards/veryhard/01.txt"
board.fn = "boards/easy/03.txt" board.fn = "boards/easy/03.txt"
board.fn = "boards/hard/03.txt" board.fn = "boards/hard/04.txt"
board.fn = "boards/veryhard/27.txt"

View File

@ -72,6 +72,12 @@ function handleUp(shift)
end end
function love.keypressed(key, scancode) function love.keypressed(key, scancode)
if inputBox.focused then
if key == "backspace" then
inputBox:delete()
end
return
end
local shift = love.keyboard.isDown('rshift') or love.keyboard.isDown('lshift') local shift = love.keyboard.isDown('rshift') or love.keyboard.isDown('lshift')
if key == "escape" or key == "q" then if key == "escape" or key == "q" then
love.event.quit() love.event.quit()
@ -124,6 +130,9 @@ function love.keypressed(key, scancode)
uiBoard[2][cursor.y][cursor.x] = uiBoard[3][cursor.y][cursor.x] uiBoard[2][cursor.y][cursor.x] = uiBoard[3][cursor.y][cursor.x]
cursor.editMode = false cursor.editMode = false
end end
elseif key == "e" then
inputBox.enabled = true
inputBox.focused = true
end end
end end
end end

88
ui/textbox.lua Normal file
View File

@ -0,0 +1,88 @@
TextBox = {}
TextBox.__index = TextBox
function TextBox:new(x, y, width, height, options)
local options = options or {}
local o = {
text = "",
x = x,
y = y,
width = width,
height = height,
borderColor = options.borderColor or {0, 0, 0},
bgColor = options.bgColor or {.75, .85, .75},
fgColor = options.fgColor or {0, 0, 0},
font = options.font or love.graphics.newFont(24),
cursorOnTime = options.cursorOnTime or .35,
enabled = true,
focused = true,
cursorOn = true,
cursorTime = 0,
}
if options.enabled == false then o.enabled = false end
if options.focused == false then o.focused = false end
if not o.enabled then o.cursorOn = false; o.focused = false end
setmetatable(o, TextBox)
return o
end
function TextBox:blink(dt)
if not self.focused then return end
self.cursorTime = self.cursorTime + dt
if self.cursorTime >= self.cursorOnTime then
self.cursorTime = self.cursorTime - self.cursorOnTime
self.cursorOn = not self.cursorOn
end
end
function TextBox:draw()
if not self.enabled then return end
love.graphics.setLineWidth(3)
love.graphics.setColor(unpack(self.borderColor))
love.graphics.rectangle("line", self.x, self.y, self.width, self.height, 10, 10)
love.graphics.setLineWidth(1)
love.graphics.setColor(unpack(self.bgColor))
love.graphics.rectangle("fill", self.x, self.y, self.width, self.height, 10, 10)
love.graphics.setColor(unpack(self.fgColor))
love.graphics.setFont(self.font)
love.graphics.print(self.text, self.x+15, self.y+7)
local mx = 15 + self.font:getWidth(self.text)
love.graphics.setLineWidth(2)
if self.cursorOn then
love.graphics.setColor(unpack(self.fgColor))
love.graphics.line(self.x+mx, self.y+7, self.x+mx, self.y+self.height-10)
else
love.graphics.setColor(unpack(self.bgColor))
love.graphics.line(self.x+mx, self.y+7, self.x+mx, self.y+self.height-10)
end
end
function TextBox:append(t)
if not self.focused then return end
if self.font:getWidth(self.text..t) < self.width - 30 then
self.text = self.text .. t
end
end
function TextBox:delete()
if not self.focused then return end
if #self.text > 0 then
self.text = self.text:sub(1, -2)
end
end
function TextBox:clear()
if not self.focused then return end
self.text = ""
end
function TextBox:keypressed(key)
if key == "backspace" then
self:delete()
end
end
setmetatable(TextBox, {__call=TextBox.new})
return TextBox