一道简单的 C#编程题目。
1、猜数字游戏:由计算机生成一个4位数,每位数字各不相同(如:1234。1123则是错误的),用户输入数字进行猜测,计算机对比正确答案。如果用户猜中4位数中包含的数字,但...
1、 猜数字游戏:由计算机生成一个4位数,每位数字各不相同(如:1234。1123则是错误的),用户输入数字进行猜测,计算机对比正确答案。如果用户猜中4位数中包含的数字,但位置不对,则B计数器累加一;如果用户猜中4位数中包含的数字,且位置正确,否则A计数器累加一。最后,计算器显示A、B计数器的统计结果。不断进行循环,直到用户猜测出正确结果,或者用户猜测的次数超过7次,则中断循环,显示正确结果。如:计算生成的数字为1234,请输入第1次猜测的数字:5678,猜测结果:A-0,B-0,输入第2次猜测的数字:3456,猜测结果:A-0,B-2,请输入第3次猜测的数字:7834,猜测结果:A-2,B-0,请输入第4次猜测的数字:1034,猜测结果:A-3,B-0,请输入第5次猜测的数字:1234,猜测结果:A-4,B-0,猜中了!正确答案是1234。如果用户猜测次数超过7次,则显示:很遗憾,猜测超过7次,游戏结束。正确答案是1234。
展开
4个回答
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();
}
{
//是否成功
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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
--
2022-12-05 广告
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有...
点击进入详情页
本回答由--提供
2013-12-31
展开全部
数字都是0-9,可以先产生第一位数字,然后排出第一位数字之后再随机产生第二位,以此类推,这个四位数完成之后,开始用户的操作,用用户输入的数字去对应系统自动生成的数据,由于只有四位,你可以一位一位地进行判断,用数字除以1000取整,得到第一个,……判断完成后,AB根据判断结果,加减值,于此同时设置计数器,开始为0,用户才一次自动加1,超过7,提示(略),如果7次之内输入正确,提示(略)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-31
展开全部
请问你 :计算机产生的1234是正确的还是错误的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-31
展开全部
1234吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询