Pominę już fakt, że masz kilkanaście okienek, które różnią się jednym obrazkiem, to jest po prostu nie do opisania...
Trzeci rok studiów, i nie znasz tablic ani pętli?
Przecież tu aż się prosi o to!
class Losowanie
{
private Random rzut = new Random();
private Gra gra;
public Losowanie(Gra gra)
{
this.gra = gra;
}
public static int Wylosowano1 { get; private set; }
public static int Wylosowano2 { get; private set; }
public static int Wylosowano3 { get; private set; }
public static int Wylosowano4 { get; private set; }
public static int Wylosowano5 { get; private set; }
public void Losuj()
{
if(gra.Kość1)
Wylosowano1 = rzut.Next(1, 7);
if(gra.Kość2)
Wylosowano2 = rzut.Next(1, 7);
if(gra.Kość3)
Wylosowano3 = rzut.Next(1, 7);
if(gra.Kość4)
Wylosowano4 = rzut.Next(1, 7);
if(gra.Kość5)
Wylosowano5 = rzut.Next(1, 7);
}
}
A tu tym bardziej:
public int Jedynki()
{
jedynki = 0;
if (Losowanie.Wylosowano1 == 1)
jedynki++;
if (Losowanie.Wylosowano2 == 1)
jedynki++;
if (Losowanie.Wylosowano3 == 1)
jedynki++;
if (Losowanie.Wylosowano4 == 1)
jedynki++;
if (Losowanie.Wylosowano5 == 1)
jedynki++;
return jedynki;
}
public int Dwójki()
{
dwójki = 0;
if (Losowanie.Wylosowano1 == 2)
dwójki += 2;
if (Losowanie.Wylosowano2 == 2)
dwójki += 2;
if (Losowanie.Wylosowano3 == 2)
dwójki += 2;
if (Losowanie.Wylosowano4 == 2)
dwójki += 2;
if (Losowanie.Wylosowano5 == 2)
dwójki += 2;
return dwójki;
}
Policzenie sumy kostek danej wartości można zrobić znacznie prościej, podobnie jak stwierdzenie, jaka kombinacja została wylosowana. Wystarczy użyć tablic, pętli i trochę myśleć.
public int Full()
{
full = 0;
a4 = 0;
b4 = 0;
c4 = 0;
d4 = 0;
e4 = 0;
f4 = 0;
if (Losowanie.Wylosowano1 == 1)
a4++;
if (Losowanie.Wylosowano1 == 2)
b4++;
if (Losowanie.Wylosowano1 == 3)
c4++;
if (Losowanie.Wylosowano1 == 4)
d4++;
if (Losowanie.Wylosowano1 == 5)
e4++;
if (Losowanie.Wylosowano1 == 6)
f4++;
if (Losowanie.Wylosowano2 == 1)
a4++;
if (Losowanie.Wylosowano2 == 2)
b4++;
if (Losowanie.Wylosowano2 == 3)
c4++;
if (Losowanie.Wylosowano2 == 4)
d4++;
if (Losowanie.Wylosowano2 == 5)
e4++;
if (Losowanie.Wylosowano2 == 6)
f4++;
if (Losowanie.Wylosowano3 == 1)
a4++;
if (Losowanie.Wylosowano3 == 2)
b4++;
if (Losowanie.Wylosowano3 == 3)
c4++;
if (Losowanie.Wylosowano3 == 4)
d4++;
if (Losowanie.Wylosowano3 == 5)
e4++;
if (Losowanie.Wylosowano3 == 6)
f4++;
if (Losowanie.Wylosowano4 == 1)
a4++;
if (Losowanie.Wylosowano4 == 2)
b4++;
if (Losowanie.Wylosowano4 == 3)
c4++;
if (Losowanie.Wylosowano4 == 4)
d4++;
if (Losowanie.Wylosowano4 == 5)
e4++;
if (Losowanie.Wylosowano4 == 6)
f4++;
if (Losowanie.Wylosowano5 == 1)
a4++;
if (Losowanie.Wylosowano5 == 2)
b4++;
if (Losowanie.Wylosowano5 == 3)
c4++;
if (Losowanie.Wylosowano5 == 4)
d4++;
if (Losowanie.Wylosowano5 == 5)
e4++;
if (Losowanie.Wylosowano5 == 6)
f4++;
if((a4 == 3) && (b4 == 2) ||
(a4 == 3) && (c4 == 2) ||
(a4 == 3) && (d4 == 2) ||
(a4 == 3) && (e4 == 2) ||
(a4 == 3) && (f4 == 2) ||
(b4 == 3) && (a4 == 2) ||
(b4 == 3) && (c4 == 2) ||
(b4 == 3) && (d4 == 2) ||
(b4 == 3) && (e4 == 2) ||
(b4 == 3) && (f4 == 2) ||
(c4 == 3) && (a4 == 2) ||
(c4 == 3) && (b4 == 2) ||
(c4 == 3) && (d4 == 2) ||
(c4 == 3) && (e4 == 2) ||
(c4 == 3) && (f4 == 2) ||
(d4 == 3) && (a4 == 2) ||
(d4 == 3) && (b4 == 2) ||
(d4 == 3) && (c4 == 2) ||
(d4 == 3) && (e4 == 2) ||
(d4 == 3) && (f4 == 2) ||
(e4 == 3) && (a4 == 2) ||
(e4 == 3) && (b4 == 2) ||
(e4 == 3) && (c4 == 2) ||
(e4 == 3) && (d4 == 2) ||
(e4 == 3) && (f4 == 2) ||
(f4 == 3) && (a4 == 2) ||
(f4 == 3) && (b4 == 2) ||
(f4 == 3) && (c4 == 2) ||
(f4 == 3) && (d4 == 2) ||
(f4 == 3) && (e4 == 2))
{
full = 25;
}
return full;
}
Przecież jak się ma liczby wylosowane w tablicy, to sprawdzenie, czy jest wśród nich grupa kilku takich samych jest banalne, i nie wymaga kilkuset ifów, nie wymaga nawet jednego!
var liczby = new int[] {
1, 2, 3, 5, 2, 2, 7, 6
};
int[] liczniki = new int[6]; // ta tablica zawiera informacje o tym, ile razy dana liczba została wylosowana
for (int i = 0; i < liczby.Length; i++)
{
// wylosowana wartość jest indeksem w tablicy liczników, trzeba ją tylko zmniejszyć o 1, bo tablice indeksuje się od 0
liczniki[liczby[i] - 1]++;
if (liczniki[liczby[i] - 1] == 3)
{
Console.WriteLine("Mamy trójkę kostek: {0}", liczby[i]);
break;
}
}