您现在的位置是:网站首页> 编程资料编程资料
微信抢红包ASP.NET代码轻松实现_实用技巧_
2023-05-24
291人已围观
简介 微信抢红包ASP.NET代码轻松实现_实用技巧_
群里都在玩抢红包,抢了再发,发了再抢,简直是无聊,程序员感兴趣是的如何实现,这里简单说说实现思路,附上dome,代码有点low,好在是实现了,具体内容如下
正文
100块发30个红包




50块发13个红包





1块发10个红包





发红包需要满足以下几个条件
1.总金额不变
2.每个红包都必须有钱
3.尽量的均匀点,不然抢红包没什么意思了
实现思路
1.首先要确定最小单位,这里是精确到分,我这里以int类型进行计算,得出的结果也全是int类型
2.数据均匀,这里以 1
4.打乱顺序,细心的园友可能发现,红包是有顺序规律的,我们必须简单的写个function去打乱它.
demo
////// 抢红包 /// /// /// ///public List qhb(int money, int num) { int min = 1; int pjs = money / num; List list = new List (); Random rnd = new Random(); for (int i = 0; i < num; i++) { int max = (money / (num - i)) * 2; int s = rnd.Next(min, max); s = checkmoney(s, min, max); list.Add(s); money -= s; } //前面数据都是合理的,结尾必须多退少补 list = checklist(money, pjs, list); return list; }
////// 余数处理 /// /// /// ///public List checklist(int money, int pjs, List list) { if (money != 0) { if (money > 0) { List list_order = maopao(list); //给最小 if (money / pjs == 0) { list_order[0] += money; } else { for (int i = 0; i < money / pjs + 1; i++) { if (i == money / pjs) { list_order[i] += (money - (money / pjs) * pjs); } else { list_order[i] += pjs; } } } return list_order; } else { List list_order = maopao(list,"desc"); //给最大 if (money / pjs == 0) { list_order[0] += money; } else { for (int i = 0; i < -(money / pjs) + 1; i++) { if (i == -(money / pjs)) { list_order[i] += (money - (money / pjs) * pjs); } else { list_order[i] -= pjs; } } } return list_order; } } return list; }
////// 冒泡排序 /// /// /// ///public List maopao(List list,string order = "asc") { if (order != "asc") { for (int i = 0; i < list.Count; i++) { for (int j = 0; j < list.Count - i - 1; j++) { if (list[j + 1] > list[j]) { int temp = list[j]; list[j] = list[j + 1]; list[j + 1] = temp; } } } } else { for (int i = 0; i < list.Count; i++) { for (int j = 0; j < list.Count-i-1;j++) { if (list[j+1] < list[j]) { int temp = list[j]; list[j] = list[j+1]; list[j+1] = temp; } } } } return list; }
////// 打乱顺序 /// /// ///public List suiji(List list) { Random rnd = new Random(); for (int i = 0; i < list.Count; i++) { int temp = list[i]; int j = rnd.Next(0, list.Count-1); list[i] = list[j]; list[j] = temp; } return list; }
本文已被整理到了《ASP.NET微信开发教程汇总》,欢迎大家学习阅读。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- ASP.NET中GridView 重复表格列合并的实现方法_实用技巧_
- 基于ASP.NET实现日期转为大写的汉字_实用技巧_
- MVC4制作网站教程第四章 添加栏目4.1_实用技巧_
- MVC4制作网站教程第四章 部分栏目功能实现代码_实用技巧_
- MVC4制作网站教程第三章 删除用户组操作3.4_实用技巧_
- MVC4制作网站教程第三章 修改用户组操作3.3_实用技巧_
- MVC4制作网站教程第三章 添加用户组操作3.2_实用技巧_
- MVC4制作网站教程第三章 浏览用户组操作3.1_实用技巧_
- MVC4制作网站教程第二章 用户修改资料2.4_实用技巧_
- MVC4制作网站教程第二章 用户密码修改2.3_实用技巧_
