C# Угадай игру со случайными числами
Должно быть случайное число от 1000 до 9999, и пользователь должен угадать это число. Для этого я сделал 4 разных текстовых поля. Если номер правильный и он находится на нужном месте, он должен стать зеленым. Если число неправильное, оно должно стать красным, а если число правильное, но оно находится в неправильном месте, оно должно стать желтым. Например:
если число 1245, а пользователь вводит 2143, то оно должно быть таким: желтый , желтый, зеленый, красный ...
Этот код работает, но пользователь может угадать число только один раз, а при втором нажатии кнопки появляется еще одно случайное число. Я хочу, чтобы он позволял пользователю угадывать, пока все текстовые поля не станут зелеными. Кроме того, в моем коде много повторений, которые я не знаю, как исправить... (все эти if, else if, elses)
[edit]добавлен блок кода-OriginalGriff [/edit]
Что я уже пробовал:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace guess { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Random random1 = new Random(); int rand1 = random1.Next(1, 9); Random random2 = new Random(); int rand2 = random2.Next(0, 9); Random random3 = new Random(); int rand3 = random3.Next(0, 9); Random random4 = new Random(); int rand4 = random4.Next(0, 9); if (textBox1.Text == rand1.ToString()) { textBox1.BackColor = Color.LightGreen; } else if (textBox1.Text == rand2.ToString() || textBox1.Text == rand3.ToString() || textBox1.Text == rand4.ToString()) { textBox1.BackColor = Color.Yellow; } else { textBox1.BackColor = Color.Red; } if (textBox2.Text == rand2.ToString()) { textBox2.BackColor = Color.LightGreen; } else if (textBox2.Text == rand1.ToString() || textBox2.Text == rand3.ToString() || textBox2.Text == rand4.ToString()) { textBox2.BackColor = Color.Yellow; } else { textBox2.BackColor = Color.Red; } if (textBox3.Text == rand3.ToString()) { textBox3.BackColor = Color.LightGreen; } else if (textBox3.Text == rand1.ToString() || textBox3.Text == rand2.ToString() || textBox3.Text == rand4.ToString()) { textBox3.BackColor = Color.Yellow; } else { textBox3.BackColor = Color.Red; } if (textBox4.Text == rand4.ToString()) { textBox4.BackColor = Color.LightGreen; } else if (textBox4.Text == rand1.ToString() || textBox4.Text == rand2.ToString() || textBox4.Text == rand3.ToString()) { textBox4.BackColor = Color.Yellow; } else { textBox4.BackColor = Color.Red; } label1.Text = rand1.ToString() + rand2.ToString() + rand3.ToString() + rand4.ToString(); } } }