#hearthstone #deck #codes #decoding #format #codec #cards

deck_codes

一个用于解码和编码炉石传说牌组代码格式的库

4 个版本

0.2.2 2021 年 4 月 4 日
0.2.1 2019 年 4 月 16 日
0.2.0 2019 年 4 月 16 日
0.1.0 2019 年 4 月 11 日

#335 in 游戏

每月 25 次下载

MIT 许可证

23KB
516

deck_codes

CircleCI

Crate

一个用于编码和解码炉石传说牌组代码或牌组字符串的 Rust 库。

牌组代码的示例可以在 这里 找到。

此库返回的任何牌组字符串或牌组定义都将是最规范的。这意味着卡牌和英雄将按照 dbf id 的升序排序。

dbf id 和卡牌之间的映射可以在 HearthstoneJSON 中找到。

用法

extern deck_codes;
use deck_codes::{decode_deck_code, encode_deck_code, format::Format};

fn main() {
    let code = "AAECAf0EBMABobcC3s0Cps4CDXHDAbsClQOrBJYF7AWjtgLXtgLpugKHvQLBwQKYxAIA";
    let deck = decode_deck_code(code).expect("Decoded safely");
    assert_eq!(deck.format, Format::Standard);
    assert_eq!(deck.heroes, vec![637]); // dbfid for Jaina
    assert_eq!(deck.total_cards(), 30);

    let expected_cards = vec![
        // Singles
        (1, 192), (1, 39841), (1, 42718), (1, 42790),
        // Doubles
        (2, 113), (2, 195), (2, 315), (2, 405), (2, 555), (2, 662), (2, 748),
        (2, 39715), (2, 39767), (2, 40297), (2, 40583), (2, 41153), (2, 41496)
    ];
    assert_eq!(deck.cards(), expected_cards);

    let reverse_code = encode_deck_code(deck);
    assert_eq!(code, reverse_code);
}

依赖关系

~0.5–1MB
~23K SLoC