C# Objekt für jeden Spieler

Jojo01

Neues Mitglied
Moinsen,
ich bin auf der Suche nach einer Lösung für mein Problem, doch leider hat mir Google nicht weitergeholfen. Und zwar entwickle ich in einer Modifikation eines GTA-Teiles, welche auf der Serverseite C# verwendet. Nun, da ich das ganze OOP schreiben möchte, soll für jeden Spieler ein Objekt erstellt werden, damit ich gewisse Variablen speichern kann. Nun leider fehlt mir da der Ansatz, wie ich anhand eines Spielernamen ein Objekt bekomme.

Erstmal das Problem in Form des Codes:

C:
public Spielerklasse playerA, playerB; //usw.

public void beimConnecten(){
      playerA = new Spielerklasse(blabla);
// beim nächsten Spieler dann ..
      playerB = new Spielerklasse(blabla);
}
Nur leider ist diese Variante statisch und nicht dynamisch, welches für mein Vorhaben unvorteilhaft ist.

Nun ist meine Idee, dass ich eine Liste erstelle und als ersten Parameter den Namen des Spielers speichere und als 2. Parameter das Object.

C:
public List<string, Spielerklasse> spieler = new List<string, Spielerklasse>();

public void beimConnecten(){
spieler.add("Name", Objekt);
// Für den nächsten Spieler ebenfalls usw..
}

Und dann würde ich das Objekt durch eine Forschleife ausfündig machen, denn es soll in mehreren Klassen verfügbar sein

Nun ist meine Frage, was gibt es für Alternativen, die performanter oder besser sind?

LG
 

Jojo01

Neues Mitglied
Warum nicht den Spielernamen als Attribut der Spielerklasse machen?

Also statt dem String in der Liste nur das Spielerklasse Objekt speichern. Da stellt sich mir die Frage, wenn beispielsweise 200 Spieler online sind, dann wird das ganze doch bestimmt langsamer, denn ich speichere dort einige Attribute, die bei einem Funktions bzw. Methodenaufruf abgefragt werden. Und bei jeder Abfrage eine Schleife mit 200 Items, ist das dann trotzdem noch schnell?
 

Ähnliche Java Themen

Neue Themen


Oben