Français
Stammtisch & le café

Ameisensimulation

 
Ferenc Züllich
L'idée ist wirklich cool!  [...] 
WEr nix zutun hat pourrait cela oui dans Angriff prendre


une super pour une fourmi pourrait comment air?

(hab im Moment pas wirklich intérêt, mais voulais cela Thema auffangen)
KompilierenMarqueSéparation
class ant=...
typ%
aliveState%//0=im Eimer; 1=am Leben; 2=pennt grade
damaged%//z.B. Beschädigungslevel und Müdigkeit reinpacken
walkState%//0=still; 1=läuft ;2=rennt;3=...
walkDirection!//Laufrichtung in °
x!,y!,z!//Position im Raum
energy!//Kraft
>

s'il te plaît ergänzen, ou bien aussi pas...

je serait es mais joli trouver seulement avec den Augen beim Orginal abzuschauen.
 
13.06.2008  
 




Nico
Madysa
là Ameisen dans qui règle seulement am Boden herumkriechen, reichen - meiner Meinungs pour - deux Raumkoordinaten völlig aus.
et quoi meinst du avec Energy/Kraft? Pourquoi ist cela une Gleitkommazahl?
KompilierenMarqueSéparation
class ant=...
typ%
aliveState%//0=im Eimer; 1=am Leben; 2=pennt grade
damaged%//z.B. Beschädigungslevel und Müdigkeit reinpacken
walkState%//0=still; 1=läuft ;2=rennt;3=...
walkDirection!//Laufrichtung in °
x!,y!//Position im Raum
energy!//Kraft
>
 
Nico Madysa
13.06.2008  
 



par omettre qui Y-Info würdest Du Dir cela Herunterfallenkönnen ravir, wäre dank OGL peut-être später tant pis.

energy! (Kraft) pour nourriture/Gesättigt/Arbeitsfähig et - desto moins energy! plus rapide ansteigendes damaged%. damaged% réduire si/solange aliveState% sur 2 (pennt grad) steht, roupiller bringt Gesundheit, et Nahrungfinden bringt energy! damaged% sollte ensuite wohl ne...aucune int mais plutôt un float son, alors damaged!

seulement ne concept
KompilierenMarqueSéparation
class ant=
typ%
aliveState%//0=im Eimer; 1=am Leben; 2=pennt grade
damaged!//z.B. Beschädigungslevel und Müdigkeit reinpacken
walkState%//0=still; 1=läuft ;2=rennt;3=...
walkDirection!//Laufrichtung in °
x!,y!,z!//Position im Raum
g!//Größe
energy!//Kraft
triebmodi%//Bauen/Kriegen/Nahrungssuche/Vermehren/Winterschlaf/Helfersuche
geburtsZeit&
durchschnittsAlter&//wie alt die XMeise im Durchschnitt werden 
span>

Bloß pas überlegen quoi so une fourmi den ganzen journée treibt...
 
13.06.2008  
 




Jac
de
Lad
une normale fourmi vermehrt sich pas -> staatenbildendes l'insecte ala Biene et Termite. homme iF, quoi la hâte du dans qui une école gelernt?
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
13.06.2008  
 



j'ai doch seulement den Triebmodi% so genannt...
 
13.06.2008  
 




Frank
Abbing
et je pour Art qui Fütterung entsteht une différent fourmi. ouvrier, Königin usw. ou bien était cela seulement chez den Bienen so?
 
14.06.2008  
 




Frank Abbing: et je pour Art qui Fütterung entsteht une différent fourmi. ouvrier, Königin usw. ou bien était cela seulement chez den Bienen so?


Siehe ici mon lieber Frank
[web]https://de.wikipedia.org/wiki/Ameisen[/web]
 
14.06.2008  
 



Siehe la fois einer à - qui besitzen réellement komplexeres Sozialverhalten comme je...
 
14.06.2008  
 




