From 8393a5379c3c2c3f1a4e11d8e9dbbf784853d960 Mon Sep 17 00:00:00 2001 From: KagurazakaNyaa Date: Fri, 1 Dec 2023 15:50:27 +0800 Subject: [PATCH] init --- .gitignore | 3 ++ config.json | 49 ++++++++++++++++++ data/其他.csv | 40 +++++++++++++++ data/建築模型.csv | 22 ++++++++ data/桌飾.csv | 27 ++++++++++ data/繪畫.csv | 35 +++++++++++++ data/船隻模型.csv | 19 +++++++ data/花瓶.csv | 128 ++++++++++++++++++++++++++++++++++++++++++++++ data/雕像.csv | 57 +++++++++++++++++++++ process_data.py | 126 +++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 2 + 11 files changed, 508 insertions(+) create mode 100644 .gitignore create mode 100644 config.json create mode 100644 data/其他.csv create mode 100644 data/建築模型.csv create mode 100644 data/桌飾.csv create mode 100644 data/繪畫.csv create mode 100644 data/船隻模型.csv create mode 100644 data/花瓶.csv create mode 100644 data/雕像.csv create mode 100644 process_data.py create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eb8af5d --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/venv/ +filtered_item.json +result.* \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..23b5091 --- /dev/null +++ b/config.json @@ -0,0 +1,49 @@ +{ + "weight_prefer": { + "突襲與強攻率減少": 1.5, + "減少災害發生率": 1.5 + }, + "weight_tier": { + "R0": { + "gte": 0, + "lt": 10, + "weight": 0 + }, + "R1": { + "gte": 10, + "lt": 30, + "weight": 1 + }, + "R2": { + "gte": 30, + "lt": 50, + "weight": 2 + }, + "R3": { + "gte": 50, + "lt": 1000, + "weight": 3 + } + }, + "classes": [ + "雕像", + "建築模型", + "繪畫", + "桌飾", + "花瓶", + "船隻模型", + "其他" + ], + "exclude_class": [ + "船隻模型", + "其他" + ], + "include_item": [ + "大棵的聖誕樹", + "白色的聖誕樹", + "雪人", + "兔子的布偶" + ], + "select_count": 10, + "min_item_level": 6 +} \ No newline at end of file diff --git a/data/其他.csv b/data/其他.csv new file mode 100644 index 0000000..27a8539 --- /dev/null +++ b/data/其他.csv @@ -0,0 +1,40 @@ +裝飾物,展示效果1,展示效果2 +牽牛花,頭痛率降低+4,- +小棵的聖誕樹,抑制行動力減少+3,技能效果時間延長+3 +大棵的聖誕樹,突襲與強攻率減少+2,技能效果時間延長+2 +白色的聖誕樹,災害發生率減少+4,突襲與強攻率減少+4 +雪人,抑制行動力減少+2,技能效果時間延長+1 +楓,災害發生率減少+4,技能效果延長+2 +招財貓,災害發生率減少+5,突襲與強攻率減少+5 +門松,抑制行動力減少+3,突襲與強攻率減少+3 +七夕裝飾,技能效果時間延長+4, +富士山,陸地移動速度上升+3,技能效果時間延長+2 +鮮花裝飾,頭痛率降低+5,突襲與強攻率減少+3 +白雞油樹,地下城內寶箱報酬增加+2,抑制行動力減少+2 +紅花石蒜,頭痛率降低+2,抑制行動力減少+2 +雲南報春,物資消耗減少+2, +木槿,頭痛率降低+3, +波斯臭薔薇,頭痛率降低+5,文化貢獻度獲得量增加+2 +帝王花,抑制行動力減少+2,物資消耗減少+2 +沙漠的薔薇,地下城內寶箱報酬增加+2,抑制行動力減少+2 +蓮花,遺寶碎片獲得數增加+3, +火鳥石斛,文化貢獻度獲得量增加+1,遺寶碎片獲得數增加+1 +萬聖節的南瓜,物資消耗減少+4, +圓形競技場,遺寶碎片獲得數增加+2,災害發生率減少+1 +老君岩,頭痛率降低+4,陸地移動速度上升+3 +達磨,災害發生率減少+4,突襲與強攻率減少+1 +盆景,災害發生率減少+4,突襲與強攻率減少+2 +櫻花盆景,抑制行動力減少+5, +捕夢人,技能效果時間延長+5,抑制行動力減少+3 +裲襠長罩衫,地下城內寶箱報酬增加+5,突襲與強攻率減少+1 +坪庭,災害發生率減少+3,突襲與強攻率減少+3 +陶俑,物資消耗減少+4,災害發生率減少+2 +渾天儀,地下城內寶箱報酬增加+5,抑制行動力減少+3 +地球儀,災害發生率減少+4, +高麗青瓷,技能效果時間延長+1,頭痛率降低+1 +落地鐘,技能效果時間延長+2,抑制行動力減少+4 +兔子的布偶,行動力消耗抑制+4,陸地移動速度上升+2 +熊的布偶,災害發生率減少+4,陸地移動速度上升+3 +五月偶人,突襲與強攻率減少+5,地下城內寶箱報酬增加+3 +聖巴洛繆教堂,災害發生率減少+5,抑制行動力減少+4 +歷史書,頭痛率降低+2,抑制行動力減少+4 diff --git a/data/建築模型.csv b/data/建築模型.csv new file mode 100644 index 0000000..afae8e4 --- /dev/null +++ b/data/建築模型.csv @@ -0,0 +1,22 @@ +裝飾物名稱,展示效果1,展示效果2 +斯通亨奇遺跡,文化貢獻度獲得量增加+1,遺寶碎片獲得數增加+2 +吉薩金字塔,陸地移動速度上升+2, +吉薩獅身人面像,地下城內寶箱報酬增加+2, +卡爾納克‧盧克索,地下城內寶箱報酬增加+2,突襲與強攻率減少+1 +卡帕多西亞,抑製物資減少+2,陸地移動速度上升+1 +布里哈迪斯瓦拉神廟,技能效果時間延長+2,陸地移動速度上升+1 +克諾索斯宮殿,技能效果時間延長+5, +烏爾,遺寶碎片獲得數增加+1,地下城內寶箱報酬增加+2 +阿布辛拜勒神廟,遺寶碎片獲得數增加+5, +科納拉克太陽神神廟,減少災害發生率+2,頭痛率降低+1 +吳哥遺跡,地下城內寶箱報酬增加+5, +蒲甘遺跡,抑製物資減少+5, +波斯波利斯遺跡,地下城內寶箱報酬增加+2,抑製行動力減少+1 +富士山,陸地移動速度上升+3,技能效果時間延長+2 +老君岩,頭痛率降低+4,陸地移動速度上升+3 +特諾奇蒂特蘭,地下城內寶箱報酬增加+5,遺寶碎片獲得數增加+2 +帕連奎,文化貢獻度獲得量增加+4,頭痛率降低+3 +霍圖·瑪圖阿王的摩艾,遺寶碎片獲得數增加+1,頭痛率降低+2 +烏魯魯,技能效果時間延長+4,文化貢獻度獲得量增加+1 +安土城,地下城內寶箱報酬增加+5,減少災害發生率+2 +圓形競技場,遺寶碎片獲得數增加+2,減少災害發生率+1 diff --git a/data/桌飾.csv b/data/桌飾.csv new file mode 100644 index 0000000..8b83a33 --- /dev/null +++ b/data/桌飾.csv @@ -0,0 +1,27 @@ +裝飾物名稱,展示效果1,展示效果2,展示效果3 +蘇格拉底的毒盅,技能效果時間延長+4,頭痛率降低+3, +蘇格拉底的毒盅附桌,技能效果時間延長+5,頭痛率降低+2, +純銀的燭臺,抑製物資減少+1,-, +純銀的燭臺附桌,文化貢獻度獲得量增加+1,-, +阿爾佩斯的聖體容器,遺寶碎片獲得數增加+1,-, +阿爾佩斯的聖體容器附桌,頭痛率降低+1,-, +拔都的寶藏,抑製物資減少+2,技能效果時間延長+2, +拔都的寶藏附桌,抑製物資減少+2,遺寶碎片獲得數增加+2, +亞特蘭提斯的寶藏,地下城內寶箱報酬增加+4,減少災害發生率+1, +亞特蘭提斯的寶藏附桌,地下城內寶箱報酬增加+3,減少災害發生率+2, +章魚圖樣的阿姆佛拉罈,地下城內寶箱報酬增加+2,減少災害發生率+1, +章魚圖樣的阿姆佛拉罈附桌,地下城內寶箱報酬增加+2,抑製行動力減少+1, +金臂,陸地移動速度上升+5,突襲與強攻率減少+3, +金臂附桌,陸地移動速度上升+5,減少災害發生率+3, +船形容器,陸地移動速度上升+1,-, +船形容器附桌,地下城內寶箱報酬增加+1,-, +黃金圓盤,地下城內寶箱報酬增加+5,抑製物資減少+5, +黃金圓盤附桌,地下城內寶箱報酬增加+4,突襲與強攻率減少+3,減少災害發生率+3 +香爐,陸地移動速度上升+4,減少災害發生率+3, +香爐附桌,陸地移動速度上升+5,減少災害發生率+2, +調味瓶,抑製物資減少+5,突襲與強攻率減少+2,抑製行動力減少+2 +調味瓶附桌,抑製物資減少+4,突襲與強攻率減少+3,抑製行動力減少+2 +黃金之筏,陸地移動速度上升+4,頭痛率降低+3, +黃金之筏附桌,陸地移動速度上升+5,頭痛率降低+2, +飛龍之牙,技能效果時間延長+4,突襲與強攻率減少+1, +飛龍之牙附桌,技能效果時間延長+3,突襲與強攻率減少+2, diff --git a/data/繪畫.csv b/data/繪畫.csv new file mode 100644 index 0000000..50464d8 --- /dev/null +++ b/data/繪畫.csv @@ -0,0 +1,35 @@ +裝飾物名稱,展示效果1,展示效果2,展示效果3 +巴別塔(小),頭痛率降低+1,, +諺語箴言,地下城內寶箱報酬增加+1,, +巴別塔,遺寶碎片獲得數增加+1,, +編織蕾絲花邊的女孩,遺寶碎片獲得數增加+3,抑製行動力減少+1, +上十字架,技能效果時間延長+4,抑製行動力減少+3, +聖德尼殉教,技能效果時間延長+1,, +卸下聖體,遺寶碎片獲得數增加+5,突襲與強攻率減少+2, +蒙娜麗莎,技能效果時間延長+5,減少災害發生率+2,突襲與強攻率減少+2 +台夫特街景,減少災害發生率+1,頭痛率降低+2, +懶漢天國,文化貢獻度獲得量增加+3,, +花環中的聖母與聖嬰,抑製物資減少+3,突襲與強攻率減少+2, +岩間聖母,技能效果時間延長+5,減少災害發生率+2, +聖韋洛尼加,抑製物資減少+5,技能效果時間延長+2, +聖母子與幼兒聖約翰,頭痛率降低+5,減少災害發生率+3,抑製行動力減少+1 +最後的晚餐,文化貢獻度獲得量增加+2,頭痛率降低+1, +最後的審判,抑製物資減少+1,, +春天,地下城內寶箱報酬增加+3,頭痛率降低+2, +聖像,文化貢獻度獲得量增加+2,抑製行動力減少+1, +聖母領報,文化貢獻度獲得量增加+1,, +洗禮者聖約翰,文化貢獻度獲得量增加+5,減少災害發生率+3, +披紗的夫人,技能效果時間延長+2,文化貢獻度獲得量增加+1, +人體圖像-維特魯威人,頭痛率降低+2,技能效果時間延長+1, +水果籃,減少災害發生率+2,陸地移動速度上升+1, +聖母子與聖約翰,突襲與強攻率減少+1,抑製行動力減少+2, +三博士來朝,減少災害發生率+2,突襲與強攻率減少+1, +維納斯的誕生,抑製物資減少+2,技能效果時間延長+1, +金色聖母,抑製物資減少+2,突襲與強攻率減少+1, +點燭少年,技能效果時間延長+3,抑製行動力減少+2, +烏爾比諾的維納斯,頭痛率降低+4,突襲與強攻率減少+2, +特萊德的風景,技能效果時間延長+5,抑製行動力減少+3, +基督的洗禮,陸地移動速度上升+1,, +彈詩琴的丑角,文化貢獻度獲得量增加+2,, +入睡的維納斯,技能效果時間延長+3,抑製行動力減少+3, +聖母升天,遺寶碎片獲得數增加+2,抑製行動力減少+2, diff --git a/data/船隻模型.csv b/data/船隻模型.csv new file mode 100644 index 0000000..e6bdeaf --- /dev/null +++ b/data/船隻模型.csv @@ -0,0 +1,19 @@ +裝飾物名稱,展示效果1,展示效果2 +加萊排槳大型帆船,強襲 奇襲發生率減少+4,行動力消耗抑制+3 +蓋倫帆船,強襲 奇襲發生率減少+3,行動力消耗抑制+3 +大型卡瑞克帆船,災害發生率減少+3,強襲 奇襲發生率減少+3 +斯庫納帆船,災害發生率減少+5,技能效果延長+1 +加萊塞排槳帆船,災害發生率減少+5,技能效果延長+4 +一等戰列艦,行動力消耗抑制+4,技能效果延長+3 +超級護衛艦,強襲 奇襲發生率減少+5,行動力消耗抑制+1 +日本前,災害發生率減少+4,物資消耗減少+3 +高速帆船,災害發生率減少+3,強襲 奇襲發生率減少+3 +大型阿拉伯帆船,強襲 奇襲發生率減少+4,陸地移動速度上升+3 +憲法級鐵殼裝甲艦,災害發生率減少+5,強襲 奇襲發生率減少+5 +茶船,災害發生率減少+5,物資消耗減少+1 +沙船,強襲 奇襲發生率減少+4,陸地移動速度上升+2 +廣船,災害發生率減少+3,物資消耗減少+3 +菱垣迴船,災害發生率減少+3,技能效果延長+3 +龜甲船,抑制行動力減少+3,抑制物資減少+3 +寶船,災害發生率減少+5,技能效果延長+1 +君權級皇家戰列艦,災害發生率減少+5,強襲 奇襲發生率減少+5 diff --git a/data/花瓶.csv b/data/花瓶.csv new file mode 100644 index 0000000..c2d73ef --- /dev/null +++ b/data/花瓶.csv @@ -0,0 +1,128 @@ +裝飾物名稱,展示效果1,展示效果2 +扶桑花,頭痛率降低+3,抑制行動力減少+5 +康乃馨,文化貢獻度獲得量增加+1, +康乃馨附桌,遺寶碎片獲得數增加+1, +康乃馨附花瓶,頭痛率降低+1, +康乃馨附花瓶桌,陸地移動速度上升+1, +康乃馨附瓶子,地下城內寶箱報酬增加+1, +康乃馨附瓶子桌,技能效果時間延長+1, +康乃馨附白瓶子,文化貢獻度獲得量增加+1, +康乃馨附白瓶子桌,遺寶碎片獲得數增加+1, +水仙,地下城內寶箱報酬增加+1, +水仙附桌,技能效果時間延長+1, +水仙附花瓶,文化貢獻度獲得量增加+1, +水仙附花瓶桌,遺寶碎片獲得數增加+1, +水仙附瓶子,頭痛率降低+1, +水仙附瓶子桌,陸地移動速度上升+1, +水仙附白瓶子,地下城內寶箱報酬增加+1, +水仙附白瓶子桌,技能效果時間延長+1, +聖誕紅,文化貢獻度獲得量增加+1, +聖誕紅附桌,遺寶碎片獲得數增加+1, +聖誕紅附花瓶,頭痛率降低+1, +聖誕紅附花瓶桌,陸地移動速度上升+1, +聖誕紅附瓶子,地下城內寶箱報酬增加+1, +聖誕紅附瓶子桌,技能效果時間延長+1, +聖誕紅附白瓶子,文化貢獻度獲得量增加+1, +聖誕紅附白瓶子桌,遺寶碎片獲得數增加+1, +菖蒲,頭痛率降低+1, +菖蒲附桌,陸地移動速度上昇+1, +菖蒲附花瓶,地下城內寶箱報酬增加+1, +菖蒲附花瓶桌,技能效果時間延長+1, +菖蒲附瓶子,文化貢献度獲得量増加+1, +菖蒲附瓶子桌,遺寶碎片獲得數增加+1, +菖蒲附白瓶子,頭痛率降低+1, +菖蒲附白瓶子桌,陸地移動速度上升+1, +蝴蝶蘭,技能效果時間延長+1,文化貢獻度獲得量增加+1 +蝴蝶蘭附桌,地下城內寶箱報酬增加+1,頭痛率降低+1 +蝴蝶蘭附花瓶,陸地移動速度上升+2, +蝴蝶蘭附花瓶桌,頭痛率降低+2, +蝴蝶蘭附瓶子,遺寶碎片獲得數增加+1,技能效果時間延長+1 +蝴蝶蘭附瓶子桌,文化貢獻度獲得量增加+2, +蝴蝶蘭附白瓶子,地下城內寶箱報酬增加+1,文化貢獻度獲得量增加+1 +蝴蝶蘭附白瓶子桌,抑製物資減少+2, +東亞蘭,文化貢獻度獲得量增加+1, +東亞蘭附桌,遺寶碎片獲得數增加+1, +東亞蘭附花瓶,頭痛率降低+1, +東亞蘭附花瓶桌,陸地移動速度上升+1, +東亞蘭附瓶子,地下城內寶箱報酬增加+1, +東亞蘭附瓶子桌,技能效果時間延長+1, +東亞蘭附白瓶子,文化貢獻度獲得量增加+1, +東亞蘭附白瓶子桌,遺寶碎片獲得數增加+1, +鬱金香,頭痛率降低+1, +鬱金香附桌,陸地移動速度上升+1, +鬱金香附花瓶,地下城內寶箱報酬增加+1, +鬱金香附花瓶桌,技能效果時間延長+1, +鬱金香附瓶子,文化貢獻度獲得量增加+1, +鬱金香附瓶子桌,遺寶碎片獲得數增加+1, +鬱金香附白瓶子,頭痛率降低+1, +鬱金香附白瓶子桌,陸地移動速度上升+1, +仙客來,文化貢獻度獲得量增加+1, +仙客來附桌,遺寶碎片獲得數增加+1, +仙客來附花瓶,頭痛率降低+1, +仙客來附花瓶桌,陸地移動速度上升+1, +仙客來附瓶子,地下城內寶箱報酬增加+1, +仙客來附瓶子桌,技能效果時間延長+1, +仙客來附白瓶子,文化貢獻度獲得量增加+1, +仙客來附白瓶子桌,遺寶碎片獲得數增加+1, +百合水仙,文化貢獻度獲得量增加+1, +百合水仙附桌,遺寶碎片獲得數增加+1, +百合水仙附花瓶,頭痛率降低+1, +百合水仙附花瓶桌,陸地移動速度上升+1, +百合水仙附瓶子,地下城內寶箱報酬增加+1, +百合水仙附瓶子桌,技能效果時間延長+1, +百合水仙附白瓶子,文化貢獻度獲得量增加+1, +百合水仙附白瓶子桌,遺寶碎片獲得數增加+1, +荷包花,遺寶碎片獲得數增加+3,技能效果時間延長+2 +荷包花附桌,頭痛率降低+3,陸地移動速度上升+2 +荷包花附花瓶,陸地移動速度上升+3,頭痛率降低+2 +荷包花附花瓶桌,地下城內寶箱報酬增加+5, +荷包花附瓶子,技能效果時間延長+4,陸地移動速度上升+1 +荷包花附瓶子桌,抑製物資減少+5, +荷包花附白瓶子,技能效果時間延長+3,地下城內寶箱報酬增加+2 +荷包花附白瓶子桌,技能效果時間延長+5, +雪絨花,文化貢獻度獲得量增加+5, +雪絨花附桌,頭痛率降低+3,技能效果時間延長+2 +雪絨花附花瓶,文化貢獻度獲得量增加+3,遺寶碎片獲得數增加+2 +雪絨花附花瓶桌,陸地移動速度上升+5, +雪絨花附瓶子,技能效果時間延長+3,陸地移動速度上升+2 +雪絨花附瓶子桌,文化貢獻度獲得量增加+4,技能效果時間延長+1 +雪絨花附白瓶子,抑製物資減少+3,文化貢獻度獲得量增加+2 +雪絨花附白瓶子桌,文化貢獻度獲得量增加+5, +洋紅西番蓮,抑製物資減少+3,頭痛率降低+3 +洋紅西番蓮附桌,文化貢獻度獲得量增加+4,地下城內寶箱報酬增加+2 +洋紅西番蓮附花瓶,遺寶碎片獲得數增加+5,文化貢獻度獲得量增加+1 +洋紅西番蓮附花瓶桌,抑製物資減少+5,減少災害發生率+1 +洋紅西番蓮附瓶子,頭痛率降低+4,文化貢獻度獲得量增加+2 +洋紅西番蓮附瓶子桌,陸地移動速度上升+5,抑製行動力減少+1 +洋紅西番蓮附白瓶子,陸地移動速度上升+4,文化貢獻度獲得量增加+2 +洋紅西番蓮附白瓶子桌,技能效果時間延長+5,突襲與強攻率減少+1 +夏堇,, +夏堇附桌,, +紫蝶花,, +紫蝶花附桌,, +大麗花,, +大麗花附桌,, +藍色蝴蝶蘭,, +藍色蝴蝶蘭附桌,, +仙人指甲蘭,, +仙人指甲蘭附花瓶桌,陸地移動速度上升+5, +君子蘭,, +君子蘭附桌,, +嘉德麗雅蘭,, +藍色蝴蝶蘭,, +藍色蝴蝶蘭附桌,陸地移動速度上升+1,文化貢獻度獲得量增加+1 +藍色蝴蝶蘭附花瓶,遺寶碎片獲得數增加+1,文化貢獻度獲得量增加+1 +藍色蝴蝶蘭附花瓶桌,地下城內寶箱報酬增加+2, +藍色蝴蝶蘭附瓶子,頭痛率降低+1,文化貢獻度獲得量增加+1 +藍色蝴蝶蘭附瓶子桌,頭痛率降低+2, +藍色蝴蝶蘭附白瓶子,地下城內寶箱報酬增加+1,文化貢獻度獲得量增加+1 +藍色蝴蝶蘭附白瓶子桌,抑製物資減少+2, +雪花蓮,, +滿天星,, +矢車菊,, +金幣菊,, +蓮花,遺寶碎片獲得數增加+3, +台灣百合,技能效果時間延長+3, +木槿,頭痛率降低+3, +白雞油樹,地下城內寶箱報酬增加+2,抑製行動力減少+2 +雲南報春,抑製物資減少+2, diff --git a/data/雕像.csv b/data/雕像.csv new file mode 100644 index 0000000..5a2f0cd --- /dev/null +++ b/data/雕像.csv @@ -0,0 +1,57 @@ +裝飾物名稱,展示效果1,展示效果2,展示效果3 +大衛,文化貢獻度獲得量增加+2,頭痛率降低+2, +拉奧孔,文化貢獻度獲得量增加+5,-, +薩莫色雷斯的勝利女神像,頭痛率降低+5,技能效果時間延長+2, +米洛的維納斯,技能效果時間延長+5,抑製物資減少+2, +騎天馬的聲望女神,頭痛率降低+1,-, +波塞頓神像,頭痛率降低+1,-, +象牙雕刻的女神像,文化貢獻度獲得量增加+5,陸地移動速度上升+5, +羅塞塔碑,遺寶碎片獲得數增加+2,頭痛率降低+1, +天馬與莫丘里,遺寶碎片獲得數增加+1,-, +抹大拉的瑪莉亞,文化貢獻度獲得量增加+3,-, +貝斯特神像,文化貢獻度獲得量增加+3,-, +奧西里斯神像,遺寶碎片獲得數增加+1,-, +奧林匹亞的赫爾梅斯神像,技能效果時間延長+2,-, +帕特農神殿的雅典娜神像,陸地移動速度上升+5,減少災害發生率+2, +伊西絲神像,文化貢獻度獲得量增加+1,-, +荷魯斯神像,頭痛率降低+1,-, +聖母悼子,遺寶碎片獲得數增加+2,減少災害發生率+1, +瀕死的高盧人,頭痛率降低+5,-, +擲鐵餅者,陸地移動速度上升+1,抑製物資減少+1, +阿波羅神像,地下城內寶箱報酬增加+1,-, +亞提密斯像,技能效果時間延長+1,-, +胡夫王的象牙雕像,減少災害發生率+1,地下城內寶箱報酬增加+2, +宙斯神像,文化貢獻度獲得量增加+1,-, +愛芙羅黛蒂像,地下城內寶箱報酬增加+1,-, +安馬神像,陸地移動速度上升+2,-, +恩格烏神像,文化貢獻度獲得量增加+4,抑製行動力減少+2, +溫庫隆庫魯神像,頭痛率降低+2,-, +奧尼亞庫鵬神像,文化貢獻度獲得量增加+3,遺寶碎片獲得數增加+2, +恰克姆,地下城內寶箱報酬增加+2,, +希佩‧托特克像,頭痛率降低+4,抑製行動力減少+2, +奧爾梅克的巨大頭像,陸地移動速度上升+5,-, +托爾特克的戰士雕像,陸地移動速度上升+2,突襲與強攻率減少+2, +披羽蛇翼龍像,遺寶碎片獲得數增加+3,頭痛率降低+2, +蛇的雕像,抑製行動力減少+2,抑製物資減少+1, +帕恰瑪瑪像,遺寶碎片獲得數增加+2,-, +蛇神上之佛陀,地下城內寶箱報酬增加+5,陸地移動速度上升+1, +媽祖像,抑製物資減少+2,減少災害發生率+1, +濟州石頭爺,遺寶碎片獲得數增加+2,突襲與強攻率減少+1, +高麗青瓷,技能效果時間延長+1,頭痛率降低+1, +渾天儀,地下城內寶箱報酬增加+5,抑製行動力減少+3, +鑲嵌加工的青銅器,技能效果時間延長+4,抑製行動力減少+3, +人首翼牛神像,地下城內寶箱報酬增加+2,抑製行動力減少+2, +金與青金石的雄山羊,陸地移動速度上升+2,突襲與強攻率減少+1, +女王的牛頭豎琴,抑製物資減少+1,技能效果時間延長+2, +中壇元帥的銅像,頭痛率降低+5,抑製行動力減少+3,減少災害發生率+2 +爵,技能效果時間延長+5,抑製行動力減少+3,突襲與強攻率減少+2 +薩羅斯瓦蒂像,文化貢獻度獲得量增加+3,頭痛率降低+1, +因陀羅神像,突襲與強攻率減少+2,抑製物資減少+1, +毗濕奴神像,抑製行動力減少+1,技能效果時間延長+3, +哈奴曼神像,地下城內寶箱報酬增加+5,陸地移動速度上升+4, +石獅子,陸地移動速度上升+1,文化貢獻度獲得量增加+1, +陶俑,抑製物資減少+3,減少災害發生率+2, +沙漠的薔薇,地下城內寶箱報酬增加+2,抑製行動力減少+2, +蘇利耶神像,減少災害發生率+1,文化貢獻度獲得量增加+2, +菩薩立像,技能效果時間延長+2,頭痛率降低+2, +精靈之像,抑製行動力減少+3,頭痛率降低+3, diff --git a/process_data.py b/process_data.py new file mode 100644 index 0000000..86e65a6 --- /dev/null +++ b/process_data.py @@ -0,0 +1,126 @@ +import json +import csv +from tqdm import tqdm +from scipy.special import comb +from operator import attrgetter +from typing import Any +from itertools import combinations +config = json.load(open('config.json', 'r', encoding='utf-8')) + + +def calc_weight(effect: str, level: int) -> float: + weight = 0 + for tier in config['weight_tier']: + if level >= config['weight_tier'][tier]['gte'] and level < config['weight_tier'][tier]['lt']: + weight = config['weight_tier'][tier]['weight'] + if effect in config['weight_prefer']: + weight *= config['weight_prefer'][effect] + return weight + + +class Item: + name: str + class_name: str + effect_list: dict[str, int] + total_level: int + + def __init__(self, name: str, class_name: str) -> None: + self.name = name + self.class_name = class_name + self.effect_list = {} + self.total_level = 0 + + +class Combo: + selected_item: list[Item] + total_effect: dict[str, int] + total_weight: float + + def __init__(self, selected_item: list[Item]) -> None: + self.selected_item = selected_item + effect_level_map = {} + self.total_weight = 0 + orig_item: list[Item] = [] + attach_item: list[Item] = [] + for item in selected_item: + if '附' in item.name: + attach_item.append(item) + else: + orig_item.append(item) + for (effect, level) in item.effect_list.items(): + if effect not in effect_level_map: + effect_level_map[effect] = level + else: + effect_level_map[effect] += level + self.total_effect = effect_level_map + if len(effect_level_map) > 5: + return + for item in orig_item: + for it in attach_item: + if item.name in it.name: + return + for (effect, level) in effect_level_map.items(): + self.total_weight += calc_weight(effect, level) + + +class DictEncoder(json.JSONEncoder): + def default(self, o: Any) -> Any: + return o.__dict__ + + +item_list: list[Item] = [] +combo_list: list[Combo] = [] + +for src in config['classes']: + data_file = f'data/{src}.csv' + with open(data_file, 'r', encoding='utf-8') as csvfile: + reader = csv.reader(csvfile) + next(reader, None) + for row in reader: + item = Item(name=row[0], class_name=src) + effects = row[1:] + for effect in effects: + if '+' not in effect: + continue + effect_name = effect.split('+')[0] + effect_level = int(effect.split('+')[1]) + item.effect_list[effect_name] = effect_level + item.total_level += effect_level + item_list.append(item) + +filtered_item = [] +for item in item_list: + if len(item.effect_list) == 0: + continue + if item.total_level <= config['min_item_level']: + continue + if item.class_name in config['exclude_class']: + if item.name in config['include_item']: + filtered_item.append(item) + continue + filtered_item.append(item) + +filtered_item.sort(key=attrgetter('total_level'), reverse=True) + +print(f'total {len(filtered_item)} items') +json.dump(filtered_item, open('filtered_item.json', 'w', encoding='utf-8'), + cls=DictEncoder, ensure_ascii=False, indent=2) + +item_combo = combinations(filtered_item, config['select_count']) + + +tbar = tqdm(total=comb(len(filtered_item), config['select_count'])) +for select_list in item_combo: + combo = Combo(selected_item=list(select_list)) + if len(combo.total_effect) <= 5: + combo_list.append(combo) + tbar.update() +tbar.close() + + +result = sorted(combo_list, key=attrgetter('total_weight'), reverse=True) +json.dump(result[:10], open('result.json', 'w', encoding='utf-8'), + cls=DictEncoder, ensure_ascii=False, indent=2) + +json.dump(result, open('result.full.json', 'w', encoding='utf-8'), + cls=DictEncoder, ensure_ascii=False, indent=2) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5cbeae8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +tqdm +scipy \ No newline at end of file