Напиши свою первую игру на Lua — даже если ты никогда не программировал

Создаём свою первую игру "Угадай число" на языке Lua — пошагово, понятно и с весёлым результатом.

Lua

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

🎮 Что мы будем делать в этой статье

Вместе мы создадим простую, но увлекательную игру "Угадай число". Это текстовая игра, в которой компьютер загадает случайное число, а ты (или игрок) будешь пытаться его угадать. Всё это — с помощью базовых команд на Lua. Эта игра поможет тебе понять, как работают переменные, условия, циклы и ввод данных от пользователя.

Программа будет полностью рабочей, и ты сможешь не только её запустить, но и изменить под себя или дополнить. Готов? Поехали! 🚀

🧩 Почему Lua идеален для новичков и геймдева

  • Простой синтаксис — читается почти как обычный текст

  • Минимум лишнего — ты сразу пишешь логику, без лишней «обвязки»

  • Мгновенный запуск — копируй, вставляй и запускай онлайн

  • Реально используется в играх — например, в Roblox и Defold

🛠️ Как шаг за шагом построить простую игру

Предлагаем начать с классики — игры «Угадай число».

Что делает игра:

  1. Компьютер загадывает число от 1 до 10

  2. Игрок пытается угадать за 3 попытки

  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-канал, где новички и опытные помогают друг другу