|
|

楼主 |
发表于 2017-9-28 17:15:04
|
显示全部楼层
假定玩家开宝箱分别有三种类型1金宝箱,2银宝箱,3铜宝箱
金宝箱1 可能开出物品包括 100001,100002,100003,100004,100005,它们分别的权重为10,20,30,50,90;
银宝箱2 可能开出物品包括 200001,200002,200003,200004,200005,它们分别的权重为10,30,50,60,100;
铜宝箱3 可能开出物品包括 300001,300002,300003,300004,300005,它们分别的权重为10,100,30,60,10;
开宝箱根据权重获得对应的物品,如开1次金宝箱,流程可以如下:从1-总权重(10+20+30+50+90)中随机一个数,如果这个数处于1-10,则返回100001,处于(10+1)-(10+20)则返回100002,处于(1+10+20)-(10+20+30)则返回100003。。。类似。
流程: 执行drop.py文件开始。
代码接受玩家输入,提示玩家可以输入0,1,2,3(一直接收玩家输入,直到玩家输入0退出)
如果玩家输入0,则程序退出
如果玩家输入1,2,3中的某个数,按照上述给出概率打出对应的物品id(如玩家输入1,则在100001-100005中按照对应的权重,打印出一个)
要求:引用dropdata.py的数据
执行drop.py文件后,完成上述流
drop.py文件可以作为模块被代码其它调用,提供如下接口:
test_drop(drop_id,drop_num):根据给定的id,开启次数;返回数组或字典,需要存储获得的itemid及对应的次数
给定奖励表dropdata.py,内容如下:
data = {
1:[
{'itemid': '100001','weight': 10,},
{'itemid': '100002','weight': 20,},
{'itemid': '100003','weight': 30,},
{'itemid': '100004','weight': 50,},
{'itemid': '100005','weight': 90,},
],
2:[
{'itemid': '200001','weight': 10,},
{'itemid': '200002','weight': 30,},
{'itemid': '200003','weight': 50,},
{'itemid': '200004','weight': 60,},
{'itemid': '200005','weight': 100,},
],
3:[
{'itemid': '300001','weight': 10,},
{'itemid': '300002','weight': 100,},
{'itemid': '300003','weight': 30,},
{'itemid': '300004','weight': 60,},
{'itemid': '300005','weight': 10,},
],
} |
|