|
You last visited: Today at 00:33
Advertisement
C# Logik eines Browserspiel Bots
Discussion on C# Logik eines Browserspiel Bots within the .NET Languages forum part of the Coders Den category.
11/14/2020, 02:05
|
#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?
|
|
|
11/14/2020, 15:01
|
#2
|
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.
|
|
|
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.
|
|
|
11/15/2020, 10:11
|
#4
|
elite*gold: 50
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 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.
|
|
|
11/15/2020, 11:43
|
#5
|
elite*gold: 4
Join Date: Feb 2008
Posts: 3,854
Received Thanks: 1,268
|
Quote:
Originally Posted by PC Jones
Es gibt einige Sachen die direkt auffallen.
1. Warum 3 bool Variablen zum zählen benutzen, wenn du einfach eine Variable 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.
|
|
|
11/15/2020, 13:17
|
#6
|
elite*gold: 50
Join Date: Oct 2009
Posts: 7,096
Received Thanks: 623
|
Quote:
Originally Posted by Else
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
|
|
|
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.
|
|
|
11/15/2020, 15:47
|
#8
|
elite*gold: 4
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
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?
|
|
|
11/15/2020, 15:52
|
#9
|
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...
|
|
|
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.
|
|
|
 |
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.
|
|