Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from turtle import *
- from math import *
- test = False #zostawiam jako pokazanie procesu pracy, w przypadku True włączą się próby sprawdzające poprawność mniejszych części rysunku
- def tester(fun,*args):
- if test:
- fun(*args)
- def hop (x,y):
- up()
- fd(y)
- rt(90)
- fd(x)
- lt(90)
- down()
- def pole(wymiar_pola,kolor):
- fillcolor(kolor)
- begin_fill ()
- for i in range (4):
- fd(wymiar_pola)
- rt(90)
- end_fill()
- def zagranie(p):
- if p == "p0":
- return "rnbqkbnrpppppppp................................PPPPPPPPRNBQKBNR" # układ startowy
- if p == "p1":
- return"r.b.kb.rpppp.pp...n..q.p....p......P......P.....PP..PPPPRNBQKBNR" # obrona Caro-Kann, atak dwu skoczków
- if p == "p2":
- return"rnbqk..rpppp.ppp.....n......p....b..P.....N.....PPPP.PPPR.BQKBNR" # partia hiszpańska
- if p =="p3":
- return"rnbqkbnrpp..pppp..........pp.......P............PPP.PPPPRNBQKBNR" # gambit hetmański
- if p =="p4":
- return"r....r.k.b..q..pp.n...p..p..bpNQ.P..p...PB..P....B...PPP..RR..K." # nieśmiertelna partia Rubinsteina z 1907, Akiba Rubinstein (czarne), najsłynniejszy polski szachista wszechczasów
- if p == "p5":
- return"rnbqkppppp.....PPPPPRNBQK" # plansza 5 * 5
- if p=="p6":
- return"rqkrpppp....PPPPRQKR" # plansza 5 * 4
- def szach (wymiar_pola,wys,szer, uklad, kolorf1,kolorf2,kolorp1,kolorp2):
- indeks_pola=0
- for j in range (wys):
- for i in range(szer):
- if (i+j)%2==0:
- kolor=kolorp1
- else:
- kolor=kolorp2
- pole(wymiar_pola,kolor)
- if zagranie(uklad)[indeks_pola]=="p": #ukladem wywołuję listę, a indeksem pola sprawdzam kolejne elementy listy
- pionek(wymiar_pola,kolorf1)
- elif zagranie(uklad)[indeks_pola]=="P":
- pionek(wymiar_pola, kolorf2)
- elif zagranie(uklad)[indeks_pola]=="b":
- goniec(wymiar_pola, kolorf1)
- elif zagranie(uklad)[indeks_pola]=="B":
- goniec(wymiar_pola, kolorf2)
- elif zagranie(uklad)[indeks_pola]=="r":
- wieza(wymiar_pola, kolorf1)
- elif zagranie(uklad)[indeks_pola] == "R":
- wieza(wymiar_pola, kolorf2)
- elif zagranie(uklad)[indeks_pola] == "q":
- hetman(wymiar_pola, kolorf1)
- elif zagranie(uklad)[indeks_pola] == "Q":
- hetman(wymiar_pola, kolorf2)
- elif zagranie(uklad)[indeks_pola] == "k":
- krol(wymiar_pola, kolorf1)
- elif zagranie(uklad)[indeks_pola] == "K":
- krol(wymiar_pola, kolorf2)
- elif zagranie(uklad)[indeks_pola] == "n":
- konik(wymiar_pola, kolorf1)
- elif zagranie(uklad)[indeks_pola] == "N":
- konik(wymiar_pola, kolorf2)
- hop(wymiar_pola,0)
- indeks_pola+=1
- hop(-wymiar_pola*szer, wymiar_pola)
- hop(0,-wymiar_pola*wys)
- tester(szach,40,8,8,"p0","red","green","blue","yellow")
- def pionek(wymiar_pola,kolor_figury):
- hop(wymiar_pola/6,wymiar_pola/6)
- fillcolor (kolor_figury)
- begin_fill ()
- rt(90)
- fd(wymiar_pola*4/6)
- lt(135)
- fd(wymiar_pola*sqrt(2)/6)
- rt(45)
- fd(wymiar_pola/6)
- lt(45)
- fd(wymiar_pola*sqrt(2)/6)
- lt(90) #połowa
- fd(wymiar_pola*sqrt(2)/6)
- lt(45)
- fd(wymiar_pola/6)
- lt(-45)
- fd(wymiar_pola*sqrt(2)/6)
- rt(135)
- end_fill()
- hop(-wymiar_pola / 6, -wymiar_pola / 6)
- tester(pionek,40,"green")
- def wieza (wymiar_pola,kolor_figury):
- hop(wymiar_pola*2 / 7, wymiar_pola / 6)
- fillcolor(kolor_figury)
- begin_fill()
- rt(90)
- fd(wymiar_pola * 3/7)
- lt(90)
- fd(wymiar_pola * 2/6)
- rt(90)
- fd(wymiar_pola/7)
- lt(90)
- fd(wymiar_pola * 2/6)
- lt(90)
- fd(wymiar_pola/7)
- lt(90)
- fd(wymiar_pola/6)
- rt(90)
- fd(wymiar_pola/7)
- rt(90)
- fd(wymiar_pola/6)
- lt(90)
- fd(wymiar_pola/7)
- lt(90)
- fd(wymiar_pola/6)
- rt(90)
- fd(wymiar_pola/7)
- rt(90)
- fd(wymiar_pola/6)
- lt(90)
- fd(wymiar_pola/7)
- lt(90)
- fd(wymiar_pola*2/6)
- lt(90)
- fd(wymiar_pola/7)
- rt(90)
- fd(wymiar_pola*2/6)
- rt(180)
- end_fill()
- hop(-wymiar_pola * 2 / 7, -wymiar_pola / 6)
- tester(wieza,30,"green")
- def goniec(wymiar_pola, kolor_figury):
- hop(wymiar_pola/6,wymiar_pola/7)
- fillcolor(kolor_figury)
- begin_fill()
- rt(90)
- fd(wymiar_pola * 4/7)
- lt(135)
- fd(wymiar_pola * sqrt(2)/7)
- rt(45)
- fd(wymiar_pola*3/7)
- lt(45)
- fd(wymiar_pola * sqrt(2)/7)
- lt(90)
- fd(wymiar_pola * sqrt(2)/7)
- lt(45)
- fd(wymiar_pola*3/7)
- rt(45)
- fd(wymiar_pola*sqrt(2)/7)
- rt(135)
- end_fill()
- hop(-wymiar_pola/6,-wymiar_pola/7)
- tester(goniec,40,"cyan")
- def hetman (wymiar_pola,kolor_figury):
- hop(wymiar_pola*2/8*7/8, wymiar_pola/6*7/8)
- fillcolor(kolor_figury)
- begin_fill()
- rt(90)
- fd(wymiar_pola*6/8*7/8)
- lt(90)
- fd(wymiar_pola*3/6*7/8)
- hop(0,wymiar_pola /2/6*7/8)
- dot(wymiar_pola*3/4/6*7/8,kolor_figury)
- hop(0,-wymiar_pola /2/6*7/8)
- rt(-135)
- fd(wymiar_pola * sqrt(2)/6*7/8)
- rt(90)
- fd(wymiar_pola * sqrt(2)/6*7/8)
- rt(45)
- hop(0,wymiar_pola/2/6*7/8)
- dot(wymiar_pola*3/4/6*7/8,kolor_figury)
- hop(0,-wymiar_pola/2/6*7/8)
- lt(135)
- fd(wymiar_pola * sqrt(2)/6*7/8)
- rt(90)
- fd(wymiar_pola * sqrt(2)/6*7/8)
- rt(45)
- hop(0,wymiar_pola /2/6*7/8)
- dot(wymiar_pola*3/4/6*7/8,kolor_figury)
- hop(0,-wymiar_pola / 2/6*7/8)
- lt(135)
- fd(wymiar_pola * sqrt(2)/6*7/8)
- lt(-90)
- fd(wymiar_pola * sqrt(2)/6*7/8)
- lt(-45)
- hop(0,wymiar_pola / 2/6*7/8)
- dot(wymiar_pola*3/4/6*7/8,kolor_figury)
- hop(0,-wymiar_pola / 2/6*7/8)
- lt(-180)
- fd(wymiar_pola*3/6*7/8)
- lt(180)
- end_fill()
- hop(0,-wymiar_pola/6*7/8)
- tester(hetman,150,"red")
- def krol (wymiar_pola,kolor_figury):
- hop(wymiar_pola*2/6, wymiar_pola/6)
- fillcolor(kolor_figury)
- begin_fill()
- rt(90)
- fd(wymiar_pola * 2/6)
- lt(90)
- fd(wymiar_pola * 2/6)
- dot(wymiar_pola*2/6,kolor_figury)
- lt(90)
- fd(wymiar_pola*2/6)
- dot(wymiar_pola*2/6,kolor_figury)
- bk(wymiar_pola*2/6)
- lt(90)
- fd(wymiar_pola/6)
- bk(wymiar_pola/6)
- rt(90)
- fd(wymiar_pola/6)
- rt(90)
- hop(0,wymiar_pola/6)
- dot(wymiar_pola/6,kolor_figury)
- hop(0,wymiar_pola * 1 / 2/6)
- rt(90)
- fd(wymiar_pola * 1 / 8/6)
- lt(90)
- fd(wymiar_pola/6)
- lt(90)
- fd(wymiar_pola * 2 / 8/6)
- lt(90)
- fd(wymiar_pola/6)
- lt(90)
- fd(wymiar_pola * 1 / 8/6)
- rt(90)
- hop(0,wymiar_pola*3/2/6)
- rt(90)
- fd(wymiar_pola/6)
- rt(270)
- fd(wymiar_pola*2/6)
- rt(180)
- end_fill()
- hop(-wymiar_pola * 2 / 6, -wymiar_pola / 6)
- tester(krol,150,"cyan")
- def konik (wymiar_pola,kolor_figury):
- hop(wymiar_pola/4, wymiar_pola/5)
- fillcolor(kolor_figury)
- begin_fill()
- rt(90)
- fd(wymiar_pola * 2/5)
- lt(90)
- fd(wymiar_pola * 1 / 2/5)
- for i in range(4):
- lt(90)
- pencolor("black")
- fd(wymiar_pola*1/2/5)
- bk(wymiar_pola*1/2/5)
- rt(90)
- fd(wymiar_pola*1/2/5)
- fd(wymiar_pola*1/2/5)
- lt(90)
- fd(wymiar_pola*2/5)
- lt(90)
- fd(wymiar_pola*1/2/5)
- lt(90)
- pencolor("black")
- fd(wymiar_pola*1/2/5)
- up()
- fd(wymiar_pola*3/4/5)
- down()
- dot(wymiar_pola*1/4/5)
- up()
- bk(wymiar_pola*5/4/5)
- down()
- rt(90)
- fd(wymiar_pola*1/2/5)
- lt(90)
- fd(wymiar_pola/5)
- lt(-117)
- fd(wymiar_pola*sqrt(5)/5)
- lt(117)
- lt(90)
- end_fill()
- hop(-wymiar_pola / 4, -wymiar_pola / 5)
- tester(konik,150,"cyan")
- def rysunek():
- mode("logo")
- tracer (50)
- up();goto(-310,150);down() # gotowy kod od profesora
- lt(45)
- szach(25, 8, 8, 'p0', "orange", "green", "gold", "yellow")
- up();goto(-170,-290);down()
- lt(90)
- szach(25, 8, 8, 'p1', "cyan", "DarkRed", "gold", "yellow")
- up();goto(300,-140);down()
- lt(90)
- szach(25, 8, 8, 'p2', "aqua", "chartreuse", "DarkKhaki", "yellow")
- up();goto(170,290);down()
- lt(90)
- szach(25, 8, 8, 'p3', "purple", "cornflower blue", "silver", "yellow")
- up();goto(-160,-160);down()
- lt(45)
- update()
- szach(40, 8, 8, 'p4', "beige", "brown", "silver", "white")
- up();goto(-50,250);down()
- szach(20, 5, 5, 'p5', "light goldenrod yellow", "dark salmon", "DarkKhaki", "yellow")
- up();goto(-50,-330);down()
- szach(20, 5, 4, 'p6', "crimson", "green", "silver", "lemon chiffon")
- up();goto(0,0);down()
- lt(45)
- update()
- tester(rysunek)
- rysunek()
- done()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement