AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Programmierspiel] aiMBots
Thema durchsuchen
Ansicht
Themen-Optionen

[Programmierspiel] aiMBots

Ein Thema von inherited · begonnen am 13. Sep 2006 · letzter Beitrag vom 21. Mär 2007
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von inherited
inherited
Registriert seit: 19. Dez 2005
Wie schon woanders angekündigt, beschäftige ich mich seit kurzem mit dem Thema "Programmierspiel". Daraus ist dieses hier entstanden.

Das Programm liest über Parameter die Arenagröße und -breite und die einzelnen Script-Dateien für die Roboter ein
Beispiel für Anwendungsstart:
aiMBots 10 10 robot10.rob robot10.rob
Startet das Spiel mit 2 Robotern "Robot10" und der Arenagröße X=10, y=10
(siehe neue version unten)
Maximal sind 256 Roboter möglich, hab ich aber noch nicht ausprobiert

Da es eine eigene Scripsprache gibt, werde ich wohl einige Erklärungen liefern müssen, zumal ich noch keine readme oder help-Datei erstellt habe

Hier ein Beispielscript, das ich kurz erläutern werde:

Code:
Wuppdi <-- Name des Roboters

OnIdle <-- wird jede "Runde" ausgelöst
{
  inc(var); <-- jeder Roboter hat (bis jetzt) eine eigene Variable, die Standardmäßig 0 ist
  if(var>5) shoot; <-- Der Roboter schiesst, sobald "var" größer 5 ist.- Ein schuss schiesst in die aktuelle Richtung, durch alles durch. Kann also mehrere Roboter auf einmal treffen. Ein Treffer macht 10 Schaden, von 100 standard-hp. Kann nur in OnIdle ausgelöst werden
  if(var>10) inc(angle); <-- erhöht den Angle des Roboters. Dieser dreht sich jeweils im 45°-Winkel. Zwischengrößen gibt es (noch) nicht.
  if(var>10) move; <--Lässt den Roboter in die aktuelle Richtung laufen
  if(var>10) set(var) 0; <-- setzt die Variable auf 0
}

OnCollision <-- wird ausgelöst, wenn der Roboter mit der Wand kollidiert
{
  if(life<50) inc(angle); <-- ähnlich oben
  inc(angle);
  inc(angle);
  move;
  dec(angle);
}

OnHit <-- wird ausgeführt, wenn der Roboter von einem anderen getroffen wird
{
  inc(angle);
}
Unbedingt zu beachten sind die Leerzeichen und groß/kleinschreibung. Leerzeichen an anfang und ende einer Zeile hingegen sind egal.
Noch etwas zu den if-bedingungen:
es werden zwei werte verglichen. Der erste (oben im beispiel var, bzw life) muss eine dieser variablen sein, der zweite kann entweder eine variable sein oder eine zahl.
Man kann den winkel mit
set(angle) 90;
o.ä. auch direkt verändern.
Außer den Variablen var, angle und life, gibt es noch PosX und PosYn, auf die man zugreifen kann, jedoch (wie life) nicht veränderbar sind und die Position des Roboters darstellen.

Es handelt sich um eine Betaversion, somit kann es noch zu Fehlern kommen. Diese bitte melden.
Es wird demnächst noch mehr Funktionen geben.

Da ich einige bescherde-PNs erhalten habe, aufgrund des Archivformats RAR, diesmal im ZIP-Format..

[Neue Version 0.2]

-Keine Parameter mehr nötig
-Bilderchen
-Diverse Bugfixes, u.a:
--Roboter können nicht mehr in Wänden stecken
--Shooting-Bug behoben

[/Neue Version 0.2]

[Neue Version 0.25]
-Bugfix: In der Wand spawnen
-Schrift in weiß
-mehr platz für Namen
[/Neue Version 0.25]

-Alternativer Download (Nicht immer erreichbar)
-> http://inion.servegame.org:8000/files/aimbots.zip
Angehängte Dateien
Dateityp: zip aimbots_561.zip (233,2 KB, 149x aufgerufen)

SWIM SWIM HUNGRY!
Neuer Blog: hier!
 
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#21
  Alt 17. Sep 2006, 14:00
der sollte alle *scriptdateiles* 15 runden fuer 5 runden schiessen... (der robot10)
Wenn nicht ist das schlecht
Nikolai Wyderka
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#22
  Alt 17. Sep 2006, 14:44
Wenn der Rote strich ein schuß ist, dann macht er dass... Da sie aber immer rauslaufen sind sie dann wie festgefroren
Fabian
  Mit Zitat antworten Zitat
markusj
 
#23
  Alt 17. Sep 2006, 14:50
Handling: kompliziert (Aufruf etc.)
Funktionsumfang: gut für Einsteiger
Kollisionserkennung: ohne Funktion^^
Bewegung: zu grob

mfG

Markus
Markus
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#24
  Alt 17. Sep 2006, 18:47
Kollisionserkennung ist sehrwohl vorhanden...Ich weiß nicht was ihr habt, es funktioniert...Wenn es nicht klappen sollte, bitte scriptteil posten. Wenn ihr (was ich vermute) Robot10 benutzt, so möchte ich noch einmal betonen, das dieser NICHT in der lage ist, ordentlich auf Kollisionen zu reagieren. Ich habe oben ein intelligenteres script gepostet.
Handling wird fuer die Tipp-unfreudigen unter euch geändert.
Bewegung, sowie Winkel, etc wird bald stufenlos.
Nikolai Wyderka
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#25
  Alt 17. Sep 2006, 20:11
So... Ich habe rumzumeckern Siehe Anhang
Miniaturansicht angehängter Grafiken
debug_152.jpg  
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#26
  Alt 18. Sep 2006, 15:34
Das ist normal und wird geaendert...
€dit: nein, das ist NICHT normal,Danke, ist behoben. ich habe dich falsch verstanden...
Danke, ist behoben

€dit2:
Neue Version 0.2^^
Wesentlich besser als letzte Version
Nikolai Wyderka
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#27
  Alt 19. Sep 2006, 14:16
Es gibt manchmal rechts noch Robots die da festhängen... Allerdings erst beim Start. Dannach passierts nicht mehr.

Und ein Tipp: Wie wäre es mit "Random" im Roboscript?

Und die Labels gucken auch manchmal raus
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#28
  Alt 19. Sep 2006, 14:22
Das sind keine Labels, das ist mit Canvas getextet^^

+Meinst du mit 'die da festhängen' das die beim start in der wand "spawnen"? Guck ich mir nochmal an^^
Was meinst du mit "gucken raus"?
Na gut, weil du es bist bekommst du ein "Random"
Nikolai Wyderka
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#29
  Alt 19. Sep 2006, 15:28
@ Random: Ich wäre für rnd(Maxzahl)
@ Guckenraus: Ich meine die Texte (mit Canvas gezeichnet!)
@ Festhängen: Die Roboter sind außerhalb der Arena ( ) und bewegen sich nicht. Wobei sie immer am Rand sind... Ich vermute, das du beim Setzen den Fehler nicht behoben hast

Und jetzt nochmal zu den Labels: Wenn der Untergrund fast schwarz ist, dann mach doch den Text weiß Dann kann man immerhin was lesen.
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#30
  Alt 21. Sep 2006, 14:23
Für dich erstmal die bugfixes, random dauert noch ein bisschen^^
Nikolai Wyderka
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz