2016-01-28 2 views
0

Я пишу программу Tic Tac Toe в C#, и чтобы проверить, победит ли игрок, у меня есть 16 операторов if (8 опций для x и o). (Кнопки пронумерованы как телефонный набор).Код для проверки всех комбинаций выигрышей в Tic Tac Toe

Краткий пример:

if (button1.Text == "X" && button2.Text == "X" && button3.Text=="X")//horizontal top X 
{ 
    MessageBox.Show("Congratulations! X wins!", "Winner!"); 
} 

if (button1.Text == "O" && button2.Text == "O" && button3.Text == "O")//horizontal top O 
{  
    MessageBox.Show("Congratulations! O wins!", "Winner!");     
} 

if (button4.Text == "X" && button5.Text == "X" && button6.Text == "X")//horizontal middle X 
{ 
    MessagBox.Show("Congratulations! X wins!"); 
} 

if (button4.Text == "O" && button5.Text == "O" && button6.Text == "O")//horizontal middle O 
{ 
    MesageBox.Show("Congratulations! O wins!", "Winner!");     
} 

Есть ли способ сказать "кнопку Далее"/индекс кнопки ?, потому что тогда я могу сделать:

if (button.Text==NextButton.Text==NextButton.Text) 
{ 
    MessageBox.Show("Congratulations! X wins!", "Winner!"); 
} 

или:

if (button[i].Text=="X" && button[i++].Text=="X" && button[i+=2].Text=="X") 

ответ

0

Вы можете:

if (button1.Text == button2.Text && button2.Text == button3.Text) 
    MessageBox.Show("Congratulations! " +button1.Text +" wins!", "Winner!");     

и так далее.

0

Или вы можете создать массив кнопок 3x3, после чего вы можете получить к ним доступ, используя ваш метод индексирования, то есть button[row,column].