Четвърто домашно

  1. Още една задача по ООП.
    Този път базирана на друга игра, която се играе по пенсионерските клубове - Шах.
    Задачата може да намерите тук.
    Примерни тестове за задачата има тук.

    Вече знаете за нашите инструкции за това как (не) се предават задачи, но споделям за всеки случай.

    Ако имате въпроси, стреляйте по-долу. Напомням, че за споделени тестове може да получите звездичка.

  2. @Минчо, няма да тестваме а невалидни фигури. Не е нужно изключението ChessException да прави нищо повече от прост Exception. Целта на отделната дефиниция е да заявиш, че имаш конкретен проблем, свързан с шаха, а не просто случаен Exception.

  3. Относно класа ChessPosition(), инстанцията трябва да е от тип 'str' или 'dict', тъй като в примерите се използва като двата типа ? position = ChessPosition(some_fen) print(position) - тук връща стринггов низ position['E2'] - а тук търсим по ключ

  4. @Сузана, потвърждавам написаното от Робърт. Твоят клас трябва сам да се погрижи всички тези функции и оператори да работят като в примерите.

  5. @Мариян, само една и то конкретна. Цитирам условието: "В случай, че позицията е невалидна по повече от едно от тези условия, например няма нито един цар, но освен това има пешка на ред 1, изключението, което трябва да се възбуди, е "kings"."

  6. **Всякакви други позиции се приемат за валидни, дори да не са реални позиции за шах. Например позиция, в която има повече от 16 фигури от един цвят, не би била валидна в партия шах, но по нашите правила е позволена. - Поне имаме ли гаранция, че общият брой фигури няма да надвишава 64 и че ще имаме точно 8 подадени "реда" от str, и че на всеки "ред" няма да има повече от 8 фигури?

  7. Какво трябва да е поведението на програмата ако на cp = ChessPosition(fen), '''cp['Z200']'''(слагам го по този начин в '''понеже не ми излизат'[]')(излиза извън дъската), None ли тр да се връша или не трябва да го handle-ваме

  8. @Робърт, няма да тестваме позиции, които не са точно 8x8. А за кавичките - използвай ` в коментарите си, за да ограждаш код и ще е ок.

Трябва да сте влезли в системата, за да може да отговаряте на теми.