You are on page 1of 3

Deadline 30% >> Code

botName='Zhansaya31401-defbot'
import json
from random import randint
def calculateMove(gameState):
#makes a random drop in any column that is not full
#dropColumn = randint(0, 3)
#dropColumn=isColumnTopRedX(gameState["Board"])
#dropColumn=isColumnMaxRedX(gameState["Board"])
dropColumn=isColumnBottomX(gameState["Board"])
while isColumnFullX(dropColumn,gameState["Board"]):
dropColumn=randint(0, len(gameState["Board"][0])-1)
return {"Column": dropColumn}

def isColumnBottomX(board):
n=7
m=6
dropC = -1

for i in range(n):
for j in range(m):
if (board[j][i] == 1) and (board[j][i+1] == 1):
dropC = i+2
break

if dropC != -1:
break

if dropC == -1:
dropC = 0

return dropC

def isColumnMaxRedX(board):
#Check red disk in Column 0->6, If not then Random
n=7 #number of columns
m=6 #number of rows
dropC = -1
Max = 0 # 0..3-5

for i in range(n):
r = 0
for j in range(m):
#if (board[j][i] == 1) and (board[0][i] == -1):

if (board[0][i] != -1):
break

if (board[j][i] == 1):
r = r + 1 #count number of red disks in column
if Max < r:
Max = r
dropC = i

if dropC == -1:
dropC = 0 #instead of Random: randint(0,6)
return dropC

def isColumnTopRedX(board):
#Check red disk in Column 0->6, If not then Random
n=7
m=6
dropC = -1

for i in range(n):
for j in range(m):
#if (board[j][i] == 1) and (board[0][i] == -1):

if (board[0][i] != -1):
break
if (board[j][i] == 0):
break

if (board[j][i] == 1):
dropC = i
break

if dropC != -1:
break

if dropC == -1:
dropC = 0 #instead of Random: randint(0,6)

return dropC

def isColumnFullX(dropColumn,board):
#Check the top row has an empty space
if len([x[dropColumn] for x in board if x[dropColumn] == -1]) > 0:
return false
return true

You might also like