终端中Regex纵横字谜的Python实现。
regex-crossword的Python项目详细描述
正则表达式纵横字谜
终结者欢欣鼓舞!在
基于Regex Crossword,这是一个用纯python编写的实现,只使用标准库从shell完全脱机玩游戏。在
如果您不熟悉正则表达式纵横字谜的concpet,则需要填充一个空白纵横字谜网格,以便每一行和每列都与指定的正则表达式匹配。这是一个有趣的练习,你的正则表达式的能力和一个互动的方式来学习和实践,而玩。在
我自己也是一个终端怪胎,所以当我开始玩这个很棒的在线版本的时候,我觉得很自然,需要有一个可以从shell中播放的概念版本,所以我只使用Python的curses
模块。在
安装
使用Python包管理器pip安装regex_crossword
。在
pip install regex_crossword
要安装刮板功能(更多信息见下文),请使用:
^{pr2}$Note: the scraper uses the Selenium 3rd party package that might need extra setup to be used (specifically the Chrome WebDriver). If you encounter any problems I advise you to check out their installation guide.
使用
一旦安装到您的环境中,只需从终端输入regex_crossword
并开始播放!在
装载水平组件
当游戏开始时,它将尝试加载“水平包”供它使用。它按降序在以下位置查找它们:
- 首先,它将在调用游戏命令时查找
--level-packs
选项指向的位置(对于所有命令的完整列表,请使用-h
或--help
标志)。在 - 如果没有指定选项,它将查找
REGEXCW_LEVEL_PACKS
环境变量所指向的位置(如果存在)。在 - 最后,默认情况下,它将在当前工作目录中搜索名为
level_packs
的目录。在
如果所有这些都失败(或者目录没有包),将弹出一个错误,通知您没有找到级别包。在
获取水平包
在尝试获取级别包时,您有几个选项:
- 使用
--scrape
标志(这需要您安装scraper
额外的)。这将抓取一些在线资源,并基于它们创建级别包,供您加载到脱机版本中。在 - 创建你自己的关卡!在
创建自己的级别包
Level packs只是遵循以下格式的JSON文件:
[{"title":"Beatles","up_to_down":["[^SPEAK]+","EP|IP|EF"],"left_to_right":["HE|LL|O+","[PLEASE]+"],},{"title":"Pisco Sour","up_to_down":["(MA|LM)","[^MESH]+"],"left_to_right":["[LINE]+","[LAM]+"],"right_to_left":["[ISLE]+","[MALE]+"],"down_to_up":["[LAME]*","[^LES]+"]},]
主文件json是一个小字典列表,每个字典都实现了一个“level”格式:
title
-级别的标题。在up_to_down
-将尝试从上到下匹配列的正则表达式(从左到右指定)left_to_right
-将尝试从左到右匹配行的正则表达式(从上到下指定)down_to_up
-与up_to_down
相同,但将尝试从下到上匹配列。在right_to_left
-与left_to_right
相同,但将尝试从右到左匹配行。在
许可证
- 项目
标签: