-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path30.py
More file actions
106 lines (86 loc) · 1.89 KB
/
30.py
File metadata and controls
106 lines (86 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# sudoku.py
#
# Copyright 2012 João Ferreira <jpbat@student.dei.uc.pt>
#
import turtle
import sys
table = [[0 for i in range(6)] for i in range(5)]
def move(x, y):
turtle.up()
turtle.goto(x, y)
turtle.down()
def grid(side):
turtle.color("blue")
#horizontal
for i in range(1, 5):
move(-side*3, side*3-i*side)
turtle.fd(6*side)
#vertical
turtle.setheading(-90)
for i in range(1, 6):
move(-side*3+i*side, side*3)
turtle.fd(5*side)
#big square
turtle.color("red")
turtle.width(2)
turtle.setheading(0)
move(-side*3, side*3)
for i in range(4):
if (i % 2 == 0):
cena = side * 6
else:
cena = side * 5
turtle.fd(cena)
turtle.rt(90)
def write(side):
turtle.color("green")
for i in range(5):
for j in range(6):
move(-side*5/2.+j*side, side*6/2.-(i+1)*side)
turtle.write(table[i][j], align="center", font=("Arial", side/2, "bold"))
return
def show():
turtle.hideturtle()
turtle.speed(0)
side = turtle.window_height()/7
grid(side)
write(side)
turtle.exitonclick()
def solve(x, y, number):
if x >= 5 or x < 0 or y >= 6 or y < 0 or table[x][y] != 0:
if number == 31:
show()
return
table[x][y] = number
solve(x+3, y, number+1)
table[x][y] = 0
table[x][y] = number
solve(x-3, y, number+1)
table[x][y] = 0
table[x][y] = number
solve(x, y+3, number+1)
table[x][y] = 0
table[x][y] = number
solve(x, y-3, number+1)
table[x][y] = 0
table[x][y] = number
solve(x+2, y+2, number+1)
table[x][y] = 0
table[x][y] = number
solve(x+2, y-2, number+1)
table[x][y] = 0
table[x][y] = number
solve(x-2, y+2, number+1)
table[x][y] = 0
table[x][y] = number
solve(x-2, y-2, number+1)
table[x][y] = 0
def main():
xInit = 0
yInit = 0
solve(xInit, yInit, 1)
if __name__ == '__main__':
main()