Це група для спільного вивчення Python до професійного рівня. Група для початківців Challenges View all 9 challenges
Потрібно придумати як саме ми будемо вчитися. Я попоную писати спільний проект або декілька проектів. Вибрати щось корисне та зробити його опен сорс Інші варіанти: знайти якись список задач та вирішувати їх, в звіті публікувати своє рішення Задача цього челенджу прибумати свою ідею та описати її у звіті до челенджу
Учасники групи не писали великих програм на Пайтоні (будемо так вважати) Знаходимо в інтернеті якісь великі чи середні проекти на Пайтоні та вивчаємо вихідні коди. Бажано щоб це не був один скрипт, а багато модулів (класів). У звіті пишемо що саме ви дослідили. Вивчити як організовані зв’язки між компонентами. Які є способи організації складної структури. Як виконується запуск програми та підключення компонентів динамічно. Результатом має бути розуміння "best practices" програмування складних систем на Python.
Потрібно вибрати правила кодування спільного проекту. Проведемо дослідження різних рекомендацій та стандартів. Хай кожен погуглить та розкаже що він знайшов. У репорті описати стандарт який ви вважаєте найкращим. Потім виберемо що нам найбільше підходить.
#4
Робимо гру
На скайп конференції ми вирішили що будемо роботи гру "Хрестики Нолики" і на її основі вчити різні техніки, підходи, методи програмування в Пайтоні. Отже, завдання №1. Написати "Хрестики Нолики".
Інших вимог на даному етапі немає. Потім ми будемо вдосконалювати наші програми.
Результат опублкувати на Гітхаб або аналогічному сервісі щоб можна було показати свій код іншим учасникам. Ссилку на код дати в репорті. Не аналізуйте код інших учасників поки самі не зробили!
Коли будуть опубліковані звіти учасників групи до завдання "Робимо гру Хрестики Нолики" то оцініть кожен звіт. Подивіться код та потестуйте його. В звіті оцініть за такими критеріями:
Переглянути мінімум 5 звітів якщо їх є більше. Бажано вибирати випадковим чином який звіт ви бедете аналізувати
Ми вже зробили програму Хрестики Нолики. Але ця програма є "некрасивою". Її важко розширювати чи модифікувати. Також важко використати цю програму як компонент до іншої більшої програми. Ми розділимо наш код на модулі та створимо класи щоб використовувати їх в інших системах. Завдання. Модифікувати код програми "Хрестики Нолики". Розділити її на 3 компоненти:
потрібно розібратися який найкращий спосіб передати об’єкт TicTacToe у Gamer. чи є в python підтримка передачі об’єкта "за почиланням" (по ссилці) чи треба передавати копію кожного разу коли треба зробити хід щоб мати актувальний стан гри. Коли ми будемо мати ці 2 класи ми зможемо легко міняти інтерфейс програми, адже логіка вже буде окремо
Для наших наступний завдань потрібно буде обмінюватися нашими реалізаціями гри Хрестики Нолики. Ми будемо брати свій GUI але використовувати логіку інших учасників. Для цього нам треба щоб класи із логікою всі мали однаковий інтерфейс. (тут я маю на увазі інтерфейс в значенні об’єктно-орієнтованого програмування). Такий обмін нам потрібен для того щоб потренуватися працювати в команді, щоб вміти ефективно розподіляти роботу між учасниками і потім збирати всі компоненти до купи. Перше завдання це почитати і знайти чи взагалі є підтримка таких інтерфейсів в Пайтоні. Якщо ні то треба буде подивитися які є "костилі" чи "best practices" для такого випадку. Щось є для цього. Але треба шукати і розбиратися. Отже, завдання:
Модифікувати свій варіант хрестиків-ноликів із використанням інтерфейсу узгодженого в попередньому завданні Потестувати свою реалізацію із класами всіх інших учасників. Для цього треба просто перезаписати 2 своїх класи на відповідні 2 класи іншого учасника. У звіті описати проблеми та помилки які виникли. Повторювати тести поки всі варіанти не будуть правильно працювати із вашою основною програмою. Нагадаю, основна програма тільки запитує ввід від користувача та виводить результати, а вся логіка в класах які можне міняти (назва модулів у всіх однакові) Last reports
|