抽卡代码(简陋) 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
相关推荐
知无不研3 分钟前
lambda表达式的使用(3)
开发语言·c++·lambda
cfm_291433 分钟前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
wujian83111 小时前
怎么用千问生成word文档:从「格式崩」到「一键过」,AI导出鸭打通最后半厘米
人工智能·ai·c#·word·豆包·deepseek·ai导出鸭
C++ 老炮儿的技术栈2 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐
qq_448011162 小时前
C语言中的柔性数组
c语言·开发语言·柔性数组
小白学大数据2 小时前
长周期爬虫的数据一致性:断点续爬 + 事务回滚保障采集质量
开发语言·爬虫·测试工具
zlinear数据采集卡3 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
Poo_Chai3 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
瑞码空间3 小时前
Java 图形界面(GUI)完整知识点手册
java·开发语言·图形界面·swing
小努蛋3 小时前
linux编译openresty异常问题,lua_cjson.c:706:5: 错误: ‘for‘ 循环初始化声明只在 C99 或 C++ 模式下允许
开发语言·lua·openresty