import os import sys from colours import Colours def clear(): if sys.platform.startswith('win'): os.system('cls') else: os.system('clear') def printBoard(board): rows = [] for i in range(6): row = "" for column in board: row += "| " + column[i] + " " row += "|" rows.append(row) rows = rows[::-1] toPrint = "" for row in rows: toPrint += (row + "\n") print(f""" ============================= {toPrint[:-1]} =============================""") def getIntInput(prompt): success = False inp = "" while not success: inp = input(prompt) try: inp = int(inp) break except: clear() printBoard(board) print("Only integers allowed") return inp def checkWin(board): return False # Board will be 7x6. # O = open, R = red, Y = yellow # because this is defined like this, you could technically save a game then load from where you left off # This is defined as columns, not rows. So tile 0 on column 0 is the bottom left tile of the board board = [ ['O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O'], ] playing = True turn = f'{Colours.RED}{Colours.BOLD}O{Colours.END}' while playing: clear() printBoard(board) tile = "" while tile == "": try: chosenColumn = getIntInput(f"{turn} where do you want to drop your tile? 0-6.\n>>> ") tile = board[chosenColumn].index("O") break except ValueError: clear() printBoard(board) print("You chose a column that is full. Try again") tile = "" except IndexError: clear() printBoard(board) print("You chose a column outside of the board. Try again") tile = "" board[chosenColumn][tile] = turn turn = f'{Colours.YELLOW}{Colours.BOLD}O{Colours.END}' if turn == f'{Colours.RED}{Colours.BOLD}O{Colours.END}' else f'{Colours.RED}{Colours.BOLD}O{Colours.END}'