Lösningsförslag till uppgift 6.25
Console.WriteLine(BeräknaPoäng("5 7 7 5 5"));
int BeräknaPoäng(string korthand)
{
int poäng = 0;
string[] kort = korthand.Split(" ");
for (int i = 0; i < kort.Length; i++)
{
// Är det första gången vi hittar ett kort med detta tal?
bool förstaGången = true;
for (int j = 0; j < i; j++)
{
if (kort[i] == kort[j])
{
förstaGången = false;
break;
}
}
if (förstaGången == false)
{
continue;
}
// Om detta är första gången talet dyker upp så beräknar vi poängen
// Först tar vi reda på hur många kort som finns senare i arrayen
int antal = 1;
for (int j = i + 1; j < kort.Length; j++)
{
if (kort[i] == kort[j])
{
antal++;
}
}
// Vilket värde har kortet?
int värde = int.Parse(kort[i]);
// Poängen beräknas nu genom att ta värde upphöjt till antal
int delpoäng = värde;
for (int j = 0; j < antal - 1; j++)
{
delpoäng *= värde;
}
poäng += delpoäng;
}
return poäng;
}