ped敬の念を抱かせる時間は、「ルービックキューブ」の写真(Tシャツ、ポスターなど)が実際には解けないことを指摘することです。
最初に確認する必要があるのは、キューブが適切なピースで構成されていることです。キューブを解くには、それぞれが9つの正方形の6色が必要です。また、キューブには、エッジとコーナーの各ユニット(キューブを構成する小さなキューブ)が一意である必要があります。それらは一意である必要があるだけでなく、2つの中央ピースが互いに向かい合っている場合、エッジまたはコーナーピースはこれらの色の両方を含むことができません。
すべての適切なピースで構成されるキューブを作成したら、それが解決可能であることを確認する必要があります。ここにはいくつかのルールがありますので、専門家に説明を委ねます。以下のネタバレでこれを行う方法を説明します。自分で問題を解決することに興味がある場合は、サイトにアクセスしてこの課題を理解したり参加したりする必要はありません。
あなたの仕事は、入力としてパターンを取り、それが実際に解けるルービックキューブであるかどうかを判断することです。解けるようにするには、キューブの有効な移動を実行する方法が必要です。これにより、キューブの各面の色が1つだけになります(また、異なる面の色は異なります)。ほとんどのルービックキューブには標準の色が付いています(白は黄色の反対側など)。この特定の色に解決状態が続くとは思わないかもしれません。
有効な移動は、立方体の1つの面の時計回りまたは反時計回りの回転です。立方体の面を回転すると、面に接する正方形も回転し、以前に触れていた面に接続されたままになります。
IO
キューブは合理的な方法で使用できます。言語に組み込みの「キューブフェイス」タイプがあり、入力に適している場合は、キューブのネットの2D配列、各フェイスに1 3 x 3リストを使用できます。ただ合理的です。特定の形式が受け入れられるかどうかを知りたい場合、またはチャットでpingを送信し、その有効性を示すためにチャレンジに追加します。
入力フォーマットは、最大9色までサポートする必要があります。
出力の場合、これは決定問題であるため、「はい、これは有効なルービックキューブです」に1つの定数値を、「いいえ、これは有効なルービックキューブではありません」に別の定数値を出力する必要があります。
これはコードゴルフであるため、回答はバイト単位でスコアリングされ、バイト数が少ない方が優れています。
テストケース
ここにテストケースがあります。これらは、各正方形が1文字の立方体のネットとしてフォーマットされます。異なる文字は異なる色を表します。リクエストに応じて、さらにテストケースを追加できます。
可解
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YYY
YYY
YYY
GRR
GRR
ORW
WWRBWYBOOGGY
GGRBWGYBBOOO
OOGRWGYWWRBB
WYO
YYB
YYB
解決できない
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWYWBBBOOO
YWY
YYY
YYY
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YWY
YYY
YYY
RRR
RRR
GGG
GGYWYWRBBOBO
GGYWWWROBOOO
GGYWWWRBBOOO
BBB
YWY
YYY
RRW
RRW
GGG
GGYWWYEOBROO
GGYWWYEBBROO
GGOWWYWBBROO
BBB
YYW
YYO