Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 00:33

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C# Logik eines Browserspiel Bots

Discussion on C# Logik eines Browserspiel Bots within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2012
Posts: 4
Received Thanks: 4
C# Logik eines Browserspiel Bots

Guten Tag,
Ich programmiere zur Zeit einen Bot für ein typisches Browsergame.
Mit typisches Browsergame meine ich so etwas wie "Die Staemme".
Mein Programm kann bis jetzt alle wichtigen Informationen sammeln und eigentlich habe ich auch schon eine Botsteuerung die Gebäude bauen kann.

Die Steuerung ist eine Art Ablaufsteuerung. Ein Timer ruft in regelmäßigen Intervallen eine Methode auf und diese geht dan schritt für schritt einen Ablauf durch.

Beispiel:

bool Schritt_1;
bool Schritt_2;
bool Schritt_3;
....

private void Timer_Tick()
{
if(Schritt_1==true)
{
ablauf....
Schritt_1=false;
Schritt_2=true;
}

if(Schritt_2==true)
{
ablauf....
Schritt_2=false;
Schritt_3=true;
}

if(Schritt_3==true)
{
ablauf....
Schritt_3=false;
Schritt_4=true;
}

}

Ich finde diesen Ablauf aber nicht so schön und sehr undynamisch.

Vor längerer Zeit hatte ich mal einen Bot für ein anderes Spiel geschrieben und da hatte ich eine andere Bot Logik programmiert.

Es gab eine Klasse welche Aufgaben enthiel z.b. Steuere diese Seite an , Warte bin Seite fertig fertig geladen ist , Drücke einen Button;

Dan habe ich Tätigkeiten in Aufgaben gesplittet habe diese in ein Array gepackt und meine Bot Steuerung hatte einfach die Aufgaben von oben nach unten abgearbeitet.

Beispiel ein Gebäude bauen:

Aufgabe: Navigiere zu Seite Gebäude;
Aufagbe: Warte bis Seite Fertig geladen ist;
Aufgabe: Überprüfe ob genug Ressourcen zum Bau vorhanden sind.
Aufagbe: Drücke den bau Button;

Diese Steuerung fand ich damal etwas angenehmer und Dynamischer.

Hat von euch vielleicht jemand eine gute Idee oder Erfahrungen wie man eine gute Bot Steuerung bauen kann?
Ich meine damit die Logik wie ein Bot vorgeht wenn man z.b. einen Gebäudebau in Auftrag gibt oder einen Angriff oder was auch immer?
DragonTHB is offline  
Old 11/14/2020, 15:01   #2
 
Mikesch01's Avatar
 
elite*gold: 203
Join Date: Sep 2007
Posts: 732
Received Thanks: 190
Das ist ein klassisches Design-Pattern Problem. Es gibt das State Pattern, dass die Probleme von Zuständen löst.
Mikesch01 is offline  
Thanks
1 User
Old 11/14/2020, 16:12   #3
 
elite*gold: 0
Join Date: Jan 2012
Posts: 4
Received Thanks: 4
Vielen Dank für die Antwort.
Ich werde es mir durchlesen und schauen, dass ich mir daraus ein gutes Arbeitsschema für meinen Bot baue.
DragonTHB is offline  
Old 11/15/2020, 10:11   #4

 
PC Jones's Avatar
 
elite*gold: 50
The Black Market: 266/0/0
Join Date: Oct 2009
Posts: 7,096
Received Thanks: 623
Es gibt einige Sachen die direkt auffallen.

1. Warum 3 bool Variablen zum zählen benutzen, wenn du einfach eine Variable
Code:
int Schritt = 1;
machen kannst und diese dann erhöhen bzw auf 1 zurücksetzen kannst.

2. Könntest du dir damit auch direkt die vielen unübersichtlichen ifs ersparen und mit einem arbeiten.
PC Jones is offline  
Old 11/15/2020, 11:43   #5


 
Else's Avatar
 
elite*gold: 4
The Black Market: 166/0/0
Join Date: Feb 2008
Posts: 3,854
Received Thanks: 1,268
Quote:
Originally Posted by PC Jones View Post
Es gibt einige Sachen die direkt auffallen.

1. Warum 3 bool Variablen zum zählen benutzen, wenn du einfach eine Variable
Code:
int Schritt = 1;
machen kannst und diese dann erhöhen bzw auf 1 zurücksetzen kannst.

2. Könntest du dir damit auch direkt die vielen unübersichtlichen ifs ersparen und mit einem arbeiten.
Das ändert nichts daran, dass die Vorgehensweise völliger Irrsinn ist.
Else is offline  
Old 11/15/2020, 13:17   #6

 
PC Jones's Avatar
 
