私が何かを書いていて、間違ったボックスに間違って書いたとしましょう:
+-------+--------+
| 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
これは素晴らしい挑戦です、ただ血まみれのようです!
—
ベータ崩壊
書き込みボックス識別しようとしたとき、私はあなたが境界を横断する十分な矢を持っている場合、例えば、このレイアウトではどのように多くのボックスがありますがありますどのように多くのボックス曖昧であるためにはそれが可能だと指摘しましたpastebin.com/xyBjTAwKは?これが発生しないことを保証したり、その状況で予想される動作の説明をしたりできますか。
—
VisualMelon
@VisualMelonそれは起こらないと仮定できます。2つのプラスが次の行/列にあり、接続されていない場合はありません。また、ブラケットについては、それは私の側の欠陥でした。カッコ内の何かが移動すると仮定できます。
—
ストレッチマニアック
私が尋ねるのは、値の移動を除いて、元のテーブルのように見えるテーブルを出力することだけです。言い換えれば、限り、それはテーブル(例えばなしランダム改行)のように見えるように、私は私が見ることができないもの(例えば、末尾にスペース/改行)を気にしない
—
ストレッチマニアック
注文時に、アイテムの上部を矢印が指している場所に正しく配置する場合、正しい場所に配置する必要があります。たとえば、「Brother」は「Boy」の右側に移動します。矢印が複数行アイテムの宛先の最初の行を指していると想定できます。アイテムを修飾するものについて-角かっこで囲まれたもの(> <| ^および空白も含む)は、アイテムの一部と見なされます。矢印が出ていない上に括弧がある場合、それは複数行のアイテムの一部です。
—
ストレッチマニアック14