Thomas
Zielinski
Hab heut la fois spaßeshalber versucht qui viecher zum courir trop kriegen dans OGLBasic(qui libre version).
Hab là seulement quelques Probleme:
dans dem markiertem paragraphe sous Ant.kriechen: si je là alles auskommentiere jusqu'à sur qui une la ligne courir qui dinger zwar(sonst pas), mais seulement dans un direction: pour dessus à droite.
Hat là quelqu'un ne concept?
KompilierenMarqueSéparation
Declare AMEISE#[150], homeX!, homeY!, homeZ!, nahrung!, lager!, i!, e!
Declare zeit$, zeitanfang&, zeitende&, zeith&, zeitm&, zeits&, zeit&
homeX!=0
homeY!=0
homeZ!=-30
nahrung! = 0
lager! = 0
Class Ant =	Nummer!, 	Nummer der Ant
Leben!, 	max 100
PositionX!,
PositionY!,
PositionZ!,
ZielKoordX!,
ZielKoordY!,
ZielKoordZ!,
richtung!, 	Richtung in die, die Ant schaut in °
Alter!, 	wie alt ist die Ant
Typ!, 		0=sammler 1=kaempfer
Aktion!, 	0=steht 1=sammelt 2=läuft 3=trägt 4=kämpft 5=umschauen 6=nach hause mit last
Last!, 	Wiviel trägt die Ameise
kriechen@, 	bewegen
suchen@		Gibt Zielrichtung an

Proc Ant.kriechen

    parameters xp!, yp!, zp!, rp!, xz!, yz!, zz!, num!
    Declare xp!, yp!, zp!, rp!, xz!, yz!, zz!
    AMEISE#[num!].Alter! = AMEISE#[num!].Alter! + 0.1

    IfNot AMEISE#[num!].Leben! = 0 OR AMEISE#[num!].Alter! >= 1000

        If AMEISE#[num!].Last! = 10

            xz! = homeX!
            yz! = homeY!
            zz! = homeZ!

        EndIf

        MessageBox(Str$(xp!) + - +  Str$(xz!) +
        + Str$(yp!) + - +  Str$(yz!) +
        + Str$(zp!) + - +  Str$(zz!),,4096)
        ####################################################################################################################
        ####################################################################################################################
        ####################################################################################################################
        ####################################################################################################################

        If xp! = xz! AND yp! = yz! AND zp! = zz!

            AMEISE#[num!].Aktion! = 0
            MessageBox(Str$(xp!) + - +  Str$(xz!) +
            + Str$(yp!) + - +  Str$(yz!) +
            + Str$(zp!) + - +  Str$(zz!),,4096)

            If AMEISE#[num!].Last! = 10 AND xp! = homeX! AND yp! = homeY! AND xp! = homeZ!

                lager! = lager! + 10
                AMEISE#[num!].Last! = 0

            EndIf

            AMEISE#[num!].suchen(num!)	<-- Wenn nur das steht klappt es

        EndIf

        ####################################################################################################################
        ####################################################################################################################
        ####################################################################################################################
        ####################################################################################################################

        If xp! < xz!

            xp! = xp! + 0.1

        ElseIf xp! > xz!

            xp! = xp! - 0.1

        EndIf

        If yp! < yz!

            yp! = yp! + 0.1

        ElseIf yp! > yz!

            yp! = yp! - 0.1

        EndIf

        If zp! < zz!

            zp! = zp! + 0.1

        ElseIf zp! > zz!

            zp! = zp! - 0.1

        EndIf

        If AMEISE#[num!].Last! = 10

            AMEISE#[num!].Aktion! = 6

        ElseIf AMEISE#[num!].Last! < 10 AND AMEISE#[num!].Last! > 0

            AMEISE#[num!].Aktion! = 3

        ElseIf AMEISE#[num!].Last! = 0

            AMEISE#[num!].Aktion! = 2

        EndIf

        AMEISE#[num!].PositionX! = xp!
        AMEISE#[num!].PositionY! = yp!
        AMEISE#[num!].PositionZ! = zp!

    Else

        AMEISE#[num!].PositionX! = homeX!
        AMEISE#[num!].PositionY! = homeY!
        AMEISE#[num!].PositionZ! = homeZ!

    EndIF

EndProc

Proc Ant.suchen

    parameters num!
    AMEISE#[num!].Alter! = AMEISE#[num!].Alter! + 0.1

    If AMEISE#[num!].Leben! = 0 OR AMEISE#[num!].Alter! >= 1000

        Randomize
        AMEISE#[num!].ZielKoordX! = Rnd(10 + 10) - 10
        AMEISE#[num!].ZielKoordY! = Rnd(10 + 10) - 10
        AMEISE#[num!].ZielKoordZ! = homeZ!################################################## weil flach bleibt

    EndIf

