Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- board_size = 6
- game_board = []
- carryOn = True
- # create board for given board size
- for x in range(board_size):
- game_board.append(['-'] * board_size)
- #sub_game_board = game_board # Creating substitute board, for mainly debugging
- # setting board state
- game_board[2][2] = 'O'
- game_board[2][3] = 'O'
- game_board[2][1] = 'O'
- def print_board(board): # prints board
- for crow in board:
- print(" ".join(crow))
- def check_tile(tile_row, tile_col, neighbors): # Checks the tiles surrounding the given tile
- if tile_row > 0 and game_board[tile_row - 1][tile_col] == 'O':
- neighbors += 1
- if tile_row > 0 and tile_col > 0 and game_board[tile_row - 1][tile_col - 1] == 'O':
- neighbors += 1
- if tile_row > 0 and tile_col < board_size - 1 and game_board[tile_row - 1][tile_col + 1] == 'O':
- neighbors += 1
- if tile_col > 0 and game_board[tile_row][tile_col - 1] == 'O':
- neighbors += 1
- if tile_col < board_size-1 and game_board[tile_row][tile_col + 1] == 'O':
- neighbors += 1
- if tile_row < board_size - 1 and game_board[tile_row + 1][tile_col] == 'O':
- neighbors += 1
- if tile_row < board_size - 1 and tile_col > 0 and game_board[tile_row + 1][tile_col - 1] == 'O':
- neighbors += 1
- if tile_row < board_size - 1 and tile_col < board_size - 1 and game_board[tile_row + 1][tile_col + 1] == 'O':
- neighbors += 1
- return neighbors
- def update_tile(tile_row, tile_col): # updates the list of tiles to be flipped
- neighbors = check_tile(tile_row, tile_col, 0)
- if game_board[tile_row][tile_col] == 'O':
- if neighbors < 2 or neighbors > 3:
- #game_board[tile_row][tile_col] = '-'
- to_be_update.append([tile_row, tile_col])
- else:
- if neighbors == 3:
- to_be_update.append([tile_row, tile_col])
- def flip_tile(flip_tile): # Flips the tiles listed as needing to be flipped
- for x in flip_tile:
- if game_board[x[0]][x[1]] == '-':
- game_board[x[0]][x[1]] = 'O'
- else:
- game_board[x[0]][x[1]] = '-'
- print_board(game_board)
- while carryOn: # main game loop
- #game_board = sub_game_board # Setting main board equal to substitute board
- to_be_update = []
- tile_row = 0
- for row in game_board:
- tile_col = 0
- for col in row:
- update_tile(tile_row, tile_col)
- tile_col += 1
- tile_row += 1
- print("") # Spacing
- print("") # Spacing
- flip_tile(to_be_update)
- print_board(game_board)
- time.sleep(1) # Delay for debugging purposes
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement