У меня проблема с моей игрой соответствия / памяти, которую я делаю для школьного проекта.Я хочу, чтобы две одинаковые карты остались после их нажатия, и когда щелкнули две разные карты, они вернутся к изображению на оборотной стороне карты.
Я абсолютный новичок, поэтому, если кто-то сможет объяснитьэто очень легко для меня, это мне очень поможет.В настоящее время я застрял на этом.
Это мой код для загрузки изображений из списка и размещения их в сетке:
private void AddImage()
{
List<ImageSource> images = GetImagesList();
Random random = new Random();
for (int row = 0; row < rows; row++)
{
for (int col = 0; col < cols; col++)
{
Image ImageOnBacksideOfCard = new Image();
ImageOnBacksideOfCard.Source = new BitmapImage(new Uri("project/achterkant.png", UriKind.Relative));
//Ruimte tussen kaartjes
Thickness margin = ImageOnBacksideOfCard.Margin;
margin.Top = 10;
ImageOnBacksideOfCard.Margin = margin;
ImageOnBacksideOfCard.MouseDown += new MouseButtonEventHandler(CardClick);
//Randomize
positie1 = random.Next(images.Count);
ImageOnBacksideOfCard.Tag = images[positie1];
images.RemoveAt(positie1);
Grid.SetColumn(ImageOnBacksideOfCard, col);
Grid.SetRow(ImageOnBacksideOfCard, row);
grid.Children.Add(ImageOnBacksideOfCard);
}
}
//Load pictures
private List<ImageSource> GetImagesList()
{
List<ImageSource> images = new List<ImageSource>();
for (int i = 0; i < 16; i++)
{
int imageNr = i % 8 + 1;
ImageSource source = new BitmapImage(new Uri("project/" + imageNr + ".jpg", UriKind.Relative));
images.Add(source);
}
return images;
}
//Cards turn on click
private void CardClick(object sender, MouseButtonEventArgs e)
{
Image card = (Image)sender;
ImageSource front = (ImageSource)card.Tag;
card.Source = front;
}
//Reset
public void Reset()
{
grid.Children.Clear();
AddImage();
}