MCPcopy Create free account
hub / github.com/asweigart/PythonStdioGames / isWinner

Function isWinner

src/gamesbyexample/gomoku.py:135–181  ·  view source on GitHub ↗

Returns True if player has four tiles in a row on board, otherwise returns False.

(player, board)

Source from the content-addressed store, hash-verified

133
134
135def isWinner(player, board):
136 """Returns True if player has four tiles in a row on board,
137 otherwise returns False."""
138
139 # Go through the entire board, checking for five-in-a-row:
140 for columnIndex in range(BOARD_WIDTH - 4):
141 for rowIndex in range(BOARD_HEIGHT):
142 # Check for five-in-a-row going across to the right:
143 tile1 = board[(columnIndex, rowIndex)]
144 tile2 = board[(columnIndex + 1, rowIndex)]
145 tile3 = board[(columnIndex + 2, rowIndex)]
146 tile4 = board[(columnIndex + 3, rowIndex)]
147 tile5 = board[(columnIndex + 4, rowIndex)]
148 if tile1 == tile2 == tile3 == tile4 == tile5 == player:
149 return True
150
151 for columnIndex in range(BOARD_WIDTH):
152 for rowIndex in range(BOARD_HEIGHT - 4):
153 # Check for five-in-a-row going down:
154 tile1 = board[(columnIndex, rowIndex)]
155 tile2 = board[(columnIndex, rowIndex + 1)]
156 tile3 = board[(columnIndex, rowIndex + 2)]
157 tile4 = board[(columnIndex, rowIndex + 3)]
158 tile5 = board[(columnIndex, rowIndex + 4)]
159 if tile1 == tile2 == tile3 == tile4 == tile5 == player:
160 return True
161
162 for columnIndex in range(BOARD_WIDTH - 4):
163 for rowIndex in range(BOARD_HEIGHT - 4):
164 # Check for five-in-a-row going right-down diagonal:
165 tile1 = board[(columnIndex, rowIndex)]
166 tile2 = board[(columnIndex + 1, rowIndex + 1)]
167 tile3 = board[(columnIndex + 2, rowIndex + 2)]
168 tile4 = board[(columnIndex + 3, rowIndex + 3)]
169 tile5 = board[(columnIndex + 4, rowIndex + 4)]
170 if tile1 == tile2 == tile3 == tile4 == tile5 == player:
171 return True
172
173 # Check for five-in-a-row going left-down diagonal:
174 tile1 = board[(columnIndex + 4, rowIndex)]
175 tile2 = board[(columnIndex + 3, rowIndex + 1)]
176 tile3 = board[(columnIndex + 2, rowIndex + 2)]
177 tile4 = board[(columnIndex + 1, rowIndex + 3)]
178 tile5 = board[(columnIndex, rowIndex + 4)]
179 if tile1 == tile2 == tile3 == tile4 == tile5 == player:
180 return True
181 return False
182
183
184def isBoardFull(board):

Callers 1

mainFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected