Guten Abend zusammen, ich bin aus der Versenkung aufgetaucht!
Ich bin seit einigen Wochen an einem Programmier-Projekt zugange, welches ich als Game Master bei einem Pen&Paper Spiel einsetzen möchte. Anfänglich war ich eher sporadisch am programmieren, da ich keinen richtigen Anfang gefunden habe, ich musste sehr viel Googeln und habe die meiste Hilfe gezielt in diesen Foren gesucht (Danke an dieser Stelle an alle von euch!). Nun bin ich soweit, dass ich ein Programm habe, welches meine CSV-Dateien einliest, sie in einer DataGridView auf einer Windows-Form mit TabControl ausgibt und ich habe auch die Funktion einer rudimentären Filterung der Quelldaten implementiert.
Das ganze tut was es soll und ich arbeite weiterhin daran, ich möchte aber natürlich auch gerne weiterhin etwas Neues lernen und bitte euch, einen Blick auf meinen Code zu werfen. Ich bin mir sicher, dass es bessere Wege gibt, als die, die ich gegangen bin. Was mich am meisten stört ist die viele Redundanz.
Das Spiel wird im Pokemon-Universum (nur erste Generation) stattfinden und ich habe mir einige Habitate ausgedacht. Jeder Tab im TabControl entspricht einem Habitat und pro Tab habe ich ein DataGridView. Im Code spreche ich nun jedes DataGridView separat an und fülle die Spalten und Zeilen.Das lässt sich doch bestimmt dynamisch gestalten. Ich habe das auch mal einen Lösungsansatz gehabt, allerdings sind mir dabei 1-2 Funktionen "kaputt" gegangen. Zum Beispiel möchte ich Tag- und Nachtaktiv selektieren können, sodass mir entsprechende Pokemon aufgelistet werden. Außerdem sollen alle Pokemon, welche ich in diesem Habitat nicht antreffen werde, also 0% Chance, gar nicht angezeigt werden. Ich habe also 2 Datenquellen:
CSV 1: Liste Aller Pokemon(Nummer, Name, Typ1, Typ2, Nachtaktiv J/N) : PkmnList.csv
CSV 2: Chance in diesem Habitat : [HabitatName].csv
Ich habe die gesamte Projektmappe diesem Post angehängt, damit ihr (hoffentlich) alles habt, ihr braucht.
In dem Ordner CSVReader\CSV\Habitate sind alle CSV-Dateien, die ich eingebunden habe.
Außerdem habe ich die Projektmappe auf einem USB-Stick liegen, der Pfad der Dateien ist also relativ starr hinterlegt. Der Laufwerksbuchstabe kann im Laufenden Betrieb geändert werden (Tab Config), dann nochmal auf "einlesen" klicken und es sollte laufen.
Ich wünsche mir weniger Redundanz im Code und idealerweise kann ich die einzelnen Chancen im Programm verändern (ja, die DGVs sind auf Read-Only gesetzt, das müsste man natürlich ändern) und in der jeweiligen CSV speichern. Das hatte ich testweise auch schon aktiv, bloß werden mir dann nicht alle Einträge gespeichert, da ich ja viele rausfiltere (weil 0% Chance).
Vielen Dank im Voraus für die, gewohnt kompetente und freundliche, Hilfe und Ich hoffe ich habe hier das korrekte Forum erwischt, falls nicht, bitte ich um Verzeihung!
Ich bin seit einigen Wochen an einem Programmier-Projekt zugange, welches ich als Game Master bei einem Pen&Paper Spiel einsetzen möchte. Anfänglich war ich eher sporadisch am programmieren, da ich keinen richtigen Anfang gefunden habe, ich musste sehr viel Googeln und habe die meiste Hilfe gezielt in diesen Foren gesucht (Danke an dieser Stelle an alle von euch!). Nun bin ich soweit, dass ich ein Programm habe, welches meine CSV-Dateien einliest, sie in einer DataGridView auf einer Windows-Form mit TabControl ausgibt und ich habe auch die Funktion einer rudimentären Filterung der Quelldaten implementiert.
Das ganze tut was es soll und ich arbeite weiterhin daran, ich möchte aber natürlich auch gerne weiterhin etwas Neues lernen und bitte euch, einen Blick auf meinen Code zu werfen. Ich bin mir sicher, dass es bessere Wege gibt, als die, die ich gegangen bin. Was mich am meisten stört ist die viele Redundanz.
Das Spiel wird im Pokemon-Universum (nur erste Generation) stattfinden und ich habe mir einige Habitate ausgedacht. Jeder Tab im TabControl entspricht einem Habitat und pro Tab habe ich ein DataGridView. Im Code spreche ich nun jedes DataGridView separat an und fülle die Spalten und Zeilen.Das lässt sich doch bestimmt dynamisch gestalten. Ich habe das auch mal einen Lösungsansatz gehabt, allerdings sind mir dabei 1-2 Funktionen "kaputt" gegangen. Zum Beispiel möchte ich Tag- und Nachtaktiv selektieren können, sodass mir entsprechende Pokemon aufgelistet werden. Außerdem sollen alle Pokemon, welche ich in diesem Habitat nicht antreffen werde, also 0% Chance, gar nicht angezeigt werden. Ich habe also 2 Datenquellen:
CSV 1: Liste Aller Pokemon(Nummer, Name, Typ1, Typ2, Nachtaktiv J/N) : PkmnList.csv
CSV 2: Chance in diesem Habitat : [HabitatName].csv
Ich habe die gesamte Projektmappe diesem Post angehängt, damit ihr (hoffentlich) alles habt, ihr braucht.
In dem Ordner CSVReader\CSV\Habitate sind alle CSV-Dateien, die ich eingebunden habe.
Außerdem habe ich die Projektmappe auf einem USB-Stick liegen, der Pfad der Dateien ist also relativ starr hinterlegt. Der Laufwerksbuchstabe kann im Laufenden Betrieb geändert werden (Tab Config), dann nochmal auf "einlesen" klicken und es sollte laufen.
Ich wünsche mir weniger Redundanz im Code und idealerweise kann ich die einzelnen Chancen im Programm verändern (ja, die DGVs sind auf Read-Only gesetzt, das müsste man natürlich ändern) und in der jeweiligen CSV speichern. Das hatte ich testweise auch schon aktiv, bloß werden mir dann nicht alle Einträge gespeichert, da ich ja viele rausfiltere (weil 0% Chance).
Vielen Dank im Voraus für die, gewohnt kompetente und freundliche, Hilfe und Ich hoffe ich habe hier das korrekte Forum erwischt, falls nicht, bitte ich um Verzeihung!
Eine Pizza auf einer Pizza sind 2 Pizzen
Eine Lasagne auf einer Lasagne ergibt 1 große Lasagne
Eine Lasagne auf einer Lasagne ergibt 1 große Lasagne