#word-list #board #solver #moves #evaluate #language #wordfeud

wordfeud-solver

一个用于评估给定wordfeud棋盘和单词牌组所有可能移动的Rust库

3个版本 (破坏性更新)

0.3.1 2020年12月23日
0.2.2 2020年12月6日
0.1.1 2020年11月25日
0.1.0 2020年11月25日

#2314 in 算法

MIT/Apache

110KB
2.5K SLoC

Wordfeud Solver

一个用于评估给定wordfeud棋盘和单词牌组所有可能移动的Rust库。Wordfeud Solver需要一个单词表来在特定语言中玩游戏。此库不包括单词表。您可以从这里获取荷兰语单词表 这里

此求解器是从出色的 wordfeudplayer Python 包移植过来的。通过将其移植到Rust,它的速度变得更快。


lib.rs:

Rust的wordfeud库。
此crate允许您计算wordfeud游戏中的最佳得分。它可以用于研究游戏策略,或者只是作弊。此库是出色的 wordfeudplayer Python 库的Rust版本。它可以使用 rayon crate来并行计算移动。评估棋盘所需的时间约为1毫秒。

如何使用 wordfeud_solver

首先创建一个wordfeud棋盘,然后指定要使用的单词表和棋盘上的字母牌。默认情况下使用标准棋盘,但您也可以指定自己的“随机”棋盘。单词表必须是utf-8格式,每行包含一个单词。互联网上有多个wordfeud单词表。荷兰语的单词表可以在 这里 获取。它基于 OpenTaal 单词表,作者进行了修改。

基本用法

let mut board = Board::default().with_wordlist_from_words(&["rust", "rest"])?;
let results = board.calc_all_word_scores("rusta")?;
assert_eq!(results.len(),8);
for s in results {
      println!("{} {} {} {} {}", s.x, s.y, s.horizontal, board.decode(s.word), s.score);
}
board.play_word("rust", 7, 7, true, true)?;
println!("{}", board);

依赖项

~2–2.9MB
~63K SLoC