Новорічна гра у стилі Ruby — це веселий спосіб показати, що програмування може бути святковим, творчим і зовсім не нудним. Сьогодні ми створимо святкові листівки, казкові картинки та магічні ефекти прямо в консолі, використовуючи базові можливості Ruby. Трішки фантазії — і звичайний код перетвориться на сніжинки, подарунки, ялинки та справжній новорічний настрій! 🎄✨
Правила гри:
- Це творчі завдання, тому немає неправильного виконання. Зробіть так, як хочете. Якщо у вас є краща ідея – втільте її у життя.
- Обирайте завдання на свій смак. Не обов’язково робити всі
- Ми не будемо оцінювати, але глянемо разом результат в кінці заняття.
- Сайт зі смайликами тут.
Практика. Новорічна гра у стилі Ruby

В деяких завданнях ви зустрінете цикли. Але не хвилюйтесь, вони вже написані за вас. Головне, що варто про них знати: цикли допомагають повторювати щось багато разів.
1: Допоможіть ДТЕК зробити більш правильний графік відключення світла, щоб він виглядав оптимістичніше.
puts "💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡"
puts "💡💡💡Графік відключень від ДТЕК 💡💡💡"
puts "💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡"
puts "💡 - світло є"
puts "⬛️- світла немає"
myHouse=["⬛️", "⬛️","⬛️","⬛️","💡"]
neighbor=["⬛️", "💡","💡","💡","💡"]
for i in 1..12
m=myHouse.sample()
n=neighbor.sample()
puts "Час : #{i}:00. Мій дім: #{m} Дім навпроти: #{n} "
end 




2: Це мексиканська ялинка, висотою 12 метрів. Переробіть скрипт так, щоб він виводив українську ялинку висотою 18 метрів.
n=12
for i in 1..n
puts (” “*(n-i)+”🌵”*i)
end
puts (” “*(n/2+1)+”🦂🦂🦂🦂”)
puts (” “*(n/2+1)+”🦂🦂🦂🦂”)

