Function in Function benutzen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

MikeDee

Betreff: Function in Function benutzen

BeitragMi, Jun 11, 2008 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
kann man eigendlich functionen in functionen benutzen.
also, zB. ich 2 spiele: spiel1() und spiel2() und in spiel1() bzw. spiel2() sind nochmal functionen wie spieler(), gegner() usw.?
Nicht wenige benutzen die Anonymität des Internets um berühmt zu werden.

The Shark

BeitragMi, Jun 11, 2008 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
ja kein problem

D2006

Administrator

BeitragMi, Jun 11, 2008 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, selbstverständlich.

Eine Funktion kann sich sogar selbst aufrufen, dass nennt man dann Rekursion.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

BladeRunner

Moderator

BeitragMi, Jun 11, 2008 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
function test()
    test2()
end function

function test2()
   print "blubberdiblubb"
end function

test()
waitkey()
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

da_poller

BeitragMi, Jun 11, 2008 22:48
Antworten mit Zitat
Benutzer-Profile anzeigen
zum thema rekursion...

für was is das zu gebrauchen?(vorteile nachteile?)

hab schon öfters was von gehört aber verstehs irgendwie nciht ..

ach ja und wie bricht die schleife ab?

if x=y then return

?? oder geht das dann anders?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Jun 12, 2008 1:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Rekursion wird z.B. zum einlesen von Verzeichnissen benutzt oder für einfache Fraktalanzeigen benötigt. Da gibt es keine Vor- oder Nachteile, es gibt nur denn einen ''besten'' Weg etwas bestimmtes zu machen.

Bei Verzeichnissen einlesen bietet sich eine Rekursion an, da man sonst ganz schön viel in Types bzw. Banken zwischenspeichern müsste, was nun die Funktion von selbst erledigt.

Bei einfachen Fraktalen kommt das ''eine Instanz vererben'' einem sehr gelegen. Am Ende eines Fraktales (höhste Auflösung) wird einfach nicht mehr weiter gemacht, dadurch kommen die übrigen Funktionen wieder zur Bearbeitung.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

ShadowJumper

BeitragDo, Jun 12, 2008 6:33
Antworten mit Zitat
Benutzer-Profile anzeigen
für mich klingt das so, als wenn er in eine Funktion eine Funktion einbinden will, also:
Code: [AUSKLAPPEN]

Function bla()
    ;Code
    blubb()
    Function blubb()
        ;irwelcher Code
    End Function
End Function

du würdest bei diesem Code folgende Fehlermeldung erhalten:
"'Function' can only appear in main program"
Bilder kostenlos hosten
lest und weint:
RAM - 512 MB; GrafikRAM - 32 MB; CPU - 800 MHz
Ps: ... und weint (vor lachen)

DAK

BeitragDo, Jun 12, 2008 6:49
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, eine rekursive (selbstaufrufende) funktion schaut so aus:

function bla()
code
bla()
end function
Gewinner der 6. und der 68. BlitzCodeCompo

ProfJake

ehemals "DTC" / "Fabian Niemann"

BeitragDo, Jun 12, 2008 7:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function fakultaet%(value%)

 If value = 1 then return 1

 Return fakultaet(value - 1) * value

End Function


So kann man zum Beispiel elegant die Fakultät ausrechnen.

ShadowJumper

BeitragDo, Jun 12, 2008 7:28
Antworten mit Zitat
Benutzer-Profile anzeigen
@DAK: ich hab doch nicht versucht etwas rekursives darzustellen, sondern das, wonach gefragt wurde
MikeDee hat Folgendes geschrieben:
[...] in spiel1() bzw. spiel2() sind nochmal functionen wie spieler(), gegner() [...]
Bilder kostenlos hosten
lest und weint:
RAM - 512 MB; GrafikRAM - 32 MB; CPU - 800 MHz
Ps: ... und weint (vor lachen)

MikeDee

BeitragDo, Jun 12, 2008 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
ich fasse mal zusammen.
das geht:
Code: [AUSKLAPPEN]

function spiel()
spieler()
gegner()
end function

function spieler()
    code
end function

usw

print spiel()


und das nicht:
Code: [AUSKLAPPEN]

function spiel()

spieler()
gegner()

    function spieler()
       code
    end function
    usw

end function

print spiel()


wobei das erste sowieso schöner, praktischer ist^^
Nicht wenige benutzen die Anonymität des Internets um berühmt zu werden.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group