宝哥软件园

微信抢红包 ASP.NET码易实现

编辑:宝哥软件园 来源:互联网 时间:2021-09-07

群里在玩红包,又抢又发,简直无聊。程序员感兴趣的是如何实现它们。这里我简单说一下实现思路,附上dome,代码有点低,但是实现了。具体内容如下

主体

100元发30个红包

50元发13个红包

1个街区发10个红包

红包需要满足以下条件

1.总额保持不变。2.每个红包都要有钱。3.尽量统一,否则抢红包毫无意义

实施思路1。首先要确定最小单位,精确到分钟。我这里用int类型计算,结果都是int类型。2.数据是统一的,这里用1n(剩余金额/剩余红包)*2,这里防止一个红包偷很多钱。这里,我们需要写一个递归来检查数据值是否过大。50元的13个红包第三张图是因为没有核对数据,导致没有钱。这个可以根据你自己的玩法来设置。3.余数处理,当给数据平均20个红包时,它必然偏离总额。这个时候,我们要多退少补。如果大于总金额,让红包金额多一些。减少(总量/总人数),如果有剩余,让第二个最多的减少,直到空缺被填补,反之亦然。4.扰乱秩序,细心的园林朋友可能会发现

演示

///摘要///抢红包////summary///param name=' money '/param///param name=' num '/param///returns/returns public Listint qhb(int money,int num){ int min=1;int pjs=货币/数字;Listint list=new Listint();Random rnd=new Random();for(int I=0;I NuMi){ int max=(money/(num-I))* 2;int s=rnd .下一个(最小值、最大值);s=支票货币(s、最小值、最大值);名单。添加;金钱-=s;} //前面数据都是合理的,结尾必须多退少补清单=清单(金钱、pjs、清单);退货清单;}///摘要///余数处理////summary////param name=' money '/param///param name=' list '/param///returns/returns public Listint检查表(int money,int pjs,Listint list) { if (money!=0){ if(money 0){ Listint list _ order=Mao pao(list);//给最小if(money/pjs==0){ list _ order[0]=money;} else { for(int I=0;我货币/pjs 1;I){ if(I==money/pjs){ list _ order[I]=(money-(money/pjs)* pjs);} else { list _ order[I]=pjs;} } }退货清单_订单;} else { Listint list _ order=Mao pao(list,‘desc’);//给最大if(money/pjs==0){ list _ order[0]=money;} else { for(int I=0;我货币/pjs)1;I){ if(I==-(money/pjs)){ list _ order[I]=(money-(money/pjs)* pjs);} else { list _ order[I]-=pjs;} } }退货清单_订单;} }返回列表;} ///摘要///冒泡排序////summary////param name=' list '/param///param name=' order '/param///returns/returns public Listint Mao pao(Listint list,string order='asc') { if (order!=' ASC '){ for(int I=0;我列举。计数;I){ for(int j=0;j列表。计数-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){ for(int j=0;j列表。计数-I-1;j){ if(list[j 1]list[j]){ int temp=list[j];list[j]=list[j 1];list[j 1]=temp;} } } }返回列表;}///摘要///打乱顺序////summary////param name=' list '/param////returns/returns public Listint sui Ji(Listint list){ Random rnd=new Random();for(int I=0;我列举。计数;I){ int temp=list[I];int j=rnd .下一个(0,列表计数-1);list[I]=list[j];list[j]=temp;}返回列表;}本文已被整理到了《ASP.NET微信开发教程汇总》 ,欢迎大家学习阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

更多资讯
游戏推荐
更多+