Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
BogonAI: Wenn die KI anfängt zu trollen
Verfasser Nachricht
Knogle
Gleisarbeiter
*

Beiträge: 5
Themen: 4
Registriert seit: Apr 2015
#1
BogonAI: Wenn die KI anfängt zu trollen
Hallo Freunde,

Wer kennt es nicht, aus den alten Zeiten, wenn die KI einem eine Ressource wegschnappen will, baut man einfach was hin.
Wenn die Züge zu produktiv sind, baut man ein Depot ans Kopfende es Bahnhofs, und lässt eine Lok mit dem Zug zusammenstoßen.

Oder die gegnerischen Fahrzeuge welche mal wieder zu zahlreich unterwegs sind blockiert man mit einem Zug, und lässt die mit einem 2. Zug reihenweise zerstören.

Ich habe mir als Spaßprojekt es einfach mal vorgennommen und ausprobiert, eine KI zu schaffen die genau dieses Verhalten der menschlichen Spieler, mal selber umsetzt. Den Spieß also mal umdreht.

Ist nichts ernstgemeintes, aber vielleicht "just another AI..."


Viele Grüße, rechne mit einem Release in kommender Zeit Lächeln

Ein kleiner Auszug.

Code:
function SabotageCompetitor() { // 1) Irgendeinen Gegner auswählen local companies = AICompanyList(); local target_companies = []; foreach (company_id in companies) { if (company_id != AIOwnCompany.GetCompanyID()) { target_companies.append(company_id); } } if (target_companies.len() == 0) { // Keine Gegner vorhanden, nichts zu tun return; } local victim = target_companies[AIUtility.RandomRange(0, target_companies.len())]; // 2) Finde eine Stadt, in der der Gegner aktiv ist local towns = AITownList(); if (towns.len() == 0) return; local random_town = towns[AIUtility.RandomRange(0, towns.len())]; // 3) Versuche z. B. in der Nähe der Stadt Gleise zu bauen, die den Gegner blockieren // Wir versuchen rund um dieses Feld ein paar Gleiskacheln zu setzen, // um den Gegner zu ärgern. local tile_list = AIRail.GetNearbyTiles(pos, 6); // tile_list enthält Kacheln rund um pos in einem Radius von 6 Feldern (nur Beispiel). // Baue Gleise auf einigen zufälligen Feldern in diesem Umkreis foreach (tile in tile_list) { // Prüfe, ob wir hier bauen können if (AIRail.CanBuildRail(tile, RAILTYPE_RAIL, AIMap.GetTileSlope(tile), 0)) { // Versuche zu bauen (Bridges/Tunnel ignorieren wir hier) // Hier nur 0x0-Layout (gerade Kachel) try { AIRail.BuildRail(tile, RAILTYPE_RAIL, AIMap.GetTileSlope(tile), 0); } catch (e) { AILog.Warning("Konnte Gleis nicht bauen: " + e); } } } // 4) Depots bauen, um evtl. gegnerische Züge zu crashen, wenn sie sich verbinden // Dazu brauchen wir ein Gleis-Layout, das in den Schienen des Gegners mündet. this.RandomlyPlaceDepots(tile_list); // 5) Ähnlich kann man Straßen bauen, um gegnerische Fahrzeuge zu behindern. // Ggf. Depots mitten auf Straßen, etc. // Hier nur ein Dummy: this.RandomlyPlaceRoads(pos, 4); }
(Dieser Beitrag wurde zuletzt bearbeitet: 19.03.2025, 18:29 von Knogle.)
19.03.2025, 18:28
Suchen Zitieren
Roman
Forum-Team
*****

Beiträge: 954
Themen: 97
Registriert seit: Jan 2004
#2
RE: BogonAI: Wenn die KI anfängt zu trollen
Lustige Idee! großes Grinsen Ich finde ja solche Spielereien immer ganz interessant, speziell wenn sie eine besondere Herausforderung bieten. Bin gespannt, wie gut das funktioniert und ob man dem in allen Fällen effektiv zuvorkommen kann!

Die Liste an Sabotagemöglichkeiten ist lang... Zwinkern
[Bild: titels.png]
20.03.2025, 10:08
Homepage Suchen Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Warum einfach, wenn's auch . Sgt. Pepper 4 3.780 21.02.2006, 16:23
Letzter Beitrag: Bernhard

Gehe zu:


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

Kontakt | Transport Tycoon Main Station | Nach oben | Archiv-Modus | RSS-Synchronisation