#谜题 #解决方案 #用户界面 #日期 #日历 #生成 #浏览

bin+lib a-puzzle-a-day

生成和浏览所有 A-Puzzle-A-Day 的解决方案

2 个版本

0.1.1 2024 年 3 月 13 日
0.1.0 2024 年 3 月 13 日

#120可视化

每月 39 次下载

GPL-2.0-only

150KB
1.5K SLoC

A-Puzzle-A-Day

DragonFjord's A-Puzzle-A-Day 要求你在日历框中将八块拼图放置好,以显示当前日期。这些拼图在框中大约有 6 万种放置方式,其中超过 2 万种是有效解决方案。这意味着平均每个日期有 67 个解决方案,但有些日期解决这个谜题可能看起来完全无望。

这款软件对于那些沮丧、自信心受挫的日子来说就像一束神圣的光,让你可以轻松地生成和浏览所有日期的解决方案。

用法

有三种主要使用模式: browserandomgenerate

浏览

image

$ a-puzzle-a-day browse [-f/--file <FILE>] [-d/--date <DATE>]

打开显示所有解决方案的 TUI(文本用户界面)。UI 被分为两个面板:日期面板(左侧)和解决方案面板(右侧)。要导航,请使用箭头按钮或 hjkl。要切换面板,请按 Tab 或 Enter。要退出,请按 Escape 或 q。

此外,还提供了完整的鼠标支持,包括滚动。

请注意,颜色选择考虑了暗色终端主题。目前无法更改配色方案。

随机

$ a-puzzle-a-day random [-f/--file <FILE>] [-d/--date <DATE>]

这将显示当前日期的随机解决方案,或者根据选项 -d--date 指定的日期。

生成

generate

$ a-puzzle-a-day generate [-f/--file <FILE>]

这将生成所有解决方案并将它们写入文件 solutions.apad,或根据选项 -f--file 指定的文件(此文件与此仓库中找到的解决方案文件相同)。创建的文件使用自定义的二进制文件格式,名为 APAD

解决方案是通过穷举法找到的,每个拼图块并行放置在每个方格中。已尽可能减少所需的工作量,但生成过程至少需要几秒钟和几十个线程。

注意:这通常是不必要的,因为解决方案已包含在二进制文件中。

安装

目前,此软件只能从源代码安装,使用Cargo

$ cargo install --git https://github.com/mrbjarksen/a-puzzle-a-day

这将把可执行文件a-puzzle-a-day放置到$HOME/.cargo/bin(默认情况下),需要将其添加到$PATH中。

依赖项

~9–18MB
~220K SLoC