可以说我在写东西,而我不小心把它写在错误的框中:
+-------+--------+
| Verbs | Nouns |
+-------+--------+
| Truck | |
| eat | Banana |
| | Car |
+-------+--------+
因此,我很懒惰,只画了一个箭头指向应该的空间:
+-------+--------+
| Verbs | Nouns |
+-------+--------+
|[Truck]---> |
| eat | Banana |
| | Car |
+-------+--------+
您的工作是使它看起来很漂亮-将其变为:
+-------+--------+
| Verbs | Nouns |
+-------+--------+
| | Truck |
| eat | Banana |
| | Car |
+-------+--------+
规则
- 短语或单词用方括号括起来([...])
多行条目表示为[...(已删除多行),换行符[...--...-->]。因此,箭头总是对的从底部右侧支架
例如:
+-----------+----------+
| Verbs | Nouns |
+-----------+----------+
| | |
|[is a noun]-> |
| eat | Banana |
| | Car |
+-----------+----------+
变成:
+-----------+----------+
| Verbs | Nouns |
+-----------+----------+
| | |
| | is a noun|
| eat | Banana |
| | Car |
+-----------+----------+
- 框以加号(“ +”)为界,并且应假定箭头不会越过加号
- 箭头的末尾总会有空间让单词或短语适合
- 顺序很重要-尽管垂直对齐并不重要,但单词必须出现在箭头指向的位置
- 箭头一次只能旋转90度,但只能在“ /”和“ \”之间旋转(请参见下文)
例如:
+-----------+----------+
| Verbs | Nouns |
+-----------+----------+
| [Truck]--\| |
/------------/| <--\
| | eat | Banana ||
| | /--\ | Car ||
| +--|--|-----+----------+|
\----/ \-----------------/
竞赛
任何输入都是可接受的(文本文件,STDIN等)
任何可读输出都是可接受的(文本文件,STDOUT等)
这里还有更多示例:
这是代码高尔夫球,所以最短的代码获胜!
一些测试用例:
+--------+----------+-------------+
| Colors | Foods | Countries |
+--------+----------+-------------+
| red | pizza | Switzerland |
/--> /----> | |
| |[kale]/ | hot dogs | Brazil |
| | <----------------------\ |
| | orange |[yellow]\ | [green]/ |
| +--------+--------|-+-------------+
\-------------------/
/------------------------------------------\
| |
| +------------------+----------+-------+ |
| | frog | | | |
| | forge | dog | eagle | |
| | foundation | diligent | ease | |
| |[Brother]--\ | down | elf | |
| | | |[egg]--\ |[fort]---/
\----> | | | | |
| \-\ | \-----> |
+-------------|----+----------+ |
| Boy \--> | |
| Bull | |
| Browser | |
+-----------------------------+-------+
/--------------------------------------\
| /---------------\|
/------------|---------------------/ ||
| | /---------------\ ||
| +---------|-+-----------+-|------+--------|+ ||
\----> | | clarinet | \> | [drums]/| ||
| [viola]\\---> | +---------+ ||
| \-----> | | |/---/|
+-----------+ [violin]\ | | [cello]--/ |
| <------------/ | +---------+ |
| +-----------+ <----------\| |
| | | | [tuba]/| |
| | [piano]\ | | | |
| <-----------/ | | | |
| +-----------+--------+ | |
| | |[trumpet]------/
| [flute]-----> | |
| | saxaphone | |
+-----------+--------------------+---------+
5
这是一个很好的挑战,似乎很难!
—
Beta Decay
在尝试写框标识时,我已经注意到,如果您有足够的箭头越过边界,那么可能会模棱两可,例如,在此布局中有多少框pastebin.com/xyBjTAwK?我们是否可以保证不会发生这种情况,或者可以解释这种情况的预期行为。
—
VisualMelon 2014年
@VisualMelon您可以假设不会发生。在下一行/列中永远不会有2个加号没有连接的情况。另外,关于括号,这也是我的缺点。您可以假设括号中的任何内容都在移动。
—
舒展疯子2014年
我要问的是,它输出的表看起来与原始表类似,但值移动了。换句话说,只要它看起来像一张桌子(例如,没有随机的换行符),我就不会在乎我看不到的东西(例如,尾随空格/换行符)
—
2014年
在订单上,如果将项目的顶部放在箭头所指的位置,那么它应该在正确的位置。例如,“兄弟”将位于“男孩”的右侧。您可以假定箭头指向多行项目的目标的第一行。关于什么使项目合格-用方括号括起来的任何内容(甚至> <| ^和空格)都被视为该项目的一部分。如果上方有方括号,但没有箭头出现,则它是多行项目的一部分。
—
舒展狂热2014年