Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Programmierspiel] aiMBots (https://www.delphipraxis.net/77029-%5Bprogrammierspiel%5D-aimbots.html)

inherited 13. Sep 2006 21:17


[Programmierspiel] aiMBots
 
Liste der Anhänge anzeigen (Anzahl: 1)
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 :stupid:

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

CK_CK 13. Sep 2006 21:32

Re: [Programmierspiel] aiMBots
 
Also, bei mir kommt als Begrüßung:
---------------------------
aimbots
---------------------------
'' ist kein gültiger Integerwert.
---------------------------
OK
---------------------------

und dann eine leere Form mit 42 als Caption... :stupid:

3_of_8 13. Sep 2006 21:42

Re: [Programmierspiel] aiMBots
 
Bei mir das gleiche.

Das ist inherited wie wir ihn kennen und lieben. Naja, wie wir ihn kennen. ;)

CK_CK 13. Sep 2006 21:45

Re: [Programmierspiel] aiMBots
 
@3_of_8:
Nicht so voreingenommen sein! :mrgreen:

inherited 14. Sep 2006 11:45

Re: [Programmierspiel] aiMBots
 
ICH habe docvh gesagt, MIT PARAMETERN starten :roll:
ich erklärs für euch nochmal im ersten thread
Das mit der 42 sollt ich noch mal ändern :stupid:

Angel4585 14. Sep 2006 11:59

Re: [Programmierspiel] aiMBots
 
Also ich würde von der Grafik her usw. ne darstellung wie das hier bevorzugen...

das "Spiel" hakelt doch sehr, und ne Oberfläche auf der man die Robots auswählen und die Kartengröße einstellen kann wäre auch besser als mit Parametern..

inherited 14. Sep 2006 12:03

Re: [Programmierspiel] aiMBots
 
Vorgemerkt für nächste version. Dann auch mit gedrehten Bilderchen^^
Aber die Graphik ist hier nicht der Hauptpunkt. Ich habe mich auf die Scripsprache fokusiert

Angel4585 14. Sep 2006 12:36

Re: [Programmierspiel] aiMBots
 
Aus welchen Teilen bestehen deine Robots genau?
Also ich bin für

-Fahrwerk
-Radar
-Waffe

die sich auch jeweils getrennt ansprechen lassen, also das Radar z.B. soll sich 10 mal , die Waffe sich 2 mal so schnell bewegen wie das Fahrwerk.

Also braucht das Radar für 90° 9 Zeiteinheiten, die Waffe 45 Zeiteinheiten und das Fahrwerk die vollen 90. Dadurch lässt sich ein Gegner schneller erfassen wenn man auf der Stelle steht.

DennisHB 14. Sep 2006 12:53

Re: [Programmierspiel] aiMBots
 
2 kleine Fehler

Wenn man sich im namen der Datei für ein Rob-Script vertippt hagelt es AVs, würde vorschlagen:
Testen ob Rob-Datei vorhanden sonst Bot nicht starten, wenn weniger als 2 Bots initialisiert wurden Programm mit info für User beenden.

Sobald der robot10 "hinter der Wand" steht bewegt er sich nicht mehr, das für zu einem Feuerwerk aber nicht zum Erfolg :)

CK_CK 14. Sep 2006 12:55

Re: [Programmierspiel] aiMBots
 
Zitat:

Zitat von inherited
ICH habe docvh gesagt, MIT PARAMETERN starten :roll:

Nein, hattest du gestern Abend noch nicht! Das hast du erst heute editiert! :roll: :roll:

Naja, aber, jetzt wo's funktioniert: Sieht schonmal recht vielversprechend aus...
Aber eine schönere "Spielwiese" würde ich mir auch wünschen :stupid:

inherited 14. Sep 2006 13:02

Re: [Programmierspiel] aiMBots
 
Zitat:

Zitat von CK_CK
Nein, hattest du gestern Abend noch nicht! Das hast du erst heute editiert! :roll: :roll:

Hab heute erst die genaue Beschreibung hinzu-Editiert. Vorher stand da
Zitat:

Das Programm liest über Parameter die Arenagröße und -breite und die einzelnen Script-Dateien für die Roboter ein
Ist ja auch egal. Das mit dem Testen ob die Datei vorhanden ist werde ich einbauen, danke für den Vorschlag!
Zum Thema
Robot10 und Wand: Dieser Roboter ist lediglich ein Beispielroboter und ist natürlich nicht Perfekt.
Man sollte ja auch eigene Roboter schreiben.

Angel4585 14. Sep 2006 14:28

Re: [Programmierspiel] aiMBots
 
ok, noch ne Idee..

wie wäre es mit verschiedenen Waffen die man abfeuern kann? Also Minigun und Rakete, wo die Geschosse ebenfalls unterschiedlich schnell fliegen und eine unterschiedliche Durchschlagskraft haben?

Ausserdem ne Begrenzung der Sichtweite des Radars auf Radius = 40% de Spielfeldes oder so

3_of_8 14. Sep 2006 14:38

Re: [Programmierspiel] aiMBots
 
Also bei mir verschanzen sich die immer irgendwo und schießen dann wie bekloppt um sich ohne zu treffen.

Angel4585 14. Sep 2006 14:43

Re: [Programmierspiel] aiMBots
 
das wo ich ma angefangen hatte lief besser... aber ich denk er ist ja noch am Anfang und wie er gesagt hatte sind die Robots alles andere als Perfekt

inherited 14. Sep 2006 16:02

