public async void Tapped(Button button)
        {
            if (!_gameOver)
            {
                _selected = (EmojiItem)button.Tag;
                Board.SetState(_selected);
                if (_selected.Correct)
                {
                    if (!Board.Next())
                    {
                        await ShowDialogAsync("Game Over, You Won!");

                        _gameOver = true;
                    }
                }
                else
                {
                    await ShowDialogAsync("Incorrect, You Lost!");

                    _gameOver = true;
                }
            }
            else
            {
                await ShowDialogAsync("Game Over!");
            }
        }
 public void SetState(EmojiItem selected)
 {
     foreach (EmojiItem item in Items)
     {
         if (selected.Type == item.Type)
         {
             item.Correct = selected.Correct;
             item.State   = item.Correct ?
                            EmojiState.Correct : EmojiState.Incorrect;
         }
     }
 }
        private void Shuffle(List <EmojiItem> list)
        {
            int count = list.Count;

            while (count > 1)
            {
                count--;
                int       index = random.Next(count + 1);
                EmojiItem value = list[index];
                list[index] = list[count];
                list[count] = value;
            }
        }