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

MIT 许可证

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