c # как заставить соответствующие карты оставаться включенными в сетке?(игра на запоминание) - PullRequest
0 голосов
/ 17 октября 2018

У меня проблема с моей игрой соответствия / памяти, которую я делаю для школьного проекта.Я хочу, чтобы две одинаковые карты остались после их нажатия, и когда щелкнули две разные карты, они вернутся к изображению на оборотной стороне карты.

Я абсолютный новичок, поэтому, если кто-то сможет объяснитьэто очень легко для меня, это мне очень поможет.В настоящее время я застрял на этом.

Это мой код для загрузки изображений из списка и размещения их в сетке:

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();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...