Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- a=range(100)
- board=[i for i in a]
- ill=[i for i in board if i<11 or i>88 or i%10 ==9 or i%10==0]
- k=11,-11,9,-9
- j=1,-1,10,-10
- l=21,-19,19,12,-8,-21,8,-12
- t=-1,1,9,10,11,-9,-10,-11
- u=11,10,9
- v=-11,-10,-9
- class Piece:
- def __init__(self,pos,mov,sym):
- self.pos = pos
- self.mov = mov
- self.sym = sym
- def move(self,tar):
- global X
- X=tar
- selflis=[]
- tarlis=[]
- lis=[]
- for i in self.mov:
- if self.pos not in selflis:
- selflis=[]
- for j in board[tar:self.pos+1:i]:
- if j in ill:
- break
- selflis.append(j)
- for i in self.mov:
- if tar not in tarlis:
- tarlis=[]
- for j in board[self.pos::i]:
- if j in ill:
- break
- tarlis.append(j)
- if tar not in tarlis:
- return 0
- for i in tarlis:
- for j in selflis:
- if i==j:
- lis.append(i)
- if c==1:
- p=self.pos
- q=tar
- else:
- p=tar
- q=self.pos
- mtlis=[i.pos for i in col if i.pos !=p]
- mslis=[i.pos for i in oth if i.pos !=q]
- for i in lis:
- if i in mtlis or i in mslis:
- print(i)
- return 1
- return 3
- def mov1(self,tar):
- global X
- X=tar
- selflis=[i+self.pos for i in self.mov]
- if tar not in selflis:
- return 0
- colis=[i.pos for i in col if i!=self.pos]
- if c==1 and tar in colis:
- return 1
- return 3
- def movp(self,tar):
- global X
- X=tar
- colis=[i.pos for i in col if i.pos!=self.pos]
- olis=[i.pos for i in oth]
- selflis = olis + colis
- take=[i+self.pos for i in self.mov[0::2]]
- go=self.pos + self.mov[1]
- if tar not in take and tar!=go:
- return 0
- if tar in selflis and tar==go:
- return 1
- if tar in take and tar in colis:
- return 1
- if tar==go:
- return 4
- for i in oth:
- if i.pos==tar and i.pos in take:
- return 3
- return 0
- b1 = Piece(83,(k),'Δ')
- b2 = Piece(86,(k),'Δ')
- b3 = Piece(13,(k),'Δ')
- b4 = Piece(16,(k),'Δ')
- r1 = Piece(81,(j),'Π')
- r2 = Piece(88,(j),'Π')
- r3 = Piece(11,(j),'Π')
- r4 = Piece(18,(j),'Π')
- q1 = Piece(84,(t),'θ')
- q2 = Piece(14,(t),'θ')
- k1 = Piece(82,(l),'ζ')
- k2 = Piece(87,(l),'ζ')
- k3 = Piece(12,(l),'ζ')
- k4 = Piece(17,(l),'ζ')
- kg1= Piece(85,(t),'Φ')
- kg2= Piece(15,(t),'Φ')
- p1= Piece(71,(v),'Τ')
- p2= Piece(72,(v),'Τ')
- p3= Piece(73,(v),'Τ')
- p4= Piece(74,(v),'Τ')
- p5= Piece(75,(v),'Τ')
- p6= Piece(76,(v),'Τ')
- p7= Piece(77,(v),'Τ')
- p8= Piece(78,(v),'Τ')
- p9= Piece(21,(u),'Τ')
- p10= Piece(22,(u),'Τ')
- p11= Piece(23,(u),'Τ')
- p12= Piece(24,(u),'Τ')
- p13= Piece(25,(u),'Τ')
- p14= Piece(26,(u),'Τ')
- p15= Piece(27,(u),'Τ')
- p16= Piece(28,(u),'Τ')
- white=b1,b2,r1,r2,q1,k1,k2,kg1,p1,p2,p3,p4,p5,p6,p7,p8
- black=b3,b4,r3,r4,q2,k3,k4,kg2,p9,p10,p11,p12,p13,p14,p15,p16
- def ques():
- global a
- a=c=g=t=0
- lis='b1','b2','r1','r2','q','k1','k2','kg','p1','p2','p3','p4','p5','p6','p7','p8'
- try:
- pce=str(input(("{}'s turn.\n\nWhich piece? : ").format(co)))
- for i in lis:
- if i == pce:
- break
- a+=1
- v = input(("\nWhere to? (X, Y, separated by a comma): ").format(co))
- d,e = v.split(',')
- d,e = int(d), int(e)
- m=(9-e)*10+d
- except ValueError or IndexError:
- ques ()
- try:
- g=col[a]
- movement(g,m)
- except IndexError:
- ques ()
- def movement(g,m):
- global c
- c=1
- t=mover(g,m)
- c=0
- if t==0:
- print('Illegal move')
- ques()
- return
- elif t==1:
- print('Piece in the way')
- ques()
- return
- elif t==2:
- print('Puts your king in check')
- ques()
- return
- elif t==3 or t==4:
- for i in oth:
- if i.pos==X:
- i.pos=101
- g.pos=X
- scheck()
- def scheck():
- x=0
- for i in oth:
- g=i
- m=col[7].pos
- if x<=4: k=g.move(m)
- if x>4 and x<=7: k=g.mov1(m)
- if x>7: k=g.movp(m)
- if k==3: print('self in check')
- x+=1
- def mover(g,m):
- if a<=4: t=g.move(m)
- if a>4 and a<=7: t=g.mov1(m)
- if a>7: t=g.movp(m)
- return t
- def ocheck():
- print('ocheck')
- def disp():
- global g
- print()
- items = []
- y=[i.pos for i in black]
- z=[i.pos for i in white]
- sq=[]
- a=0
- b=10
- c=0
- for i in range(10):
- if c%2==0: a+=1
- if c%2!=0: a-=1
- for i in range(a,b,2):
- sq.append(i)
- a+=10
- b+=10
- c+=1
- for i in range(100):
- for a in white:
- if i ==a.pos:
- items+=a.sym
- for b in black:
- if i==b.pos:
- items+=b.sym
- if i in ill:
- items+='•'
- elif i not in z and i not in y and i not in ill:
- if i in sq:
- items+='_'
- if i not in sq:
- items+='_'
- meti=[]
- for i in range (100):
- meti.append (items [(-1)-i])
- for i in range(10):
- print(' '.join(items [i*10:i*10+10]))
- print()
- '''
- if col==black: s=meti
- else: s=items
- '''
- while True:
- col=white
- disp()
- co='White'
- oth=black
- ques()
- col=black
- disp()
- co='Black'
- oth=white
- ques()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement