Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.41 KB | None | 0 0
  1. import math
  2. board_string_1 = 'rkn.r.p.....P..PP.PPB.K..'
  3.  
  4. pieces={"r":"rook",
  5.         "k":"king",
  6.         "n":"horse",
  7.         ".":"none",
  8.         "p":"peasant",
  9.         "b":"bishop",
  10.         }
  11.  
  12. def make_board(string):
  13.     #først sjekker vi lengden av stringen. den bør være et kvadrattall.
  14.     length = len(string)
  15.     if math.sqrt(length).is_integer()==False: #sjekker om kvadratroten er et heltall
  16.             print(length)
  17.             print(math.sqrt(length))
  18.             return False
  19.     else:
  20.         rows = math.sqrt(length)
  21.         table = []
  22.         idx1 = 0 #kolonne
  23.         idx2 = 0 #rad
  24.         for i in string:
  25.             if int(idx1%rows)==0:
  26.                 idx2=idx2+1
  27.                 table.append([])
  28.             table[idx2-1].append(i)
  29.             idx1=idx1+1
  30.         return table
  31.  
  32. def get_piece(board,x,y):
  33.     piece = board[x-1][y-1]
  34.     team  = ""
  35.     if piece.isupper():
  36.         team=-1
  37.     elif (piece==".")==False:
  38.         team=1
  39.     else:
  40.         team=""
  41.  
  42.     piece=pieces[piece.lower()]
  43.     return [team,piece]
  44.  
  45. def get_legal_moves(board,x,y):
  46.     v = get_piece(board,x,y)
  47.     team=v[0]
  48.     piece=v[1]
  49.     print(piece.lower())
  50.     if piece.lower()=="peasant":
  51.         blackstart=2
  52.         whitestart=4
  53.         magnitude=team*1
  54.         possibilities=[]
  55.         kills=[]
  56.         legalmoves=[]
  57.  
  58.         if (team==-1 and x==whitestart) or (team==1 and x==blackstart):
  59.             magnitude=team*2
  60.         kills.append([x+team,y-1])
  61.         kills.append([x+team,y+1])
  62.         for i in range(team,magnitude+team,team):
  63.             possibilities.append([x+i,y])
  64.  
  65.         for i in kills:
  66.             if not (i[0]>5 or i[0]<0 or i[1]>5 or i[1]<0):
  67.                 if get_piece(board,i[0],i[1])[1]!="none" and get_piece(board,i[0],i[1])[0]!=team:
  68.                     legalmoves.append([i[0],i[1]])
  69.         for i in possibilities:
  70.             if get_piece(board,i[0],i[1])[1]=="none":
  71.                 legalmoves.append([i[0],i[1]])
  72.         return legalmoves
  73.     else:
  74.         return []
  75.        
  76.  
  77.    
  78.  
  79. board = make_board(board_string_1)
  80.  
  81. rad=0
  82. kolonne=0
  83. for i in board:
  84.     rad=rad+1
  85.     kolonne=0
  86.     for x in i:
  87.         kolonne=kolonne+1
  88.         print(get_piece(board,rad,kolonne)[0],get_piece(board,rad,kolonne)[1],end="|")
  89.     print(" ")
  90.  
  91. x = get_legal_moves(board,4,1)
  92. for i in x:
  93.     for t in i:
  94.         print(t,end=",")
  95.     print(" ")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement