C#猜数字 求助
Windows应用程序
游戏规则:计算机随机产生一个不重复的四位数,玩家输入四位不重复的数与计算机给出的数作对比,如果与计算机给出的数的位置相同且数字相同,那么将会是1A,如果数字相同而位置不同,将会显示1B。如:计算机的随机数字为:1234 ,猜的数字为:1354 ,此时计算机会提示为:2A1B,2A表示在这次猜测中,有二个数字及其位置都正确,1B表示有一个数字正确但位置不正确。
题目是这样的,我是初学者,还请各位大大们多多帮助。
题目做了一半 但是还是有很多问题 请有爱的大大们帮忙完善和解释
namespace 猜数游戏
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("游戏规则:计算机随机产生一个不重复的四位数,玩家输入四位不重复的数与计算机给出的数作对比,如果与计算机给出的数的位置相同且数字相同,那么将会是1A,如果数字相同而位置不同,将会显示1B。如:计算机的随机数字为:1234 ,猜的数字为:1354 ,此时计算机会提示为:2A1B,2A表示在这次猜测中,有二个数字及其位置都正确,1B表示有一个数字正确但位置不正确。");
}
int count=0;
private void button2_Click(object sender, EventArgs e)
{
string str2 = textBox1.Text.Trim();
string[] str1list = { "1", "2", "3", "4" };
string[] str2list = { "1", "2", "3", "4" };
int A = 0;
int B = 0;
int C = 0;
string te = "";
while (count == 0)
{
Random rm = new Random();
for (int n = 0; n < 4; n++)
{
str1list[n] = rm.Next(9).ToString();
te += str1list[n].ToString();
} //产生4位随机数
count++;
}
do
{
for (int i = 0; i < 4; i++)
{
str2list[i] = str2.Substring(i, 1);
if (str1list[i].ToString() == str2list[i].ToString())
A++;
} //得到位置数值都对的个数
foreach (string tem in str1list)
{
for (int j = 0; j < 4; j++)
{
if (tem == str2list[j].ToString())
{
B++;
}
}
} //得到数值对的个数
C = B - A; //得到数值对但位置不对的个数
label2.Text = A.ToString() + "A" + C.ToString() + "B" + "|原始数据是:" + te;
count++;
}
while (count > 0 && count < 10 && A != 4);
if(A==4&&C==4)
label2.Text = "答对了!";
else
label2.Text = "你已经没有机会了!|正确答案是:"+te;
}
}
}