我正在尝试在Silverlight中制作一个TIC TAC游戏,可以用1个玩家模式播放。 因此,在点击任何按钮后,将内容更改为“x”或“o”,我需要更改随机按钮的内容。

我尝试了列出所有按钮并获得随机值:

    public List<string> avail = new List<string>() { "button1", "button2", "button3", "button4", "button5", "button6", "button7", "button8", "button9" };

    public string Ran()
    {
        Random b1 = new Random();
        int index = b1.Next(avail.Count); 
        if (index > 0)
            return avail[index];
        else
            return null;
    }
.

但我不知道如何让我的随机字符串按钮,以便我可以调用以下方法:

    public void buttonchange(Button b)
    {
        if (b.Content.ToString() == "")
            if (x == true)
            {
                x = false;
                b.Content = "X";
            }
            else
            {
                x = true;
                b.Content = "O";
            }
        if(b.Name!=null)
            avail.Remove(b.Name);
    }
.

任何想法? 谢谢!

有帮助吗?

解决方案

制作按钮引用列表:

public List<Button> avail = new List<Button>() { button1, button2, button3, button4, button5, button6, button7, button8, button9 };

public Button Ran()
{
    Random b1 = new Random();
    int index = b1.Next(avail.Count); 
    if (index > 0) {
        return avail[index];
    } else {
        return null;
    }
}

public void buttonchange(Button b)
{
    if(b != null) {
        if (b.Content.ToString() == "") {
            b.Content = x ? "X" : "O";
            x = !x;
        }
        avail.Remove(b);
    }
}
.

不确定为什么不使用具有索引零的按钮,但是...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top