2020-12-16

本文介绍如何使用C#语言设计一个简单的彩票系统,包括红球和篮球的随机生成、重复检查、以及根据中奖规则判断奖项等级。通过BuyTicket和CreatRandomTicket函数实现购买和随机生成彩票,ticketEqual函数则用于比较彩票并确定获奖等级。
摘要由CSDN通过智能技术生成

用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);//如果不中一等奖就会一直循环----可以根据自己的需求去改



        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值