Re: [Programmierspiel] aiMBots
 
Wie gesagt sollt IHR die Roboter erstellen, nicht ich^^
Die die beiliegen sind lediglich als Beispiele gedacht...
Das mit den Waffen ist eine gute idee.
Ein beispiel für einen Roboter mit Advanced Collision-Managing wäre zb folgendes: Dieser läuft immer an der wand lang.

Code:
Wuppdi

OnIdle
{
  move;
  shoot;
}

OnCollision
{
  inc(angle);
  inc(angle);
  inc(angle);
  inc(angle);
  move;
  inc(angle);
  inc(angle);
}

OnHit
{
  inc(angle);
  inc(angle);
}

xZise 14. Sep 2006 17:54

Re: [Programmierspiel] aiMBots
 
Also 1. Laufen die aus der Karte raus :D
2. Schießen die irgendwie net :D

Zacherl 14. Sep 2006 18:19

Re: [Programmierspiel] aiMBots
 
Dito ... bei mir auch.

inherited 14. Sep 2006 18:23

Re: [Programmierspiel] aiMBots
 
Das aus der Karte raus ist schon behoben
Das ist schlecht, wenn sie nicht schiessen. Poste mal bitte das Script oder schick es per PN

inherited 17. Sep 2006 12:35

Re: [Programmierspiel] aiMBots
 
*push* für xZise und F.B., mal ihre scripte zu posten

xZise 17. Sep 2006 13:44

Re: [Programmierspiel] aiMBots
 
Oh ups :D
Aslo ich nehme deine Standard Robos!

inherited 17. Sep 2006 14:00

Re: [Programmierspiel] aiMBots
 
der sollte alle *scriptdateiles* 15 runden fuer 5 runden schiessen... (der robot10)
Wenn nicht ist das schlecht

xZise 17. Sep 2006 14:44

Re: [Programmierspiel] aiMBots
 
Wenn der Rote strich ein schuß ist, dann macht er dass... Da sie aber immer rauslaufen :( sind sie dann wie festgefroren :D

markusj 17. Sep 2006 14:50

Re: [Programmierspiel] aiMBots
 
Handling: kompliziert (Aufruf etc.)
Funktionsumfang: gut für Einsteiger
Kollisionserkennung: ohne Funktion^^
Bewegung: zu grob

mfG

Markus

inherited 17. Sep 2006 18:47

Re: [Programmierspiel] aiMBots
 
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.

xZise 17. Sep 2006 20:11

Re: [Programmierspiel] aiMBots
 
Liste der Anhänge anzeigen (Anzahl: 1)
So... Ich habe rumzumeckern :D Siehe Anhang

inherited 18. Sep 2006 15:34

Re: [Programmierspiel] aiMBots
 
Das ist normal und wird geaendert...
€dit: nein, das ist NICHT normal,Danke, ist behoben. ich habe dich falsch verstanden...
Danke, ist behoben

€dit2:
:party: :party: Neue Version 0.2^^ :party: :party:
Wesentlich besser als letzte Version ;)

xZise 19. Sep 2006 14:16

Re: [Programmierspiel] aiMBots
 
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 :D

inherited 19. Sep 2006 14:22

Re: [Programmierspiel] aiMBots
 
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"

xZise 19. Sep 2006 15:28

Re: [Programmierspiel] aiMBots
 
@ Random: Ich wäre für rnd(Maxzahl) :D
@ Guckenraus: Ich meine die Texte (mit Canvas gezeichnet!)
@ Festhängen: Die Roboter sind außerhalb der Arena ( :D ) und bewegen sich nicht. Wobei sie immer am Rand sind... Ich vermute, das du beim Setzen den Fehler nicht behoben hast :P

Und jetzt nochmal zu den Labels: Wenn der Untergrund fast schwarz ist, dann mach doch den Text weiß ;) Dann kann man immerhin was lesen.

inherited 21. Sep 2006 14:23

Re: [Programmierspiel] aiMBots
 
Für dich erstmal die bugfixes, random dauert noch ein bisschen^^

vlees91 21. Sep 2006 14:38

Re: [Programmierspiel] aiMBots
 
so
hab das spiel bis jetzt nicht runtergeladen und nur den thread hier gelesen, aber ist es nicht möglich im script zu drehen, schießen, drehen, schießen usw. (also bei onIdle)?

okay, das geht, bringt aber nicht viel.

Mein Bot treibt deinen "WändeKriecher" im Kreis, bis er Tod ist und selber hat er keinen schaden

hmmm grade blieb mein Bot eingezwengt von deinem an der Wand hängen und die HP gingen runter und runter runter bis er tod war?! er bewegte sich einfach nicht

inherited 21. Sep 2006 15:47

Re: [Programmierspiel] aiMBots
 
Nett, der geborene masochist^^
Scipt per PN oder Post, sonst kann ich es dir nicht sagen^^
(Wie kannst du es testen wenn du es nicht runtergleaden hast :lol: )

Angel4585 21. Mär 2007 19:45

Re: [Programmierspiel] aiMBots
 
gehts noch weiter hier? :duck:

inherited 21. Mär 2007 20:51

Re: [Programmierspiel] aiMBots
 
Ich hatte das Projekt schon ganz verdrängt :duck:
Wenn, dann werde ich das nochmal ganz neu in Angriff nehmen, mit wesentlich mehr Funktionen, wie verschiedene Waffen, (nahezu) stufenlose Drehung...
Vielleicht habe ich in den Osterferien ein wenig Zeit dafür :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 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