用c#简单实现彩票系统
首先它能实现哪些功能:
1.红球号码不能超过1~33,彩票号码不能重复;
2.随机产生一注彩票;
3.设奖及中奖
奖级表:
奖级 中奖说明 单注奖金 (前面数字代表红球数量、后面数字代表篮球数量)
一等奖 中6+1 (红球和篮球中5个—四等奖)
二等奖 中6+0 (红球六个—二等奖)
三等奖 中5+1 (红球五个、篮球1个—三等奖)
四等奖 中5+0 中4+1 (红球和篮球中5个—四等奖)
五等奖 中4+0 中3+1 (红球和篮球中4个—五等奖)
六等奖 中2+1 中1+1 中0+1 (中一个篮球—六等奖)
实现代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace shuangseqiu
{
class Program
{
private static int[] BuyTicket()
{
//前6个红球
int[] ticket = new int[7];
for (int i = 0; i < 6;)
{
Console.WriteLine("请输入第{0}个球的号码:", i + 1);
int redNumber = int.Parse(Console.ReadLine());
if (redNumber < 1 || redNumber > 33)
Console.WriteLine("购买的号码超出范围");
else if (Array.IndexOf(ticket, redNumber) >= 0)
Console.WriteLine("号码已经存在");
else
ticket[i++] = redNumber;
}
//第7个篮球
while (true)
{
Console.WriteLine("请输入篮球号码");
int blueNumber = int.Parse(Console.ReadLine());
if (blueNumber >= 1 && blueNumber <= 16)
{
ticket[6] = blueNumber;
break;
}
else
Console.WriteLine("号码超出范围");
}
return ticket;
}
static Random random = new Random();
private static int[] CreatRandomTicket()
{
int[] ticket = new int[7];
for (int i = 0; i < 6;)
{
int redNumber = random.Next(1, 33);
if (Array.IndexOf(ticket, redNumber) < 0)
{
ticket[i++] = redNumber;
}
}
ticket[6] = random.Next(1, 16);
Array.Sort(ticket, 0, 6);
return ticket;
}
private static int ticketEqual(int[] myTicket, int[] randomTicket)
{
//计算买的篮球数量与随机产生的篮球数量
int blueCount = myTicket[6] == randomTicket[6] ? 1 : 0;
int redCount = 0;
for (int i = 0; i < 6; i++)
if (Array.IndexOf(randomTicket, myTicket[i], 0, 6) >= 0)
redCount++;
int level;
if (blueCount + redCount == 7)
level = 1;
else if (redCount == 6)
level = 2;
else if (blueCount + redCount == 6)
level = 3;
else if (blueCount + redCount == 5)
level = 4;
else if (blueCount + redCount == 4)
level = 5;
else if (blueCount == 1)
level = 6;
else
level = 0;
return level;
}
private static void Main()
{
int level;
int count = 0;
int[] myTicket = BuyTicket();
do
{
count++;
int[] randomTicket = CreatRandomTicket();
level = ticketEqual(myTicket, randomTicket);
if (level != 0)
Console.WriteLine("恭喜,{0}等奖,累计消费:{1:c}", level, count);
} while (level != 1);//如果不中一等奖就会一直循环----可以根据自己的需求去改
}
}
}