Permalänk
Medlem

Är totalnoob i c#, hjälp!

Tjenare, har nu kommit in på min första kurs i programmering på skolan och examiationsuppgiften är att skapa ett program...
Jag försöker just nu få fram en slumpgenererad textsträng med 25 "kombinationer".

string[] letter = { "U", "D", "F", "B", "L", "R" }; string[] letteradd = { " ", "' ", "2 " }; private void randomize() { Random scramble = new Random(); for (int i = 0; i < 25; i++ ) { label1.Text = letter[scramble.Next(0, letter.Length)] + letteradd[scramble.Next(letteradd.Length)]; } } private void button1_Click(object sender, EventArgs e) { randomize(); }

Problemet jag har är att jag endast genererar en "kombination" pga label1.Text, finns det något sätt som låter labeln uppdateras eller så att alla 25 kombinationer skrivs in i labeln?

tackar på förhand!

Visa signatur

Ludacris@live.se

Permalänk
Medlem

Det du gör just nu är att för varje loop ersätta Label1.Text med ditt randomvärde.

Kolla efter att slå ihop strängar så du lägger till istället för att skriva över.

Permalänk
Medlem

label1.Text += letter[scramble.Next(0, letter.Length)] + letteradd[scramble.Next(letteradd.Length)];

Visa signatur

...

Permalänk
Medlem
Skrivet av Hal0:

label1.Text += letter[scramble.Next(0, letter.Length)] + letteradd[scramble.Next(letteradd.Length)];

Tack som fasen! Visste att det var något enkelt! x)))

Visa signatur

Ludacris@live.se

Permalänk
Medlem

Nollställ din label först.
Typ label1.Text = "";

Dock så bör du skriva till din label vid varje loop, bättre du lägger strängen i en StringBuilder, och sedan skriver denna till din label.
Inte för att du lär märka någon skillnad i prestandan, men lika bra att lära sig från början

Visa signatur

...

Permalänk
Inaktiv

Tänk även på att du kan få en ArrayIndexOutOfBoundsException då du får ett värde mellan 0 och 6, medan dina arrayer använder ett 0-baserat index och således endast ger "svar" på 0 till 5. Så generera ett nummer mellan 0 och letter.Length - 1.

Permalänk
Medlem
Skrivet av anon150287:

Tänk även på att du kan få en ArrayIndexOutOfBoundsException då du får ett värde mellan 0 och 6, medan dina arrayer använder ett 0-baserat index och således endast ger "svar" på 0 till 5. Så generera ett nummer mellan 0 och letter.Length - 1.

dokumentationen för Random.Next säger att maxValue är "The exclusive upper bound of the random number returned". om jag tolkar det rätt, så kommer aldrig det talet man anger att slumpas fram. dvs letter.Length kommer att fungera som avsett.

Visa signatur

as far as we can tell, the massacre went well...

Permalänk
Inaktiv
Skrivet av jovnas:

dokumentationen för Random.Next säger att maxValue är "The exclusive upper bound of the random number returned". om jag tolkar det rätt, så kommer aldrig det talet man anger att slumpas fram. dvs letter.Length kommer att fungera som avsett.

Det är helt rätt, kollade aldrig upp metoden. Är lite olika i olika språk.