本帖最后由 da11 于 2020-12-12 23:27 编辑
//数组进阶习题主Main:彩票生成器
private static void Main()
{
while (true)
{
int[] InputCPSz =InputCP();
int[] CP = GetCP();
foreach (var item in CP)
{
Console.WriteLine(item);
}
Console.ReadLine();
PdZhongJiangDengJi(InputCPSz,CP);
}
}
//用户输入彩票的方法
private static int[] InputCP()
{
int[] InputCpSz = new int[7];
for (int i = 0; i < 6; i++)
{
Console.WriteLine("请输入第{0}个红色彩票号码", i);
int InPutpd1 = int.Parse(Console.ReadLine());
if (i > 0)
{
//使用数组的判断是否存在而判断是否输入数值重复,如有存在会返回索引,所以只要if写大于0就等于有存在。
int InPutpd3 = Array.IndexOf(InputCpSz, InPutpd1);
if (InPutpd3 >= 0 )
{
Console.WriteLine("红色彩票号码输入不合法,请重新输入");
i -= 1;
continue;
}
}
if (InPutpd1 < 0 || InPutpd1 > 33)
{
Console.WriteLine("红色彩票号码输入不合法,请重新输入");
i -= 1;
continue;
}
InputCpSz = InPutpd1;
}
while (true)
{
Console.WriteLine("请输入蓝色彩票号码");
int InPutpd2 = int.Parse(Console.ReadLine());
if (InPutpd2 < 0 || InPutpd2 > 16)
{
Console.WriteLine("蓝色彩票号码输入不合法,请重新输入");
continue;
}
InputCpSz[6] = InPutpd2;
Console.WriteLine("请确认以下信息是否正确");
foreach (var item in InputCpSz)
{
Console.WriteLine(item);
}
Console.ReadLine();
return InputCpSz;
}
}
//彩票生成方法
private static int[] GetCP()
{
int[] RedBool = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33};
int[] BlueBool = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
int[] done = new int[7];
Random DyRedBoolSJ = new Random();
Random DyblueBoolSJ = new Random();
for (int i = 0; i < done.Length-1; i++)
{
int RedBoolPd1 = RedBool[DyRedBoolSJ.Next(0, 32)];
if (i>0)
{
int RedBoolPd3 = Array.IndexOf(done, RedBoolPd1);
if (RedBoolPd3 >= 0)
{
i = i - 1;
continue;
}
}
done = RedBoolPd1;
}
Array.Sort(done,0,6);
done[6] = BlueBool[DyblueBoolSJ.Next(0,15)];
return done;
}
//中奖判定方法
private static void PdZhongJiangDengJi(int[] InputSz,int[] RadomSz)
{
int[] ZhongJiangQiu = new int[7];
int[] RedZhongJiangQiu = new int[6];
int RedZhongJiangNum=0;
int blueZhongJiangNum = 0;
Array.Copy(RadomSz, RedZhongJiangQiu, 6);
for (int i = 0; i < 6; i++)
{
int pd1 = Array.IndexOf(InputSz,RedZhongJiangQiu);
if (pd1 >=0 )
{
RedZhongJiangNum += 1;
continue;
}
}
if (RadomSz[6] == InputSz[6])
{
blueZhongJiangNum = 1;
}
Console.WriteLine(RedZhongJiangNum);
Console.WriteLine(blueZhongJiangNum);
if (blueZhongJiangNum==1 && RedZhongJiangNum==2 )
{
Console.WriteLine("六等奖");
}
else if ((blueZhongJiangNum == 1 && RedZhongJiangNum == 1) || blueZhongJiangNum == 1)
{
Console.WriteLine("六等奖");
}
else if ((blueZhongJiangNum == 1 && RedZhongJiangNum == 3) || RedZhongJiangNum == 4)
{
Console.WriteLine("五等奖");
}
else if ((blueZhongJiangNum == 1 && RedZhongJiangNum == 4) || RedZhongJiangNum == 5)
{
Console.WriteLine("四等奖");
}
else if (blueZhongJiangNum == 1 && RedZhongJiangNum == 5)
{
Console.WriteLine("三等奖");
}
else if (RedZhongJiangNum == 6)
{
Console.WriteLine("二等奖");
}
else if (blueZhongJiangNum == 1 && RedZhongJiangNum == 6)
{
Console.WriteLine("一等奖");
}
else
{
Console.WriteLine("抱歉没有中奖");
}
Console.ReadLine();
}
|