EndProc

-------------------------------------------------
Dim AMEISE#[], Ant
i!=0
Randomize

WhileNot i! = 150

    With AMEISE#[i!]

        .Nummer!=i!
        .Alter! = Rnd(500)
        .Typ! = Rnd(2)
        .Leben! = 100
        .PositionX! = homeX!
        .PositionY! = homeY!
        .PositionZ! = homeZ!
        .ZielKoordX! = homeX!
        .ZielKoordY! = homeY!
        .ZielKoordZ! = homeZ!
        .richtung! = 0
        .Aktion! = 0
        .Last! = 0

    EndWith

    i!=i!+1

EndWhile

i!=0
------------------------------------------------------
CLS 0
oGL(Init, %hWnd, 0, 0, 0, 0)
oGL(PosMode,1)
zeitanfang& = &GetTickCount
SetTimer 20

While e!=0

    WaitInput

    If IsKey(27)

        BEENDEN

    EndIf

    WERTE
    OGLSZENEZEICHNEN

EndWhile

KillTimer
Dispose AMEISE#[]
End

Proc BEENDEN

    e!=1
    zeitende& = &GetTickCount
    zeit& = zeitende&-zeitanfang&
    zeith& = ((zeit&/1000)/60)/60
    zeitm& = (zeith& - Round(zeith&,0))*60
    zeits& = ((zeitm& - Round(zeitm&,0))*60)
    zeit$ = Str$(Round(zeith&,0)) + : + Str$(Round(zeitm&,0)) + : + Str$(Round(zeits&,0))
    MessageBox( erreichte Nahrung:  + Str$(nahrung!) +
    vergangene Zeit:  + zeit$,ENDE,4096)

EndProc

Proc WERTE

    i!=0

    WhileNot i! = 150

        TraceOn
        AMEISE#[i!].kriechen(AMEISE#[i!].PositionX!, AMEISE#[i!].PositionY!, AMEISE#[i!].PositionZ!, AMEISE#[i!].richtung!, AMEISE#[i!].ZielKoordX!, AMEISE#[i!].ZielKoordY!, AMEISE#[i!].ZielKoordZ!, i!)
        TraceOff
        i! = i! + 1
        MessageBox(str$(i!),,4096)

    EndWhile

EndProc

Proc OGLSZENEZEICHNEN

    oGL(Clear)
    oGL(Origin, 0, 0, homeZ!)
    oGL(Color, 0.0, 0.0, 1.0, 1.0)
    oGL(Quad, 2, 2)
    i!=0

    WhileNot i! = 150

        oGL(Origin, AMEISE#[i!].PositionX!,AMEISE#[i!].PositionY!,homeZ!)

        If AMEISE#[i!].Typ! = 0

            oGL(Color, 1.0, 0.0, 0.0, 1.0)

        ElseIf AMEISE#[i!].Typ! = 1

            oGL(Color, 0.0, 1.0, 0.0, 1.0)

        EndIf

        oGL(Triangle, 0.3, 0.3)
        i!=i!+1

    oGL(Show)

ENDPROC


mais lente versteh Je l' nutzen de oop. là je qui Source sur qui page eh pas versteh hab je mir seulement cela video angeguckt quoi là passer soll.
Salut Thomas
 
XProfan X4; Win10 x64
Der Kuchen ist eine lüge!
14.06.2008  
 




Thomas
Zielinski
ensuite allez doch qui ganze Amusement verloren. Selber faire is viel besser. Zumal cela, pour en Beschreibung, zum apprendre de quelque chose comme son soll.
 
XProfan X4; Win10 x64
Der Kuchen ist eine lüge!
14.06.2008  
 




Frank
Abbing
Du irrst. comment du déjà dit la hâte ist es un Profan-pour-Cpp Übersetzer. qui funktioniert mais pas renversé...
 
14.06.2008  
 



@Thomas: So large sommes wir encore garnicht, s'il te plaît erstmal qui super diskutieren.
 
14.06.2008  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.033 Views

Untitledvor 0 min.
RudiB.31.01.2016
iF20.08.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie