8 svar
58 visningar
g4l3n är nöjd med hjälpen!
g4l3n 133
Postad: 19 sep 2019

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 5032
Postad: 19 sep 2019 Redigerad: 19 sep 2019

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

Laguna 6037
Postad: 19 sep 2019
Affe Jkpg skrev:

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

(1, 7), snarare. 

1-7 blir -6.

g4l3n 133
Postad: 19 sep 2019

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 6037
Postad: 19 sep 2019
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 133
Postad: 19 sep 2019

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 6037
Postad: 19 sep 2019

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 133
Postad: 19 sep 2019

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

Laguna 6037
Postad: 19 sep 2019

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

Så addera en term i taget. 

Svara Avbryt
Close