Sei sulla pagina 1di 3

import numpy as np

def printBoard(board):
for row in board:
string = ""
for piece in row:
if piece[0] == 255:
string+="B "
elif piece[0] == 1:
string+="W "
else:
string+="+ "
print(string)

def addPiece(board,color,row,column):

for r in board:
for piece in r:
piece[1] = 0

board[row][column][0] = color
if(checkTaken(board,row,column) == True):
board[row][column][0] = 0
return [board, False]
return [board,True]

def checkTaken(board, row, column):

board[row][column][1] = 1

color = board[row][column][0]
if(color == 255):
altColor = 1
else:
altColor = 255

if(row != 0):
if(board[row-1][column][0] == 0):
return False
if(column != 0):
if (board[row][column - 1][0] == 0):
return False
if (row < len(board)-1):
if (board[row + 1][column][0] == 0):
return False
if (column < len(board[1])-1):
if (board[row][column + 1][0] == 0):
return False
bool1 = False
bool2 = False
bool3 = False
bool4 = False

if(row == 0 or board[row-1][column][0] == altColor or board[row-1][column][1]


== 1):
bool1 = True
else:
bool1 = checkTaken(board,row-1,column)

if (row == len(board) -1 or board[row + 1][column][0] == altColor or board[row


+ 1][column][1] == 1):
bool2 = True
else:
bool2 = checkTaken(board, row + 1, column)

if (column == 0 or board[row][column - 1][0] == altColor or board[row][column -


1][1] == 1):
bool3 = True
else:
bool3 = checkTaken(board, row, column - 1)

if row == len(board[0]) - 1 or board[row][column + 1][0] == altColor or


board[row][column + 1][1] == 1:
bool4 = True
else:
bool4 = checkTaken(board, row, column + 1)

return(bool1 and bool2 and bool3 and bool4)

def takeTurn(board, color):


gameCont = True
string = "white"
altColor = 255
if(color == -1):
string = "black"
altColor = 1

row = int(input("\n What row would " + string + " like to play in? "))
column = int(input("What column would " + string + " like to play in? "))
bool1 = False
if (board[row-1][column-1][0] != 0):
bool1 = True
bool2 = addPiece(board, color, row - 1, column-1)[1]
if((bool2 == False ) or bool1):
print("Sorry, that is an illegal move, please select a new one.")
takeTurn(board,color)

if(row-1!=0 and board[row-2][column-1][0] == altColor):


gameCont = not(checkTaken(board,row-2,column-1))
if (row<len(board) and board[row][column - 1][0] == altColor):
gameCont = not(checkTaken(board,row,column-1))

if (column - 1 != 0 and board[row - 1][column - 2][0] == altColor):


gameCont = not (checkTaken(board, row - 1, column - 2))
if (column<len(board) and board[row-1][column][0] == altColor):
gameCont = not (checkTaken(board, row - 1, column))

return [board,gameCont]
size = int(input("What size would you like the board to be?"))

board = np.ones((size,size,2), np.uint8)

for row in board:


for piece in row:
piece[0] = 0
piece[1] = 0
i = 1

gameCont = True
while gameCont:
printBoard(board)
[board,gameCont] = takeTurn(board,i)
i*=-1

print()
printBoard(board)
if(i == -1):
print("\nWhite won!")
else:
print("\nBlack won!")

Potrebbero piacerti anche