Я пытаюсь сделать следующее:
Я хочу, чтобы 4 изображения-ящика, которые я получил в форме, получили лицевые стороны карты - я имею в виду, переверните их.случайная карта из 4 будет выбрана, перевернута и покажет лицо выбранной карты, а также randomley.
После того, как карта перевернута, ее нельзя снова переключить в следующий интервал таймера, икак только все карточки были перевернуты, появляется окно сообщения, и когда пользователь нажимает «ОК», все перезапускается.
Проблема в том, что messageBox продолжает появляться снова и снова из-за положительного значения флага.Я не знаю, какую переменную мне следует использовать, чтобы этого не произошло.
Соответствующий код:
//This function is the timer's function, it starts every time interval:
private void cardsChangingTimer_Tick(object sender, EventArgs e)
{
int chosenImage = rnd.Next(1, 17);
int chosenCard = rnd.Next(0, 4);
if (bucketArr[chosenCard] == 0)
{
bucketArr[chosenCard]++;
switch (chosenCard)
{
case 0:
card1Pic.Image = Image.FromFile("cards\\" + chosenImage + ".png");
break;
case 1:
card2Pic.Image = Image.FromFile("cards\\" + chosenImage + ".png");
break;
case 2:
card3Pic.Image = Image.FromFile("cards\\" + chosenImage + ".png");
break;
case 3:
card4Pic.Image = Image.FromFile("cards\\" + chosenImage + ".png");
break;
}
}
gameEnded = true;
for (int i = 0; i < bucketArr.Length; i++)
{
if (bucketArr[i] == 0)
{
gameEnded = false;
break;
}
}
if (gameEnded)
{
DialogResult dialog = MessageBox.Show("All 4 cards were turned over...");
if (dialog == DialogResult.OK)
{
card1Pic.Image = Image.FromFile("..\\..\\17.png");
card2Pic.Image = Image.FromFile("..\\..\\17.png");
card3Pic.Image = Image.FromFile("..\\..\\17.png");
card4Pic.Image = Image.FromFile("..\\..\\17.png");
}
gameEnded = false;
for(int i = 0; i < bucketArr.Length; i++)
bucketArr[i] = 0;
}
}
Большое спасибо за любую помощь ...