fb:porticula NoPaste
16.4: Lua-Funktionen aufrufen
Uploader: | nemored |
Datum/Zeit: | 24.08.2013 16:52:00 |
Hinweis: Dieser Quelltext ist Bestandteil des Projekts OpenBook: 2D-Spieleprogrammierung, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.
' *** CODE 16.4: Lua-Funktionen aufrufen
' **********************
' * FreeBASIC-Programm *
' **********************
#include once "Lua/lua.bi"
#include once "Lua/lauxlib.bi"
#include once "Lua/lualib.bi"
' Lua bereitstellen
dim Lua as lua_State ptr
dim as integer m = 27, n = 36
Lua = luaL_newstate
luaL_openlibs(Lua)
' Skript laden
if luaL_loadfile(Lua, "ggt.lua") orelse lua_pcall(Lua, 0, 0, 0) then
print "Fehler: " & *lua_tostring(Lua, -1)
end
end if
' Funktion vorbereiten und aufrufen
lua_getglobal(Lua, "ggT")
lua_pushnumber(Lua, m)
lua_pushnumber(Lua, n)
if lua_pcall(Lua, 2, 1, 0) then
print "Skriptfehler: " & *lua_tostring(Lua, -1)
end
end if
print "Der ggT von " & m & " und " & n & " ist ";
print lua_tonumber(Lua, -1) & "."
getkey
' **********************
' * Lua-Script *
' **********************
function ggT(n, m)
q = math.floor(n/m)
r = n - m * q
if r==0 then return m else return ggT(m,r) end
end