第1个回答 2013-12-31
static void Main(string[] args)
{
//是否成功
bool isSuccess=false;
var random = new Random();
List<int> source = new List<int>() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
String answer = string.Empty;
//生成4位数字
for (int f = 0; f < 4; f++)
{
int i = random.Next(f == 0 ? 1 : 0, source.Count);
answer+=source[i];
source.RemoveAt(i);
}
//进行7次猜测
for (int j = 0; j < 7; j++)
{
Console.WriteLine("输入猜测数字 Round:"+(j+1));
string strin = null;
strin = Console.ReadLine();
Regex regex = new Regex("^[1-9][0-9]{3}$");
//判断数据是否合法
while (strin == null || !regex.IsMatch(strin)||strin.Distinct().Count()<3)
{
Console.WriteLine("输入错误,请输入4位无重复数字");
strin = Console.ReadLine();
}
//完全正确数
int a = 0;
//包含但位置错误
int b = 0;
for (int k = 0; k < 4; k++)
{
if (answer[k] == strin[k])
{
a++;
}
else if (answer.Contains(strin[k].ToString()))
{
b++;
}
}
if (a==4)
{
isSuccess = true;
break;
}
else
{
Console.WriteLine("A{0}B{1}",a,b);
}
}
Console.WriteLine(isSuccess?"成功":"失败");
Console.WriteLine("任意键退出");
Console.ReadLine();
}