程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> .net制作的抽餐廳和游戲裝備的小程序

.net制作的抽餐廳和游戲裝備的小程序

編輯:關於ASP.NET

     這篇文章主要介紹了.net制作的抽餐廳和游戲裝備的小程序,小伙伴們以後再也不用每天都考慮去哪裡吃飯了,非常好玩和實用,需要的朋友可以參考下

       

    隨便新建一個asp.net web項目,拖入即可。現在知道為什麼游戲老是暴不出好裝備,因為他的權重是非常小地。。。中午吃飯隨機一下,想去哪一家,就把權重值設大一點,再中不了,就認命吧!

    .net制作的抽餐廳和游戲裝備的小程序   三聯

    Default.aspx

    ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <%@ 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"> <div> <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> </div> </form> </body> </html>

    Default.aspx.cs

    ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 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 = ""; } }

     

    以上所述就是本文的全部內容了,希望大家能夠喜歡。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved