AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Programmierspiel] aiMBots

[Programmierspiel] aiMBots

Ein Thema von inherited · begonnen am 13. Sep 2006 · letzter Beitrag vom 21. Mär 2007
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
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, 148x aufgerufen)

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

 
Delphi 2006 Enterprise
 
#2
  Alt 13. Sep 2006, 21:32
Also, bei mir kommt als Begrüßung:
---------------------------
aimbots
---------------------------
'' ist kein gültiger Integerwert.
---------------------------
OK
---------------------------

und dann eine leere Form mit 42 als Caption...
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#3
  Alt 13. Sep 2006, 21:42
Bei mir das gleiche.

Das ist inherited wie wir ihn kennen und lieben. Naja, wie wir ihn kennen.
Manuel Eberl
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

 
Delphi 2006 Enterprise
 
#4
  Alt 13. Sep 2006, 21:45
@3_of_8:
Nicht so voreingenommen sein!
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#5
  Alt 14. Sep 2006, 11:45
ICH habe docvh gesagt, MIT PARAMETERN starten
ich erklärs für euch nochmal im ersten thread
Das mit der 42 sollt ich noch mal ändern
Nikolai Wyderka
  Mit Zitat antworten Zitat
Angel4585

 
Delphi 2010 Professional
 
#6
  Alt 14. Sep 2006, 11:59
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..
Martin Weber
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#7
  Alt 14. Sep 2006, 12:03
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
Nikolai Wyderka
  Mit Zitat antworten Zitat
Angel4585

 
Delphi 2010 Professional
 
#8
  Alt 14. Sep 2006, 12:36
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.
Martin Weber
  Mit Zitat antworten Zitat
DennisHB

 
Delphi 6 Personal
 
#9
  Alt 14. Sep 2006, 12:53
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
  Mit Zitat antworten Zitat
Benutzerbild von CK_CK
CK_CK

 
Delphi 2006 Enterprise
 
#10
  Alt 14. Sep 2006, 12:55
Zitat von inherited:
ICH habe docvh gesagt, MIT PARAMETERN starten
Nein, hattest du gestern Abend noch nicht! Das hast du erst heute editiert!

Naja, aber, jetzt wo's funktioniert: Sieht schonmal recht vielversprechend aus...
Aber eine schönere "Spielwiese" würde ich mir auch wünschen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf