Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Script-KI - Brückensuche
#1
Die Brückensuche ignoriert die erste Brücke in der Brückenliste, weil der Index bei 1 statt bei 0 beginnt.

Code:
--- "a/ai/sqai/astar.nut"
+++ "b/ai/sqai/astar.nut"
@@ -209,7 +209,7 @@ class pontifex
    local way_speed = way.get_topspeed()
    if (len>0) {
      bridge = list[0]
-     for(local i=1; i<len; i++) {
+     for(local i=0; i<len; i++) {
        local b = list[i]
        if (bridge.get_topspeed() < way_speed) {
          if (b.get_topspeed() > bridge.get_topspeed()) {


Angehängte Dateien
.txt   sqai_search_bridge_fix.patch.txt (Größe: 438 Bytes / Downloads: 274)
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#2
Der 0-te Eintrag wird schon genommen: bridge = list[0]. Dann wird nur noch geschaut, ob in der Liste etwas besseres auftaucht.
Zitieren
#3
Ich hab bei der Auswahl eine benötigte Mindestlänge definiert.
Es scheiterte der Brückenbau, weil die Brückenlänge zu kurz war.

Nach der Änderung hat er keine Brücke mehr gefunden und gebaut beim Testspiel wo er immer eine Brücke gebaut hat vorher.

Muss ich nochmal schauen. Ist ein bisschen unübersichtlich für mich als Anfänger damit und nicht alles selbsterklärend.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#4
Ich wuerde sagen, dass das funktioniert. Gerade getestet mit pak64, Start 1880, nur eine Bruecke verfuegbar. Die wird auch gebaut.
Zitieren
#5
(20-04-2020, Monday-19:29:29 )Dwachs2 schrieb: Ich wuerde sagen, dass das funktioniert. Gerade getestet mit pak64, Start 1880, nur eine Bruecke verfuegbar. Die wird auch gebaut.

Und mit welcher Script-KI?

Das es bei sqai funktioniert ist klar.

Ich weis nicht warum, aber seit einiger Zeit baut er eben eine Schiffsverbindung statt einer Straßenbrücke.

[Bild: attachment.php?aid=17415]

Irgendwas bewirkt das die Brücke verliert oder eben nicht gefunden wird.

Durch die langen Laufzeiten bei den Karten, bis was passiert bei der zu testenden Aktion, ist das Testen sehr langwierig.


Angehängte Dateien Thumbnail(s)
   
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#6
Savegame? Vielleicht nimmt er eine Bruecke mit hoeherem Geschwindigkeitslimit die dafuer nicht so lang gebaut werden kann?
Zitieren
#7
Glaube es war Eisenbahn und nicht Straße. Bei den vielen Tests geht die Übersicht langsam verloren.

sind die leeren Karten, die ich zum testen benutze

Simutrans r9028
pak64.german 0.122.0.0.1

testmap_pak64german.zip ~ 1,1 MByte

map_1930_1 ist die betreffende
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#8
Der Brückenbauer hat ein Problem mit der Länge. Das Endfeld liegt auf der Straße. Es ist der Versuch eine Eisenbahnbrücke zu bauen.
Scheinbar erkennt er nicht die quer laufende Straße.

Es liegt also scheinbar nicht an der Brückenlänge der Brücke sondern an der Längensuche. Hatte das im pak64.german und jetzt auch im pak64. Weis nicht ob ich die leere Karte ( 384x320_1940.sve ) mit in die zip gepackt hatte vom pak64.

Zitat:Failed to build bridge from  175,193 to 172,193

[Bild: attachment.php?aid=17421]


Angehängte Dateien Thumbnail(s)
   
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren
#9
Muss ich mal schauen. Es sind halt zwei c++ Routinen, die hier benutzt werden: eine, die ein passendes Endfeld sucht, und eine, die tatsaechlich eine Bruecke baut. Vielleicht ist da irgendwas inkonsistent.

Edit: diese Ladestation war da schon oder hast du die zur Illustration hingebaut?

Edit2: hast du diesen Commit bei dir schon drin?
https://github.com/Dwachs/simutrans-scen...62b2e1eeeb

Eventuell zwei KI, die eine baut die Strasse waehrend die andere da eine Bruecke plant? Wollte die KI zwei Bruecken nacheinander bauen?
Zitieren
#10
(26-04-2020, Sunday-20:51:08 )Dwachs2 schrieb: ...
Edit: diese Ladestation war da schon oder hast du die zur Illustration hingebaut?

Bei einem 2. Test wurde die unmittelbar nach dem gescheiterten Brückenbau da hin gebaut.

Position 175,193 und 176,193 war das Gleis ( also 2 Felder ). Die hatte ich aber schon wieder abgerissen.
Script-KI für Simutrans r10894+ / Simutrans Nightly Builds
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste