Witam, mam problem logiczny z poniższym kodem. Programuję na Windows Phone prostą aplikację kółko i krzyżyk. Do pewnego momentu działa poprawnie, a później komputer przestaje wykonywać ruchy. Byłbym wdzięczny za wskazanie błędu.
private void CompMove()
{
if (button_11.IsEnabled == true)
middle();
else if (tablica[0,0] == 0)
{
corner();
}
else
attack_block();
}
// blok/atak
private void attack_block()
{
// BLOK !!
//pierwszy wiersz
if (tablica[0, 0] == -1 && tablica[0, 1] == -1) { tablica[0, 2] = 1; button_02.Content = "O"; button_02.IsEnabled = false; x++; }
else if (tablica[0, 1] == -1 && tablica[0, 2] == -1) { tablica[0, 0] = 1; button_00.Content = "O"; button_00.IsEnabled = false; x++; }
else if (tablica[0, 2] == -1 && tablica[0, 0] == -1) { tablica[0, 1] = 1; button_01.Content = "O"; button_01.IsEnabled = false; x++; }
//drugi wiersz
else if (tablica[1, 0] == -1 && tablica[1, 1] == -1) { tablica[1, 2] = 1; button_12.Content = "O"; button_12.IsEnabled = false; x++; }
else if (tablica[1, 1] == -1 && tablica[1, 2] == -1) { tablica[1, 0] = 1; button_10.Content = "O"; button_10.IsEnabled = false; x++; }
else if (tablica[1, 2] == -1 && tablica[1, 0] == -1) { tablica[1, 1] = 1; button_11.Content = "O"; button_11.IsEnabled = false; x++; }
//trzeci wiersz
else if (tablica[2, 0] == -1 && tablica[2, 1] == -1) { tablica[2, 2] = 1; button_22.Content = "O"; button_22.IsEnabled = false; x++; }
else if (tablica[2, 1] == -1 && tablica[2, 2] == -1) { tablica[2, 0] = 1; button_20.Content = "O"; button_20.IsEnabled = false; x++; }
else if (tablica[2, 2] == -1 && tablica[2, 0] == -1) { tablica[2, 1] = 1; button_21.Content = "O"; button_21.IsEnabled = false; x++; }
//pierwsza kolumna
else if (tablica[0, 0] == -1 && tablica[1, 0] == -1) { tablica[2, 0] = 1; button_20.Content = "O"; button_20.IsEnabled = false; x++; }
else if (tablica[1, 0] == -1 && tablica[2, 0] == -1) { tablica[0, 0] = 1; button_00.Content = "O"; button_00.IsEnabled = false; x++; }
else if (tablica[2, 0] == -1 && tablica[0, 0] == -1) { tablica[1, 0] = 1; button_10.Content = "O"; button_10.IsEnabled = false; x++; }
//druga kolumna
else if (tablica[0, 1] == -1 && tablica[1, 1] == -1) { tablica[2, 1] = 1; button_21.Content = "O"; button_21.IsEnabled = false; x++; }
else if (tablica[1, 1] == -1 && tablica[2, 1] == -1) { tablica[0, 1] = 1; button_01.Content = "O"; button_01.IsEnabled = false; x++; }
else if (tablica[2, 1] == -1 && tablica[0, 1] == -1) { tablica[1, 1] = 1; button_11.Content = "O"; button_11.IsEnabled = false; x++; }
//trzecia kolumna
else if (tablica[0, 2] == -1 && tablica[1, 2] == -1) { tablica[2, 2] = 1; button_22.Content = "O"; button_22.IsEnabled = false; x++; }
else if (tablica[1, 2] == -1 && tablica[2, 2] == -1) { tablica[0, 2] = 1; button_02.Content = "O"; button_02.IsEnabled = false; x++; }
else if (tablica[2, 2] == -1 && tablica[0, 2] == -1) { tablica[1, 2] = 1; button_12.Content = "O"; button_12.IsEnabled = false; x++; }
// ATAK!!
//pierwszy wiersz
else if (tablica[0, 0] == 1 && tablica[0, 1] == 1) { tablica[0, 2] = 1; button_02.Content = "O"; button_02.IsEnabled = false; x++; }
else if (tablica[0, 1] == 1 && tablica[0, 2] == 1) { tablica[0, 0] = 1; button_00.Content = "O"; button_00.IsEnabled = false; x++; }
else if (tablica[0, 2] == 1 && tablica[0, 0] == 1) { tablica[0, 1] = 1; button_01.Content = "O"; button_01.IsEnabled = false; x++; }
//drugi wiersz
else if (tablica[1, 0] == 1 && tablica[1, 1] == 1) { tablica[1, 2] = 1; button_12.Content = "O"; button_12.IsEnabled = false; x++; }
else if (tablica[1, 1] == 1 && tablica[1, 2] == 1) { tablica[1, 0] = 1; button_10.Content = "O"; button_10.IsEnabled = false; x++; }
else if (tablica[1, 2] == 1 && tablica[1, 0] == 1) { tablica[1, 1] = 1; button_11.Content = "O"; button_11.IsEnabled = false; x++; }
//trzeci wiersz
else if (tablica[2, 0] == 1 && tablica[2, 1] == 1) { tablica[2, 2] = 1; button_22.Content = "O"; button_22.IsEnabled = false; x++; }
else if (tablica[2, 1] == 1 && tablica[2, 2] == 1) { tablica[2, 0] = 1; button_20.Content = "O"; button_20.IsEnabled = false; x++; }
else if (tablica[2, 2] == 1 && tablica[2, 0] == 1) { tablica[2, 1] = 1; button_21.Content = "O"; button_21.IsEnabled = false; x++; }
//pierwsza kolumna
else if (tablica[0, 0] == 1 && tablica[1, 0] == 1) { tablica[2, 0] = 1; button_20.Content = "O"; button_20.IsEnabled = false; x++; }
else if (tablica[1, 0] == 1 && tablica[2, 0] == 1) { tablica[0, 0] = 1; button_00.Content = "O"; button_00.IsEnabled = false; x++; }
else if (tablica[2, 0] == 1 && tablica[0, 0] == 1) { tablica[1, 0] = 1; button_10.Content = "O"; button_10.IsEnabled = false; x++; }
//druga kolumna
else if (tablica[0, 1] == 1 && tablica[1, 1] == 1) { tablica[2, 1] = 1; button_21.Content = "O"; button_21.IsEnabled = false; x++; }
else if (tablica[1, 1] == 1 && tablica[2, 1] == 1) { tablica[0, 1] = 1; button_01.Content = "O"; button_01.IsEnabled = false; x++; }
else if (tablica[2, 1] == 1 && tablica[0, 1] == 1) { tablica[1, 1] = 1; button_11.Content = "O"; button_11.IsEnabled = false; x++; }
//trzecia kolumna
else if (tablica[0, 2] == 1 && tablica[1, 2] == 1) { tablica[2, 2] = 1; button_22.Content = "O"; button_22.IsEnabled = false; x++; }
else if (tablica[1, 2] == 1 && tablica[2, 2] == 1) { tablica[0, 2] = 1; button_02.Content = "O"; button_02.IsEnabled = false; x++; }
else if (tablica[2, 2] == 1 && tablica[0, 2] == 1) { tablica[1, 2] = 1; button_12.Content = "O"; button_12.IsEnabled = false; x++; }
// skos od lewej
else if (tablica[0, 2] == 1 && tablica[1, 1] == 1) { tablica[2, 0] = 1; button_20.Content = "O"; button_20.IsEnabled = false; x++; }
else if (tablica[1, 1] == 1 && tablica[2, 0] == 1) { tablica[0, 0] = 1; button_00.Content = "O"; button_00.IsEnabled = false; x++; }
else if (tablica[2, 0] == 1 && tablica[1, 1] == 1) { tablica[0, 2] = 1; button_02.Content = "O"; button_12.IsEnabled = false; x++; }
//skos od prawej
else if (tablica[0, 2] == 1 && tablica[1, 2] == 1) { tablica[2, 2] = 1; button_22.Content = "O"; button_22.IsEnabled = false; x++; }
else if (tablica[1, 2] == 1 && tablica[2, 2] == 1) { tablica[0, 2] = 1; button_02.Content = "O"; button_02.IsEnabled = false; x++; }
else if (tablica[2, 2] == 1 && tablica[0, 2] == 1) { tablica[1, 2] = 1; button_12.Content = "O"; button_12.IsEnabled = false; x++; }
else
{
int los1, los2;
Button[,] tablica1 = new Button[3, 3]
{ { button_00, button_01, button_02 }, { button_10, button_11, button_12 }, { button_20, button_21, button_22 } };
etykieta:
Random indeks1 = new Random();
los1 = indeks1.Next(0, 3);
los2 = indeks1.Next(0, 3);
if (tablica1[los1, los2].IsEnabled == true)
{
tablica[los1, los2] = 1;
tablica1[los1, los2].Content = "O";
tablica1[los1, los2].IsEnabled = false;
x++;
}
else
goto etykieta;
}
}
private void middle()
{
tablica[1, 1] = 1;
button_11.Content = "O";
button_11.IsEnabled = false;
x++;
}
private void corner()
{
button_00.Content = "O";
button_00.IsEnabled = false;
tablica[0, 0] = 1;
}
<code>
zgodnie z instrukcją na żółtym polu.