Untitled

mail@pastecode.io avatar
unknown
plain_text
2 months ago
2.5 kB
2
Indexable
Never
with open('szachy.txt') as plik:
    wczytane=plik.read().splitlines()

szachownice=[]
for i in range(0,len(wczytane), 9):
    szachownica = []
    for j in range(8):
        szachownica.append(wczytane[i+j])
    szachownice.append(szachownica)

print(szachownice)

def znajdz_c_k(plansza):
    for w in range(8):
        for k in range(8):
            if plansza[w][k] == 'k':
                return [w,k]

def znajdz_b_k(plansza):
    for w in range(8):
        for k in range(8):
            if plansza[w][k] == 'K':
                return [w,k]

def czy_b_szach(plansza, w, k):
    l_w=w
    while l_w>0:
        pole= plansza[l_w-1][k]
        if pole !='.' or pole != 'W':
            break
        elif pole == 'W':
            return True
        l_w-=1
    l_w=w
    while l_w<7:
        pole = plansza[l_w+1][k]
        if pole !='.' or pole != 'W':
            break
        elif pole =='W':
            return True
        l_w+=1
    l_k=k
    while l_k>0:
        pole = plansza[w][l_k-1]
        if pole != '.' or pole!='W':
            break
        elif pole == 'W':
            return True
        l_k -= 1
    l_k=k
    while l_k<7:
        pole= plansza[w][l_k+1]
        if pole!='.' or pole !='W':
            break
        elif pole == 'W':
            return True
        l_k+=1
    return False

def czy_c_szach(plansza, w, k):
    l_w=w
    while l_w>0:
        pole= plansza[l_w-1][k]
        if pole !='.' or pole != 'w':
            break
        elif pole == 'w':
            return True
        l_w-=1
    l_w=w
    while l_w<7:
        pole = plansza[l_w+1][k]
        if pole !='.' or pole != 'w':
            break
        elif pole =='w':
            return True
        l_w+=1
    l_k=k
    while l_k>0:
        pole = plansza[w][l_k-1]
        if pole != '.' or pole!='w':
            break
        elif pole == 'w':
            return True
        l_k -= 1
    l_k=k
    while l_k<7:
        pole= plansza[w][l_k+1]
        if pole!='.' or pole !='w':
            break
        elif pole == 'w':
            return True
        l_k+=1
    return False

def zad():
    b_wieza_s = 0
    c_wieza_s = 0
    for plansza in szachownice:
        w = znajdz_c_k(plansza)[0]
        k = znajdz_c_k(plansza)[1]
        if czy_b_szach(plansza, w, k):
            b_wieza_s+=1
        w = znajdz_b_k(plansza)[0]
        k = znajdz_b_k(plansza)[1]
        if czy_c_szach(plansza, w, k):
            c_wieza_s+=1
    return c_wieza_s, b_wieza_s
print(zad())
Leave a Comment