首页 微信小程序 小程序开发 分享.net制作的抽餐厅和游戏装备的小程序

分享.net制作的抽餐厅和游戏装备的小程序

Mar 28, 2017 pm 01:22 PM
.net 抽奖

这篇文章主要介绍了.net制作的抽餐厅和游戏装备的小程序,小伙伴们以后再也不用每天都考虑去哪里吃饭了,非常好玩和实用,需要的朋友可以参考下

随便新建一个asp.net web项目,拖入即可。现在知道为什么游戏老是暴不出好装备,因为他的权重是非常小地。。。中午吃饭随机一下,想去哪一家,就把权重值设大一点,再中不了,就认命吧!

分享.net制作的抽餐厅和游戏装备的小程序

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>加权随机</title>
</head>
<body>
  <form id="form1" runat="server">
  <p>
  <asp:TextBox ID="txtNum" runat="server" Text="100" ></asp:TextBox>
  <br />
  <br />
  <asp:Button ID="btnRandom" runat="server" Text="开始抽奖(装备)" onclick="btnRandom_Click"/>
  <br />
  <br />
  <asp:Button ID="btnRandomFood" runat="server" Text="开始抽奖(餐厅)" onclick="btnRandomFood_Click"/>
  <br />
  <br />
  <asp:Button ID="btnClear" runat="server" Text="清屏" onclick="btnClear_Click"/>
  <br />
  <asp:Literal ID="lblResult" runat="server"></asp:Literal>
  </p>
  </form>
</body>
</html>
登录后复制

 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
{
  //<string,int>:<名称:权重>
  public Dictionary<string, int> Goods = new Dictionary<string, int>();
  public int TotalWeight = 0;
 
  public class Good
  {
    /// <summary>
    /// 名称
    /// </summary>
    public string Name
    {
      get;
      set;
    }
    /// <summary>
    /// 权重(大于等于1,否则出现的可能性为0)
    /// </summary>
    public int Weight
    {
      get;
      set;
    }
  }
 
  public List<Good> Result = new List<Good>();
 
  protected void Page_Load(object sender, EventArgs e)
  {
  }
 
  /// <summary>
  /// 初始化装备 俺是《梦三国》玩家,嘿嘿
  /// </summary>
  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<string, int> kvp in Goods)
    {
      TotalWeight += kvp.Value;
    } 
  }
 
  /// <summary>
  /// 初始化餐厅,公司楼下餐厅比较多,只写几个,意思意思。。。
  /// </summary>
  protected void InitFood()
  {
    Goods.Clear();
    TotalWeight = 0;
 
    Goods.Add("清真兰州", 1);
    Goods.Add("长安客", 1);
    Goods.Add("迎客松", 1);
    Goods.Add("吉祥混沌", 1);
 
    foreach (KeyValuePair<string, int> 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 + "<br/>";
 
    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<string, int> 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 + "%<br/>";
    }
 
  }
 
  //开始抽奖(餐厅)
  protected void btnRandomFood_Click(object sender, EventArgs e)
  {
    InitFood();
 
    lblResult.Text = lblResult.Text + "<br/>";
 
    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<string, int> 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 + "%<br/>";
    }
 
  }
 
  /// <summary>
  /// 根据随机权重判断所在范围
  /// </summary>
  /// <param name="Weight"></param>
  protected void ProduceResult(int Weight)
  {
    int min = 1;
    int max = 1;
    foreach (KeyValuePair<string, int> 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;
    }
  }
 
  /// <summary>
  /// 随机种子值(防止速度过快造成的重复)
  /// </summary>
  /// <returns></returns>
  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制作的抽餐厅和游戏装备的小程序的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

excel抽奖小程序如何制作 excel抽奖小程序如何制作 Mar 20, 2024 am 11:40 AM

