Krona eller Klave C# console application

Trädvy Permalänk
Medlem
Plats
Frillesås
Registrerad
Mar 2011

Krona eller Klave C# console application

Okej, jag har lusläst internet och sökt efter svar på problemet jag har men jag kan inte hitta någonting.
Det är så att jag skall göra ett program där jag skall kunna skriva in ett nummer, programmet skall sedan slumpvis mata ut om det blir krona eller klave.
Jag har lyckats komma så långt att jag kan skriva in ett tal och programmet slumpar då mellan krona eller klave. Problemet är att om jag t.ex. skriver 15 då blir det 15 st krona eller 15 st klave.
Jag vet att detta beror på att min slumpning ligger utanför loopen så att den slumpar en gång sedan skrivs det så många gånger jag anget på skärmen.
Jag vet dock inte hur jag skall göra för att få det att slumpas för varje iteration av loopen.
Här är min nuvarande kod, tacksam för svar!

namespace Övning_7._5._3___Krona_eller_klave { class Program { static void Main(string[] args) { string strNr1 = Console.ReadLine(); Random rnd = new Random(); int resultat = rnd.Next(1, 3); int count = Convert.ToInt32(strNr1); for (int i = 0; i < count; i++) if (resultat == 1) Console.WriteLine("Klave"); else if (resultat == 2) Console.WriteLine("Krona"); Console.ReadLine(); } } }

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Okt 2007

Är det inte bara flytta dessa rader in i for loopen?
int resultat = rnd.Next(1, 3);
int count = Convert.ToInt32(strNr1);

Man kan ju dock deklarera variabeln utanför for loopen.

Int res;

For blå blå

Res =rnd.Next(1,3);

Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Mar 2009

Lägg bara slumpfunktionen inuti loopen

namespace Övning_7._5._3___Krona_eller_klave { class Program { static void Main(string[] args) { string strNr1 = Console.ReadLine(); Random rnd = new Random(); int resultat; int count = Convert.ToInt32(strNr1); for (int i = 0; i < count; i++){ resultat = rnd.Next(1, 3); if (resultat == 1) Console.WriteLine("Klave"); else if (resultat == 2) Console.WriteLine("Krona"); } Console.ReadLine(); } } }

Dator: Intel i5 4670k @ 4,4 Ghz | Asus Z87 pro | 16 GB ram | MSI 390 | Corsair HX 850w | Samsung 840 Pro 512GB
Android? Prova mitt spel!
https://play.google.com/store/apps/details?id=com.johannes.be...

Trädvy Permalänk
Avstängd
Registrerad
Okt 2015

Precis som föregående talare säger, dock behöver du ett block {} också då du vill göra flera saker i loopen, både slumpa och skriva ut resultatet.

Dvs

for (int i = 0; i < count; i++)
{
// Slumpa
// Kontrollera, skriv ut
}

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Feb 2005

@Sennaho:
Skulle lägga till ett par med måsvingar till for-loopen, annars blir det en väldigt kort utskrift.

Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Mar 2009

Helt riktigt missade det @Gropenator @plygv92

Dator: Intel i5 4670k @ 4,4 Ghz | Asus Z87 pro | 16 GB ram | MSI 390 | Corsair HX 850w | Samsung 840 Pro 512GB
Android? Prova mitt spel!
https://play.google.com/store/apps/details?id=com.johannes.be...

Trädvy Permalänk
Medlem
Plats
Frillesås
Registrerad
Mar 2011

Tack allesammans! ett sådant enkelt misstag! nu fungerar allting finfint!