4 个版本 (2 个稳定)

1.0.1 2024 年 1 月 4 日
1.0.0 2024 年 1 月 3 日
0.2.0 2023 年 12 月 26 日
0.1.0 2023 年 12 月 26 日

130游戏 中排名

每月下载 25

Unlicense

12KB
152

单词游戏

这是我在航班延误时用 30 分钟制作的单词链游戏。

Crates.io

用法

执行二进制文件后,您将被提示输入一个单词。一个“单词”是大小写不敏感的 Unicode Alphabetic 字符序列(或一个连字符 -)。

[!注意] 这是对单词的唯一标准,因为其他所有约束都会限制可用语言和玩家允许使用的特定单词。

每个随后的单词必须以前一个单词结束的字母开头,并且所有单词都必须是唯一的。以下是一个单词链的例子

$ words
> part
> torch
> horse

通常,游戏由多个玩家玩,无法想到下一个单词的玩家会输,但各国的规则不同,所以您可以随意修改规则。

如果您尝试输入一个已经引入的单词,您将收到一个警告

> torch
[-] This word has already been used

您也可以使用 !undo 撤销几个最后的单词,以防输入错误

> etherium
> !undo
[i] Previous word was cancelled: etherium
> ethereum

您可以通过提示 ? 或通过将 --help 传递给可执行文件来查看所有可用命令

安装

Words 游戏的二进制文件名为 words

要安装二进制文件,请运行

$ cargo install word-chain-game

构建

此游戏是用 Rust 编写的,因此您需要通过 cargo 编译

$ git clone https://github.com/quadratic-bit/words-game
$ cd words-game
$ cargo build --release
$ ./target/release/words --help

修改

本地化

默认 UI 语言是英语,但分支 locale-ru 包含俄语翻译。

所有字符串字面量都存储在 src/literals.rs 中,并带有说明,因此更改 UI 语言不应有任何问题。在那里,您还可以更改默认提示 >

还有这个数组

pub const ILLEGAL_STARTING_CHARACTERS: [char; 4] = ['-', 'ы', 'ь', 'ъ'];

它控制所有单词不能开始的字符(例如,俄语的 ы、ь、ъ 和连字符)。如果用这些字符构造新单词,玩家将收到警告,因为这些字符不能作为后续单词。

撤销缓冲区大小

在这样一款游戏中,需要处理大量的词汇,因此将所有词汇存储在向量中并不合理。但是,为了“撤销”功能,将最后 n 个词汇按原顺序存储是合理的。默认情况下,这个数字是 10,但可以在 src/main.rs 中进行更改。

const WORD_HISTORY_BUFFER_LENGTH: usize = 10;

测试

您可以通过 tests/ 文件夹添加并运行测试。

$ cargo test

依赖项

~0–10MB
~53K SLoC