千家信息网

怎么用.net制作抽奖程序

发表于:2024-10-04 作者:千家信息网编辑
千家信息网最后更新 2024年10月04日,这篇文章主要介绍"怎么用.net制作抽奖程序",在日常操作中,相信很多人在怎么用.net制作抽奖程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用.net制作抽奖
千家信息网最后更新 2024年10月04日怎么用.net制作抽奖程序

这篇文章主要介绍"怎么用.net制作抽奖程序",在日常操作中,相信很多人在怎么用.net制作抽奖程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用.net制作抽奖程序"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!


Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>    加权随机  







Default.aspx.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page{  //:<名称:权重>  public Dictionary Goods = new Dictionary();  public int TotalWeight = 0;   public class Good  {    ///     /// 名称    ///     public string Name    {      get;      set;    }    ///     /// 权重(大于等于1,否则出现的可能性为0)    ///     public int Weight    {      get;      set;    }  }   public List Result = new List();   protected void Page_Load(object sender, EventArgs e)  {  }   ///   /// 初始化装备 俺是《梦三国》玩家,嘿嘿  ///   protected void InitGoods()  {    Goods.Clear();    TotalWeight = 0;     Goods.Add("寒冰爪", 2);     //神器(拳爪类)    Goods.Add("重毛皮", 300);    Goods.Add("小毛皮", 1000);    Goods.Add("轻毛皮", 1000);    Goods.Add("神之防具打造书", 5);    Goods.Add("传说武器打造书", 20);    Goods.Add("紫檀树枝", 300);    Goods.Add("硬毛皮", 600);    Goods.Add("勾魂水晶", 8);    Goods.Add("真龙炙舞剑", 30);    Goods.Add("董卓勾魂", 1);    //神器中的神器(长柄类)     foreach (KeyValuePair kvp in Goods)    {      TotalWeight += kvp.Value;    }   }   ///   /// 初始化餐厅,公司楼下餐厅比较多,只写几个,意思意思。。。  ///   protected void InitFood()  {    Goods.Clear();    TotalWeight = 0;     Goods.Add("清真兰州", 1);    Goods.Add("长安客", 1);    Goods.Add("迎客松", 1);    Goods.Add("吉祥混沌", 1);     foreach (KeyValuePair kvp in Goods)    {      TotalWeight += kvp.Value;    }  }   protected int GetTryParse()  {    try    {      return int.Parse(txtNum.Text);    }    catch {      return 1;    }  }   //开始抽奖(装备)  protected void btnRandom_Click(object sender, EventArgs e)  {    InitGoods();     lblResult.Text = lblResult.Text + "
"; int Count = GetTryParse(); for (int i = 1; i <= Count; i++) { Random rdm = new Random(GetRandomSeed()); int Weight = rdm.Next(1, TotalWeight + 1); ProduceResult(Weight); } foreach (KeyValuePair kvp in Goods) { int c = Result.Count(d => d.Name == kvp.Key); double rate = c * 1.0 / Count * 1.0 * 100; lblResult.Text = lblResult.Text + "物品名称:" + kvp.Key + " 权重:" + kvp.Value + " 暴出次数:" + c.ToString() + " 暴出率:" + rate + "%
"; } } //开始抽奖(餐厅) protected void btnRandomFood_Click(object sender, EventArgs e) { InitFood(); lblResult.Text = lblResult.Text + "
"; int Count = GetTryParse(); for (int i = 1; i <= Count; i++) { Random rdm = new Random(GetRandomSeed()); int Weight = rdm.Next(1, TotalWeight + 1); ProduceResult(Weight); } foreach (KeyValuePair kvp in Goods) { int c = Result.Count(d => d.Name == kvp.Key); double rate = c * 1.0 / Count * 1.0 * 100; lblResult.Text = lblResult.Text + "餐厅名称:" + kvp.Key + " 权重:" + kvp.Value + " 暴出次数:" + c.ToString() + " 暴出率:" + rate + "%
"; } } /// /// 根据随机权重判断所在范围 /// /// protected void ProduceResult(int Weight) { int min = 1; int max = 1; foreach (KeyValuePair kvp in Goods) { max = min + kvp.Value - 1; if (Weight >= min && Weight <= max) { Good g = new Good(); g.Name = kvp.Key; g.Weight = kvp.Value; Result.Add(g); return; } min = max + 1; } } /// /// 随机种子值(防止速度过快造成的重复) /// /// private static int GetRandomSeed() { byte[] bytes = new byte[4]; System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider(); rng.GetBytes(bytes); return BitConverter.ToInt32(bytes, 0); } //清屏操作 protected void btnClear_Click(object sender, EventArgs e) { lblResult.Text = ""; }}

到此,关于"怎么用.net制作抽奖程序"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

程序 制作 权重 毛皮 餐厅 学习 名称 神器 意思 更多 次数 帮助 实用 混沌 接下来 三国 传说 公司 可能性 吉祥 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库date类型的日期查询 竹溪好的软件开发专业服务 互联网高科技领先成果 广州贝诺网络技术公司 远程服务器的web服务没有启动 英语科技小短文关于网络安全 公众号要关联服务器么 魔域数据库关闭军团图腾 漂亮的网络安全手抄报 国家网络安全战略5个目标是什么 软件开发结算单模板 株洲软件开发报价 生物安全网络安全政治安全 文档数据库 nosql tidb分布式数据库手机版 杭州金廷网络技术有限公司 企业版的云服务器怎么购买 英雄联盟那个服务器的玩家多 宿州电商软件开发定制公司 网络安全模式的问题 怎么看服务器的配置信息 太原新华互联网科技学校怎么样 粤嵌软件开发产品有哪些 电脑数据库系统怎么使用 数据库管理师工资 网关服务管理数据库 宁波微信小程序软件开发 软件开发_分析工具 软件开发工程师之路怎么走 网络安全公益音频获奖作品
0