Funkcja ma odrzucić 2 niepoprawne odpowiedzi (tak jak w milionerach). Niestety nie działa poprawnie (nie wyłącza odpowiednich buttonów ani nie podświetla ich na czerwono). Żaden błąd nie wyskakuje. Jak ktoś ma trochę czasu to może przejrzeć. Będę wdzięczny.
public class KolaRatunkowe
{
OknoGry oknoGry = new OknoGry();
Pytania pytania = new Pytania();
Random x1 = new Random();
Random x11 = new Random();
int x2;
int x3;
string poprawnaOdp;
public void polNaPol(PictureBox picture, OknoGry oknoGry, string poprawnaOdp)
{
picture.Enabled = false;
picture.Cursor = Cursors.Arrow;
bool buttonA = false;
bool buttonB = false;
bool buttonC = false;
bool buttonD = false;
if (oknoGry.btnOdpA.Text == poprawnaOdp)
{
buttonA = true;
while (x2 == x3 || x2 == 1 || x3 == 1)
{
x2 = x1.Next(1, 4);
x3 = x11.Next(1, 4);
}
if(x2 == 2 || x3 == 2)
{
oknoGry.btnOdpB.Enabled = false;
oknoGry.btnOdpB.BackColor = System.Drawing.Color.Red;
}
else if(x2 == 3 || x3 == 3)
{
oknoGry.btnOdpC.Enabled = false;
oknoGry.btnOdpC.BackColor = System.Drawing.Color.Red;
}
else if (x2 == 4 || x3 == 4)
{
oknoGry.btnOdpD.Enabled = false;
oknoGry.btnOdpD.BackColor = System.Drawing.Color.Red;
}
}
if (oknoGry.btnOdpB.Text == poprawnaOdp)
{
buttonB = true;
while (x2 == x3 || x2 == 2 || x3 == 2)
{
x2 = x1.Next(1, 4);
x3 = x11.Next(1, 4);
}
if (x2 == 1 || x3 == 1)
{
oknoGry.btnOdpA.Enabled = false;
oknoGry.btnOdpA.BackColor = System.Drawing.Color.Red;
}
else if (x2 == 3 || x3 == 3)
{
oknoGry.btnOdpC.Enabled = false;
oknoGry.btnOdpC.BackColor = System.Drawing.Color.Red;
}
else if (x2 == 4 || x3 == 4)
{
oknoGry.btnOdpD.Enabled = false;
oknoGry.btnOdpD.BackColor = System.Drawing.Color.Red;
}
}
if (oknoGry.btnOdpC.Text == poprawnaOdp)
{
buttonC = true;
while (x2 == x3 || x2 == 3 || x3 == 3)
{
x2 = x1.Next(1, 4);
x3 = x11.Next(1, 4);
}
if (x2 == 1 || x3 == 1)
{
oknoGry.btnOdpA.Enabled = false;
oknoGry.btnOdpA.BackColor = System.Drawing.Color.Red;
}
else if (x2 == 2 || x3 == 2)
{
oknoGry.btnOdpB.Enabled = false;
oknoGry.btnOdpB.BackColor = System.Drawing.Color.Red;
}
else if (x2 == 4 || x3 == 4)
{
oknoGry.btnOdpD.Enabled = false;
oknoGry.btnOdpD.BackColor = System.Drawing.Color.Red;
}
}
if (oknoGry.btnOdpD.Text == poprawnaOdp)
{
buttonD = true;
while (x2 == x3 || x2 == 4 || x3 == 4)
{
x2 = x1.Next(1, 4);
x3 = x11.Next(1, 4);
}
if (x2 == 1 || x3 == 1)
{
oknoGry.btnOdpA.Enabled = false;
oknoGry.btnOdpA.BackColor = System.Drawing.Color.Red;
}
else if (x2 == 2 || x3 == 2)
{
oknoGry.btnOdpB.Enabled = false;
oknoGry.btnOdpB.BackColor = System.Drawing.Color.Red;
}
else if (x2 == 3 || x3 == 3)
{
oknoGry.btnOdpC.Enabled = false;
oknoGry.btnOdpC.BackColor = System.Drawing.Color.Red;
}
}
}
}
Potem ją wywołuje w ten sposób:
private void pictPol_Click(object sender, EventArgs e)
{
PictureBox picture = (PictureBox)sender;
OknoGry oknoGry = new OknoGry();
string poprawnaOdp = pytania.PoprawnaOdp[pytania.x2];
KolaRatunkowe kolaRatunkowe = new KolaRatunkowe();
kolaRatunkowe.polNaPol(picture, oknoGry, poprawnaOdp);
}