Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Варіанти
Варіант 1. Годинник із маятником
1. Початковий рівень. Створити застосунок WPF, у якому маятник (лінія з кулею на кінці) безперервно гойдається від −30° до 30° навколо точки підвісу за допомогою RotateTransform, AutoReverse і функції пом’якшення SineEase.
2. Базовий рівень. Створити застосунок WPF «Годинник із маятником», у якому стрілки циферблата показують поточний час, маятник гойдається з періодом 2 с, а кожне крайнє положення маятника супроводжується звуком тікання з WAV-файлу; кнопка вимикає звук.
3. Високий рівень. Створити застосунок WPF «Годинник із маятником», у якому період маятника (0,5–4 с) і гучність вибираються повзунками з перевіркою, стрілки рухаються плавно (CompositionTarget.Rendering), є режим будильника з мелодією з файлу, а налаштування зберігаються в JSON-файлі й відновлюються під час запуску; помилки читання файлів показуються в рядку стану.
Варіант 2. Світлофор
1. Початковий рівень. Створити застосунок WPF, у якому світлофор із трьох кругів (верхній, середній, нижній) циклічно вмикає сигнали розкадруванням Storyboard з ключовими кадрами: увімкнений сигнал яскравий, вимкнені напівпрозорі (Opacity 0,2).
2. Базовий рівень. Створити застосунок WPF «Світлофор» із трьох кругів, які циклічно вмикає розкадрування Storyboard з ключовими кадрами; тривалість кожного сигналу (1–30 с) вводиться в поля з перевіркою, розкадрування перебудовується кнопкою Apply, верхній сигнал блимає тричі перед вимкненням, а на кожну зміну сигналу відтворюється короткий звук.
3. Високий рівень. Створити застосунок WPF «Перехрестя» з двома світлофорами для автомобілів і пішохідним світлофором, режимами «звичайний», «нічний» (блимає середній сигнал) і «ручний» (кнопка пішохода), таймером зворотного відліку з анімацією, звуковими сигналами для пішоходів і журналом змін режимів у текстовому файлі.
Варіант 3. Аудіоплеєр подкастів
1. Початковий рівень. Створити застосунок WPF, який відкриває аудіофайл через OpenFileDialog і відтворює його класом MediaPlayer з кнопками Play, Pause, Stop і показом тривалості після події MediaOpened.
2. Базовий рівень. Створити застосунок WPF «Подкасти», який відтворює аудіофайли класом MediaPlayer, зі списком відтворення (файли додаються через OpenFileDialog), кнопками Play, Pause, Stop, повзунком позиції, що оновлюється DispatcherTimer, вибором швидкості відтворення 0,75–2 (SpeedRatio), кнопками перемотування на 15 с назад і 30 с уперед та обробкою MediaFailed.
3. Високий рівень. Створити застосунок WPF «Подкасти», який відтворює аудіофайли зі списку класом MediaPlayer, зберігає для кожного файлу закладки позицій з назвами й останню позицію відтворення в JSON-файлі, продовжує прослуховування з місця зупинки, дозволяє перейти до закладки подвійним клацанням і показує анімований індикатор під час відтворення.
Варіант 4. Слайд-шоу фотографій
1. Початковий рівень. Створити застосунок WPF, який показує по черзі п’ять зображень з папки програми кожні 3 с, змінюючи їх плавним переходом прозорості (DoubleAnimation для Opacity).
2. Базовий рівень. Створити застосунок WPF «Слайд-шоу», який завантажує всі зображення вибраної папки через BitmapImage з DecodePixelWidth, показує їх з переходами «прозорість» або «наближення» (ScaleTransform) на вибір, має кнопки паузи, попереднього й наступного слайда та повідомляє, якщо в папці немає зображень.
3. Високий рівень. Створити застосунок WPF «Слайд-шоу», який показує зображення вибраної папки з плавними переходами, з фоновою музикою (MediaPlayer, повтор після MediaEnded), ефектом повільного руху й наближення кадру, налаштуванням тривалості слайда, повноекранним режимом (F11), керуванням клавішами і збереженням списку слайдів з підписами у файлі.
Варіант 5. Анімований спідометр
1. Початковий рівень. Створити застосунок WPF, у якому стрілка спідометра (шкала 0–200 км/год) плавно повертається до значення, вибраного повзунком, анімацією кута RotateTransform.
2. Базовий рівень. Створити застосунок WPF «Спідометр» зі шкалою з поділками й підписами, намальованою фігурами, стрілкою з функцією пом’якшення ElasticEase, полем введення швидкості з перевіркою діапазону і миготінням позначки «перевищення» понад 120 км/год.
3. Високий рівень. Створити застосунок WPF «Приладова панель» зі спідометром і тахометром, які відтворюють поїздку з CSV-файлу (час, швидкість, оберти) з кроком 0,1 с, мають кнопки паузи, прискореного перегляду (SpeedRatio), повзунок часу, звуковий сигнал перевищення швидкості і підсумкову статистику поїздки.
Варіант 6. Гра «Лови зірку»
1. Початковий рівень. Створити застосунок WPF, у якому зірка (Polygon) з’являється у випадковому місці полотна, плавно збільшується й зникає за 2 с; клацання по зірці збільшує рахунок.
2. Базовий рівень. Створити застосунок WPF «Лови зірку», у якому кілька зірок падають згори з різною швидкістю (покадрова анімація CompositionTarget.Rendering), зірка, спіймана клацанням, зникає з анімацією масштабу і звуком, пропущені зірки зменшують кількість життів, а рахунок показує спіймані зірки.
3. Високий рівень. Створити гру WPF «Лови зірку», у якій зірки падають згори й ловляться клацанням, з рівнями складності, прискоренням гри, бонусними зірками, паузою клавішею Space, фоновою музикою з вимиканням, екраном завершення гри з анімацією та таблицею десяти найкращих результатів у JSON-файлі.
Варіант 7. Модель руху планет
1. Початковий рівень. Створити застосунок WPF, у якому планета рухається еліптичною орбітою навколо зорі; положення обчислюється в обробнику CompositionTarget.Rendering за часом кадру.
2. Базовий рівень. Створити застосунок WPF «Планетна система» з чотирма планетами на еліптичних орбітах, підписами назв, що рухаються разом із планетами, повзунком масштабу часу (0,1–10) і кнопкою паузи.
3. Високий рівень. Створити застосунок WPF «Планетна система», який читає параметри планет (назва, велика піввісь, ексцентриситет, період, радіус) з JSON-файлу з перевіркою, показує сліди орбіт, змінює масштаб колесом миші, виводить дані планети під курсором і лічильник модельних діб.
Варіант 8. Відеоплеєр лекцій
1. Початковий рівень. Створити застосунок WPF, який відтворює власний відеофайл з папки програми в MediaElement (LoadedBehavior="Manual") з кнопками Play, Pause і Stop.
2. Базовий рівень. Створити застосунок WPF «Відеолекції», який відтворює вибраний відеофайл у MediaElement з кнопками Play, Pause, Stop, повзунком позиції, показом часу «поточний / загальний», повзунком гучності, кнопкою вимкнення звуку і повідомленням у разі помилки відкриття файлу (MediaFailed).
3. Високий рівень. Створити застосунок WPF «Відеолекції», який відтворює відео лекції в MediaElement, читає з текстового файлу розділи лекції з таймкодами (00:12:30 Вступ), показує їх списком і переходить до вибраного розділу, підсвічує поточний розділ під час відтворення, має повноекранний режим і запам’ятовує позицію перегляду кожного відео.
Варіант 9. Анімоване меню ресторану
1. Початковий рівень. Створити застосунок WPF зі списком категорій меню, у якому клацання по категорії плавно розгортає або згортає список її страв анімацією висоти.
2. Базовий рівень. Створити застосунок WPF «Меню ресторану» з картками страв (назва, ціна; задано в коді) і кошиком, у якому картки збільшуються під курсором (тригер IsMouseOver з EnterActions і ExitActions), додавання страви до замовлення супроводжується анімацією «польоту» картки до кошика, а підсумкова сума анімовано лічить до нового значення.
3. Високий рівень. Створити застосунок WPF «Меню ресторану» з категоріями й стравами з JSON-файлу, власним шаблоном кнопки категорії зі станами VisualStateManager (MouseOver, Pressed), фільтром за ціною, кошиком зі зміною кількості й анімацією видалення рядка та збереженням замовлення в текстовий файл.
Варіант 10. Метроном
1. Початковий рівень. Створити застосунок WPF, у якому стрілка метронома гойдається з частотою 60 ударів за хвилину, а в кожному крайньому положенні відтворюється WAV-звук класом SoundPlayer.
2. Базовий рівень. Створити застосунок WPF «Метроном», стрілка якого гойдається в такт і в кожному крайньому положенні відтворює звук, з вибором темпу 40–208 ударів за хвилину повзунком і полем з перевіркою, розміром такту 2/4, 3/4 або 4/4, окремим звуком для першої долі та кнопкою Tap, яка визначає темп за інтервалами між натисканнями.
3. Високий рівень. Створити застосунок WPF «Метроном для тренувань» з анімованою стрілкою та звуком кожної долі, списком вправ (назва, темп, кількість тактів), автоматичним поступовим прискоренням темпу, індикатором долей такту з анімацією, збереженням програм тренувань у JSON-файлі та статистикою часу занять.
Варіант 11. Акваріум
1. Початковий рівень. Створити застосунок WPF, у якому рибка (фігура Path) пропливає акваріумом праворуч і назад, розвертаючись дзеркально (ScaleTransform ScaleX="-1") у кінці шляху.
2. Базовий рівень. Створити застосунок WPF «Акваріум», у якому рибки рухаються кривими шляхами (MatrixAnimationUsingPath з поворотом за дотичною), бульбашки піднімаються з випадковою затримкою, а клацання по полотну додає нову рибку в цьому місці.
3. Високий рівень. Створити застосунок WPF «Акваріум» з різними видами рибок з різною швидкістю, годуванням (корм падає, рибки пливуть до найближчого шматочка, покадрова анімація), лічильником ситості, фоновими звуками води, паузою і збереженням стану акваріума у файл.
Варіант 12. Кубик для настільних ігор
1. Початковий рівень. Створити застосунок WPF, у якому кнопка Roll «кидає» гральний кубик: кубик обертається і підстрибує анімацією за ключовими кадрами, після чого показує випадкове значення 1–6 крапками.
2. Базовий рівень. Створити застосунок WPF «Кубики», у якому кнопка кидає гральні кубики (кількість 1–5): кубики одночасно обертаються й підстрибують анімацією з різною тривалістю, потім показують випадкові значення крапками; застосунок виводить суму очок, відтворює звук кидка та показує історію останніх 20 кидків у списку.
3. Високий рівень. Створити застосунок WPF «Кубики» з анімованим кидком гральних кубиків (обертання, підстрибування, значення крапками), гравцями з іменами і чергою ходів, статистикою частот кожного значення стовпчиками з анімацією зростання, скасуванням останнього кидка і збереженням історії гри в CSV-файл.
Варіант 13. Тренажер реакції
1. Початковий рівень. Створити застосунок WPF, який через випадкову затримку 1–4 с показує спалах фігури (анімація масштабу й прозорості) і вимірює час до натискання клавіші Space.
2. Базовий рівень. Створити застосунок WPF «Тренажер реакції», який через випадкову затримку показує спалах фігури (анімація масштабу й прозорості) і вимірює час до натискання клавіші Space, із серією з 10 спроб, фігурами різної форми у випадкових місцях, штрафом за передчасне натискання, звуком спалаху та підсумковою таблицею: найкращий, найгірший і середній час.
3. Високий рівень. Створити застосунок WPF «Тренажер реакції», який показує анімовані спалахи фігур і вимірює час реакції, з режимом вибору (натискати лише на кола, ігнорувати квадрати), рівнями складності, збереженням результатів користувачів у JSON-файлі та графіком прогресу, стовпчики якого з’являються з анімацією.
Варіант 14. Музична шкатулка
1. Початковий рівень. Створити застосунок WPF із клавіатурою піаніно з восьми клавіш, у якій клацання по клавіші анімує її натискання (TranslateTransform униз і назад) і відтворює звук ноти з WAV-файлу.
2. Базовий рівень. Створити застосунок WPF «Піаніно» з клавіатурою з восьми клавіш, які натискаються мишею або клавішами клавіатури (A–K) з анімацією натискання (TranslateTransform) і відтворюють звук ноти з WAV-файлу; кілька звуків можуть звучати одночасно (окремий MediaPlayer для кожної ноти), а за відсутності звукового файлу клавіша позначається й показується повідомлення.
3. Високий рівень. Створити застосунок WPF «Музична шкатулка» з клавіатурою піаніно (звуки нот із WAV-файлів, анімація натискання), який записує зіграну мелодію (ноти й паузи), відтворює її з анімацією клавіш, зберігає й відкриває мелодії в текстовому форматі C4 0,5; E4 0,25 з перевіркою рядків і дозволяє змінити темп відтворення.
Варіант 15. Анімований графік продажів
1. Початковий рівень. Створити застосунок WPF, який показує стовпчикову діаграму продажів за 6 місяців; стовпчики виростають від нуля до значення з функцією пом’якшення CubicEase.
2. Базовий рівень. Створити застосунок WPF «Продажі» зі стовпчиковою діаграмою продажів за місяцями кількох років (дані задано в коді) і перемиканням між роками кнопками; стовпчики плавно змінюють висоту від старих значень до нових (анімація лише з To), а підписи значень над стовпчиками анімовано лічать до нових чисел.
3. Високий рівень. Створити застосунок WPF «Продажі», який читає дані з CSV-файлу (рік, місяць, сума) з пропуском некоректних рядків, показує стовпчикову або лінійну діаграму з анімацією переходу, підказку зі значенням під курсором і зберігає поточну діаграму в PNG (RenderTargetBitmap).
Варіант 16. Караоке-плеєр
1. Початковий рівень. Створити застосунок WPF, який відтворює аудіофайл і показує текст пісні, поступово прокручуючи його анімацією TranslateTransform протягом тривалості пісні.
2. Базовий рівень. Створити застосунок WPF «Караоке», який відтворює аудіофайл пісні класом MediaPlayer, читає текст з мітками часу ([00:12.5] рядок), виділяє поточний рядок збільшенням шрифту й жирністю за позицією відтворення і плавно прокручує список так, щоб поточний рядок був посередині.
3. Високий рівень. Створити застосунок WPF «Караоке», який відтворює пісні зі списку й виділяє поточний рядок тексту за мітками часу, з редактором міток (кнопка ставить мітку поточному рядку під час відтворення), перевіркою порядку міток, збереженням тексту у файл і повзунком позиції, після переміщення якого виділення переходить до відповідного рядка.
Варіант 17. Колесо фортуни
1. Початковий рівень. Створити застосунок WPF із колесом з восьми підписаних секторів, яке після натискання кнопки обертається на випадковий кут з гальмуванням CubicEase EaseOut.
2. Базовий рівень. Створити застосунок WPF «Колесо фортуни» з підписаними секторами (2–12, вводяться списком з перевіркою), яке після натискання кнопки обертається на випадковий кут з гальмуванням, а після зупинки визначає сектор під покажчиком за кінцевим кутом, показує його назву з анімацією і відтворює звук.
3. Високий рівень. Створити застосунок WPF «Колесо фортуни», яке обертається з гальмуванням і визначає сектор під покажчиком, з вагами секторів (ймовірність пропорційна вазі), звуком «клацання» під час проходження кожного сектора, історією результатів, режимом вилучення випалого сектора та збереженням наборів секторів у JSON-файлі.
Варіант 18. Модель пружинного маятника
1. Початковий рівень. Створити застосунок WPF, у якому вантаж на пружині коливається вгору й униз; положення обчислюється в обробнику CompositionTarget.Rendering за формулою гармонічних коливань, а пружина розтягується ScaleTransform.
2. Базовий рівень. Створити застосунок WPF «Пружинний маятник» з повзунками маси (0,1–5 кг), жорсткості (1–100 Н/м) і коефіцієнта затухання, чисельним розв’язанням рівняння руху за часом кадру, показом періоду і кнопкою перезапуску.
3. Високий рівень. Створити застосунок WPF «Пружинний маятник», у якому вантаж на пружині коливається за чисельним розв’язанням рівняння руху, з графіками в реальному часі координати, кінетичної й потенціальної енергії (Polyline), перетягуванням вантажу мишею для задання початкового відхилення, паузою, експортом даних моделювання в CSV-файл і порівнянням періоду з теоретичним.
Варіант 19. Анімований онбординг
1. Початковий рівень. Створити застосунок WPF із трьома сторінками вітання, між якими кнопки Next і Back перемикають з анімацією зсуву сторінки праворуч або ліворуч.
2. Базовий рівень. Створити застосунок WPF «Онбординг» із п’ятьма сторінками, індикатором кроків (активна точка плавно збільшується), перемиканням клавішами-стрілками, кнопкою Skip і сторінкою завершення з анімацією появи елементів по черзі (BeginTime).
3. Високий рівень. Створити застосунок WPF «Онбординг» зі сторінками вітання (заголовок, текст, зображення), що читаються з JSON-файлу з перевіркою й перемикаються кнопками з анімацією зсуву, а також перетягуванням мишею, з відеофрагментом на одній зі сторінок (MediaElement) і збереженням у файлі налаштувань, що онбординг уже пройдено.
Варіант 20. Будильник
1. Початковий рівень. Створити застосунок WPF, у якому в заданий час (година й хвилина вводяться в поля) відтворюється мелодія з WAV-файлу, а значок дзвоника гойдається анімацією повороту.
2. Базовий рівень. Створити застосунок WPF «Будильник» з кількома сигналами в списку, вибором мелодії з папки Sounds, кнопкою відкладення на 5 хв, плавним наростанням гучності мелодії (MediaPlayer.Volume за таймером) і перевіркою введеного часу.
3. Високий рівень. Створити застосунок WPF «Будильник» із сигналами за днями тижня, анімованим годинником-циферблатом, попереднім прослуховуванням мелодій, збереженням сигналів у JSON-файлі, повідомленням у разі відсутності файлу мелодії та журналом спрацювань.
Варіант 21. Гра «Пінг-понг»
1. Початковий рівень. Створити застосунок WPF, у якому м’ячик рухається полем і відбивається від стін; положення обчислюється в обробнику CompositionTarget.Rendering за часом кадру.
2. Базовий рівень. Створити застосунок WPF «Пінг-понг» для двох гравців (ракетки керуються клавішами W і S та стрілками) з відбиттям м’ячика від ракеток зі зміною кута, звуком удару, рахунком і анімацією появи повідомлення про гол.
3. Високий рівень. Створити застосунок WPF «Пінг-понг» з режимом гри проти комп’ютера трьох рівнів складності, поступовим прискоренням м’ячика, паузою, грою до заданої кількості очок, екраном переможця з анімацією і таблицею результатів у файлі.
Варіант 22. Звуковий пульт
1. Початковий рівень. Створити застосунок WPF із шістьма кнопками звукових ефектів, кожна з яких відтворює свій WAV-файл і під час відтворення пульсує анімацією масштабу.
2. Базовий рівень. Створити застосунок WPF «Звуковий пульт» із кнопками звукових ефектів, кожна з яких відтворює свій WAV-файл; звуки можуть звучати одночасно (MediaPlayer), кожна кнопка має свій повзунок гучності й анімований індикатор рівня під час відтворення, а окрема кнопка зупиняє всі звуки.
3. Високий рівень. Створити застосунок WPF «Звуковий пульт» із кнопками, що відтворюють призначені їм звукові файли з анімацією під час відтворення; звуки призначаються кнопкам перетягуванням файлів на кнопку, призначення й гучності зберігаються в JSON-файлі, кнопки запускаються гарячими клавішами 1–9, а непідтримувані файли відхиляються з повідомленням.
Варіант 23. Анімація дорожнього руху
1. Початковий рівень. Створити застосунок WPF, у якому автомобіль (прямокутник) рухається дорогою вздовж кривого шляху PathGeometry з поворотом за напрямком руху (MatrixAnimationUsingPath).
2. Базовий рівень. Створити застосунок WPF «Перехрестя», у якому автомобілі з’являються з інтервалом і рухаються двома дорогами, зупиняються перед світлофором на заборонний сигнал (покадрова анімація) і продовжують рух на дозвільний.
3. Високий рівень. Створити застосунок WPF «Дорожній рух», у якому автомобілі рухаються дорогами через перехрестя зі світлофорами (покадрова анімація) і тримають дистанцію до автомобіля попереду, інтенсивність руху й тривалість сигналів задаються повзунками, зіткнення виявляються за перетином прямокутників і позначаються анімацією та звуком, а статистика пропускної здатності зберігається у файл.
Варіант 24. Відеоальбом подорожей
1. Початковий рівень. Створити застосунок WPF, який показує мініатюри відео з папки програми (кадр MediaElement на початку файлу) і відтворює вибране відео у великому вікні.
2. Базовий рівень. Створити застосунок WPF «Відеоальбом», який показує мініатюри відеофайлів вибраної папки (MediaElement) і відтворює вибране відео у великому вікні; під час наведення курсора мініатюра збільшується і починає беззвучний попередній перегляд, після виходу курсора зупиняється, а для файлів, які не відкриваються, показується напис-замінник.
3. Високий рівень. Створити застосунок WPF «Відеоальбом» з групуванням відео за подорожами з JSON-файлу опису, підписами й датами, фільтром за роком, повноекранним переглядом з повзунком позиції та збереженням обраних відео.
Варіант 25. Кухонний таймер
1. Початковий рівень. Створити застосунок WPF, у якому таймер зворотного відліку показує кільцевий прогрес (дуга Path), що зменшується протягом заданого часу, і відтворює сигнал наприкінці.
2. Базовий рівень. Створити застосунок WPF «Кухонний таймер» зі зворотним відліком і кільцевим прогресом (дуга Path), у якому час вводиться у форматі мм:сс з перевіркою, є кнопки паузи і скидання, останні 10 с цифри пульсують, а сигнал наприкінці повторюється, доки користувач не натисне Stop.
3. Високий рівень. Створити застосунок WPF «Кухонні таймери» з кількома одночасними таймерами з назвами (додавання й видалення з анімацією), окремою мелодією для кожного, шаблонами страв з JSON-файлу і повідомленням про завершення поверх інших вікон.
Варіант 26. Броунівський рух
1. Початковий рівень. Створити застосунок WPF, у якому 50 частинок хаотично рухаються в прямокутнику й відбиваються від стінок; положення обчислюються в CompositionTarget.Rendering.
2. Базовий рівень. Створити застосунок WPF «Броунівський рух» з однією великою частинкою серед 200 малих, пружними зіткненнями, повзунком «температури» (швидкості малих частинок), слідом траєкторії великої частинки і лічильником кадрів за секунду.
3. Високий рівень. Створити застосунок WPF «Броунівський рух» з однією великою частинкою серед багатьох малих, які хаотично рухаються й пружно зіштовхуються, з лічильником зіткнень, графіком середнього квадрата зміщення великої частинки від часу, паузою й покроковим режимом, оптимізацією (заморожені пензлі, одна DrawingVisual або WriteableBitmap) та експортом даних у CSV-файл.
Варіант 27. Інтерактивна карта музею
1. Початковий рівень. Створити застосунок WPF з планом музею з п’яти залів-фігур, у якому зал під курсором підсвічується анімацією прозорості, а клацання показує назву залу.
2. Базовий рівень. Створити застосунок WPF «Карта музею» з планом із залів-фігур, у якому клацання по залу плавно наближає план до цього залу (ScaleTransform і TranslateTransform), показує опис і відтворює аудіогід залу з WAV- або MP3-файлу з кнопками паузи і зупинки.
3. Високий рівень. Створити застосунок WPF «Музей», план якого (зали як шляхи Path і їх описи) читається з JSON-файлу з перевіркою, є маршрут екскурсії з анімованою позначкою відвідувача між залами, автоматичним запуском аудіогіду в кожному залі та позначкою прослуханих залів.
Варіант 28. Гра «Пам’ять»
1. Початковий рівень. Створити застосунок WPF із полем 4 × 4 карток, які перевертаються клацанням анімацією ScaleTransform (стискання, зміна сторони, розгортання).
2. Базовий рівень. Створити застосунок WPF «Пам’ять» з полем 4 × 4 карток, які перевертаються клацанням анімацією ScaleTransform: відкриваються дві картки, однакова пара залишається відкритою зі звуком успіху, різні картки перевертаються назад через 1 с; лічильник ходів і таймер показують результат після завершення гри.
3. Високий рівень. Створити застосунок WPF «Пам’ять» з розмірами поля 4 × 4 і 6 × 6, наборами зображень з папок, анімацією перемішування на початку, рекордами для кожного розміру в JSON-файлі та можливістю продовжити збережену гру.
Варіант 29. Лічильник пожертв
1. Початковий рівень. Створити застосунок WPF зі смугою прогресу збору коштів до мети 100 000 грн, яка плавно заповнюється після введення нової пожертви, і анімованим лічильником суми.
2. Базовий рівень. Створити застосунок WPF «Збір коштів» зі смугою прогресу до мети, яка плавно заповнюється, у якому пожертви вводяться з перевіркою (додатна сума), додаються до списку з анімацією появи, а після досягнення мети запускається анімація «конфеті» з частинок, що падають, і відтворюється звук.
3. Високий рівень. Створити застосунок WPF «Збір коштів» з кількома зборами, проміжними цілями з позначками на смузі прогресу, імпортом пожертв із CSV-файлу з пропуском помилкових рядків, статистикою за днями і збереженням даних у JSON-файлі.
Варіант 30. Тренажер дихання
1. Початковий рівень. Створити застосунок WPF, у якому коло плавно збільшується 4 с (вдих) і зменшується 4 с (видих) з написом поточної фази, повторюючись безперервно.
2. Базовий рівень. Створити застосунок WPF «Тренажер дихання», у якому коло плавно збільшується (вдих) і зменшується (видих) з написом поточної фази, з вибором схеми (4-4, 4-7-8, «квадрат» 4-4-4-4) з фазами затримки, розкадруванням з ключовими кадрами, звуковою підказкою на початку кожної фази та лічильником циклів.
3. Високий рівень. Створити застосунок WPF «Тренажер дихання» з власними схемами (фази й тривалості) у JSON-файлі з перевіркою, тривалістю сеансу, фоновою музикою з плавним вимиканням наприкінці, паузою й відновленням розкадрування та журналом сеансів.
Порядок виконання та захисту роботи
- Опрацювати теоретичні відомості та приклади розв’язання завдань.
- Створити проєкт WPF Application (.NET 10) для свого варіанта; визначити, які рухи відомі заздалегідь (розкадрування), а які обчислюються в кожному кадрі (
CompositionTarget.Rendering). - Описати розмітку в XAML, анімації – у ресурсах і тригерах або в коді; для руху, повороту і масштабу використовувати
RenderTransform. - Підготувати власні медіафайли або файли з вільною ліцензією з офіційного джерела, налаштувати для них Content і Copy if newer, обробити подію
MediaFailed. - Перевірити плавність анімацій, роботу паузи, зупинки й повтору, поведінку після зміни розміру вікна; переконатися, що рух зрозумілий без кольору.
- Продемонструвати роботу застосунку викладачеві, пояснити програмний код і відповісти на контрольні питання.