Напиши свою первую игру на Lua — даже если ты никогда не программировал
Создаём свою первую игру "Угадай число" на языке Lua — пошагово, понятно и с весёлым результатом.
Lua — это лёгкий и быстрый язык программирования, который часто используют в играх, приложениях и даже микроконтроллерах. Его синтаксис очень простой, поэтому он идеально подходит для новичков. Lua используют в известных проектах: например, в Roblox, Angry Birds, World of Warcraft и многих других играх.

🎮 Что мы будем делать в этой статье
Вместе мы создадим простую, но увлекательную игру "Угадай число". Это текстовая игра, в которой компьютер загадает случайное число, а ты (или игрок) будешь пытаться его угадать. Всё это — с помощью базовых команд на Lua. Эта игра поможет тебе понять, как работают переменные, условия, циклы и ввод данных от пользователя.
Программа будет полностью рабочей, и ты сможешь не только её запустить, но и изменить под себя или дополнить. Готов? Поехали! 🚀
🧩 Почему Lua идеален для новичков и геймдева
Простой синтаксис — читается почти как обычный текст
Минимум лишнего — ты сразу пишешь логику, без лишней «обвязки»
Мгновенный запуск — копируй, вставляй и запускай онлайн
Реально используется в играх — например, в Roblox и Defold
🛠️ Как шаг за шагом построить простую игру
Предлагаем начать с классики — игры «Угадай число».
Что делает игра:
Компьютер загадывает число от 1 до 10
Игрок пытается угадать за 3 попытки
Игра говорит, выиграл ты или нет
Готовый код (можно вставить в Replit):
math.randomseed(os.time())
local secret = math.random(1, 10)
local attempts = 3
print("Привет! Я загадал число от 1 до 10.")
print("У тебя есть " .. attempts .. " попытки угадать!")
while attempts > 0 do
io.write("Введи число: ")
local guess = tonumber(io.read())
if guess == secret then
print("🎉 Ура! Ты угадал!")
break
else
attempts = attempts - 1
if attempts > 0 then
print("❌ Неправильно. Осталось попыток: " .. attempts)
else
print("😢 Увы, ты проиграл. Загаданное число было: " .. secret)
end
end
end
🔍 Подробно разбираем код игры «Угадай число»
math.randomseed(os.time())
⏱️ Эта строка «засеивает» генератор случайных чисел текущим временем. Это нужно, чтобы каждый раз игра загадывала новое число. Без неё программа будет выбирать одно и то же число при каждом запуске.
local secret = math.random(1, 10)
🎯 С помощью math.random
выбираем случайное число от 1 до 10. Это и есть загаданное число, которое нужно угадать игроку.
local attempts = 3
📉 Устанавливаем количество попыток — в нашем случае три.
print("Привет! Я загадал число от 1 до 10.")
print("У тебя есть " .. attempts .. " попытки угадать!")
💬 Выводим приветствие и инструкцию. Оператор ..
объединяет строки и переменные.
while attempts > 0 do
🔁 Запускаем цикл, который будет выполняться, пока у игрока есть хотя бы одна попытка.
io.write("Введи число: ")
local guess = tonumber(io.read())
⌨️ Запрашиваем ввод. io.read()
считывает строку, а tonumber()
превращает её в число.
if guess == secret then
print("🎉 Ура! Ты угадал!")
break
✅ Если пользователь угадал число — поздравляем и выходим из цикла с помощью break
.
else
attempts = attempts - 1
❌ Если не угадал — уменьшаем количество оставшихся попыток.
if attempts > 0 then
print("❌ Неправильно. Осталось попыток: " .. attempts)
📢 Сообщаем, сколько осталось попыток.
else
print("😢 Увы, ты проиграл. Загаданное число было: " .. secret)
end
end
end
🏁 Если попытки закончились — выводим сообщение о проигрыше и показываем правильное число.
💡 Чему ты учишься, пока пишешь эту игру:
Работать с переменными:
secret
,attempts
,guess
Использовать ввод/вывод:
io.read()
,print()
Писать условия:
if / else
,==
Работать с циклами:
while
Использовать случайные числа:
math.random
🎮 Всё это — в формате настоящей игры, которую ты можешь запустить, изменить и доработать!
Если хочешь учиться программированию по-человечески — без стресса, с понятными задачами и поддержкой — приходи в Кодик.
📚 Пошаговые курсы по Lua, Python и JavaScript
🤖 Поддержка ИИ, если что-то непонятно
💬 Telegram-канал, где новички и опытные помогают друг другу