Трето домашно

  1. Три за късмет!

    Осъзнаваме, че привидно не ви даваме време да си отдъхнете, но както казахме на лекцията - този път би трябвало да се справите по-бързо, а крайният срок е по-дълъг - 18:00 на 15.11.
    Ще упражним базовите за ООП концепции във въпросното ново домашно, което можете да намерите ето тук.

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

    P.S. Oops, забравих да спомена къде можете да намерите примерния тест.

  2. Какво се очаква да бъде поведението на prepare_deck(), когато се извиква преди deal()? От разясненията за тези два метода, prepare_deck() прави нещо с вече раздадените карти на играчите. Трябва ли да се направи така че Game да няма "тесте" допреди извикването му (и при извикване просто да го генерира според картите, които сме указали, че искаме), или пък ако го извикаме преди да сме раздали просто да не прави нищо?

  3. @Боян, prepare_deck не само подготвя картите за ново раздаване(т.е. ако вече има раздадени карти на играчи, ги взима обратно в тестето), но също така разбърква и цепи тестето. Това би трябвало да даде отговор на въпроса ти от последното изречение - не, не трябва да прави нищо, а да разбърка и цепи.

    Относно това, дали Game трябва да има инициализирано тесте преди да извикаш prepare_deck - по-скоро да. Не е нужно да извикам prepare_deck, за да имам вече тесте в играта. Този метод просто подготвя вече инициализираното тесте за раздаване.

    Моля, кажи, ако все още не е ясно. Ще се опитам да дам повече информация.

  4. Има ли значение по какъв начин методът на класа deck - get_cards(), връща картите като лист? Тоест дали има значение aкo върне например [[2, diamonds], [3, spades]] или [2 of diamonds, 3 of spades]. Също така трябва ли да има значение в кой ред подаваме параметри на конструктори с повече от 1 параметър?

  5. @Цветелина, и за двата въпроса е все едно. Всякакъв ред на боите е валиден. Всякаква интерпретация на реда на тестето е валидна, стига да ги "прецепиш".

  6. get_cards() - връща списък от карти като list от Card - картите, които в момента са налични за игра, в реда, в който са подредени в момента. Относно това, ако функцията се извиква по средата на раздаване, ние трябва да върнем картите, които още не са раздадени или цялото тесте така, както е изглеждало точно преди раздаването?

  7. Въпрос относно това какво трябва да връщат гет функциите: адресите на това къде са данните или да направим модел на това как трябва да се изобрязяват като предефинираме str Примерно класът deck когато викаме get_cards трябва да върне информацията като лист, но като му кажа да върне директно листа от карти връща лист от адресите им. Трябва ли да направим нещо за начина им на изобразяване

  8. @Минчо, инструкциите казват, че очакваме данни в конкретен тип. Ако разгледаме твоят конкретен пример, казано е, че Deck.get_cards трябва да връща "list от Card", което значи, че трябва да върнеш списък с обекти от тип Card. Ако дефинираш __str__ и го приложиш, ще върнеш списък от стрингове, а не от карти, т.е. няма да изпълняваш условието.

  9. Относно dealing_instructions за Poker, условието, че картите се раздават 1 по 1 докато всеки играч не стане с 5 как ще се подава като tuple, например (1, 1, 1, 1, 1) или нещо друго? Също при функцията deal(), раздаването на картите от последната карта в масива ли започва(все едно реално тесте да почваме раздването от най-горната карта) или може и от първата?

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