Español
Stammtisch & Café

Ameisensimulation

 
- Página 1 -


Ferenc Züllich
La idea es wirklich fresco!  [...] 
WEr nix zutun ha podría el sí en Angriff nehmen


Un Klasse para una Ameise podría como aussehen?

(tener en el Moment no wirklich Interesse, aber quería el Thema auffangen)
KompilierenMarcaSeparación
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
>

Bitte ergänzen, oder auch no...

Yo sería lo aber schön encontrar sólo el Augen beim Orginal abzuschauen.
 
13.06.2008  
 



 
- Página 1 -


Durch weglassen el Y-Info würdest Usted Usted el Herunterfallenkönnen rauben, wäre dank OGL tal vez später schade.

energy! (Kraft) para Nahrung/Gesättigt/Arbeitsfähig y - desto weniger energy! más rápido ansteigendes damaged%. damaged% reduzieren si/solange aliveState% en 2 (pennt grad) es, pennen bringt Gesundheit, y Nahrungfinden bringt energy! damaged% debería entonces wohl kein int pero más una float ser, also damaged!

Nur ne Concepto
KompilierenMarcaSeparación
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ß no überlegen qué así una Ameise el ganzen Tag treibt...
 
13.06.2008  
 




Jac
de
Lad
Un normale Ameise vermehrt se no -> staatenbildendes Insekt ala Biene y Termite. Mensch IF, qué hast du en el Schule 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  
 



Yo habe doch sólo el Triebmodi% así genannt...
 
13.06.2008  
 




Frank
Abbing
Und je después de Art el Fütterung entsteht una diferente Ameise. Arbeiter, Königin usw. Oder war el sólo en el Bienen así?
 
14.06.2008  
 




Frank Abbing: Und je después de Art el Fütterung entsteht una diferente Ameise. Arbeiter, Königin usw. Oder war el sólo en el Bienen así?


Siehe hier mein más bien Franco
[web]https://de.wikipedia.org/wiki/Ameisen[/web]
 
14.06.2008  
 



Siehe veces uno a - el besitzen tatsächlich komplexeres Sozialverhalten como Yo...
 
14.06.2008  
 




Thomas
Zielinski
Hab heut veces spaßeshalber intenta el viecher para laufen a kriegen en OGLBasic(el frei version).
Hab como sólo algunos Problemas:
en el markiertem abschnitt bajo Ant.kriechen: si yo hay alles auskommentiere salvo el una zeile laufen el dinger zwar(sonst no), aber sólo en un richtung: después de oben rechts.
Sombrero como alguien ne idee?
KompilierenMarcaSeparación
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


Aber langsam versteh Yo, el nutzen de oop. Desde que el Fuente en el seite eh no versteh tener Yo sólo el video angeguckt qué como passieren se.
Saludo Thomas
 
XProfan X4; Win10 x64
Der Kuchen ist eine lüge!
14.06.2008  
 




Thomas
Zielinski
Dann va doch el todo Spaß perdido. Selber hacer is viel mejor. Zumal el, después de deren Descripción, para aprender de algo como ser se.
 
XProfan X4; Win10 x64
Der Kuchen ist eine lüge!
14.06.2008  
 




Frank
Abbing
Usted irrst. Como du ya dijo hast es una Profano-después de-Cpp Traductor. Der funktioniert pero no umgekehrt...
 
14.06.2008  
 



@Thomas: So weit son wir todavía garnicht, Por favor, primero el Klasse diskutieren.
 
14.06.2008  
 



 
- Página 2 -



Thomas
Zielinski
IF
Ferenc Züllich
La idea es wirklich fresco!  [...] 
WEr nix zutun ha podría el sí en Angriff nehmen


(tener en el Moment no wirklich Interesse, aber quería el Thema auffangen)


Yo como el Aufforderung gesehen, lo doch igual veces auszuprobieren.

IF
So weit son wir todavía garnicht, Por favor, primero el Klasse diskutieren.


Yo find el son bien como ellos son.

Na egal. después de unos pocos Stunden Schlaf, is me wenigstens el Fehler eingefallen.
Aus:
KompilierenMarcaSeparación
If xp! = xz! AND yp! = yz! AND zp! = zz
re>

Wird:
KompilierenMarcaSeparación
If (xp! = xz!) AND (yp! = yz!) AND (zp! = zz!)re>

Man beachte el Klammern! Hab el todavía nie falso gemacht. Möcht wissen qué mich como geritten ha. Jetz muss Yo bloß todavía el laufen correcto hinbekommen.

Saludo Thomas
 
XProfan X4; Win10 x64
Der Kuchen ist eine lüge!
15.06.2008  
 




Sebastian
König
Ferenc Züllich
Stimm ya Franco! Aber si la Autor des Programms en se en el Quellcode simplemente unos pocos Zeilen ändert y para uns el konvertiert.... Aber el es wahrscheinlich doch no así ligeramente.


Aunque no - komplett Neuschreiben trifft lo más. Und dazu erscheint me el Concepto ehrlich dijo no sinnvoll genug...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
15.06.2008  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

4.014 Views

Untitledvor 0 min.
RudiB.31.01.2016
iF20.08.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie