抽卡代码(简陋) C#

简单写了一个抽卡代码,没有修饰,用起来其实还挺难受的。抽10连的时候按0可以跳过抽取过程。

cs 复制代码
using System;
using System.Collections.Generic;
using System.Threading;

class Program
{
    static void Main()
    {

        //随机数初始化
        Random random = new Random(); // 或者不使用种子值
        int Length = 100; // 假设我们需要100个随机数
        List<int> randomNumbers = new List<int>();
        // 生成随机数序列
        



        //定义一个值储存概率,初始概率为0.6%
        double p = 0.6 * 0.01;
        
        
        int i=0;
        string judge = "1";
        int n=0;
        //延迟等待时间
        int time = 400;

        //抽卡,读取开始命令,单抽或者十连抽,两个if,然后读取概率,
        while (true)
        {

            for (int j = 0; j < Length; j++)
            {
                randomNumbers.Add(random.Next(0, 1000)); // 生成0到999之间的随机数
            }


            judge = "1";


            Console.WriteLine("------------------------------------------");
            Console.WriteLine("|------       单抽按1        ------------|");
            Console.WriteLine("|------       十连按2        ------------|");
            Console.WriteLine("|------       退出按0        ------------|");
            Console.WriteLine("------------------------------------------");
            

            
            



            Thread.Sleep(time);



            //for (i=0;i<999;i++)
            //{
            //    string s= Console.ReadLine();
            //    if (s[0] != '\n')
            //    {
            //        n = Convert.ToInt32(s);
            //        break;
            //    }
            //}



            for (int j = 0; j < 999; j++)
            {

              

                string s = Console.ReadLine();
                
                // 检查字符串是否为空(即用户是否只按下了回车键)
                if (!string.IsNullOrEmpty(s))
                {
                    // 尝试将字符串转换为整数
                    bool isNumber = int.TryParse(s, out n);
                    if (isNumber)
                    {
                        // 转换成功,跳出循环
                        break;
                    }
                    else
                    {
                        // 转换失败,可以打印错误消息或采取其他措施
                        Console.WriteLine("输入的不是一个有效的整数,请重新输入。");
                    }
                }

            }

            if (n == 2)
                n = 10;
            if (n == 0)
                break;


            for (; i < 999; i++)
            {
                


                if (n == 1)
                {
                    if (randomNumbers[i] <= p * 1000)
                    {
                        Console.WriteLine("***抽中了***");

                    }
                    else
                    {
                        Console.WriteLine("没抽中");

                    }
                    Console.WriteLine("已经抽了{0}", i+1);
                    Thread.Sleep(time);
                    
                    n = n - 1;

                }
                else if (n > 1)
                {



                    if (randomNumbers[i] <= p * 1000)
                    {
                        Console.WriteLine("***抽中了***");
                    }
                    else
                    {
                        Console.WriteLine("没抽中");
                    }

                    if (judge == "0")
                    {

                    }
                    else
                    {
                        Thread.Sleep(time);
                        judge = Console.ReadLine();
                    }
                    
                    n = n - 1;

                   
                   
                }
                else
                {
                    
                    break;



                }
                

            }




        }




        

        




    }
}

输出结果:

cs 复制代码
------------------------------------------
|------       单抽按1        ------------|
|------       十连按2        ------------|
|------       退出按0        ------------|
------------------------------------------
2
没抽中
0
没抽中
没抽中
没抽中
没抽中
没抽中
没抽中
没抽中
没抽中
***抽中了***
已经抽了100
相关推荐
m0_607548769 分钟前
什么是单例模式
开发语言·javascript·单例模式
檀越剑指大厂1 小时前
【Python系列】Python中的`any`函数:检查“至少有一个”条件满足
开发语言·python
I_Am_Me_2 小时前
【JavaEE初阶】线程安全问题
开发语言·python
运维&陈同学2 小时前
【Elasticsearch05】企业级日志分析系统ELK之集群工作原理
运维·开发语言·后端·python·elasticsearch·自动化·jenkins·哈希算法
ZVAyIVqt0UFji5 小时前
go-zero负载均衡实现原理
运维·开发语言·后端·golang·负载均衡
loop lee5 小时前
Nginx - 负载均衡及其配置(Balance)
java·开发语言·github
SomeB1oody6 小时前
【Rust自学】4.1. 所有权:栈内存 vs. 堆内存
开发语言·后端·rust
toto4126 小时前
线程安全与线程不安全
java·开发语言·安全
水木流年追梦6 小时前
【python因果库实战10】为何需要因果分析
开发语言·python
w(゚Д゚)w吓洗宝宝了7 小时前
C vs C++: 一场编程语言的演变与对比
c语言·开发语言·c++