Метатабличный / Говнокод #20416 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
math.randomseed(os.time())

local a = {}

a[#a+1] = function() --create
	local t = {}
	t[#a+1] = math.random(1,100)
	t[#a+2] = 'хуй'
	return setmetatable(t,{__index = a})
end

a[#a+1] = function() --empty function
end

local t = a[1]()
for k,v in ipairs(t) do
	print(k,v) --показывает все элементы таблицы как положено
end
print(#t) --0
print(t[4]) --хуй

Загадка: почему длина таблицы t = 0?

ps. # - это оператор возращает длину

Sfabrikan Sfabrikan, (Updated )

Комментарии (10, +10)

Метатабличный / Говнокод #20043 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
local p = 14 --puxel
local font = love.graphics.newFont("LiberationMono-Regular.ttf",p)
love.graphics.setFont(font)
local text = "ASSHOLEGHOSTWISHMASTER"
love.filesystem.setIdentity(text)
local img = love.image.newImageData("jpg/Gutalax - Asshole Ghost Wishmaster  (official)(1) 0001.jpg")
local w, h = img:getDimensions( )
text = text:rep(math.ceil(w/text:len()))
local t = love.filesystem.getDirectoryItems(text)
t = #t
--print(t)
cdr = 1200 --frame
t = cdr-1 --one frame
--love.graphics.setBackgroundColor(0,0,0)
	for i=t+1,  cdr do
		local n = string.format("%04d",i)
		img = love.image.newImageData("jpg/Gutalax - Asshole Ghost Wishmaster  (official)(1) "..n..".jpg")
		local c = love.graphics.newCanvas(w*(p-1),h*(p-1))
		love.graphics.setCanvas(c)
		love.graphics.setColor(0,0,0)
		love.graphics.rectangle("fill", 0, 0, w*(p-1), h*(p-1) )
		for x=0, w-1 do
			for y=0, h-1 do
				local r,g,b = img:getPixel(x,y)
				love.graphics.setColor(r,g,b)
				love.graphics.print(text:sub(x,x),(x-1)*(p-1),(y-1)*(p-1))
			end
		end
		print("procesing "..i)
		local screen = c:newImageData()
		screen:encode('png',i..'.png')
		collectgarbage()
	end
	love.graphics.setCanvas()

На скриптах такое лучше не реализовывать, очень медлено...
Выхлоп: https://yadi.sk/i/tI8Wi2ukrpY8i

Sfabrikan Sfabrikan, (Updated )

Комментарии (14, +14)

Метатабличный / Говнокод #20005 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
do
	local gull, coc --гуля? сосок?
	local tbl = {}
	math.randomseed(os.time()*os.clock()/math.floor(os.clock()))
	print("Введите число кокосов")
	local val = io.read("*number")
	local sum_wei = 0
	local sg = 0
		for i=1, val do
			coc = math.random(1500,2500)
			print("Кокос № "..i.."весит: "..coc.." гр.")
			sum_wei = sum_wei + coc
		end
		while true do
			gull = math.random(17,19)
			--print("ласточка №"..i.."весит: "..gull)
			table.insert(tbl,0)
			sg = sg + gull/2
			if sg > sum_wei then break end
		end
	local val_s = #tbl
	local t = "кокос"
	if val < 5 and  val > 1 then
		t = t.."а"
	elseif val > 4 then
		t = t.."ов"
	end
	local c = "ласточ"
	if val_s < 5 and  val_s > 1 then
		c = c.."и"
	elseif val_s > 4 then
		c = c.."ек"
	end
	print("Вам "..val_s.." "..c.." принесли "..val.." "..t.."\n Общая масса ласточек: "..sg.."\n Общая масса кокосов: "..sum_wei)
end

Подсчет сколько нужно ласточек для n число кокосов
Привет из "Монти Пайтон и Священый Грааль"
Хотите подсчитать в онлайн интерпретаторах? на 6 строчке замените io.read("*number") на нужное вам число кокосов. например так
local val = 10
Нет это не лаба, хотя и выглядит так.

Sfabrikan Sfabrikan, (Updated )

Комментарии (12, +12)