小 (→卡片介绍) |
小 (→卡片介绍) |
||
(未显示6个用户的14个中间版本) | |||
第2行: | 第2行: | ||
==活动内容== | ==活动内容== | ||
在活动期间,玩家'''击杀任意生物'''(包括动物、中立生物、一般怪物以及 BOSS 级怪物)有一定概率获得「珍奇系列」<ref>「珍奇系列」为本次活动中所有卡片同属的一个系列。</ref>卡片。玩家收集齐「珍奇系列」的所有卡片后即可获得丰富奖励。玩家也可以在码头处自行购买卡包抽卡。 | |||
===卡片介绍=== | ===卡片介绍=== | ||
「珍奇系列」卡片包含 | 「珍奇系列」卡片包含 126 枚名称不同的卡片,且除了「白色羊驼」以外,每个卡片都对应有一版闪卡。因而本次活动的全部卡片包括 126 枚不同的一般卡片和 125 枚不同的闪亮卡片。 | ||
卡片分为不同的稀有度,从低到高依次是: | |||
* '''普通'''(包含 55 枚卡片) | |||
* '''精良'''(包含 31 枚卡片) | |||
* '''稀有'''(包含 19 枚卡片) | |||
* '''神话'''(包含 12 枚卡片) | |||
* '''传说'''(包含 9 枚卡片) | |||
每张卡片上都标有以下信息: | |||
* 类型(例如:友好生物/物品、中立生物、敌对生物与 Boss) | |||
* 稀有度 | |||
* 系列(本次活动为珍奇系列卡片) | |||
* 闪光版(如果是) | |||
接下来,我们将通过表格罗列出全部的卡片,并按照稀有度与卡片类型进行分类展示。 | |||
{{helper-alert|text=击杀任何生物都有可能掉落任意卡片。卡片的名称与击杀的生物无关。}} | |||
====普通级卡片==== | ====普通级卡片==== | ||
第17行: | 第32行: | ||
! colspan="7" |卡片名称 | ! colspan="7" |卡片名称 | ||
|- | |- | ||
| | |友好生物/物品 | ||
|雪块 | |雪块 | ||
|蝙蝠 | |蝙蝠 | ||
第96行: | 第111行: | ||
! colspan="7" |卡片名称 | ! colspan="7" |卡片名称 | ||
|- | |- | ||
| | |友好生物/物品 | ||
|山羊角 | |山羊角 | ||
|炽足兽 | |炽足兽 | ||
第155行: | 第170行: | ||
! colspan="7" |卡片名称 | ! colspan="7" |卡片名称 | ||
|- | |- | ||
| | |友好生物/物品 | ||
|流浪商人 | |流浪商人 | ||
|红色哞菇 | |红色哞菇 | ||
第180行: | 第195行: | ||
|史莱姆 | |史莱姆 | ||
|守卫者 | |守卫者 | ||
|鸡骑士 | |||
|- | |||
| | |||
|蜘蛛骑士 | |蜘蛛骑士 | ||
| | |||
| | |||
| | |||
| | |||
| | |||
| | |||
|} | |} | ||
第189行: | 第213行: | ||
! colspan="7" |卡片名称 | ! colspan="7" |卡片名称 | ||
|- | |- | ||
| | |友好生物/物品 | ||
|海龟 | |海龟 | ||
|骷髅马 | |骷髅马 | ||
第203行: | 第227行: | ||
|粉色美西螈 | |粉色美西螈 | ||
|棕色美西螈 | |棕色美西螈 | ||
| | |大型圣诞节箱子 | ||
| | | | ||
| | | | ||
第223行: | 第247行: | ||
! colspan="7" |卡片名称 | ! colspan="7" |卡片名称 | ||
|- | |- | ||
| | |友好生物/物品 | ||
|棕色哞菇 | |棕色哞菇 | ||
|烟花 | |烟花 | ||
第238行: | 第262行: | ||
|远古守卫者 | |远古守卫者 | ||
|- | |- | ||
| | |Boss | ||
|监守者 | |监守者 | ||
|末影龙 | |末影龙 | ||
第245行: | 第269行: | ||
===掉卡机制详解=== | ===掉卡机制详解=== | ||
当玩家'''击杀'''<ref>这意味着被矿车处死与摔落处死的绝大多数生物无法掉落卡片。已经获取了玩家仇恨的僵尸猪灵无论如何死亡都会被判定为玩家击杀,故而会掉落卡片。</ref>生物后,有一定概率掉落卡片。其中击杀中立生物与怪物掉落概率为 5%,击杀动物掉落概率为 1%,击杀 BOSS 级怪物掉落概率为 2.5%。 | |||
当生物被判定为玩家击杀死亡后,系统根据概率首先决定是否掉落卡片。若判定掉落卡片,则接下来判定掉落卡片的稀有度。 | |||
{| class="wikitable" | |||
|+稀有度判定'''权重''': | |||
! | |||
!普通 | |||
!精良 | |||
!稀有 | |||
!神话 | |||
!传奇 | |||
|- | |||
|敌对生物 | |||
|10000 | |||
|1000 | |||
|250 | |||
|50 | |||
|1 | |||
|- | |||
|中立生物 | |||
|10000 | |||
|1000 | |||
|100 | |||
|0 | |||
|0 | |||
|- | |||
|友好生物 | |||
|5000 | |||
|250 | |||
|0 | |||
|0 | |||
|0 | |||
|- | |||
|Boss | |||
|0 | |||
|0 | |||
|0 | |||
|5000 | |||
|100 | |||
|} | |||
{| class="wikitable" | |||
|+稀有度判定约化'''概率''': | |||
! | |||
!普通 | |||
!精良 | |||
!稀有 | |||
!神话 | |||
!传奇 | |||
|- | |||
|敌对生物 | |||
|88.5% | |||
|8.85% | |||
|2.21% | |||
|0.442% | |||
|0.00885% | |||
|- | |||
|中立生物 | |||
|90.1% | |||
|9.01% | |||
|0.901% | |||
|0 | |||
|0 | |||
|- | |||
|友好生物 | |||
|95.2% | |||
|4.76% | |||
|0 | |||
|0 | |||
|0 | |||
|- | |||
|Boss | |||
|0 | |||
|0 | |||
|0 | |||
|98.0% | |||
|1.96% | |||
|} | |||
完成稀有度判定后,将从对应稀有度卡池中随机<ref>这意味着掉落的卡片与被击杀的生物完全无关。你是可以通过击杀一种生物来集齐全部卡片的。</ref>抽取一张卡片进行掉落。 | |||
若最终抽取的卡片有对应'''闪卡'''版本,则额外进行一次是否为闪卡的判定。每次掉落卡片,有'''20%'''概率为闪卡。 | |||
==蒙特卡洛模拟== | |||
本模拟根据已有概率信息,并基于 C++ 与 <code>std::mt19937</code> 随机数生成器进行。 | |||
对于抽取 100000(10<sup>5</sup>)张卡片模拟 10000 次,结果表明集齐普通卡片 48 次,集齐闪卡 0 次,全部集齐 0 次。 | |||
对于抽取 1000000(10<sup>6</sup>)张卡片模拟 1000 次,结果表明集齐普通卡片 997 次,集齐闪卡 257 次,全部集齐 256 次。 | |||
基于堆叠袭击塔每秒 20 个敌对生物的处死效率,要达到 25% 集齐概率,预期挂机时长 10<sup>6</sup>s,约为 278 小时,即 11.57 天。 | |||
对于神话以及传奇卡片,袭击塔的掉落期望是每分钟 0.271 张卡。若通过 Boss 刷取,要达到相同的效率,受限于 Boss 2.5% 的掉落概率,击杀效率需要达到每秒 0.181 只 Boss,即每分钟 10.8 只 Boss,这需要每分钟 32.5 个头的凋灵骷髅塔。 | |||
一些额外参考数据: | |||
{| class="wikitable" | |||
|+抽卡-集齐模拟 | |||
!抽取卡片数 | |||
!全部集齐概率 | |||
|- | |||
|1M | |||
|0.25 | |||
|- | |||
|1.5M | |||
|0.55 | |||
|- | |||
|2M | |||
|0.83 | |||
|- | |||
|2.5M | |||
|0.94 | |||
|- | |||
|3M | |||
|0.99 | |||
|} | |||
===代码=== | |||
<nowiki>#</nowiki>include <iostream> | |||
<nowiki>#</nowiki>include <vector> | |||
<nowiki>#</nowiki>include <chrono> | |||
<nowiki>#</nowiki>include <random> | |||
using namespace std; | |||
int main() { | |||
vector<int> card_arr; | |||
vector<int> card_arr_enchant; | |||
unsigned seed1 = std::chrono::system_clock::now().time_since_epoch().count(); | |||
unsigned random_num; | |||
mt19937 rnd(seed1); | |||
card_arr.clear(); | |||
card_arr_enchant.clear(); | |||
for (int i = 0; i < 126; ++i) { | |||
card_arr.push_back(0); | |||
card_arr_enchant.push_back(0); | |||
} | |||
vector<double> prob_dist_arr; | |||
prob_dist_arr.clear(); | |||
prob_dist_arr.push_back(10000./11301.); | |||
prob_dist_arr.push_back((10000.+1000.)/11301.); | |||
prob_dist_arr.push_back((10000.+1000+250)/11301.); | |||
prob_dist_arr.push_back((10000.+1000+250+50)/11301.); | |||
prob_dist_arr.push_back(1.); | |||
double enchant_prob = 0.2; | |||
double index = 0; | |||
int N = 100; | |||
int card_draw = 3000000; | |||
int common_coll_count = 0; | |||
int enchant_coll_count = 0; | |||
int all_coll_count = 0; | |||
int pos = 0; | |||
auto max_range = (double)rnd.max(); | |||
for (int i = 0; i < N; ++i) { | |||
for (int l = 0; l < 126; ++l) { | |||
card_arr.at(l) = 0; | |||
card_arr_enchant.at(l) = 0; | |||
} | |||
bool all_collected = true; | |||
bool all_enchant_collected = true; | |||
for (int j = 0; j < card_draw; ++j) { | |||
index = (double)rnd()/max_range; | |||
if (index < prob_dist_arr.at(0)){ | |||
pos = (int)((double)rnd()/max_range*55); | |||
} else if (index < prob_dist_arr.at(1)) { | |||
pos = 55+(int)(double(rnd())/max_range*31); | |||
} else if (index < prob_dist_arr.at(2)) { | |||
pos = 55+31+(int)(double(rnd())/max_range*19); | |||
} else if (index < prob_dist_arr.at(3)) { | |||
pos = 55+31+19+(int)(double(rnd())/max_range*12); | |||
} else { | |||
pos = 55+31+19+12+(int)(double(rnd())/max_range*9); | |||
} | |||
index = (double)rnd()/max_range; | |||
if (index < enchant_prob) { | |||
card_arr_enchant.at(pos) = card_arr_enchant.at(pos) + 1; | |||
} else { | |||
card_arr.at(pos) = card_arr.at(pos) + 1; | |||
} | |||
} | |||
for (int k = 0; k < 126; ++k) { | |||
if (card_arr.at(k) < 1) { | |||
all_collected = false; | |||
} | |||
if (card_arr_enchant.at(k) < 1) { | |||
all_enchant_collected = false; | |||
} | |||
} | |||
if (all_collected) { | |||
common_coll_count++; | |||
} | |||
if (all_enchant_collected) { | |||
enchant_coll_count++; | |||
} | |||
if (all_collected and all_enchant_collected) { | |||
all_coll_count ++; | |||
} | |||
if (i%1 == 0) { | |||
cout << i << endl; | |||
} | |||
} | |||
cout << "after " << N << " times of drawing " << card_draw << " cards" << endl; | |||
cout << "common_all = " << common_coll_count << endl; | |||
cout << "enchant_all = " << enchant_coll_count << endl; | |||
cout << "all = " << all_coll_count << endl; | |||
return 0; | |||
} | |||
[[分类:活动]] | |||
<references /> |
2023年1月27日 (五) 23:09的最新版本
2023 春节集卡活动,指举办于 2023 年(癸卯兔年)春节期间的围绕「珍奇系列」卡片收集的限时活动。该活动开始于 2023 年 1 月 25 日,为期一个月。
活动内容
在活动期间,玩家击杀任意生物(包括动物、中立生物、一般怪物以及 BOSS 级怪物)有一定概率获得「珍奇系列」[1]卡片。玩家收集齐「珍奇系列」的所有卡片后即可获得丰富奖励。玩家也可以在码头处自行购买卡包抽卡。
卡片介绍
「珍奇系列」卡片包含 126 枚名称不同的卡片,且除了「白色羊驼」以外,每个卡片都对应有一版闪卡。因而本次活动的全部卡片包括 126 枚不同的一般卡片和 125 枚不同的闪亮卡片。
卡片分为不同的稀有度,从低到高依次是:
- 普通(包含 55 枚卡片)
- 精良(包含 31 枚卡片)
- 稀有(包含 19 枚卡片)
- 神话(包含 12 枚卡片)
- 传说(包含 9 枚卡片)
每张卡片上都标有以下信息:
- 类型(例如:友好生物/物品、中立生物、敌对生物与 Boss)
- 稀有度
- 系列(本次活动为珍奇系列卡片)
- 闪光版(如果是)
接下来,我们将通过表格罗列出全部的卡片,并按照稀有度与卡片类型进行分类展示。
击杀任何生物都有可能掉落任意卡片。卡片的名称与击杀的生物无关。
普通级卡片
卡片类型 | 卡片名称 | ||||||
---|---|---|---|---|---|---|---|
友好生物/物品 | 雪块 | 蝙蝠 | 村民 | 红狐 | 雪狐 | 鸡 | 驴 |
黑色马 | 褐色马 | 深枣红色马 | 深褐色马 | 淡栗色马 | 灰色马 | 白色马 | |
骡 | 黑猫 | 英国短毛猫 | 花猫 | 异色瞳猫 | 波斯猫 | 布偶猫 | |
红虎斑猫 | 暹罗猫 | 虎斑猫 | 双色猫 | 白猫 | 牛 | 白色青蛙 | |
黑色兔子 | 棕色兔子 | 金黄色兔子 | 椒盐色兔子 | 斑点色兔子 | 吐司色兔子 | 白色兔子 | |
绵羊 | 红色鹦鹉 | 蓝色鹦鹉 | 鳕鱼 | 鱿鱼 | 猪 | ||
中立生物 | 熊猫 | 体弱的熊猫 | 山羊 | 棕色羊驼 | 奶油色羊驼 | 灰色羊驼 | 白色羊驼 |
敌对生物 | 僵尸 | 溺尸 | 骷髅 | 苦力怕 | 掠夺者 | 末影人 | 蜘蛛 |
精良级卡片
卡片类型 | 卡片名称 | ||||||
---|---|---|---|---|---|---|---|
友好生物/物品 | 山羊角 | 炽足兽 | 豹猫 | 蝌蚪 | 橙色青蛙 | 绿色青蛙 | 绿色鹦鹉 |
青色鹦鹉 | 鲑鱼 | ||||||
中立生物 | 北极熊 | 海豚 | 狼 | 蜜蜂 | 懒惰的熊猫 | 忧郁的熊猫 | 顽皮的熊猫 |
好斗的熊猫 | 猪灵 | 僵尸猪灵 | |||||
敌对生物 | 蠹虫 | 恶魂 | 尸壳 | 僵尸村民 | 骷髅骑士 | 流浪者 | 烈焰人 |
卫道士 | 岩浆怪 | 疣猪兽 | 洞穴蜘蛛 | 猪灵蛮兵 |
稀有级卡片
卡片类型 | 卡片名称 | ||||||
---|---|---|---|---|---|---|---|
友好生物/物品 | 流浪商人 | 红色哞菇 | 灰色鹦鹉 | 热带鱼 | 河豚 | 发光鱿鱼 | |
中立生物 | 圣诞节箱子 | 铁傀儡 | 棕色熊猫 | 雪傀儡 | 行商羊驼 | ||
敌对生物 | 凋灵骷髅 | 唤魔者 | 末影螨 | 潜影贝 | 史莱姆 | 守卫者 | 鸡骑士 |
蜘蛛骑士 |
神话级卡片
卡片类型 | 卡片名称 | ||||||
---|---|---|---|---|---|---|---|
友好生物/物品 | 海龟 | 骷髅马 | 僵尸马 | 悦灵 | |||
中立生物 | 青色美西螈 | 金色美西螈 | 粉色美西螈 | 棕色美西螈 | 大型圣诞节箱子 | ||
敌对生物 | 杀手兔 | 恼鬼 | 劫掠兽 |
传说级卡片
卡片类型 | 卡片名称 | ||||||
---|---|---|---|---|---|---|---|
友好生物/物品 | 棕色哞菇 | 烟花 | |||||
中立生物 | 蓝色美西螈 | ||||||
敌对生物 | 幻术师 | 巨型僵尸 | 远古守卫者 | ||||
Boss | 监守者 | 末影龙 | 凋零 |
掉卡机制详解
当玩家击杀[2]生物后,有一定概率掉落卡片。其中击杀中立生物与怪物掉落概率为 5%,击杀动物掉落概率为 1%,击杀 BOSS 级怪物掉落概率为 2.5%。
当生物被判定为玩家击杀死亡后,系统根据概率首先决定是否掉落卡片。若判定掉落卡片,则接下来判定掉落卡片的稀有度。
普通 | 精良 | 稀有 | 神话 | 传奇 | |
---|---|---|---|---|---|
敌对生物 | 10000 | 1000 | 250 | 50 | 1 |
中立生物 | 10000 | 1000 | 100 | 0 | 0 |
友好生物 | 5000 | 250 | 0 | 0 | 0 |
Boss | 0 | 0 | 0 | 5000 | 100 |
普通 | 精良 | 稀有 | 神话 | 传奇 | |
---|---|---|---|---|---|
敌对生物 | 88.5% | 8.85% | 2.21% | 0.442% | 0.00885% |
中立生物 | 90.1% | 9.01% | 0.901% | 0 | 0 |
友好生物 | 95.2% | 4.76% | 0 | 0 | 0 |
Boss | 0 | 0 | 0 | 98.0% | 1.96% |
完成稀有度判定后,将从对应稀有度卡池中随机[3]抽取一张卡片进行掉落。
若最终抽取的卡片有对应闪卡版本,则额外进行一次是否为闪卡的判定。每次掉落卡片,有20%概率为闪卡。
蒙特卡洛模拟
本模拟根据已有概率信息,并基于 C++ 与 std::mt19937
随机数生成器进行。
对于抽取 100000(105)张卡片模拟 10000 次,结果表明集齐普通卡片 48 次,集齐闪卡 0 次,全部集齐 0 次。
对于抽取 1000000(106)张卡片模拟 1000 次,结果表明集齐普通卡片 997 次,集齐闪卡 257 次,全部集齐 256 次。
基于堆叠袭击塔每秒 20 个敌对生物的处死效率,要达到 25% 集齐概率,预期挂机时长 106s,约为 278 小时,即 11.57 天。
对于神话以及传奇卡片,袭击塔的掉落期望是每分钟 0.271 张卡。若通过 Boss 刷取,要达到相同的效率,受限于 Boss 2.5% 的掉落概率,击杀效率需要达到每秒 0.181 只 Boss,即每分钟 10.8 只 Boss,这需要每分钟 32.5 个头的凋灵骷髅塔。
一些额外参考数据:
抽取卡片数 | 全部集齐概率 |
---|---|
1M | 0.25 |
1.5M | 0.55 |
2M | 0.83 |
2.5M | 0.94 |
3M | 0.99 |
代码
#include <iostream> #include <vector> #include <chrono> #include <random> using namespace std; int main() { vector<int> card_arr; vector<int> card_arr_enchant; unsigned seed1 = std::chrono::system_clock::now().time_since_epoch().count(); unsigned random_num; mt19937 rnd(seed1); card_arr.clear(); card_arr_enchant.clear(); for (int i = 0; i < 126; ++i) { card_arr.push_back(0); card_arr_enchant.push_back(0); } vector<double> prob_dist_arr; prob_dist_arr.clear(); prob_dist_arr.push_back(10000./11301.); prob_dist_arr.push_back((10000.+1000.)/11301.); prob_dist_arr.push_back((10000.+1000+250)/11301.); prob_dist_arr.push_back((10000.+1000+250+50)/11301.); prob_dist_arr.push_back(1.); double enchant_prob = 0.2; double index = 0; int N = 100; int card_draw = 3000000; int common_coll_count = 0; int enchant_coll_count = 0; int all_coll_count = 0; int pos = 0; auto max_range = (double)rnd.max(); for (int i = 0; i < N; ++i) { for (int l = 0; l < 126; ++l) { card_arr.at(l) = 0; card_arr_enchant.at(l) = 0; } bool all_collected = true; bool all_enchant_collected = true; for (int j = 0; j < card_draw; ++j) { index = (double)rnd()/max_range; if (index < prob_dist_arr.at(0)){ pos = (int)((double)rnd()/max_range*55); } else if (index < prob_dist_arr.at(1)) { pos = 55+(int)(double(rnd())/max_range*31); } else if (index < prob_dist_arr.at(2)) { pos = 55+31+(int)(double(rnd())/max_range*19); } else if (index < prob_dist_arr.at(3)) { pos = 55+31+19+(int)(double(rnd())/max_range*12); } else { pos = 55+31+19+12+(int)(double(rnd())/max_range*9); } index = (double)rnd()/max_range; if (index < enchant_prob) { card_arr_enchant.at(pos) = card_arr_enchant.at(pos) + 1; } else { card_arr.at(pos) = card_arr.at(pos) + 1; } } for (int k = 0; k < 126; ++k) { if (card_arr.at(k) < 1) { all_collected = false; } if (card_arr_enchant.at(k) < 1) { all_enchant_collected = false; } } if (all_collected) { common_coll_count++; } if (all_enchant_collected) { enchant_coll_count++; } if (all_collected and all_enchant_collected) { all_coll_count ++; } if (i%1 == 0) { cout << i << endl; } } cout << "after " << N << " times of drawing " << card_draw << " cards" << endl; cout << "common_all = " << common_coll_count << endl; cout << "enchant_all = " << enchant_coll_count << endl; cout << "all = " << all_coll_count << endl; return 0; }