Перейти к содержимому

Рекомендуемые сообщения

EJ0Jhne.png

 

Сколько вы можете придумать способов напечатать фразу "Hello World!" десять раз, при помощи Луа?

 

Мой вклад в копилку:

1) Рекурсией

function hello(times)
  if times > 0 then print "Hello World!"; hello(times-1) end
end
hello(10)

2) Заменой

local source = "          "
local hello = source:gsub(" ", "Hello World!\n")
print(hello)
Изменено пользователем Totoro

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

for i = 1, 10 do

     print('Hello World!)

end

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

print('Hello World!')

print('Hello World!')

print('Hello World!')

print('Hello World!')

print('Hello World!')

print('Hello World!')

print('Hello World!')

print('Hello World!')

print('Hello World!')

print('Hello World!')

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

print(string.rep("Hello world!\n", 10))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Самое очевидное это циклы

Goto:

i = 10
::hello::
print('Hello World!')
i = i - 1
if i >= 1 then
  goto hello
end

While:

i = 10
while i >= 1 do
  print('Hello World!')
  i = i - 1
end

Repeat:

i = 10
repeat
  print('Hello World!')
  i = i - 1
until i <= 0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пара идей, в которых счетчиком цикла является сама фраза "Hello World!"

s1="He" s2="llo World!"
repeat
  print(s1..s2)
  s1=s1..s2:sub(1,1)
  s2=s2:sub(2)
until s2==""
s1="Hello World!"
for _ in s1:gmatch("%w") do
 print(s1)
end

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

print('Hello World! Десять раз')

 

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
local int = 0
local f = require("filesystem")
require("term").clear()

if f.exists("hello") then 
 local file = io.open("hello","r")
 int = file:read(1)
 file:close()
end

if int == 10 then os.exit() end

print("Hello World!")
int = int + 1
file = io.open("hello","w")
file:write(int)
file:flush()
file:close()
os.execute("helloworld")
os.exit()

Прожка достает число из файла hello, если он есть, затем смотрит, если число 10 - то есть прога уже выполнила все, что нужно, то выходит не создавая новый свой экземпляр, если же нет - то пишет Hello World, добавляет 1 к числу, открывает файл hello на запись и пишет туда это число. Затем запускает сама себя и закрывается.

 

Писал по памяти, на компе OC не тестировал, концепт думаю ясен

Изменено пользователем danshat

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

gpu=require("component").gpu
s="Hello World!"
for i=1,1000 do
x=math.random(12)
y=math.random(10)
gpu.set(x,y,s:sub(x,x))
os.sleep(0.1)
end

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


local t = {}

for i = 1, 10 do
t[i] = "Hell"
end

print(table.concat(t, "o, World!\n") .. "o, World!")

 

Изменено пользователем LeshaInc

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


function map(func, array)
local new_array = {}
for i,v in ipairs(array) do
new_array[i] = func(v)
end
return new_array
end

local range = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

map(function() print("Hello World!") end, range)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

io.write(string.char(72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


local str = 'hello world'

local str_len = #str

for i = 1, 10 do
local matches = 0
local now_ch = string.sub(str, 1, 1)
while matches <= str_len do
local ch = string.char(math.random(1, 255))
if ch == now_ch then
io.write(ch)
matches = matches + 1
now_ch = string.sub(str, matches + 1, matches + 1)
end
end
print()
end

 

Изменено пользователем NEO

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо десять раз напечатать. У тебя только один. =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо десять раз напечатать. У тебя только один. =)

Так печатает 10 раз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


local gpu = require("component").gpu;
local str = "Hello world!"
 
for i = 1, str:len() do
 gpu.fill(i,1,1,10,str:sub(i,i));
end;


Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


io = require("io")
file = io.open("hello.lua","w")
file:write("print('hello world')")
file:flush()
file:close()
for i=1,10 do
dofile("hello.lua")
end


load(string.rep("print(\"hello world\")",10))()

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Многопоточный способ

mQbjrMx.gif
Используя еще недописанную операционку xD

Код программы(запущены 10 копий):
 

local c = "Hello world!"
local gpu = require("component").gpu
for i = 1, #c do
    gpu.set(i, 1, c:sub(i, i))
    os.sleep(0.125)
end
Изменено пользователем RccHD

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
a = "Hello world!"
print(a, a, a, a, a, a, a, a, a, a)

Предупреждение:я новичок в кубе, по сути то же самое что и у evgkul, просто в двух строчках. Могу и накосячить(возможно)

Я кстать это и подразумевал в чате. 

Изменено пользователем AnothRt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...