Advertisement
Guest User

new

a guest
Mar 21st, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.23 KB | None | 0 0
  1. a=range(100)
  2. board=[i for i in a]
  3. ill=[i for i in board if i<11 or i>88 or i%10 ==9 or i%10==0]
  4. k=11,-11,9,-9
  5. j=1,-1,10,-10
  6. l=21,-19,19,12,-8,-21,8,-12
  7. t=-1,1,9,10,11,-9,-10,-11
  8. u=11,10,9
  9. v=-11,-10,-9
  10.  
  11. class Piece:
  12.   def __init__(self,pos,mov,sym):
  13.     self.pos = pos
  14.     self.mov = mov
  15.     self.sym = sym
  16.  
  17.   def move(self,tar):
  18.     global X
  19.     X=tar
  20.     selflis=[]
  21.     tarlis=[]
  22.     lis=[]
  23.  
  24.     for i in self.mov:
  25.         if self.pos not in selflis:
  26.           selflis=[]
  27.           for j in board[tar:self.pos+1:i]:
  28.             if j in ill:
  29.                 break
  30.             selflis.append(j)
  31.     for i in self.mov:
  32.         if tar not in tarlis:
  33.             tarlis=[]
  34.         for j in board[self.pos::i]:
  35.             if j in ill:
  36.                 break
  37.             tarlis.append(j)
  38.  
  39.     if tar not in tarlis:
  40.         return 0
  41.     for i in tarlis:
  42.         for j in selflis:
  43.             if i==j:
  44.                 lis.append(i)
  45.  
  46.     if c==1:
  47.       p=self.pos
  48.       q=tar
  49.     else:
  50.       p=tar
  51.       q=self.pos
  52.  
  53.     mtlis=[i.pos for i in col if i.pos !=p]
  54.     mslis=[i.pos for i in oth if i.pos !=q]
  55.  
  56.     for i in lis:
  57.         if i in mtlis or i in mslis:
  58.           print(i)
  59.           return 1
  60.  
  61.     return 3
  62.  
  63.   def mov1(self,tar):
  64.     global X
  65.     X=tar
  66.     selflis=[i+self.pos for i in self.mov]
  67.     if tar not in selflis:
  68.         return 0
  69.  
  70.     colis=[i.pos for i in col if i!=self.pos]
  71.     if c==1 and tar in colis:
  72.         return 1
  73.  
  74.     return 3
  75.  
  76.   def movp(self,tar):
  77.     global X
  78.     X=tar
  79.  
  80.     colis=[i.pos for i in col if i.pos!=self.pos]
  81.     olis=[i.pos for i in oth]
  82.     selflis = olis + colis
  83.  
  84.     take=[i+self.pos for i in self.mov[0::2]]
  85.     go=self.pos + self.mov[1]
  86.  
  87.     if tar not in take and tar!=go:
  88.         return 0
  89.     if tar in selflis and tar==go:
  90.         return 1
  91.     if tar in take and tar in colis:
  92.         return 1
  93.     if tar==go:
  94.         return 4
  95.     for i in oth:
  96.         if i.pos==tar and i.pos in take:
  97.             return 3
  98.  
  99.     return 0
  100.  
  101. b1 = Piece(83,(k),'Δ')
  102. b2 = Piece(86,(k),'Δ')
  103. b3 = Piece(13,(k),'Δ')
  104. b4 = Piece(16,(k),'Δ')
  105. r1 = Piece(81,(j),'Π')
  106. r2 = Piece(88,(j),'Π')
  107. r3 = Piece(11,(j),'Π')
  108. r4 = Piece(18,(j),'Π')
  109. q1 = Piece(84,(t),'θ')
  110. q2 = Piece(14,(t),'θ')
  111. k1 = Piece(82,(l),'ζ')
  112. k2 = Piece(87,(l),'ζ')
  113. k3 = Piece(12,(l),'ζ')
  114. k4 = Piece(17,(l),'ζ')
  115. kg1= Piece(85,(t),'Φ')
  116. kg2= Piece(15,(t),'Φ')
  117. p1= Piece(71,(v),'Τ')
  118. p2= Piece(72,(v),'Τ')
  119. p3= Piece(73,(v),'Τ')
  120. p4= Piece(74,(v),'Τ')
  121. p5= Piece(75,(v),'Τ')
  122. p6= Piece(76,(v),'Τ')
  123. p7= Piece(77,(v),'Τ')
  124. p8= Piece(78,(v),'Τ')
  125. p9= Piece(21,(u),'Τ')
  126. p10= Piece(22,(u),'Τ')
  127. p11= Piece(23,(u),'Τ')
  128. p12= Piece(24,(u),'Τ')
  129. p13= Piece(25,(u),'Τ')
  130. p14= Piece(26,(u),'Τ')
  131. p15= Piece(27,(u),'Τ')
  132. p16= Piece(28,(u),'Τ')
  133.  
  134. white=b1,b2,r1,r2,q1,k1,k2,kg1,p1,p2,p3,p4,p5,p6,p7,p8
  135. black=b3,b4,r3,r4,q2,k3,k4,kg2,p9,p10,p11,p12,p13,p14,p15,p16
  136.  
  137. def ques():
  138.     global a
  139.     a=c=g=t=0
  140.     lis='b1','b2','r1','r2','q','k1','k2','kg','p1','p2','p3','p4','p5','p6','p7','p8'
  141.  
  142.     try:
  143.         pce=str(input(("{}'s turn.\n\nWhich piece? : ").format(co)))
  144.         for i in lis:
  145.             if i == pce:
  146.                 break
  147.             a+=1
  148.         v = input(("\nWhere to? (X, Y, separated by a comma): ").format(co))
  149.         d,e = v.split(',')
  150.         d,e = int(d), int(e)
  151.         m=(9-e)*10+d
  152.     except ValueError or IndexError:
  153.         ques ()
  154.  
  155.     try:
  156.         g=col[a]
  157.         movement(g,m)
  158.     except IndexError:
  159.         ques ()
  160.  
  161. def movement(g,m):
  162.       global c
  163.       c=1
  164.       t=mover(g,m)
  165.       c=0
  166.       if t==0:
  167.           print('Illegal move')
  168.           ques()
  169.           return
  170.       elif t==1:
  171.           print('Piece in the way')
  172.           ques()
  173.           return
  174.       elif t==2:
  175.           print('Puts your king in check')
  176.           ques()
  177.           return
  178.       elif t==3 or t==4:
  179.           for i in oth:
  180.               if i.pos==X:
  181.                   i.pos=101
  182.           g.pos=X
  183.  
  184.       scheck()
  185.  
  186. def scheck():
  187.       x=0
  188.       for i in oth:
  189.           g=i
  190.           m=col[7].pos
  191.           if x<=4: k=g.move(m)
  192.           if x>4 and x<=7: k=g.mov1(m)
  193.           if x>7: k=g.movp(m)
  194.           if k==3: print('self in check')
  195.           x+=1
  196.  
  197. def mover(g,m):
  198.       if a<=4: t=g.move(m)
  199.       if a>4 and a<=7: t=g.mov1(m)
  200.       if a>7: t=g.movp(m)
  201.       return t
  202.  
  203. def ocheck():
  204.       print('ocheck')
  205.  
  206. def disp():
  207.     global g
  208.     print()
  209.     items = []
  210.     y=[i.pos for i in black]
  211.     z=[i.pos for i in white]
  212.  
  213.     sq=[]
  214.     a=0
  215.     b=10
  216.     c=0
  217.     for i in range(10):
  218.         if c%2==0: a+=1
  219.         if c%2!=0: a-=1
  220.         for i in range(a,b,2):
  221.             sq.append(i)
  222.         a+=10
  223.         b+=10
  224.         c+=1
  225.     for i in range(100):
  226.         for a in white:
  227.             if i ==a.pos:
  228.                 items+=a.sym
  229.         for b in black:
  230.             if i==b.pos:
  231.                 items+=b.sym
  232.         if i in ill:
  233.                 items+='•'
  234.         elif i not in z and i not in y and i not in ill:
  235.             if i in sq:
  236.                 items+='_'
  237.             if i not in sq:
  238.                 items+='_'
  239.  
  240.     meti=[]
  241.     for i in range (100):
  242.         meti.append (items [(-1)-i])
  243.  
  244.     for i in range(10):
  245.         print('  '.join(items [i*10:i*10+10]))
  246.     print()
  247.  
  248. '''
  249. if col==black: s=meti
  250.    else: s=items
  251. '''
  252.  
  253. while True:
  254.     col=white
  255.     disp()
  256.     co='White'
  257.     oth=black
  258.     ques()
  259.  
  260.     col=black
  261.     disp()
  262.     co='Black'
  263.     oth=white
  264.     ques()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement