4 个版本 (2 个重大变更)
0.3.1 | 2020年11月29日 |
---|---|
0.3.0 | 2020年11月29日 |
0.2.0 | 2020年11月28日 |
0.1.0 | 2020年11月22日 |
在 #fill 中排名 8
2MB
1K SLoC
xwords

xwords
是一个用于填充填字游戏的快速库。此仓库还包含一个用于调用库的轻量级命令行界面。
买者慎之
这首先是我为了学习一点关于 Rust 的性能分析和优化而进行的个人爱好项目。我非常愿意接受贡献或考虑功能请求,但请知道,这个项目的未来有些不确定。
命令行界面
此命令使用默认单词列表填充存储在本地文件中的网格。
$ xwords --input grids/20201005_empty.txt
CFS*ANGELI*ORDU
AIA*DEEPAS*SEIN
SCLAVONIAN*MFAS
IKANTLETGO*ALLE
OLDY**ROE*ANOSE
*YOOHOOMRSBLOOM
***FUGUE*IRIDAL
FAA*LIS*ECO*SPY
IMPROV*ACOOK***
BILLIEJEANKING*
SEUSS*IAD**CEIL
**STTIC**ALKALI
CITI*CACOMISTLE
CORN*OMOLON*LIS
CLEE*NATURA*YST
在我的机器上,此命令运行大约需要2秒。
库
use xwords::{crossword::Crossword, fill_crossword_with_default_wordlist};
fn main() -> Result<(), String> {
let empty_crossword = Crossword::new(String::from(
"
* *
* *
*
* * *
** *
* ***
* *
* *
* *
*** *
* **
* * *
*
* *
* *
",
))?;
let filled_crossword = fill_crossword_with_default_wordlist(&empty_crossword)?;
println!("{}", filled_crossword);
Ok(())
}
/*
ZETA*TWIT*VOWEL
ETAT*IANA*EVOKE
RINTINTIN*REVIE
OCT*TIE*TUI*ENR
**ATHA*TASTINGS
TOLEAN*ILIES***
ISIAC*TEAN*STEM
ZAT*ACHATES*HRA
AYES*SETE*TYEES
***TUTSI*URALIC
VENERATE*SEWA**
ORA*TRO*UES*TOA
WISHI*NETASSETS
ETHIC*EVIL*USTO
RUEDA*SWAL*OTSU
*/
在我的机器上,上述代码片段运行大约需要3秒。
在幕后,此代码片段加载索引单词列表,并迭代地将有效单词填充到输入中。
依赖项
~1–12MB
~142K SLoC