elite*gold: 50
The Black Market: 266/0/0
Join Date: Oct 2009
Posts: 7,096
Received Thanks: 623
Quote:
Originally Posted by Else View Post
Das ändert nichts daran, dass die Vorgehensweise völliger Irrsinn ist.
Natürlich, aber an solchen Sachen merkt man doch dass er wohl noch totaler Anfänger ist. Da ist es sicherlich hilfreich auch auf sowas hinzuweisen
PC Jones is offline  
Old 11/15/2020, 14:35   #7
 
elite*gold: 0
Join Date: Jan 2012
Posts: 4
Received Thanks: 4
Autsch. Ok ich bin eigentlich kein totaler Anfänger *Heul*
Ja hast recht mit einem Integer der die Schritte zählt wäre es einfacher.
Aber wie Else schon sagte mir gefällt die Vorgehensweise an sich schon überhaupt garnicht.
In Sachen übersichtlichkeit und Dynamik ist es einfach Schrott. Und da mir nurnoch die zweite Möglichkeit einfiel, Einzelschritte zu erzeugen und das in einen Array Stack zu packen. Dachte ich mir ich frage mal hier wie ihr das so handhaben würdet.
DragonTHB is offline  
Old 11/15/2020, 15:47   #8


 
Else's Avatar
 
elite*gold: 4
The Black Market: 166/0/0
Join Date: Feb 2008
Posts: 3,854
Received Thanks: 1,268
@ der Vorgeschlagene Weg von @ ist schon richtig. Du kannst dadurch bestens die Status-Meldungen klassifizieren und entsprechend alles handhaben, ohne jeglichen Stack & Co.


Quote:
Originally Posted by PC Jones View Post
Natürlich, aber an solchen Sachen merkt man doch dass er wohl noch totaler Anfänger ist. Da ist es sicherlich hilfreich auch auf sowas hinzuweisen
Und deswegen wird er trotzdem weiterhin auf dem falsche weg geleitet? Zumal bereits auf einen möglichen, richtigen Weg hingewiesen worden ist. Ich weiß nicht was daran hilfreich ist andere ins verderben zu schubsen?
Else is offline  
Old 11/15/2020, 15:52   #9
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Um es vielleicht ein wenig einfacher zu gestalten könntest du ein Enum erstellen mit den Aufgaben Typen(Bauen, Sammeln, ...) und dann das Enum in eine Klasse/Struct einbauen und dann z.b ne List<> mit allen Aufgaben zu machen die der User möchte. Und dann in einer Schleife oder so den Aktion/Aufgaben Typ abfragen mit nem SwitchCase...
Ludder231 is offline  
Old 11/20/2020, 04:29   #10
 
elite*gold: 0
Join Date: Jan 2012
Posts: 4
Received Thanks: 4
Hallo ich muss wirklich sagen das der Tipp mit dem "State Design Pattern" wirklich ein gutes Stichwort war. Ich war am Anfang wirklich am überlegen, wie ich das damit umsetzen soll. Dan hatte ich mich näher damit beschäftigt und eine wirklich schöne Lösung hinbekommen, welche mich bis jetzt sehr zufrieden stellt. Danke.
DragonTHB is offline  
Thanks
4 Users
Reply


Similar Threads Similar Threads
Wintrading Logik?
11/16/2012 - World of Warcraft - 10 Replies
Huhu, ich hab mir mal was überlegt über das Thema Wintrading aber bevor ich hier rum spame mit dem Zeugs wollte ich fragen ob meine Logik überhaupt aufgeht: Man hat 2 Teams die haben gleich etwa 1.8k Rating z.B. jetzt kann ja auch 2k 2.2k etc. sein nun melden sich beide an sie sind im Ts und beide sagen das sie Procc haben das Team wo loosen soll gehen nicht alle rein sondern nur einer das heisst team A bekommt die kompletten punkte als hätte man gegen 1.8k Team gewonnen aber von Team B...
3d game schreiben.( logik- frage)
05/02/2012 - General Coding - 39 Replies
hallo zusammen. Erstmal : ich habe die Sufu genutz und leider keine Antwort auf meine frage gefunden^^. So, ich schreib jetzt schon seit einiger zeit progs, und da ich immer wissen will wie etwas funktioniert, wenn ich es benutze.... Beispiel: ( ich schreib grad mit nem stift ,Frage : wie funktioniert ein stift.) Und ich spiele 3d Games.(wie funktioniert eine 3d welt ?)
Shiina's bescheuerte Logik
05/18/2008 - Quotes - 29 Replies
Irgendwann heute kam mal das zustande: Na, versteht ihr was sie meint? Also ich jedenfalls nicht... xD



All times are GMT +1. The time now is 00:35.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.