> For the complete documentation index, see [llms.txt](https://bytistan.gitbook.io/baytistan/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bytistan.gitbook.io/baytistan/kedi-problemi/seviye-4-mizraklar.md).

# Seviye 4: Mızraklar

## Amaç

`settings.py` dosyasına eklediğin ASCII kediyi, sırasıyla listenin başından ve sonundan başlayarak, ekrana yazdırmalısın, yazdırma işlemi aynı anda olmalı.

### Beklenen Davranış

<figure><img src="https://1592666604-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy0QTCliryu3DkL9lOYgq%2Fuploads%2FDUuI60NnhlQm4ntm8fFZ%2Fgiphy.gif?alt=media&amp;token=eb38b073-875d-4859-a056-98143975bdc9" alt=""><figcaption><p>1.0</p></figcaption></figure>

* Sırası üzerine sağdan ve soldan başlayarak resmi adım adım çizmeli.
* İki tarafta aynı hızda birer birer artarak ilerlemeli.

## Problemin Çözümü

Bu daha normal olanlar :)

<details>

<summary>Cevap</summary>

```python
# ...

def print_cat():
    for r in range(0,len(ascii_art[0]) + 1):
        os.system("clear")
        d = []
        
        for row_index,row in enumerate(ascii_art):
            if row_index % 2 == 1: 
                """Listeyi sonundan başlayarak böl,
                başına satır uzunluğu kadar boşluk ekle."""
                space = " " * (len(row) - r) if r != len(row) else ""
                d.append(space + row[-r:])
            else:
                d.append(row[:r])

        new_line = "\n"
        print(new_line.join(d))
        time.sleep(0.02)
        
# ...
```

</details>

### Çalışma Mantığı

Listedeki ilk elemanın uzunluğu kadar dönen bir döngüm var, sağdan sola yazdırmayı hatırla bu onun başka bir versiyonu.  &#x20;

Listedeki bütün elemanların üzerinde gezen bir döngü oluşturuyorum, döngüde sıra numaraları tek olanları sondan bölüyorum, çift olanları baştan bölüyorum, bunları `d` adını verdiğim bir listeye atıyorum, son olarak bu listeyi yazdırıyorum.
