Autor Beitrag
me123
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 27.12.09 23:06 
Hallo,
ich programmiere derzeit ein kleines Spiel in C# und stoße nun auf ein Problem.

Ich erzeuge ein Zufallszahl und speichere diese in einer Variable.

ausblenden C#-Quelltext
1:
2:
Random rnd = new Random();
schritte = rnd.Next(16);


Gehen wir mal davon aus, dass der blaue Spielstein blau_1 auf dem Feld 2 ist. "Würfelt" man nun z.B. eine 3, so soll der Spielstein auf Feld 5 springen (2 + 3 = 5).
ausblenden C#-Quelltext
1:
this.blau_1.Location = new System.Drawing.Point(feld5_X, feld5_Y);					


Da ich nun aber nicht für alle 40 Felder eine if-Bedingung schreiben will, müsste ich die Feld-Zahl automatisch durch das Ergebnis von Ursprungsfeld + Schritte ersetzen. Als String sähe es ja dann so aus:
ausblenden C#-Quelltext
1:
string ergebnis = "feld" + schritte + "_X";					


Nun meine Frage, wie ich es hinbekomme, dass der oben genannte String als Variable für die neue Koordinate fungiert.

Einfach
ausblenden C#-Quelltext
1:
this.blau_1.Location = new System.Drawing.Point("feld" + schritte + "_X""feld" + schritte + "_Y");					

funktioniert logischerweise nicht...

Und wenn ich die Anführungszeichen weglasse, bekomme ich folgende Fehler:
Zitat:
Fehler 1 Der Name "feld" ist im aktuellen Kontext nicht vorhanden.
Fehler 2 Der Name "_X" ist im aktuellen Kontext nicht vorhanden.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 27.12.09 23:35 
Hallo und :welcome: im Forum ;-)

Wie wäre es mit Arrays / Listen? Denn da kannst du auf die Werte darin ja direkt via Index zugreifen.

Ich kann es auch noch ausführlicher schreiben, wenn das so noch nicht klar wird was ich meine. ;-)

Ach ja, und die zweite Variante: Die Positionen sollten sich doch auch berechnen lassen, oder? Dann brauchst du gar keine zusätzlichen gespeicherten Daten.
me123 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 28.12.09 01:01 
Stimmt, an ein Array habe ich gar nicht gedacht - das ist ja sogar noch viel einfacher.

Ich werde das mal probieren, danke.


//edit: Klappt wunderbar, ich danke dir!