平时的工作中会遇到很多需要抽签进行的内容,传统的方法还是用纸质的号码随机抽号,随着电子软件的发展,我们可以用电脑制作抽签,今天欠们给大家分享的课程是excel抽奖小程序如何制作。1、首先我们打开Excel软件,打开我们准备好的表格,表格中要包含我们人的名字。  2、接着我们对右边的单元格进行合并,将今晚谁幸运填充为黑色,并将下方的单元格合并填充为红色,如下图所示。  3、接着我们在红色区域中输入randbetween函数,设置第一行为2,最后一行为7,如下图所示。  4、接着我们在前面输入ind

C#的就业前景如何 C#的就业前景如何 Oct 19, 2023 am 11:02 AM

无论您是初学者还是有经验的专业人士,掌握C#将为您的职业发展铺平道路。

分享几个.NET开源的AI和LLM相关项目框架 分享几个.NET开源的AI和LLM相关项目框架 May 06, 2024 pm 04:43 PM

当今人工智能(AI)技术的发展如火如荼,它们在各个领域都展现出了巨大的潜力和影响力。今天大姚给大家分享4个.NET开源的AI模型LLM相关的项目框架,希望能为大家提供一些参考。https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一种开源的软件开发工具包(SDK),旨在将大型语言模型(LLM)如OpenAI、Azure

PHP抽奖系统设计与实现详解 PHP抽奖系统设计与实现详解 Mar 01, 2024 am 09:51 AM

PHP抽奖系统设计与实现详解一、概述抽奖活动是许多网站和应用都会使用的一种营销手段,通过抽奖可以吸引用户参与活动,增加用户互动性,提升用户粘性。在本文中,我们将详细介绍如何使用PHP语言来设计和实现一个简单的抽奖系统。通过本文的学习,读者将会了解抽奖系统的搭建原理以及具体的代码实现。二、系统设计在设计一个抽奖系统之前,我们首先需要确定系统的功能需求和流程。一

如何使用Vue实现抽奖转盘特效 如何使用Vue实现抽奖转盘特效 Sep 19, 2023 am 10:18 AM

如何使用Vue实现抽奖转盘特效抽奖活动作为一种受欢迎的营销手段,经常出现在各种活动中。为了增加趣味性和互动性,我们可以使用Vue框架实现一个抽奖转盘特效。这篇文章将会介绍如何使用Vue来实现这一特效,并给出具体的代码示例。首先,我们需要创建一个Vue实例,用于控制转盘的状态和动画。在这个实例中,我们需要定义转盘的初始状态,包括奖品列表、转盘是否正在旋转、转盘

使用PHP开发抽奖功能的步骤与技巧 使用PHP开发抽奖功能的步骤与技巧 Feb 29, 2024 pm 04:42 PM

标题:使用PHP开发抽奖功能的步骤与技巧在网站开发中,抽奖功能常常被用来增加用户互动性和吸引力。使用PHP语言来开发抽奖功能是一种常见的方式。在本文中,将介绍如何使用PHP来开发一个简单的抽奖功能,并给出具体的代码示例。步骤一:准备数据库首先,我们需要创建一个MySQL数据库来存储抽奖活动的相关数据,包括奖品信息、参与用户信息等。可以使用以下SQL命令创建一

面向开发人员的.NET性能优化技术 面向开发人员的.NET性能优化技术 Sep 12, 2023 am 10:43 AM

如果你是一名.NET开发者,你必须意识到在交付高质量软件方面,优化功能和性能的重要性。通过熟练使用提供的资源并减少网站加载时间,你不仅为用户创造了愉快的体验,还能减少基础设施成本。

Java框架和.NET框架的性能差异 Java框架和.NET框架的性能差异 Jun 03, 2024 am 09:19 AM

在高并发请求处理方面,.NETASP.NETCoreWebAPI性能优于JavaSpringMVC,原因包括:AOT提前编译,减少启动时间;更精细的内存管理,由开发人员负责分配和释放对象内存。

See all articles