Advertisement
Neverlose

Untitled

Dec 13th, 2024
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. -- Баллистический калькулятор для пушек из Create Big Cannons
  2.  
  3. -- Функция для вычисления дальности снаряда
  4. function calculateRange(initialVelocity, angle)
  5. local g = 9.81 -- Ускорение свободного падения в м/с²
  6. local radians = math.rad(angle) -- Преобразуем угол в радианы
  7.  
  8. -- Формула для дальности полета снаряда
  9. return (initialVelocity^2 * math.sin(2 * radians)) / g
  10. end
  11.  
  12. -- Функция для отображения простого GUI
  13. function drawGUI()
  14. term.clear()
  15. term.setCursorPos(1, 1)
  16. print("Баллистический калькулятор для Create Big Cannons")
  17. print("===============================================")
  18. print("1. Введите начальную скорость (м/с):")
  19. print("2. Введите угол выстрела (градусы):")
  20. print("3. Нажмите Enter для расчета дистанции.")
  21. end
  22.  
  23. -- Основная функция
  24. function main()
  25. drawGUI()
  26.  
  27. -- Ввод данных
  28. term.setCursorPos(1, 5)
  29. write("Начальная скорость (м/с): ")
  30. local v0 = tonumber(read())
  31.  
  32. term.setCursorPos(1, 6)
  33. write("Угол выстрела (градусы): ")
  34. local angle = tonumber(read())
  35.  
  36. -- Проверка на наличие корректных вводов
  37. if not v0 or not angle then
  38. print("Ошибка: Пожалуйста, введите действительные числа.")
  39. return
  40. end
  41.  
  42. -- Расчет и вывод результата
  43. local range = calculateRange(v0, angle)
  44.  
  45. term.setCursorPos(1, 8)
  46. print("Дальность полета снаряда: " .. range .. " метров")
  47. end
  48.  
  49. -- Запуск основной функции
  50. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement