C # WPF ¿Cómo cambio el contenido a un botón aleatorio?
-
11-12-2019 - |
Pregunta
Estoy tratando de hacer un juego de Tic Tac TOE en Silverlight que se puede jugar en el modo 1 jugador. Por lo tanto, para eso, después de hacer clic en cualquier botón y cambiar su contenido en "X" o "O", necesito cambiar el contenido de un botón aleatorio.
He intentado hacer una lista de todos los botones y obtener un valor aleatorio:
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;
}
Pero no sé cómo hacer que mi cadena aleatoria sea un botón para que pueda llamar al siguiente método:
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);
}
¿Alguna idea? ¡Gracias!
Solución
Haz una lista de referencias de botones en lugar:
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);
}
}
No estoy seguro de por qué el botón con índice cero no se debe usar, aunque ...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow