Skip to main content

A python-based Genshin Impact gacha simulator

Project description

原神祈愿模拟 GenshinWish

本Python库是用来模拟原神抽卡的,作者为Lawrence Guo,具体可以模拟角色活动祈愿、武器祈愿和常驻祈愿(暂不支持新手祈愿)

Wish()

用于设定卡池初始状态并预备好抽卡。可以直接什么都不填,用Wish()来进行实例化,也可以自定义卡池的信息和抽卡状态数据。

目前只能让一个对象进行实例化,在一个对象内不可以混合使用三种方法,因为水位是继承的。如果想在同意程序中抽别的池子需要对另外一个对象实例化。后续的更新中可能会将这个问题修复。

(可选)输入参数如下:

卡池信息

限定角色祈愿

  • up_candidate为限定角色祈愿中UP的五星角色,类型为str,默认值为"纳西妲"
  • four_star_up为限定角色祈愿中UP的四星角色,类型为长度为3的list,默认值为["久岐忍", "多莉", "莱依拉"]

限定武器祈愿

  • five_star_weapon_up为限定武器祈愿中UP的五星武器,类型为长度为2的list,默认值为["千夜浮梦", "圣显之钥"]
  • four_star_weapon_up为限定武器祈愿中UP的四星武器星武器,类型为长度为5的list,默认值为["绝弦", "祭礼残章", "匣里灭辰", "西风大剑", "西福斯的月光"]

抽卡状态

通用状态信息

  • draw_count为抽卡水位统计,类型为int,默认值为0
  • four_star_count为四星物品水位统计,类型为int,默认值为0
  • five_star_grt为五星保底状态,类型为bool,默认值为False。当five_star_grt=False时,可能会歪,也可能不歪;当five_star_grt=True时,必定出本期UP五星物品。
  • four_star_grt为四星保底状态,类型为bool,默认值为False。当four_star_grt=False时,可能会歪,也可能不歪;当four_star_grt=True时,必定出本期UP四星物品。
  • is_limited判断是否为本期限定角色,类型为bool,默认值为False
  • star为物品星级,类型为范围在[3,5]的int,默认值为3
  • is_character判断上一抽结果是否为角色,类型为bool,默认值为False
  • history存储抽卡记录,类型为list

武器池专用状态信息

  • chart_course为定轨状态,类型应为str,默认值为None
  • fate_points为命定值,类型为范围在[0,2]的int,默认值为0.
  • is_chart_course最近一次出五星时,判断结果是否为定轨武器,类型为bool,默认值为False

使用示例

from genshinwish import Wish

wish = Wish(up_candidate="纳西妲", four_star_up=["久岐忍", "多莉", "莱依拉"])

方法

1. 限定角色卡池 抽取结果生成 char_event_wish()

返回类型为dict

输出格式参考:

{'time': '2023-04-22 01:02:47',
 'five_star_grt': False,
 'four_star_grt': False,
 'draw_count': 1,
 'four_star_count': 1,
 'star': 3,
 'is_limited': False,
 'is_character': False,
 'result': '鸦羽弓'}
wish = Wish(up_candidate="纳西妲", four_star_up=["久岐忍", "多莉", "莱依拉"])

wish.char_event_wish()

2. 限定武器卡池 抽取结果生成 weapon_event_wish()

返回类型为dict

输出格式参考:

{'time': '2023-04-22 01:05:47',
 'five_star_grt': False,
 'four_star_grt': True,
 'draw_count': 13,
 'four_star_count': 10,
 'star': 4,
 'is_character': False,
 'is_limited': True,
 'is_chart_course': False,
 'fate_points': 0,
 'result': '绝弦'}
wish = Wish(five_star_weapon_up=["千夜浮梦", "圣显之钥"],
            four_star_weapon_up=["绝弦", "祭礼残章", "匣里灭辰", "西风大剑", "西福斯的月光"])

wish.weapon_event_wish()

3. 常驻卡池 抽取结果生成 std_wish()

返回类型为dict

输出格式参考:

{'time': '2023-04-22 01:12:43',
 'draw_count': 13,
 'four_star_count': 10,
 'star': 4,
 'is_limited': False,
 'is_character': False,
 'result': '匣里龙吟'}
wish = Wish()

wish.std_wish()

使用例

from genshinwish import Wish

wish = Wish(up_candidate="纳西妲", four_star_up=["久岐忍", "多莉", "莱依拉"], chart_course="千夜浮梦")
wish.history = []
collect = []
count = 0

# 使用例:模拟抽卡(直到第一次抽中限定五星)
while True:
    # 我的回合!抽卡!
    state = wish.char_event_wish()
    # print(state)

    if state["star"] == 5 and state["is_limited"]:  # 抽中本期UP就计数
        count += 1

    if count == 6:  # 抽满命!!!
        break
    # if state["star"] == 5:
    #     break

    # 提取分析抽出的五星
for i in range(len(wish.history)):
    if wish.history[i]["star"] == 5:
        print(wish.history[i])

输出示例:

{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 79, 'four_star_count': 1, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '莫娜'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': True, 'draw_count': 78, 'four_star_count': 6, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 79, 'four_star_count': 8, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 77, 'four_star_count': 10, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '刻晴'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': True, 'draw_count': 75, 'four_star_count': 4, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 40, 'four_star_count': 6, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 18, 'four_star_count': 5, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '提纳里'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': True, 'draw_count': 67, 'four_star_count': 1, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': True, 'draw_count': 47, 'four_star_count': 1, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '迪卢克'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': False, 'draw_count': 83, 'four_star_count': 6, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genshinwish-1.0.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

genshinwish-1.0.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file genshinwish-1.0.0.tar.gz.

File metadata

  • Download URL: genshinwish-1.0.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for genshinwish-1.0.0.tar.gz
Algorithm Hash digest
SHA256 522465814967af2104c2e0f9af579dcf1499e3bd756c8666c2c550e89616f56e
MD5 45bd9817e78d4a226a6abbe5bceda04d
BLAKE2b-256 6bb358362322c797b91452585226a5ffa91549585029aae54e46e2b0a25e4022

See more details on using hashes here.

File details

Details for the file genshinwish-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: genshinwish-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for genshinwish-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed128159a2226e8dbf5e6579bbab5173f080cecfaefc0fcf2ca80e654eaf572f
MD5 8d07b95f9cae7640315d6fd09d363013
BLAKE2b-256 fce8d4563c1d85d60a8c0f7cae0b7fb8e794e61c3884d93522226959b41e0b47

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page