Skip to content

Commit 10bc1f0

Browse files
committed
connect: Follow flake8
1 parent b2bc11e commit 10bc1f0

File tree

2 files changed

+109
-101
lines changed

2 files changed

+109
-101
lines changed

exercises/connect/connect_test.py

Lines changed: 97 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -2,109 +2,112 @@
22
import connect
33

44
testcases = [
5-
{
6-
"description": "an empty board has no winner",
7-
"board":
8-
""" . . . . .
9-
. . . . .
10-
. . . . .
11-
. . . . .
12-
. . . . .""",
13-
"winner": ""
14-
},
15-
{
16-
"description": "O can win on a 1x1 board",
17-
"board": "O",
18-
"winner": "O"
19-
},
20-
{
21-
"description": "X can win on a 1x1 board",
22-
"board": "X",
23-
"winner": "X"
24-
},
25-
{
26-
"description": "only edges does not make a winner",
27-
"board":
28-
""" O O O X
29-
X . . X
30-
X . . X
31-
X O O O""",
32-
"winner": ""
33-
},
34-
{
35-
"description": "illegal diagonal does not make a winner",
36-
"board":
37-
""" X O . .
38-
O X X X
39-
O X O .
40-
. O X .
41-
X X O O""",
42-
"winner": ""
43-
},
44-
{
45-
"description": "nobody wins crossing adjacent angles",
46-
"board":
47-
""" X . . .
48-
. X O .
49-
O . X O
50-
. O . X
51-
. . O .""",
52-
"winner": ""
53-
},
54-
{
55-
"description": "X wins crossing from left to right",
56-
"board":
57-
""" . O . .
58-
O X X X
59-
O X O .
60-
X X O X
61-
. O X .""",
62-
"winner": "X"
63-
},
64-
{
65-
"description": "X wins using a convoluted path",
66-
"board":
67-
""" . X X . .
68-
X . X . X
69-
. X . X .
70-
. X X . .
71-
O O O O O""",
72-
"winner": "X"
73-
},
74-
{
75-
"description": "O wins crossing from top to bottom",
76-
"board":
77-
""" . O . .
78-
O X X X
79-
O O O .
80-
X X O X
81-
. O X .""",
82-
"winner": "O"
83-
},
84-
{
85-
"description": "X wins using a spiral path",
86-
"board":
87-
""" O X X X X X X X X
88-
O X O O O O O O O
89-
O X O X X X X X O
90-
O X O X O O O X O
91-
O X O X X X O X O
92-
O X O O O X O X O
93-
O X X X X X O X O
94-
O O O O O O O X O
95-
X X X X X X X X O """,
96-
"winner": "X"
97-
},
5+
{
6+
"description": "an empty board has no winner",
7+
"board":
8+
""" . . . . .
9+
. . . . .
10+
. . . . .
11+
. . . . .
12+
. . . . .""",
13+
"winner": ""
14+
},
15+
{
16+
"description": "O can win on a 1x1 board",
17+
"board": "O",
18+
"winner": "O"
19+
},
20+
{
21+
"description": "X can win on a 1x1 board",
22+
"board": "X",
23+
"winner": "X"
24+
},
25+
{
26+
"description": "only edges does not make a winner",
27+
"board":
28+
""" O O O X
29+
X . . X
30+
X . . X
31+
X O O O""",
32+
"winner": ""
33+
},
34+
{
35+
"description": "illegal diagonal does not make a winner",
36+
"board":
37+
""" X O . .
38+
O X X X
39+
O X O .
40+
. O X .
41+
X X O O""",
42+
"winner": ""
43+
},
44+
{
45+
"description": "nobody wins crossing adjacent angles",
46+
"board":
47+
""" X . . .
48+
. X O .
49+
O . X O
50+
. O . X
51+
. . O .""",
52+
"winner": ""
53+
},
54+
{
55+
"description": "X wins crossing from left to right",
56+
"board":
57+
""" . O . .
58+
O X X X
59+
O X O .
60+
X X O X
61+
. O X .""",
62+
"winner": "X"
63+
},
64+
{
65+
"description": "X wins using a convoluted path",
66+
"board":
67+
""" . X X . .
68+
X . X . X
69+
. X . X .
70+
. X X . .
71+
O O O O O""",
72+
"winner": "X"
73+
},
74+
{
75+
"description": "O wins crossing from top to bottom",
76+
"board":
77+
""" . O . .
78+
O X X X
79+
O O O .
80+
X X O X
81+
. O X .""",
82+
"winner": "O"
83+
},
84+
{
85+
"description": "X wins using a spiral path",
86+
"board":
87+
""" O X X X X X X X X
88+
O X O O O O O O O
89+
O X O X X X X X O
90+
O X O X O O O X O
91+
O X O X X X O X O
92+
O X O O O X O X O
93+
O X X X X X O X O
94+
O O O O O O O X O
95+
X X X X X X X X O """,
96+
"winner": "X"
97+
},
9898
]
9999

100+
100101
class SieveTest(unittest.TestCase):
101102
def test_game(self):
102103
for t in testcases:
103104
winner = connect.play(t["board"])
104105
expected = t["winner"] if t["winner"] else "None"
105106
got = winner if winner else "None"
106107
self.assertEqual(winner, t["winner"],
107-
"Test failed: %s, expected winner: %s, got: %s" % (t["description"], expected, got))
108+
"Test failed: %s, expected winner: %s, got: %s"
109+
% (t["description"], expected, got))
110+
108111

109112
if __name__ == '__main__':
110113
unittest.main()

exercises/connect/example.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11

22
class ConnectGame:
33

4-
directions = [(0,1), (0,-1), (1,0), (-1,0), (1,-1), (-1,1)]
4+
directions = [(0, 1), (0, -1), (1, 0), (-1, 0), (1, -1), (-1, 1)]
55
white = "O"
66
black = "X"
77
none = ""
88

99
def __init__(self, lines):
1010
self.board = self.make_board(lines)
11-
assert(len(self.board) > 0)
11+
assert len(self.board) > 0
1212

1313
self.width = len(self.board[0])
1414
self.height = len(self.board)
15-
assert(self.width > 0 and self.height > 0)
15+
assert self.width > 0 and self.height > 0
1616

1717
for l in self.board:
18-
assert(len(l) == self.width)
18+
assert len(l) == self.width
1919

2020
def valid(self, x, y):
2121
return x >= 0 and x < self.width and y >= 0 and y < self.height
@@ -40,14 +40,18 @@ def walk_board(self, player, x, y, visited=[]):
4040
return True
4141

4242
for d in self.directions:
43-
if self.walk_board(player, x + d[0], y + d[1], visited + [(x,y)]):
43+
if self.walk_board(player, x + d[0], y + d[1], visited + [(x, y)]):
4444
return True
4545

4646
def check_player_is_winner(self, player):
4747
if player == self.black:
48-
return any([self.walk_board(player, 0, y) for y in range(self.height)])
48+
for y in range(self.height):
49+
if self.walk_board(player, 0, y):
50+
return True
4951
if player == self.white:
50-
return any([self.walk_board(player, x, 0) for x in range(self.width)])
52+
for x in range(self.width):
53+
if self.walk_board(player, x, 0):
54+
return True
5155

5256
def get_winner(self):
5357
if self.check_player_is_winner(self.black):
@@ -56,6 +60,7 @@ def get_winner(self):
5660
return self.white
5761
return self.none
5862

63+
5964
def play(board):
6065
game = ConnectGame(board)
6166
return game.get_winner()

0 commit comments

Comments
 (0)