Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- board_string_1 = 'rkn.r.p.....P..PP.PPB.K..'
- pieces={"r":"rook",
- "k":"king",
- "n":"horse",
- ".":"none",
- "p":"peasant",
- "b":"bishop",
- }
- def make_board(string):
- #først sjekker vi lengden av stringen. den bør være et kvadrattall.
- length = len(string)
- if math.sqrt(length).is_integer()==False: #sjekker om kvadratroten er et heltall
- print(length)
- print(math.sqrt(length))
- return False
- else:
- rows = math.sqrt(length)
- table = []
- idx1 = 0 #kolonne
- idx2 = 0 #rad
- for i in string:
- if int(idx1%rows)==0:
- idx2=idx2+1
- table.append([])
- table[idx2-1].append(i)
- idx1=idx1+1
- return table
- def get_piece(board,x,y):
- piece = board[x-1][y-1]
- team = ""
- if piece.isupper():
- team=-1
- elif (piece==".")==False:
- team=1
- else:
- team=""
- piece=pieces[piece.lower()]
- return [team,piece]
- def get_legal_moves(board,x,y):
- v = get_piece(board,x,y)
- team=v[0]
- piece=v[1]
- print(piece.lower())
- if piece.lower()=="peasant":
- blackstart=2
- whitestart=4
- magnitude=team*1
- possibilities=[]
- kills=[]
- legalmoves=[]
- if (team==-1 and x==whitestart) or (team==1 and x==blackstart):
- magnitude=team*2
- kills.append([x+team,y-1])
- kills.append([x+team,y+1])
- for i in range(team,magnitude+team,team):
- possibilities.append([x+i,y])
- for i in kills:
- if not (i[0]>5 or i[0]<0 or i[1]>5 or i[1]<0):
- if get_piece(board,i[0],i[1])[1]!="none" and get_piece(board,i[0],i[1])[0]!=team:
- legalmoves.append([i[0],i[1]])
- for i in possibilities:
- if get_piece(board,i[0],i[1])[1]=="none":
- legalmoves.append([i[0],i[1]])
- return legalmoves
- else:
- return []
- board = make_board(board_string_1)
- rad=0
- kolonne=0
- for i in board:
- rad=rad+1
- kolonne=0
- for x in i:
- kolonne=kolonne+1
- print(get_piece(board,rad,kolonne)[0],get_piece(board,rad,kolonne)[1],end="|")
- print(" ")
- x = get_legal_moves(board,4,1)
- for i in x:
- for t in i:
- print(t,end=",")
- print(" ")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement