Register for your free account! | Forgot your password?

You last visited: Today at 15:13

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Guide] Lua Iteratoren

Discussion on [Guide] Lua Iteratoren within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #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
rollback is offline  
Thanks
14 Users
Old 11/11/2015, 21:19   #2



 
DerZynx's Avatar
 
elite*gold: 0
Join Date: Apr 2011
Posts: 1,121
Received Thanks: 271
Im Moment hast du nen Releasewahn. Find ich nice.
DerZynx is offline  
Thanks
1 User
Old 11/11/2015, 21:29   #3
 
Alekos's Avatar
 
elite*gold: 6
The Black Market: 125/0/0
Join Date: Feb 2010
Posts: 2,779
Received Thanks: 4,267
Hab dir gerne bei der Schleife geholfen, nettes Release
Alekos is offline  
Thanks
1 User
Old 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.
[-Lee-] is offline  
Thanks
2 Users
Old 11/13/2015, 16:22   #5
 
Rofelmau's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
Question

PHP Code:
function range(i1i2increment)
    
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()
        
increment
        
if to then
            
return i
        end
    end
end


for i in range(1020) do
    print(
i)
end 
PHP Code:
for 1020 do
    print(
i)
end 
Rofelmau is offline  
Old 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 View Post
PHP Code:
function range(i1i2increment)
    
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()
        
increment
        
if to then
            
return i
        end
    end
end


for i in range(1020) do
    print(
i)
end 
PHP Code:
for 1020 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
rollback is offline  
Thanks
1 User
Old 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:
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
He3o Crysis is offline  
Thanks
4 Users
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.