Трета задача

  1. Трета задача вече е онлайн, тук е мястото да задавате въпроси и споделяте тестове за колегите си.

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

  2. Трябва ли решението ни да поддържа повече от една дума?

    Доколкото разбрах, в низа solution не трябва да има неазбучни символи, затова приемам, че решенията винаги са от една дума. От друга страна, в описанието на метода guess_word е написано:

    Приема дума, проверява дали тази дума присъства в решението:
    ...
    

    Тук думата присъства ме навежда на мисълта, че все пак трябва да поддържаме решения с повече от една дума.

    Та в крайна сметка нужно ли е да добавяме поддръжка за повече от една дума към решенията си?

  3. GameError::GameOver не е казано къде се използва.

    Бих предположил, че се връща от guess_letter и guess_word ако играта е вече приключила (attempts_remaining е 0 преди намаляването). В този случай пише, че трябва да се върне Ok(false) и да се намали self.attempts_remaining, но то е дефинирано като u32.

    Трябва ли да върнем грешка или да игнорираме декрементирането в този случай?

  4. Знаех си, че ще отърва нещо в условието! Да, GameOver е грешка, която се връща, ако се опитаме да викнем guess_ метод на игра, която вече е приключила. Обнових условието да включва тазу клауза.

    При това положение, проблема с u32 се премахва, понеже при attempts_remaining 0, играта е приключена и викането на методите ще върне Err.

  5. Един малък hint, който току-що добавих: ок е просто да проверявате първите букви на командите (и подкомандите). Тоест, "t l x" се парси до същото като "try letter x", което, ако искате, се парси до същото като "too late x". Свободни сте и да бъдете по-стриктни, просто няма да пишем тестове за неща като "too late x".

  6. Един малък hint, ако някой има време да си прегледа кода близко до срока (и чете форумите): Пробвахте ли да тествате с кирилица? Примера с думата "крокодил", например? Може да откриете лесен фикс, който да ви спечели 1-2 точки.

  7. Сега докато си оправях въпросния бъг от горния хинт ми изникна въпроса дали тестването на букви и думи е кейс сенситив, тоест ако думата е КрОкодил и тестваме с 'О', какво да очакваме " _ О _ _ _ _ " или " _ О _ о _ _ " или " _ О _ О _ _ " или " _ о _ о _ _ " .

  8. Хм. Това е добър въпрос, за който не се бях сетил. Нямаме в тестовете проверка за това. Аз бих lowercase-нал буквата, но е ок да не го правите, понеже няма тестове за това (макар че има тестове за case-sensitivity на самите команди, както е описано в условието...).

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