diff options
author | lonkaars <l.leblansch@gmail.com> | 2021-02-23 09:07:12 +0100 |
---|---|---|
committer | lonkaars <l.leblansch@gmail.com> | 2021-02-23 09:07:12 +0100 |
commit | 7380d1a0a708f869c7926ae323123b3e49feadcd (patch) | |
tree | a59f894ccad5105800d69b6c4a90c66c8489d0aa /console/main.py | |
parent | 7764b874e4894547f15f14f64a9c23a22e2dcc43 (diff) |
moved voerbak to own subfolder with makefile
Diffstat (limited to 'console/main.py')
-rw-r--r-- | console/main.py | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/console/main.py b/console/main.py deleted file mode 100644 index 433f130..0000000 --- a/console/main.py +++ /dev/null @@ -1,90 +0,0 @@ -from colorama import Fore -import os - -DISC_SHAPE = "o" -DISC_A = Fore.RED + DISC_SHAPE + Fore.RESET -DISC_B = Fore.BLUE + DISC_SHAPE + Fore.RESET -EMPTY = Fore.LIGHTBLACK_EX + "_" + Fore.RESET - -class bord: - def __init__(self, w, h): - self.width = w - self.height = h - self.board = [[EMPTY for x in range(self.width)] for u in range(self.height)] - - def print(self): - print("\n".join([" ".join(self.board[y]) for y in range(len(self.board) -1, -1, -1)])) - - def outside_board(self, coords): - return coords[0] < 0 or \ - coords[1] < 0 or \ - coords[0] > self.height - 1 or \ - coords[1] > self.width - 1 - - def recursive_solve(self, coords, check_for, direction, current_length): - new_position = ( - coords[0] + direction[0], - coords[1] + direction[1] - ) - if self.outside_board(new_position) or self.board[new_position[0]][new_position[1]] != check_for: - return current_length - else: - return self.recursive_solve(new_position, check_for, direction, current_length + 1) - - def check_win(self, coords): - directions = [ - ( 1, 0), - ( 1, 1), - ( 0, 1), - (-1, 1), - (-1, 0), - (-1, -1), - ( 0, -1), - ( 1, -1) - ] - values = list() - for direction in directions: - values.append(self.recursive_solve(coords, self.board[coords[0]][coords[1]], direction, 0)) - joined_directions = [ - values[0] + values[4], - values[1] + values[5], - values[2] + values[6], - values[3] + values[7] - ] - won = any(i >= 3 for i in joined_directions) - if won: - for i, value in enumerate(joined_directions): - if value >= 3: - start_pos = ( - coords[0] + directions[i][0] * values[i], - coords[1] + directions[i][1] * values[i], - ) - end_pos = ( - coords[0] + directions[i+4][0] * values[i+4], - coords[1] + directions[i+4][1] * values[i+4], - ) - print(start_pos, end_pos) - - return won - - def drop_fisje(self, column, disc): - for row, value in enumerate(self.board): - if self.board[row][column] == EMPTY: - self.board[row][column] = disc - won = self.check_win((row, column)) - print(won) - return - -def main(): - disc_a = True - gert = bord(11, 8) - while True: - gert.print() - column = int(input("column?: ")) - 1 - os.system("clear") - gert.drop_fisje(column, DISC_A if disc_a else DISC_B) - disc_a = not disc_a - -if __name__ == "__main__": - main() - |