Für die Position der Spieler kannst du den Datentyp
Point (mit
X und
Y) nehmen und erzeugst dann in deiner
Battlefield-Klasse einen weiteren Member dafür, z.B. als Array oder
List<Point> - je nachdem ob die Spieleranzahl dynamisch ist.
Und dann zeichnest du an diesen Spielerpositionen (ähnlich wie die Berechnung des Gitters).
Deine
Battlefield bf sollte jedoch ein Member der
Form-Klasse sein (keine lokale [temporäre] Variable), damit du zur Laufzeit genau ein Objekt hast und auch von anderen Methoden darauf zugreifen kannst.
Du solltest allerdings zuerst mal den Code ohne DB-Anbindung ausprogrammieren, so daß du nicht mehrere Baustellen gleichzeitig hast.
Generell sollte dazu dein Programmaufbau entsprechend
[Artikel] Drei-Schichten-Architektur sein.
PS: Eigentlich sollte die Darstellung (d.h. die
Draw-Methode) nicht Teil deiner Logikklasse
Battelfield sein, damit du eine strikte Trennung von Logik und UI hast.
Je nachdem wie umfangreich die Darstellung wird, könntest du eine von
Panel abgeleitete Control-Klasse
BattlefieldPanel erstellen (oder alternativ als
UserControl) und dort dann die Zeichenfunktionen implementieren.