/P. Gopinat Enloe
/Intermediate #4
/Python
def checkcapture(board,pos):
capting = 0
if
board[pos[0]][pos[1]] == "B":
#row to the
right
dircapt = 0
col = 1
capt = False
while
pos[1]+col<8 and capt == False:
try:
if
board[pos[0]][pos[1]+col] == "X":
capt = True
elif
board[pos[0]][pos[1]+col] == "B":
col = 8
elif
board[pos[0]][pos[1]+col] == "O":
dircapt+= 1
col
+= 1
except:
col =
8
if capt ==
True:
capting
+= dircapt
#row to the
left
dircapt = 0
col = 1
capt = False
while
pos[1]-col>=0 and capt == False:
try:
if
board[pos[0]][pos[1]-col] == "X":
capt = True
elif
board[pos[0]][pos[1]-col] == "B":
col = 81
elif
board[pos[0]][pos[1]-col] == "O":
dircapt+= 1
col
+= 1
except:
col =
81
if capt ==
True:
capting
+= dircapt
#col upwards
dircapt = 0
row = 1
capt = False
while
pos[0]-row>=0 and capt == False:
try:
if
board[pos[0]-row][pos[1]] == "X":
capt = True
elif
board[pos[0]-row][pos[1]] == "B":
row = 81
elif
board[pos[0]-row][pos[1]] == "O":
dircapt+= 1
row
+= 1
except:
row =
81
if capt ==
True:
capting
+= dircapt
#col
downwards
dircapt = 0
row = 1
capt = False
while
pos[0]+row<8 and capt == False:
try:
if
board[pos[0]+row][pos[1]] == "X":
capt = True
elif
board[pos[0]+row][pos[1]] == "B":
row = 81
elif
board[pos[0]+row][pos[1]] == "O":
dircapt+= 1
row
+= 1
except:
row =
81
if capt ==
True:
capting
+= dircapt
#diag down
left
dircapt = 0
row = 1
col = 1
capt = False
while
pos[0]+row<8 and pos[1]-col>= 0 and capt == False:
try:
if
board[pos[0]+row][pos[1]-col] == "X":
capt = True
elif
board[pos[0]+row][pos[1]-col] == "B":
row = 81
elif
board[pos[0]+row][pos[1]-col] == "O":
dircapt+= 1
row
+= 1
col
+= 1
except:
row =
81
if capt ==
True:
capting
+= dircapt
#diag down
right
dircapt = 0
row = 1
col = 1
capt = False
while
pos[0]+row<8 and pos[1]+col< 8 and capt == False:
try:
if
board[pos[0]+row][pos[1]+col] == "X":
capt = True
elif
board[pos[0]+row][pos[1]+col] == "B":
row = 81
elif
board[pos[0]+row][pos[1]+col] == "O":
dircapt+= 1
row
+= 1
col
+= 1
except:
row =
81
if capt ==
True:
capting
+= dircapt
#diag up left
dircapt = 0
row = 1
col = 1
capt = False
while
pos[0]-row>=0 and pos[1]-col>= 0 and capt == False:
try:
if
board[pos[0]-row][pos[1]-col] == "X":
capt = True
elif
board[pos[0]-row][pos[1]-col] == "B":
row = 81
elif
board[pos[0]-row][pos[1]-col] == "O":
dircapt+= 1
row
+= 1
col
+= 1
except:
row =
81
if capt ==
True:
capting +=
dircapt
#diag up
right
dircapt = 0
row = 1
col = 1
capt = False
while
pos[0]-row>=0 and pos[1]+col<8 and capt == False:
try:
if
board[pos[0]-row][pos[1]+col] == "X":
capt = True
elif
board[pos[0]-row][pos[1]+col] == "B":
row = 81
elif
board[pos[0]-row][pos[1]+col] == "O":
dircapt+= 1
row
+= 1
col
+= 1
except:
row =
81
if capt ==
True:
capting
+= dircapt
## chkr =
pos[0]
## chkc =
pos[1]
## ptstr =
"None"
## if chkr ==
0:
## ptstr =
"8"+str(chr(chkc+65))
## if chkr ==
1:
## ptstr =
"7"+str(chr(chkc+65))
## if chkr ==
2:
## ptstr =
"6"+str(chr(chkc+65))
## if chkr ==
3:
## ptstr =
"5"+str(chr(chkc+65))
## if chkr ==
4:
## ptstr =
"4"+str(chr(chkc+65))
## if chkr ==
5:
## ptstr =
"3"+str(chr(chkc+65))
## if chkr ==
6:
## ptstr =
"2"+str(chr(chkc+65))
## if chkr ==
7:
## ptstr =
"1"+str(chr(chkc+65))
## if ptstr ==
"None":
## print
str(pos[0]) + " " +
str(pos[1])
## else:
## print
ptstr
## print
capting
return capting
for i in range(5):
board = []
for i in
range(8):
board.append(["B","B","B","B","B","B","B","B"])
xs = int(raw_input("Num X: "))
for i in
range(xs):
pt =
raw_input("Pt: ")
row =
int(pt[0])
if row == 1:
row = 8
elif row ==
2:
row = 7
elif row ==
3:
row = 6
elif row ==
4:
row = 5
elif row ==
5:
row = 4
elif row ==
6:
row = 3
elif row ==
7:
row = 2
elif row ==
8:
row = 1
board[row-1][ord(pt[1])-65]="X"
ohs =
int(raw_input("Num O: "))
ohguys = []
for i in
range(ohs):
pt =
raw_input("Pt: ")
row =
int(pt[0])
if row == 1:
row = 8
elif row ==
2:
row = 7
elif row ==
3:
row = 6
elif row ==
4:
row = 5
elif row ==
5:
row = 4
elif row ==
6:
row = 3
elif row ==
7:
row = 2
elif row ==
8:
row = 1
board[row-1][ord(pt[1])-65]="O"
ohguys.append([row-1,ord(pt[1])-65])
## for i in
range(8):
## lin =
""
## for j in
range(8):
## lin +=
board[i][j]
## print lin
maxpts = []
maxcap = 0
for post in
ohguys:
#top side
if post[0]-1
>= 0:
chkr =
post[0]-1
chkc =
post[1]
ptc =
[chkr,chkc]
numcapt =
checkcapture(board,ptc)
if chkr
== 0:
ptstr
= "8"+str(chr(chkc+65))
if chkr
== 1:
ptstr
= "7"+str(chr(chkc+65))
if chkr
== 2:
ptstr
= "6"+str(chr(chkc+65))
if chkr
== 3:
ptstr
= "5"+str(chr(chkc+65))
if chkr
== 4:
ptstr
= "4"+str(chr(chkc+65))
if chkr
== 5:
ptstr
= "3"+str(chr(chkc+65))
if chkr
== 6:
ptstr
= "2"+str(chr(chkc+65))
if chkr
== 7:
ptstr
= "1"+str(chr(chkc+65))
if
numcapt > maxcap:
maxcap = numcapt
maxpts = []
maxpts.append(ptstr)
elif
numcapt == maxcap and maxpts.count(ptstr)==0:
maxpts.append(ptstr)
if
post[1]-1>= 0:
chkr
= post[0]-1
chkc
= post[1]-1
ptc =
[chkr,chkc]
numcapt = checkcapture(board,ptc)
if
chkr == 0:
ptstr = "8"+str(chr(chkc+65))
if
chkr == 1:
ptstr = "7"+str(chr(chkc+65))
if
chkr == 2:
ptstr = "6"+str(chr(chkc+65))
if
chkr == 3:
ptstr = "5"+str(chr(chkc+65))
if
chkr == 4:
ptstr =
"4"+str(chr(chkc+65))
if
chkr == 5:
ptstr = "3"+str(chr(chkc+65))
if
chkr == 6:
ptstr = "2"+str(chr(chkc+65))
if
chkr == 7:
ptstr = "1"+str(chr(chkc+65))
if
numcapt > maxcap:
maxcap = numcapt
maxpts = []
maxpts.append(ptstr)
elif
numcapt == maxcap and maxpts.count(ptstr)==0:
maxpts.append(ptstr)
if
post[1]+1<8:
chkr
= post[0]-1
chkc
= post[1]+1
ptc =
[chkr,chkc]
numcapt = checkcapture(board,ptc)
if
chkr == 0:
ptstr =
"8"+str(chr(chkc+65))
if
chkr == 1:
ptstr = "7"+str(chr(chkc+65))
if
chkr == 2:
ptstr = "6"+str(chr(chkc+65))
if
chkr == 3:
ptstr = "5"+str(chr(chkc+65))
if
chkr == 4:
ptstr = "4"+str(chr(chkc+65))
if
chkr == 5:
ptstr = "3"+str(chr(chkc+65))
if
chkr == 6:
ptstr = "2"+str(chr(chkc+65))
if
chkr == 7:
ptstr = "1"+str(chr(chkc+65))
if
numcapt > maxcap:
maxcap = numcapt
maxpts = []
maxpts.append(ptstr)
elif numcapt == maxcap and
maxpts.count(ptstr)==0:
maxpts.append(ptstr)
#bottom side
if post[0]+1
< 8:
chkr =
post[0]+1
chkc =
post[1]
ptc =
[chkr,chkc]
numcapt =
checkcapture(board,ptc)
if chkr
== 0:
ptstr
= "8"+str(chr(chkc+65))
if chkr
== 1:
ptstr
= "7"+str(chr(chkc+65))
if chkr
== 2:
ptstr
= "6"+str(chr(chkc+65))
if chkr
== 3:
ptstr
= "5"+str(chr(chkc+65))
if chkr
== 4:
ptstr
= "4"+str(chr(chkc+65))
if chkr
== 5:
ptstr
= "3"+str(chr(chkc+65))
if chkr
== 6:
ptstr =
"2"+str(chr(chkc+65))
if chkr
== 7:
ptstr
= "1"+str(chr(chkc+65))
if
numcapt > maxcap:
maxcap = numcapt
maxpts = []
maxpts.append(ptstr)
elif
numcapt == maxcap and maxpts.count(ptstr)==0:
maxpts.append(ptstr)
if
post[1]-1>= 0:
chkr
= post[0]+1
chkc
= post[1]-1
ptc =
[chkr,chkc]
numcapt = checkcapture(board,ptc)
if
chkr == 0:
ptstr = "8"+str(chr(chkc+65))
if
chkr == 1:
ptstr = "7"+str(chr(chkc+65))
if
chkr == 2:
ptstr = "6"+str(chr(chkc+65))
if
chkr == 3:
ptstr = "5"+str(chr(chkc+65))
if
chkr == 4:
ptstr = "4"+str(chr(chkc+65))
if
chkr == 5:
ptstr = "3"+str(chr(chkc+65))
if
chkr == 6:
ptstr = "2"+str(chr(chkc+65))
if
chkr == 7:
ptstr = "1"+str(chr(chkc+65))
if
numcapt > maxcap:
maxcap = numcapt
maxpts = []
maxpts.append(ptstr)
elif
numcapt == maxcap and maxpts.count(ptstr)==0:
maxpts.append(ptstr)
if
post[1]+1<8:
chkr
= post[0]+1
chkc = post[1]+1
ptc =
[chkr,chkc]
numcapt = checkcapture(board,ptc)
if
chkr == 0:
ptstr = "8"+str(chr(chkc+65))
if
chkr == 1:
ptstr = "7"+str(chr(chkc+65))
if
chkr == 2:
ptstr = "6"+str(chr(chkc+65))
if
chkr == 3:
ptstr = "5"+str(chr(chkc+65))
if
chkr == 4:
ptstr = "4"+str(chr(chkc+65))
if
chkr == 5:
ptstr = "3"+str(chr(chkc+65))
if
chkr == 6:
ptstr = "2"+str(chr(chkc+65))
if
chkr == 7:
ptstr = "1"+str(chr(chkc+65))
if
numcapt > maxcap:
maxcap = numcapt
maxpts = []
maxpts.append(ptstr)
elif
numcapt == maxcap and maxpts.count(ptstr)==0:
maxpts.append(ptstr)
#right side,
mid row
if
post[1]+1<8:
chkr =
post[0]
chkc =
post[1]+1
ptc =
[chkr,chkc]
numcapt =
checkcapture(board,ptc)
if chkr
== 0:
ptstr
= "8"+str(chr(chkc+65))
if chkr
== 1:
ptstr
= "7"+str(chr(chkc+65))
if chkr
== 2:
ptstr
= "6"+str(chr(chkc+65))
if chkr
== 3:
ptstr
= "5"+str(chr(chkc+65))
if chkr
== 4:
ptstr
= "4"+str(chr(chkc+65))
if chkr
== 5:
ptstr
= "3"+str(chr(chkc+65))
if chkr
== 6:
ptstr
= "2"+str(chr(chkc+65))
if chkr
== 7:
ptstr =
"1"+str(chr(chkc+65))
if
numcapt > maxcap:
maxcap = numcapt
maxpts = []
maxpts.append(ptstr)
elif
numcapt == maxcap and maxpts.count(ptstr)==0:
maxpts.append(ptstr)
#left side,
mid row
if
post[1]-1>=0:
chkr =
post[0]
chkc =
post[1]-1
ptc =
[chkr,chkc]
numcapt =
checkcapture(board,ptc)
if chkr
== 0:
ptstr
= "8"+str(chr(chkc+65))
if chkr
== 1:
ptstr
= "7"+str(chr(chkc+65))
if chkr
== 2:
ptstr
= "6"+str(chr(chkc+65))
if chkr
== 3:
ptstr
= "5"+str(chr(chkc+65))
if chkr
== 4:
ptstr
= "4"+str(chr(chkc+65))
if chkr
== 5:
ptstr
= "3"+str(chr(chkc+65))
if chkr
== 6:
ptstr
= "2"+str(chr(chkc+65))
if chkr
== 7:
ptstr =
"1"+str(chr(chkc+65))
if
numcapt > maxcap:
maxcap = numcapt
maxpts = []
maxpts.append(ptstr)
elif
numcapt == maxcap and maxpts.count(ptstr)==0:
maxpts.append(ptstr)
if maxcap == 0:
print
"NONE"
else:
out =
""
for pts in
maxpts:
out +=
str(pts) + ","
out =
out[0:(len(out)-1)]
print out