CubeChampleAPIは、Two-Phase-Algorithm をベースにした3x3x3キューブのスクランブル生成およびソルバのAPIです。
の6種類作成可能です。
パリティとは、コーナー・エッジをそれぞれ3-cycle-methodで解いていったとき、コーナー・エッジにぞれぞれ2点交換が残ってしまう状態のことを意味します。
http://cube.terabo.net/apis/chample[.format]
[.format]は下の表を参照してください。
[.format] | レスポンスの形式 | MINEタイプ |
---|---|---|
.xml | XML | application/xml |
.json | JSON | application/json |
.jsonp | JSONP | application/javascript |
.txt or 省略 | plain-text | text/plain |
GET
キー | 値 | デフォルト値 | 説明 |
---|---|---|---|
n | 1~100の整数 | なし | スクランブルの個数 |
t | 0~4の整数 | なし | スクランブルの種類 (0:通常 1:コーナーのみ 2:エッジのみ 3:パリティ有り 4:パリティ無し) |
f | URFDLBのみで構成された54文字の文字列 | なし | キューブの状態(詳細は下で説明) |
キューブの状態は以下の展開図で、「U1~U9 R1~R9 F1~F9 D1~D9 L1~L9 B1~B9」の順に、その位置にどの面のステッカーがあるかをURFDLBのアルファベットで表した9*6=54文字のアルファベット文字列で定義します。
例えば、完成状態から M2 S2 E2 でできるチェッカーキューブの状態は、「UDUDUDUDURLRLRLRLRFBFBFBFBFDUDUDUDUDLRLRLRLRLBFBFBFBFB」で表します。
また、キューブの状態をリクエストに送ったとき、スクランブル個数や種類を一緒に送ったとしてもこれらは無視されます。
U1 U2 U3 U4 U5 U6 U7 U8 U9 L1 L2 L3 F1 F2 F3 R1 R2 R3 B1 B2 B3 L4 L5 L6 F4 F5 F6 R4 R5 R6 B4 B5 B6 L7 L8 L9 F7 F8 F9 R7 R8 R9 B7 B8 B9 D1 D2 D3 D4 D5 D6 D7 D8 D9
結果はHTTPレスポンスのメッセージボディに指定されたフォーマットで返ります。文字コードはUTF-8、改行コードはLFです。
結果の内容をまとめると下の表のようになります。
状況 | ステータスコード | メッセージ |
---|---|---|
制限回数オーバー 不正なクエリ値 |
400 | 具体的なエラーメッセージ |
サーバエラー プログラムエラー キューブ状態があり得ない状態 |
500 | 具体的なエラーメッセージ |
正常終了 | 200 | plain-text形式のとき、キューブの状態とスクランブル文字列が交互に現れる。 その他の形式のとき、下のレスポンス例を見てください。 |
連続アクセスを防ぐために同一IPアドレスからのアクセスは60回/1時間に制限しています。毎時0分になるとリセットされます。
XML形式: http://cube.terabo.net/apis/chample.xml?n=3&t=0
結果の一例: (ステータスコード: 200)
<?xml version="1.0" encoding="UTF-8"?> <results> <scramble> <facelets>DLUUURBRFLBFURDLUUDDURFBBFDRDFLDFDUBFLRLLFLFURDRBBBLRB</facelets> <sequence>U L2 D' B2 D L2 B2 U2 B2 D F D B R2 U2 L' D2 U F L2</sequence> </scramble> <scramble> <facelets>LRLUUFUDDFUBURBFBDRLRRFRULUBULFDRLLBBBFBLDDDRDFULBDRFF</facelets> <sequence>F2 U2 R2 F2 D' U' B2 U L2 B2 R' F' L B' U L B2 F L2 R' B</sequence> </scramble> <scramble> <facelets>LBRLUUURDFBULRLDUFBDRRFDLFBBLRFDRLDLDBRBLFFUUFRBUBDDFU</facelets> <sequence>L2 B2 F2 U2 L2 F2 U' R2 B2 D' B U' F R' B' L B R' B' R' U</sequence> </scramble> </results>
JSON形式: http://cube.terabo.net/apis/chample.json?n=3&t=0
結果の一例: (ステータスコード: 200)
{ "results" : [ { "facelets" : "DLUUURBRFLBFURDLUUDDURFBBFDRDFLDFDUBFLRLLFLFURDRBBBLRB", "sequence" : "U L2 D' B2 D L2 B2 U2 B2 D F D B R2 U2 L' D2 U F L2" }, { "facelets" : "LRLUUFUDDFUBURBFBDRLRRFRULUBULFDRLLBBBFBLDDDRDFULBDRFF", "sequence" : "F2 U2 R2 F2 D' U' B2 U L2 B2 R' F' L B' U L B2 F L2 R' B" }, { "facelets" : "LBRLUUURDFBULRLDUFBDRRFDLFBBLRFDRLDLDBRBLFFUUFRBUBDDFU", "sequence" : "L2 B2 F2 U2 L2 F2 U' R2 B2 D' B U' F R' B' L B R' B' R' U" } ] }
plain-text形式: http://cube.terabo.net/apis/chample.txt?n=3&t=0
結果の一例: (ステータスコード: 200)
DLUUURBRFLBFURDLUUDDURFBBFDRDFLDFDUBFLRLLFLFURDRBBBLRB U L2 D' B2 D L2 B2 U2 B2 D F D B R2 U2 L' D2 U F L2 LRLUUFUDDFUBURBFBDRLRRFRULUBULFDRLLBBBFBLDDDRDFULBDRFF F2 U2 R2 F2 D' U' B2 U L2 B2 R' F' L B' U L B2 F L2 R' B LBRLUUURDFBULRLDUFBDRRFDLFBBLRFDRLDLDBRBLFFUUFRBUBDDFU L2 B2 F2 U2 L2 F2 U' R2 B2 D' B U' F R' B' L B R' B' R' U LDFBUDFRDRLLLRRDFBUFBBFULBRDUFUDUBLUULRBLDLRBDFFDBRRFU D' U L2 U2 R2 U F2 R2 U' R B2 U' R2 U2 F U' R U B2 D2 FFDLUFLRLDRBFRBLBLBDBDFUBFDRLFUDRRLFUUUBLLFRURDRUBDUBD D R2 F2 R2 B2 D F2 D B D2 B2 R' D F2 U B D' L R
XML形式: http://cube.terabo.net/apis/chample.xml?n=1&t=2
結果の一例: (ステータスコード: 200)
<?xml version="1.0" encoding="UTF-8"?> <results> <scramble> <facelets>UFUBUUUFURFRRRFRBRFDFUFUFLFDUDLDRDRDLDLLLBLDLBLBRBBBDB</facelets> <sequence>U2 B2 L2 F2 U L2 R2 D B2 F2 R D B F' L' F' D' R2 B2 R2 U'</sequence> </scramble> </results>
JSON形式: http://cube.terabo.net/apis/chample.json?n=1&t=2
結果略
plain-text形式: http://cube.terabo.net/apis/chample.txt?n=1&t=2
結果略
XML形式: http://cube.terabo.net/apis/chample.xml?f=UDUDUDUDURLRLRLRLRFBFBFBFBFDUDUDUDUDLRLRLRLRLBFBFBFBFB
結果略
JSON形式: http://cube.terabo.net/apis/chample.json?f=UDUDUDUDURLRLRLRLRFBFBFBFBFDUDUDUDUDLRLRLRLRLBFBFBFBFB
結果略
plain-text形式: http://cube.terabo.net/apis/chample.txt?f=UDUDUDUDURLRLRLRLRFBFBFBFBFDUDUDUDUDLRLRLRLRLBFBFBFBFB
結果略
XML形式: http://cube.terabo.net/apis/chample.xml?f=UUUUUUUUURRRRRRRRRFFFFFFFFFDDDDDDDDDLLLLLLLLLBBBBBBBBB
結果略
JSON形式: http://cube.terabo.net/apis/chample.json?f=UUUUUUUUURRRRRRRRRFFFFFFFFFDDDDDDDDDLLLLLLLLLBBBBBBBBB
結果略
plain-text形式: http://cube.terabo.net/apis/chample.txt?f=UUUUUUUUURRRRRRRRRFFFFFFFFFDDDDDDDDDLLLLLLLLLBBBBBBBBB
結果: (ステータスコード: 200)
UUUUUUUUURRRRRRRRRFFFFFFFFFDDDDDDDDDLLLLLLLLLBBBBBBBBB F2 L2 D2 L2 F2 R2 U2 B2 L R' U2 L' R'
Note: 最短が求まるわけではない。
XML形式: http://cube.terabo.net/apis/chample.xml?n=1000000&t=0
結果 (ステータスコード: 400)
<?xml version="1.0" encoding="UTF-8"?> <error>Query 'n' must be defined and must be between 1-100, when query 'f' is undefined.</error>
JSON形式: http://cube.terabo.net/apis/chample.json?n=1000000&t=0
結果 (ステータスコード: 400)
{ "error": "Query 'n' must be defined and must be between 1-100, when query 'f' is undefined." }
plain-text形式: http://cube.terabo.net/apis/chample.txt?n=1000000&t=0
結果 (ステータスコード: 400)
Query 'n' must be defined and must be between 1-100, when query 'f' is undefined.
XML形式: http://cube.terabo.net/apis/chample.xml?f=UUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDD
結果 (ステータスコード: 500)
<?xml version="1.0" encoding="UTF-8"?> <error>The program exited with an error.</error>
JSON形式: http://cube.terabo.net/apis/chample.json?f=UUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDD
結果略
plain-text形式: http://cube.terabo.net/apis/chample.txt?f=UUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDD
結果略
Champler!
GUIをくっつけたもの。