2

私は三目並べゲームを作成し、コードを減らして別のバージョンを作成しています。とにかく...ここに私のコードがあります...do whileステートメントの間にいくつかのコードを取りましたが、ええ...

    var rc = new Random();
    do
    {
        storeRI = rc.Next(1, 9);

        if (storeRI == 1 & button1.Text == "")
        {
            button1.Text = "O";
            Turn = 1;
            TestWin();
            break;
        }
        else if (storeRI == 2 & button2.Text == "")
        {
            button2.Text = "O";
            Turn = 1;
            TestWin();
            break;
        }


    } while (Turn == 2 & button1.Text == "" | button2.Text == "" | button3.Text == "" | button3.Text == "" | button4.Text == "" | button5.Text == "" | button6.Text == "" | button7.Text == "" | button8.Text == "" | button9.Text == "");
}
else
{
    MessageBox.Show("It's a draw");
}

私は主にこのコードブロックに焦点を当てたいと思っています...短くするために... :)

 } while (Turn == 2 & button1.Text == "" | button2.Text == "" | button3.Text == "" | button3.Text == "" | button4.Text == "" | button5.Text == "" | button6.Text == "" | button7.Text == "" | button8.Text == "" | button9.Text == "");
4

1 に答える 1

5

個々のボタンからボタンのリストを作成し、それを次のように変更します

while(Turn==2 && buttons.Any(b => b.Text == ""))

一般的に、ボタンが 9 つある場合は、簡単にアクセスできるように配列またはリストにする必要があります。

Button[] buttons = new Button[] {button1, button2, button3, ... } ;

などbuttons[0]の代わりにアクセスできます。button1

これをオンデマンドで行う関数を用意するのではなく、フォーム初期化子でこれを行います。

于 2013-01-26T02:18:25.393 に答える