Windows Phone と C# についても理解を深めています。Coloring() 関数に IndexOutOfRangeException があることがわかりました。
public void Coloring()
{
szinek_base.Add(Color.FromArgb(255, 0, 171, 169));
szinek_base.Add(Color.FromArgb(255, 140, 191, 38));
szinek_base.Add(Color.FromArgb(255, 160, 80, 0));
szinek_base.Add(Color.FromArgb(255, 230, 113, 184));
szinek_base.Add(Color.FromArgb(255, 240, 150, 9));
szinek_base.Add(Color.FromArgb(255, 27, 161, 226));
szinek_base.Add(Color.FromArgb(255, 229, 20, 0));
szinek_base.Add(Color.FromArgb(255, 51, 153, 51));
int remove;
Color szin = new Color();
Random generator = new Random();
List<int> lapok = new List<int>();
for (int l = 0; l < 16; l++)
{
lapok.Add(l);
}
for (int i = 0; i < 8; i++)
{
szin = szinek_base[generator.Next(0, szinek_base.Count)];
remove = lapok[generator.Next(0, lapok.Count)];
szinek[remove] = szin;
lapok.Remove(remove);
szinek_base.Remove(szin);
remove = lapok[generator.Next(0, lapok.Count)];
szinek[remove] = szin;
lapok.Remove(remove);
szinek_base.Remove(szin);
}
}
try-catch を使用すると、2 番目の for() サイクルにバグが含まれていることもわかりました。ただし、ブロックを半分に分割してtry-catchを使用すると、エラーも最初の部分でも2番目の部分でも見つかりません。ちなみに、このコードはWindows 7でメモリゲームの一部として正常に動作します。アイデアがありません。助けてくれてありがとう、文法やその他の間違いでごめんなさい、私はまだ StackOverflow プロトコルを認識していません。
編集:言及するのを忘れました、メインの名前空間にはそれらが含まれています:
public List<Color> szinek_base = new List<Color>();
Color[] szinek = new Color[8];