aboutsummaryrefslogtreecommitdiff
path: root/console/main.py
diff options
context:
space:
mode:
authorlonkaars <l.leblansch@gmail.com>2021-02-23 09:07:12 +0100
committerlonkaars <l.leblansch@gmail.com>2021-02-23 09:07:12 +0100
commit7380d1a0a708f869c7926ae323123b3e49feadcd (patch)
treea59f894ccad5105800d69b6c4a90c66c8489d0aa /console/main.py
parent7764b874e4894547f15f14f64a9c23a22e2dcc43 (diff)
moved voerbak to own subfolder with makefile
Diffstat (limited to 'console/main.py')
-rw-r--r--console/main.py90
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()
-