Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Полная адаптация программы из QuickBasic для OpenComputers на Lua
- local component = require("component")
- local term = require("term")
- local event = require("event")
- local computer = require("computer")
- -- Подключаем компоненты
- local gpu = component.gpu
- local note = component.isAvailable("note") and component.note or nil
- -- Настройки экрана
- local screenWidth, screenHeight = gpu.getResolution()
- -- Общие переменные
- local posX, posY = 1, 1
- local credits = {}
- local creditIndex = 1
- local lineNumber = 0
- local songLines = {}
- -- Заполнение массива кредитов
- local function initializeCredits()
- credits = {
- ">LIST PERSONNEL",
- "",
- "Gautam Babbar",
- "Ted Backman",
- "Kelly Bailey",
- "Jeff Ballinger",
- "Aaron Barber",
- "Jeep Barnett",
- "Jeremy Bennett",
- "Dan Berger",
- "Yahm Bernier",
- "Ken Birdwell",
- "Derrick Birum",
- "Mike Blaszczak",
- "Iestyn Bleasdale-Shepherd",
- "Chris Bokitch",
- "Steve Bond",
- "Matt Boone",
- "Antoine Bourdon",
- "Jamaal Bradley",
- "Jason Brashill",
- "Charlie Brown",
- "Charlie Burgin",
- "Andrew Burke",
- "Augusta Butlin",
- "Julie Caldwell",
- "Dario Casali",
- "Chris Chin",
- "Jess Cliffe",
- "Phil Co",
- "John Cook",
- "Christen Coomer",
- "Greg Coomer",
- "Scott Dalton",
- "Kerry Davis",
- "Jason Deakins",
- "Joe Demers",
- "Ariel Diaz",
- "Quintin Doroquez",
- "Jim Dose",
- "Chris Douglass",
- "Laura Dubuk",
- "Mike Dunkle",
- "Mike Durand",
- "Mike Dussault",
- "Dhabih Eng",
- "Katie Engel",
- "Chet Faliszek",
- "Adrian Finol",
- "Bill Fletcher",
- "Moby Francke",
- "Stephane Gaudette",
- "Kathy Gehrig",
- "Vitaliy Genkin",
- "Paul Graham",
- "Chris Green",
- "Chris Grinstead",
- "John Guthrie",
- "Aaron Halifax",
- "Reagan Halifax",
- "Leslie Hall",
- "Jeff Hameluck",
- "Joe Han",
- "Don Holden",
- "Jason Holtman",
- "Gray Horsfield",
- "Keith Huggins",
- "Jim Hughes",
- "Jon Huisingh",
- "Brian Jacobson",
- "Lars Jensvold",
- "Erik Johnson",
- "Jakob Jungels",
- "Rich Kaethler",
- "Steve Kalning",
- "Aaron Kearly",
- "Iikka Keranen",
- "David Kircher",
- "Eric Kirchmer",
- "Scott Klintworth",
- "Alden Kroll",
- "Marc Laidlaw",
- "Jeff Lane",
- "Tim Larkin",
- "Dan LeFree",
- "Isabelle LeMay",
- "Tom Leonard",
- "Jeff Lind",
- "Doug Lombardi",
- "Bianca Loomis",
- "Richard Lord",
- "Realm Lovejoy",
- "Randy Lundeen",
- "Scott Lynch",
- "Ido Magal",
- "Nick Maggiore",
- "John McCaskey",
- "Patrick McClard",
- "Steve McClure",
- "Hamish McKenzie",
- "Gary McTaggart",
- "Jason Mitchell",
- "Mike Morasky",
- "John Morello II",
- "Bryn Moslow",
- "Arsenio Navarro",
- "Gabe Newell",
- "Milton Ngan",
- "Jake Nicholson",
- "Martin Otten",
- "Nick Papineau",
- "Karen Prell",
- "Bay Raitt",
- "Tristan Reidford",
- "Alfred Reynolds",
- "Matt Rhoten",
- "Garret Rickey",
- "Dave Riller",
- "Elan Ruskin",
- "Matthew Russell",
- "Jason Ruymen",
- "David Sawyer",
- "Marc Scaparro",
- "Wade Schin",
- "Matthew Scott",
- "Aaron Seeler",
- "Jennifer Seeley",
- "Taylor Sherman",
- "Eric Smith",
- "Jeff Sorensen",
- "David Speyrer",
- "Jay Stelly",
- "Jeremy Stone",
- "Eric Strand",
- "Kim Swift",
- "Kelly Thornton",
- "Eric Twelker",
- "Carl Uhlman",
- "Doug Valente",
- "Bill Van Buren",
- "Gabe Van Engel",
- "Alex Vlachos",
- "Robin Walker",
- "Joshua Weier",
- "Andrea Wicklund",
- "Greg Winkler",
- "Erik Wolpaw",
- "Doug Wood",
- "Matt T. Wood",
- "Danika Wright",
- "Matt Wright",
- "Shawn Zabecki",
- "Torsten Zabka",
- "",
- "'Still Alive' by:",
- "Jonathan Coulton",
- "",
- "Voices:",
- "Ellen McLain - GLaDOS, Turrets",
- "Mike Patton - THE ANGER SPHERE",
- "",
- "Voice Casting:",
- "Shana Landsburg-Teri Fiddleman",
- "",
- "Voice Recording:",
- "Pure Audio, Seattle, WA",
- "",
- "Translations:",
- "SDL",
- "",
- "Crack Legal Team:",
- "Liam Lavery",
- "Karl Quackenbush",
- "Kristen Boraas",
- "Kevin Rosenfield",
- "Alan Bruggeman",
- "Dennis Tessier",
- "",
- "Special thanks to everyone at:",
- "Alienware",
- "ATI",
- "Dell",
- "Falcon Northwest",
- "Havok",
- "SOFTIMAGE",
- "and Don Kemmis, SLK Technologies",
- "",
- "THANK YOU FOR PARTICIPATING",
- "IN THIS",
- "ENRICHMENT CENTER ACTIVITY!!",
- }
- end
- -- Заполнение строк текста песни
- local function initializeSong()
- songLines = {
- "This was a triumph.",
- "I'm making a note here: HUGE SUCCESS.",
- "It's hard to overstate my satisfaction.",
- "Aperture Science:",
- "We do what we must, because we can.",
- "For the good of all of us.",
- "Except the ones who are dead.",
- "But there's no sense crying over every mistake.",
- "You just keep on trying till you run out of cake.",
- "And the science gets done, and you make a neat gun.",
- "For the people who are still alive.",
- -- Добавьте остальные строки песни
- }
- end
- -- Воспроизведение текста с разной скоростью
- local function slowText(text, delay)
- for i = 1, #text do
- local char = text:sub(i, i)
- gpu.set(posX, posY, char)
- posX = posX + 1
- if posX > screenWidth then
- posX = 1
- posY = posY + 1
- end
- os.sleep(delay or 0.1)
- end
- end
- local function fastText(text)
- slowText(text, 0.05)
- end
- local function slowerText(text)
- slowText(text, 0.2)
- end
- -- Очистка строки и каретки
- local function clearCaret()
- gpu.set(posX, posY, " ")
- posX = 1
- end
- -- Отображение лого
- local function drawApertureLogo()
- local logo = {
- " .,-:;//;:=, ",
- " . :H@@@MM@M#H/.,+%;, ",
- " -+@MM; $M@@MH+-,;XMMMM@MMMM@+- ",
- " ;@M@@M- XM@X;. -+XXXXXHHH@M@M#@/. ",
- " -@#@@@MX ., -%HX$$%%%+; ",
- " =-./@M@M$ .;@MMMM@MM: ",
- ",@M@H: :@: . -X#@@@@-",
- ",@@@MMX, . /H- ;@M@M=",
- " /MMMM@MMH/. XM@MH; -; ",
- " /%+%$XHH@$= , .H@@@@MX, ",
- " .%MM@@@HHHXX$$$%+- .:$MMX -M@@MM%. ",
- " =XMMM@MM@MM#H;,-+HMM@M+ /MMMX= ",
- " ,:+$+-,/H#MMMMMMM@- -, ",
- " =++%%%%+/:-. "
- }
- clearScreen()
- for i, line in ipairs(logo) do
- gpu.set(1, i, line)
- end
- end
- -- Основная логика программы
- local function main()
- initializeCredits()
- initializeSong()
- clearScreen()
- slowText("Forms FORM-29827281-12:", 0.1)
- posY = posY + 1
- slowText("Test Assessment Report", 0.1)
- os.sleep(1)
- -- Логотип
- drawApertureLogo()
- os.sleep(2)
- -- Перебор кредитов
- clearScreen()
- for i = 1, #credits do
- clearCaret()
- gpu.set(posX, posY, credits[i])
- os.sleep(0.5)
- posY = posY + 1
- if posY > screenHeight then
- posY = 1
- clearScreen()
- end
- end
- -- Показ текста песни
- clearScreen()
- for i, line in ipairs(songLines) do
- gpu.set(1, i, line)
- os.sleep(1)
- end
- end
- -- Запуск программы
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement