Cesareo Geschrieben 29. März 2010 Geschrieben 29. März 2010 Hallo zusammen, Jetzt kommt mal wieder eine ziemliche Noob Frage aber ich finde keine Antwort sonst. Es ist eigentlich ganz leicht ich bin C# Anfänger haben gerade damit erst angefangen und jetzt sollen wir / will ich einen kleinen Würfelsimulator machen. Es gibt einen Button in der mitte wo man wenn man drauf klickt würfeln soll und rechts und links davon habe ich 2 labels gemacht für 2 zahlen die dann addiert werden und dann in einem 3 label ausgeben werden sollen. C#-Code: void Button1Click(object sender, EventArgs e) { Random randNum = new Random(); randNum.Next(); } weiter wie so komm ich aber leider nicht. Ich hoffe auch wenn es nervt das er mir da weiterhelfen könnt bzw die ersten Tipps nennen könnt wie ich das ganze Anstelle bzw die Zahlen in den labels ausgebe. Vielen lieben dank im vorraus Nic Zitieren
LadyPreis Geschrieben 29. März 2010 Geschrieben 29. März 2010 Ist ja erstmal ok. Mit randNum.Next(); bekommst du eine Zufallszahl, die du einem Integer zuweisen musst... Also in etwa so: int num = random.Next(); mit int num = random.Next(1000); kannst du noch bestimmen, dass die Zufallszahl kleiner als 1000 sein soll. 3. Alternative: random.Next(min, max); Die Zalh, die du dort zurück bekommst, einfach in das Label schreiben. Zitieren
Cesareo Geschrieben 30. März 2010 Autor Geschrieben 30. März 2010 (bearbeitet) soooo also ich hab jetzt void Button1Click(object sender, EventArgs e) { Random RandomNum = new Random(); int x = RandomNum.Next(); } void Panel1Paint(object sender, PaintEventArgs e) { } jetz muss ich doch nur noch die "x" in den Panel1 ausgeben oder ? Da komm ich aber nich drauf lol ich grig das nich hin ich weiss is jetzt wahrscheinlich voll nooby aber stehe ja noch ganz am anfang. EDIT: ich glaub eine Zahl kann nicht in einem Panel ausgegeben werden ? Bearbeitet 30. März 2010 von Cesareo Zitieren
LadyPreis Geschrieben 30. März 2010 Geschrieben 30. März 2010 warum willst du das ganze denn in einem Panel ausgeben? Für solche Ausgaben sind Labels gedacht. Ein Panel dient in erster Linie dazu, Steuerelemente zusammenzufassen Zitieren
Cesareo Geschrieben 30. März 2010 Autor Geschrieben 30. März 2010 Oki ... hmm ich weiss auch nicht so recht dennoch sagt er mir auch beim Label Eine implizite Konvertierung vom Typ "int" in "System.Windows.Forms.Label" ist nicht möglich. (CS0029) - Also irgendwas fehlt noch Zitieren
xk4fu Geschrieben 30. März 2010 Geschrieben 30. März 2010 .ToString() kann leben retten ;-) beispiel: int i = 3; label1.Text = i.ToString(); Zitieren
LadyPreis Geschrieben 30. März 2010 Geschrieben 30. März 2010 Eine implizite Konvertierung vom Typ "int" in "System.Windows.Forms.Label" ist nicht möglich. (CS0029) - Du kannst einen Integer-Wert auch nicht in ein Label konvertieren. Probiers aber mal mit der Eigenschaft "Text" des Labels. Zitieren
Cesareo Geschrieben 30. März 2010 Autor Geschrieben 30. März 2010 hmmm also muss es noch irgendwie konventiert werden ? Weil ich möchte ja die gewürfelte zahl wenn man auf den button klickt in den label ausgeben das er mir das anzeigt. Zitieren
xk4fu Geschrieben 30. März 2010 Geschrieben 30. März 2010 .ToString() kann leben retten ;-) beispiel: int i = 3; label1.Text = i.ToString(); machs doch einfach so..... Zitieren
Cesareo Geschrieben 30. März 2010 Autor Geschrieben 30. März 2010 (bearbeitet) Juhuuuu ... es würfelt und zeigt es mir Ich habde zu danken *schwere geburt Hust* EDIT: wie kann man es aber ändern das beide würfel nich die selbe zahl würfeln ? lol Bearbeitet 30. März 2010 von Cesareo Zitieren
LadyPreis Geschrieben 30. März 2010 Geschrieben 30. März 2010 hmmm also muss es noch irgendwie konventiert werden ? Generell: JA int i = 3; label1.Text = i.ToString(); Und so einfach ist die Konvertierung Zitieren
xk4fu Geschrieben 30. März 2010 Geschrieben 30. März 2010 Juhuuuu ... es würfelt und zeigt es mir Ich habde zu danken *schwere geburt Hust* EDIT: wie kann man es aber ändern das beide würfel nich die selbe zahl würfeln ? lol Random bla = new Random(); int i = bla.Next(); int j = bla.Next(); label1.Text = i.ToString(); label2.Text = j.ToString(); sollte eigentlich funzen ansonsten machste einfach Random bla = new Random(); Random blub = new Random(); int i = bla.Next(); int j = blub.Next(); usw Zitieren
Cesareo Geschrieben 30. März 2010 Autor Geschrieben 30. März 2010 void Button1Click(object sender, EventArgs e) { Random RandomNum1 = new Random(); Random RandomNum2 = new Random(); int x1 = RandomNum1.Next(); int x2 = RandomNum2.Next(); label1.Text = x1.ToString(); label2.Text = x2.ToString(); } so siehts jetz aus ... ich hab jetz bei Next() keine zahl drin aber nur um zu testen aber wenn man dort zb "10" einträgt dann werden bei beidem würfeln imme rnur die selben zahlen generiert ... also gleichzeitig beide würfeln durchgehend das selbe .... Zitieren
xk4fu Geschrieben 30. März 2010 Geschrieben 30. März 2010 sry.. du darfst nur ein random haben und halt mit next() jeweils dem naechsten int wert zuweisen Random bla = new Random(); int i = bla.Next(); int j = bla.Next(); Zitieren
Gooose Geschrieben 3. April 2010 Geschrieben 3. April 2010 ... ich hab jetz bei Next() keine zahl drin aber nur um zu testen aber wenn man dort zb "10" einträgt dann werden bei beidem würfeln imme rnur die selben zahlen generiert ... also gleichzeitig beide würfeln durchgehend das selbe .... Erzeuge das Random Objekt ausserhalb des Eventhandlers. So bekommst du jedes mal beim Aufruf der Next Methode eine neue Zufallszahl. public class Irgendwas { private Random random = new Random(); void Button1Click(object sender, EventArgs e) { label1.Text = random.Next().ToString(); label2.Text = random.Next().ToString(); } } Wenn du mit den Zahlen weiterarbeiten willst, kannst du die Zufallszahlen auch an eine Variable übergeben. public class Irgendwas { private Random random = new Random(); private int zahl1; private int zahl2; void Button1Click(object sender, EventArgs e) { zahl1 = random.Next(); zahl2 = random.Next(); label1.Text = zahl1.ToString(); label2.Text = zahl2.ToString(); } } Variablen, die du innerhalb einer Methode definierst, sind lokal, d.h. sie sind nur innerhalb der Methode gültig. Probier einfach mal ein wenig aus. Erzeuge dir doch mal eine Liste von Zufallszahlen, und vergleiche, ob sie bei jedem Programmaufruf gleich sind. Zitieren
Cesareo Geschrieben 6. April 2010 Autor Geschrieben 6. April 2010 Ich danke sehr für eure Antworten und bis jetzt läuft der Genereator super allerdings möchte ich jetzt gern noch was hinzufügen wo ich schon wieder ein bisschen feststecke. Und zwar würde ich die generierten Zahlen gerne in eine Txt Datei abspeichern, wenn möcglich sogar das man über einen Menüpunkt "Log Speichern" dann den ORt der datei auswählen kann und dann halt speichern von allen generierten zahlen. Bis jetzt hab ich das hier als Code: private void logSpeichernToolStripMenuItem_Click(object sender, EventArgs e) { /*SaveFileDialog fdlg = new SaveFileDialog(); fdlg.Title = "Würfelgenerator LOG SAVE"; fdlg.InitialDirectory = @"c:\"; fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; fdlg.FilterIndex = 2; fdlg.RestoreDirectory = true;*/ StreamWriter WStream = new StreamWriter("WuerfelLog.txt"); File.Create(@"C:\******\test.txt"); WStream.Write(z3); WStream.Close(); mit dem StreamWriter wollte ich eine Datei machen ohne den FileBrowser aber das haut auch nich so hin "z3" is die ergebniss zahl der würfel wenn sie zusammen gezählt werden. Mit: public static void WriteAllText( string "C://Test.txt" string x1, x2; ) bekomm ich das aber auch nicht hin. ICh bitte nochmals um hilfe Dangöööö Nic Zitieren
LadyPreis Geschrieben 6. April 2010 Geschrieben 6. April 2010 Hol dir mittels des Dialogs einfach den vom User gewünschten Dateinamen. Danach einfach mit einem BufferedWriter das Ganze in eine Text-Datei schreiben. Hab jetzt leider keine IDE hier, aber mit dem Stichwort "BufferedWriter" solltest du genug finden Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.