9 svar
2443 visningar
g4l3n är nöjd med hjälpen
g4l3n 144
Postad: 19 sep 2019 12:33

Lista och metoder - Rullatärning

Hej,

Är starkt behov av hjälp! Ny inom programmering 1 och ska i följande uppgift tillsätta en metod som ska slumpa fram en tärning och möjligheten att skriva ut ett medelvärde i en befintlig kod som i stort sett är klar förutom  slump tärning och medelvärde. (där det står skriv in metod här eller dylikt är där jag ska tillsätta en metod

Jag har vid slump värdet skrivit:

static int RullaTärning(Random slumpObjekt)
{
int tal = slumpObjekt.Next(1 - 7);
return tal;

}

När jag kör programmet får jag felmeddelande = System.ArgumentOutOfRangeException: 'maxValue måste vara större än noll.

Vad gör jag fel?

Vet heller inte hur jag ska kunna skriva ut medelvärdet, jag har försökt följande. 

int average = sum / tärningar.Count;

Console.WriteLine("\n\tMedelvärdet på alla tärningsrull: " + average);

Här är fulla programmet nedan!

Är jätte tacksam gör hjälp!!!

 

static int RullaTärning(Random slumpObjekt)
{
int tal = slumpObjekt.Next(1 - 7);
return tal;

// här ska du skapa kod som slumpar fram ett tal
// mellan 1 och 6, så att metoden "rullar" en 6 sidig
// tärning när vi kallar på den

// metoden ska sedan returnera det rullade värdet
}

static void Main()
{
Random slump = new Random(); 
List<int> tärningar = new List<int>(); 

Console.WriteLine("\n\tVälkommen till tärningsgeneratorn!");

bool kör = true;
while (kör)
{
Console.WriteLine("\n\t[1] Rulla tärning\n" +
"\t[2] Kolla vad du rullade\n" +
"\t[3] Avsluta");
Console.Write("\tVälj: ");
int val;
int.TryParse(Console.ReadLine(), out val);

switch (val)
{
case 1:
Console.Write("\n\tHur många tärningar vill du rulla: ");
bool inmatning = int.TryParse(Console.ReadLine(), out int antal);

if (inmatning)
{
for (int i = 0; i < antal; i++)
{
// här kallar vi på metoden RullaTärning
// och sparar det returnerade värdet i
// listan tärningar
tärningar.Add(RullaTärning(slump));
}
}
break;
case 2:
int sum = 0; 
if (tärningar.Count <= 0)
{
Console.WriteLine("\n\tDet finns inga sparade tärningsrull! ");
}
else
{
Console.WriteLine("\n\tRullade tärningar: ");
foreach (int tärning in tärningar)
{
Console.WriteLine("\t" + tärning);
}
int average = sum / tärningar.Count;

Console.WriteLine("\n\tMedelvärdet på alla tärningsrull: " + average); // Här ska medelvärdet skrivas ut
}

break;
case 3:
Console.WriteLine("\n\tTack för att du rullade tärning!");
System.Threading.Thread.Sleep(1000);
kör = false;
break;
default:
Console.WriteLine("\n\tVälj 1-3 från menyn.");
break;
}
}
}

Affe Jkpg 6630
Postad: 19 sep 2019 12:52 Redigerad: 19 sep 2019 12:55

int tal = slumpObjekt.Next(1, 6);

Laguna Online 17496
Postad: 19 sep 2019 13:04
Affe Jkpg skrev:

int tal = slumpObjekt.Next(1, 6);

(1, 7), snarare. 

1-7 blir -6.

g4l3n 144
Postad: 19 sep 2019 16:30

Tack! Nu förstår jag varför det inte funkade!

Är det någon som vet varför jag inte får ut rätt medelvärde?

Laguna Online 17496
Postad: 19 sep 2019 17:57
g4l3n skrev:

Tack! Nu förstår jag varför det inte funkade!

Är det någon som vet varför jag inte får ut rätt medelvärde?

Du sätter ju aldrig 'sum' till något annat än 0.

g4l3n 144
Postad: 19 sep 2019 18:04

Jag förstår verkligen inte. 

Har läst igenom läroboken nu flertal gånger men hittar inte.. Någon som kan visa mig till rätt riktning?

Laguna Online 17496
Postad: 19 sep 2019 18:08

Vad vill du att 'sum' ska vara när det är dags att räkna ut medelvärdet?

Hur ska du få den att ha det värdet?

g4l3n 144
Postad: 19 sep 2019 18:21

jag vill att summan ska räkna ut tärningarnas värde för att sedan kunna dela med antalet tärningar.

Laguna Online 17496
Postad: 19 sep 2019 18:34

Hur räknar man ut en summa? Man adderar en term i taget. 

Så addera en term i taget. 

03hatoal 1
Postad: 4 jan 17:24

Hejsan vad var svaret till att räkna medelvärdet?

Svara Avbryt
Close