3: Ця програма обере всім вам випадковий костюм на Новий Рік. Допишіть її таким чином, щоб програма обирала костюми не тільки дівчатам, а ще й хлопцям. (Використайте списки саме вашої групи!!)
Допишіть ще 1-2 варіанти костюмів для хлопців чи дівчат.
# groupGirls=["Таня", "Діана",]
# groupBoys=["Даня", "Женя", "Міша Л.", "Віталік", "Льоша", "Еміль","Міша П.","Ваня", "Ярік", "Діма","Рома"]
groupGirls=["Вероніка", "Даша", "Варя", "Настя"]
groupBoys=["Кирил","Діма","Міша К","Сева","Захар","Влад","Микита","Саша","Міша Д"]
adjGirls=["Зіркова","Чарівна","Білосніжна","Запальна","Кольорова"]
adjBoys=["Приязний","Чудернацький","Веселий","Сором'язливий","Невгамовний","Гуманний",
"Казковий", "Хоробрий","Кмітливий","Всемогутній","Навіжений", "Несамовитий", "Горделивий"]
costumeGirls=["Фея","Сніжинка","Мандаринка","Вітамінка","Харлі Квін"]
costumeBoys=["Чебурек","Пінгвін","Панда","Маленький Йода","Кіт Степан","Їжачок","Кактус",
"Мачо","Єдиноріг","Моряк","Пес Патрон","Хірург","Огірок","Сніговик","Кентавр","Покемон"]
with=["з мармеладкою","у віночку", "на мопеді","на підборах","з качкою",
"з кавуном","з зеленим волоссям","з золотими зубами","у тракторі",
"на коні","з відром","на вєліку",
"в ластах","у зелених шльопках","в навушниках","на роликах"]
groupGirls.shuffle! #перетасувати список і записати в ту ж змінну
adjGirls.shuffle!
costumeGirls.shuffle!
with.shuffle!
for i in 0..groupGirls.length-1
puts "#{groupGirls[i]} - костюм: #{adjGirls[i]} #{costumeGirls[i]} #{with[i]}"
end 
4: Напишіть або намалюйте смайлами листівку для іншої команди з привітанням зі святами.
5: Створіть список фільмів та мультиків, які варто переглянути на зимових канікулах. Виведіть список на екран
6: Створіть програму, яка обирає випадкове побажання і виводить його на екран. Додайте у список кілька власних побажань за допомогою команд списків
wishes = [
"Бажаю тобі магічного 2025 року! ✨",
"Нехай здійсняться всі мрії у новому році! 🎆",
"Тепла, радості та яскравих моментів! 🎄",
"Нехай удача супроводжує тебе щодня! ⭐",
"Щасливого, сяйливого та казкового року! ❄️"
]7: Ця програма виводила гарний снігопад. Але ельфи її зламали. Переставте рядки таким чином, щоб програма знову працювала
end
sleep(0.1)
puts "З Новим Роком! 🎆✨"
puts " " * rand(40) + "❄️"
10.times do
# Підказка:
# Повторити 10 разів
# вивести кілька пробілів(від 1 до 40) і потім сніжинку
# нічого неробити 0.1 секунди
# закінчити повтори
# вивести привітання
8: Ось список подарунків в мішку у Санти. Додайте ще кілька подарунків за допомогою функцій списків. І додайте також “вугілля” – це буде подарунок неслухняним дітям. Випадковим чином оберіть зі списку подарунок собі та ще одній людині на ваш вибір.
(a.push(“🌞”) # додає в кінець a.unshift(“🏓”) # додає на початок)
gifts = ["новий ноутбук 💻", "смачне какао ☕", "плюшевий ведмедик 🧸", "ігрова миша 🎮", "щасливий день ✨"]9: Перепишіть програму випадкової ялинки на свій смак: Можете змінити або розширити список смайликів або вигляд ялинки
decor = ["✨", "⭐", "🎀", "🎈"]
puts "Твоя рандомна ялинка:"
puts " #{decor.sample}"
puts " #{decor.sample}🌲#{decor.sample}"
puts " #{decor.sample}🌲🌲🌲#{decor.sample}"
puts " #{decor.sample}🌲#{decor.sample}"
puts " 🎁"
10: Ця програма новорічної гірлянди. Додайте ще різні елементи до гірлянди за допомогою функцій списків
(a.push(“🌞”) # додає в кінець a.unshift(“🏓”) # додає на початок)
lights = ["🔴","🟡"]
length = 40 # довжина гірлянди
frames = 30 # скільки раз показати анімацію
frames.times do
system("clear") || system("cls") # очистка екрана
garland = (0...length).map { lights.sample }.join
puts garland
sleep 0.2
end❄️ Завдання з зірочкою ❄️
1*: Попросіть людину обрати рівень побажань:
“Обери рівень побажань: (1) легкі, (2) потужні, (3) епічні” залежно від вибору виведіть на екран відповідне побажання. Наприклад (побажання можете змінити):
легке: “Нехай твій рік буде спокійним і затишним ❄️”
потужне: “Бажаю океан удачі та везіння! 🎆”
епічне: “Лови мегазаклинання успіху +1000 XP! 🧙♀️✨”
якщо обрали щось інше: “Ти обрав секретний рівень — бажаю всього й одразу! 🎁🌟”
2*: Створіть список з 3-4 людей з нашої групи. Створіть інший список з передбаченнями (можете використати приклад). Для кожної людини з першого списку виведіть випадкове передбачення
predictions = [
"Цього року ти вивчиш нову суперсилу! 💫",
"Тебе чекає неймовірна пригода! 🌍",
"У тебе з'явиться новий крутий друг 🧡",
"Ти станеш сильнішою та сміливішою! 🦸♀️",
"2025 подарує тобі великий успіх! 🚀"
]
3*: Створіть новорічну листівку. Юзер вводить з клавіатури :
– для кого буде листівка (наприклад: для хлопця, дівчинки, для батьків)
– смайлик
– число
Програма має видати привітання для того, кого обрав юзер. Також програма має намалювати ялинку смайлами(див. приклад у завданні 2), програма має використати розмір і смайлик, які ввів користувач.
Для кого буде листівка? > для батьків
Введіть смайлик для ялинки: > 🌲
Введіть число (розмір ялинки): > 4
🎉🌲 З НОВИМ РОКОМ! 🌲🎉
Дорогі батьки ❤️
Дякую вам за тепло, підтримку та любов. Нехай у новому році в домі буде затишок,
здоров’я та мир 🌟
🌲
🌲🌲
🌲🌲🌲
🌲🌲🌲🌲
🎁🎁
🎁🎁
4*: Допишіть гру “Впіймай сніжинку”
# ❄️ Гра "Впіймай сніжинку"
positions = список з 5 чисел
snow_pos = випадковий елемент зі списку
puts "Сніжинка падає! Обери позицію (1–5):"
puts " ❄️ падає десь тут..."
print "Куди ставиш руку? → "
guess = зчитати з клавіатури число, яке ввели
якшо число_яке_ввели==snow_pos
puts "Ти піймала сніжинку! ❄️😎"
інакше
puts "Не встигла! Сніжинка була в позиції #{snow_pos} ❄️"
кінець
5*: І знову ельф зламав нам програму і перемішав всі рядки. Переставте рядки таким чином, щоб програма виводила кількість днів до Нового року ⏳

days_left = (new_year - today).to_i
new_year = Date.new(today.year + 1, 1, 1)
puts "До Нового Року залишилось: #{days_left} днів! 🎉"
today = Date.today
require 'date'6*: Цей дивний список називається словник (будемо його вчити в наступному семестрі): він містить ялинкову іграшку і передбачення до неї. Допишіть список, додавши ще більше іграшок і пояснення. Програма обирає випадкову іграшку і виводить передбачення.
Додайте у програму список з кількох своїх вчителів. Виведіть іграшку і передбачення на Новий Рік для кожного вчителя

# 🎄 Ворожіння по ялинковій іграшці
toys = {
"⭐" => "Успіх на горизонті!",
"❤️" => "Кохання поруч ❤️"
}
toy = toys.keys.sample
puts "Тобі випала іграшка: #{toy}"
puts "Пророцтво: #{toys[toy]}"7*: Створіть ASCII-мистецтво (ASCII-art): намалюйте малюнок за допомогою спецсимволів (в прикладі ялинка). Виведіть на екран. Потім перемішайте список art і виведіть на екран знову.
# Малюнок ялинки (ASCII-art)
art = [
" *",
" ***",
" *****",
" *******",
" *********",
" |||",
" |||"
]
# Показуємо ялинку
art.each { |line| puts line }
Домашня робота
1: Якщо ви були на занятті – просто скиньте класну роботу і Санта зарахує вам дз. Якщо вас не було, зробіть 2 завдання на вибір

Level Up!
Новорічна гра у стилі Ruby
1: Якщо ви були на занятті та робили завдання з зірочкою, то просто додайте їх і Санта зарахує LU. Якщо ні, зробіть 2 завдання з зірочкою на ваш вибір
Календар програміста:

Не зупиняйтесь у вивченні Ruby! До зустрічі на наступних уроках!
