|
You last visited: Today at 15:13
Advertisement
[Guide] Lua Iteratoren
Discussion on [Guide] Lua Iteratoren within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
11/11/2015, 21:16
|
#1
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
[Guide] Lua Iteratoren
Eine generische for Schleife:
Code:
for x in <function> do
--code
end
ruft für jeden Durchgang die <function> auf, bis diese nichts mehr zurückgibt.
Man kann sich also einen eigenen Iterator definieren, indem man diese Function zurückgibt.
Hier ein kleines Beispiel:
Code:
function range(i1, i2, increment)
local from = i2 and i1 or 1
local to = i2 and i2 or i1
local increment = increment or 1
local i = from - increment
return function()
i = i + increment
if i < to then
return i
end
end
end
for i in range(10, 20) do
print(i)
end
Code:
> dofile("test.lua")
10
11
12
13
14
15
16
17
18
19
|
|
|
11/11/2015, 21:19
|
#2
|
elite*gold: 0
Join Date: Apr 2011
Posts: 1,121
Received Thanks: 271
|
Im Moment hast du nen Releasewahn. Find ich nice.
|
|
|
11/11/2015, 21:29
|
#3
|
elite*gold: 6
Join Date: Feb 2010
Posts: 2,779
Received Thanks: 4,267
|
Hab dir gerne bei der Schleife geholfen, nettes Release
|
|
|
11/11/2015, 22:19
|
#4
|
elite*gold: 192
Join Date: Aug 2009
Posts: 5,797
Received Thanks: 3,141
|
Mir fällt nichts anderes ein um dem RLS meine Bewunderung kund zu tun.
|
|
|
11/13/2015, 16:22
|
#5
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
PHP Code:
function range(i1, i2, increment)
local from = i2 and i1 or 1
local to = i2 and i2 or i1
local increment = increment or 1
local i = from - increment
return function()
i = i + increment
if i < to then
return i
end
end
end
for i in range(10, 20) do
print(i)
end
PHP Code:
for i = 10, 20 do
print(i)
end
|
|
|
11/13/2015, 16:26
|
#6
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by Rofelmau
PHP Code:
function range(i1, i2, increment)
local from = i2 and i1 or 1
local to = i2 and i2 or i1
local increment = increment or 1
local i = from - increment
return function()
i = i + increment
if i < to then
return i
end
end
end
for i in range(10, 20) do
print(i)
end
PHP Code:
for i = 10, 20 do
print(i)
end

|
Es geht ums Prinzip, wie Iteratoren in Lua funktionieren, nicht darum wie sinnvoll mein Beispiel ist.
Du kannst mit der Info aus diesem Thread auch viel komplexere Iteratoren basteln
|
|
|
11/14/2015, 16:19
|
#7
|
elite*gold: 26
Join Date: Oct 2011
Posts: 1,262
Received Thanks: 1,062
|
Beispiel für einen komplexeren Iterator:
Code:
function fibonacci_iter(max_num)
local before = -1
local key = -1
local curerent = 1
return function()
value = before + curerent
if value > max_num then
return nil, nil
end
before = curerent
curerent = value
key = key+1
return key, value
end
end
for k,v in fibonacci_iter(100) do
print(string.format("key=%2d, value=%2d", k, v))
end
Ausgabe:
Code:
key= 0, value= 0
key= 1, value= 1
key= 2, value= 1
key= 3, value= 2
key= 4, value= 3
key= 5, value= 5
key= 6, value= 8
key= 7, value=13
key= 8, value=21
key= 9, value=34
key=10, value=55
key=11, value=89
Es handelt sich hierbei um die Fibonacci-Folge. (Die Summe zweier aufeinanderfolgender Zahlen ist immer die darauffolgende Zahl)
Es gilt immer F₀ = 0 und F₁ = 1!
Danach läuft das ganze nach Fₓ₊₁=Fₓ+Fₓ₋₁ //Gibt leider kein tiefgestelles Unicode n
Wieso ich das jetzt hier dazu geschrieben habe, weiß ich selber nicht ganz genau, jedoch sollte es zeigen, dass man doch mehr Zeugs mit Custom-Iteratoren anstellen kann als so mancher hier denkt.
Noch ein bisschen Offtopic am Ende:
i cry every time.
Danke fürs Teilen Sensi!
- Crysis
|
|
|
Similar Threads
|
[Guide]Farm Guide Metin2[Guide]
02/05/2012 - Metin2 Guides & Templates - 24 Replies
#Delet aus sicherheits gründen.
|
[GUIDE] Item Filter Guide | Cabal Crafting & Dungeon Guide by Dewa Gempak.
06/15/2008 - Cabal Guides & Templates - 5 Replies
Since its his work, just SHARING it here, i just gonna link his URL from his work. because i dont like copy and pasting other ppl's guides:
http://119.110.98.150:90/ipb/index.php?showtopic= 1145
Q#1: Does it work with CabalRider (PH)?
A#1: Yes, it works, i tried it personally myself.
Q#2: I'm too dumb to understand it, how to make it work.
A#2: Try reading it again and again, if u still don't know how, don't use it then sleep.gif
|
All times are GMT +1. The time now is 15:14.
|
|