Skip to content

Instantly share code, notes, and snippets.

@vgmoose
Last active December 17, 2015 11:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vgmoose/5606428 to your computer and use it in GitHub Desktop.
Save vgmoose/5606428 to your computer and use it in GitHub Desktop.
import sys
count = 0
board = [x[:] for x in [[0]*8]*8]
def drawBoard():
for i in range(0, len(board)):
if(i>0):
sys.stdout.write(" | "+str(i-1))
print("")
for k in range(0, len(board[0])):
if(board[i][k] == 0):
'''if(board[i][k] != 1): #TODO only when graphics are ready
if(k%2 ==0): #vertical column is even #TODO see below change code accordingly
if((i+1)%2 == 0): #horizontal row even
board[i][k] = 3 #red
}
else
board[i][k] = 4 #black
}
if((k+1)%2 ==0) #vertical column is odd
if((k+1)%2 == 0):
if((i+1)%2 == 0): #horizontal row even
board[i][k] = 4 #black
}
else
board[i][k] = 3 #red
}
}'''
sys.stdout.write(". ")
if(board[i][k] == 1 ):
sys.stdout.write("o ")
if(board[i][k] == 2 ):
sys.stdout.write("a ")
''' if(board[i][k] ==3)
sys.stdout.write("r ")
if(board[i][k] ==4) #TODO Change to values that don't
sys.stdout.write("b ")''' #Interfere with kings (possibly negatives)
if(board[i][k] == 3):
sys.stdout.write("8 ")
if(board[i][k] == 4):
sys.stdout.write("@ ")
print(" | 7")
print("0 1 2 3 4 5 6 7 ")
def gameOver():
redCounter= 0
redKingCounter = 0
blackCounter = 0
blackKingCounter = 0
for i in range(0, len(board)):
for k in range(0, len(board[0])):
if(board[i][k] == 1):
redCounter += 1
if(board[i][k] == 3):
redKingCounter += 1
if(board[i][k] == 2):
blackCounter += 1
if(board[i][k] == 4):
blackKingCounter += 1
if( ((redCounter == 0) and (redKingCounter == 0)) or
((blackCounter == 0) and (blackKingCounter == 0))):
finished = True
else:
finished = False
return finished
def initializeBoard():
for i in range(0, len(board)):
for k in range(0, len(board[0])):
if(i != 3 and i != 4): #middle of board shouldn't have pieces
if(i<3):
if(i%2 == 0 and k%2 ==0): #every even red piece
board[i][k] = 1
if((i+1)%2 == 0 and (k+1)%2 ==0): #every odd red piece
board[i][k] = 1
if(i>4):
if(i%2 == 0 and k%2 ==0): #every even black piece
board[i][k] = 2
if((i+1)%2 == 0 and (k+1)%2 ==0): #every odd black piece
board[i][k] = 2
drawBoard()
def move(startY, startX, direction):
if((board[startY][startX] == 2) or (board[startY][startX] == 3) or
(board[startY][startX] == 4)): #includes kings
if(direction == ("up right") and board[startY-1][startX+1] == 0):
board[startY-1][startX+1]= board[startY][startX]
board[startY][startX] = 0
if(direction == ("up left") and board[startY-1][startX-1] == 0):
board[startY-1][startX-1]= board[startY][startX]
board[startY][startX] = 0
for k in range(0, len(board)):
if(board[0][k] == 2):
board[0][k] = 4 #make into Black King
if((board[startY][startX] == 1 ) or (board[startY][startX] == 3) or
(board[startY][startX] == 4)):
if(direction == ("down right") and board[startY+1][startX+1] == 0):
board[startY+1][startX+1]= board[startY][startX]
board[startY][startX] = 0
if(direction == ("down left") and board[startY+1][startX-1] == 0):
board[startY+1][startX-1]= board[startY][startX]
board[startY][startX] = 0
for k in range(0, len(board)):
if(board[7][k] == 1):
board[7][k] = 3 #make into Red King
drawBoard()
def jump(startY, startX, direction):
if(board[startY][startX] == 4):
if(direction == ("up right") and board[startY-2][startX+2] == 0
and ((board[startY-1][startX+1] == 1) or (board[startY-1][startX+1] == 3))):
board[startY-2][startX+2]=4
board[startY-1][startX+1]=0
board[startY][startX] = 0
if(direction == ("up left") and board[startY-2][startX-2] == 0
and ((board[startY-1][startX-1] == 1) or(board[startY-1][startX-1] == 3))):
board[startY-2][startX-2]=4
board[startY-1][startX-1]=0
board[startY][startX] = 0
if(direction == ("down right") and board[startY+2][startX+2] == 0
and ((board[startY+1][startX+1] == 1) or (board[startY+1][startX+1] == 3))):
board[startY+2][startX+2]=4
board[startY+1][startX+1]=0
board[startY][startX] = 0
if(direction == ("down left") and board[startY+2][startX-2] == 0
and ((board[startY+1][startX-1] == 1) or(board[startY+1][startX-1] == 3))):
board[startY+2][startX-2]=4
board[startY+1][startX-1]=0
board[startY][startX] = 0
if(board[startY][startX] == 3):
if(direction == ("up right") and board[startY-2][startX+2] == 0
and ((board[startY-1][startX+1] == 2) or (board[startY-1][startX+1] == 4))):
board[startY-2][startX+2]=3
board[startY-1][startX+1]=0
board[startY][startX] = 0
if(direction == ("up left") and board[startY-2][startX-2] == 0
and ((board[startY-1][startX-1] == 2) or(board[startY-1][startX-1] == 4))):
board[startY-2][startX-2]=3
board[startY-1][startX-1]=0
board[startY][startX] = 0
if(direction == ("down right") and board[startY+2][startX+2] == 0
and ((board[startY+1][startX+1] == 2) or (board[startY+1][startX+1] == 4))):
board[startY+2][startX+2]=3
board[startY+1][startX+1]=0
board[startY][startX] = 0
if(direction == ("down left") and board[startY+2][startX-2] == 0
and ((board[startY+1][startX-1] == 2) or(board[startY+1][startX-1] == 4))):
board[startY+2][startX-2]=3
board[startY+1][startX-1]=0
board[startY][startX] = 0
if(board[startY][startX] == 2):
if(direction == ("up right") and board[startY-2][startX+2] == 0
and ((board[startY-1][startX+1] == 1) or (board[startY-1][startX+1] == 3))):
board[startY-2][startX+2]=2
board[startY-1][startX+1]=0
board[startY][startX] = 0
if(direction == ("up left") and board[startY-2][startX-2] == 0
and ((board[startY-1][startX-1] == 1) or(board[startY-1][startX-1] == 3))):
board[startY-2][startX-2]=2
board[startY-1][startX-1]=0
board[startY][startX] = 0
for k in range(0, len(board)):
if(board[0][k] == 2):
board[0][k] = 4 #make into Black King
if(board[startY][startX] == 1):
if(direction == ("down right") and board[startY+2][startX+2] == 0
and ((board[startY+1][startX+1] == 2) or (board[startY+1][startX+1] == 4))):
board[startY+2][startX+2]=1
board[startY+1][startX+1]=0
board[startY][startX] = 0
if(direction == ("down left") and board[startY+2][startX-2] == 0
and ((board[startY+1][startX-1] == 2) or(board[startY+1][startX-1] == 4))):
board[startY+2][startX-2]=1
board[startY+1][startX-1]=0
board[startY][startX] = 0
drawBoard()
initializeBoard()
while (gameOver() == False):
global count
if(count%2==1):
print("Red would you like to move or jump?")
redDecide = raw_input()
print("Where are you starting?")
startY = int(raw_input())
startX = int(raw_input())
print("What direction are you going?")
redDirection = raw_input()
if((board[startY][startX] == 1) or (board[startY][startX] == 3)):
if (redDecide == "jump"):
jump(startY, startX, redDirection)
if (redDecide == "move"):
move(startY, startX, redDirection)
count += 1
else:
print("Black would you like to move or jump?")
blackDecide = raw_input()
print("Where are you starting?")
startY = int(raw_input())
startX = int(raw_input())
print("What direction are you going?")
blackDirection = raw_input()
if((board[startY][startX] == 2) or (board[startY][startX] == 4)):
if (blackDecide == "jump"):
jump(startY, startX, blackDirection)
if (blackDecide == "move"):
move(startY, startX, blackDirection)
count += 1
drawBoard()
drawBoard()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment