Skip to content

KIRIN178/sudoku

Repository files navigation

Apiary Link: https://sudoku6.docs.apiary.io/

HOST: http://54.168.66.247/

Sudoku

--Introduction--

ゲームの説明

数独(すうどく)は、3×3のブロックに区切られた 9×9の正方形の枠内に1〜9までの数字を入れるペンシルパズルの一つである。「ナンバープレース(ナンプレ)」とも呼ばれる。

遊び方

  1. 空いているマスに1〜9のいずれかの数字を入れる。
  2. 縦・横の各列及び、太線で囲まれた3×3のブロック内に同じ数字が複数入ってはいけない。

解答のアルゴリズム

解答する戦略は任意の枠を始めて、任意の数字を埋めて、もしルールを違反しなかったら、次の枠に進む。枠に数字を埋めることできない場合、一つ前の枠に戻って、他の通じを埋めて進む。全部の枠を埋めるとき、解答することは終わった。 アルゴリズムの流れは後記の画像である。

title

初期配置のアルゴリズム

全部が空白の枠を設置して、ランダムの数字を選んで適当の枠を埋めて解答を作る。最後の解答から、難度による数に解答の数字を取下げて枠を作る。唯一の解答を保つため、1から3列目や4から6列目や7から9列目で2列以上は全部枠にしたら、改めで枠を作る流れをする。

難度

  1. 素人:枠は33個がある。
  2. 普通人:枠は43個がある。
  3. 玄人:枠は51個がある。
  4. マニアック:枠は54個がある。

問題の引継ぎ

遊ぶ装置が変わっても簡単にユーザーIDで問題を引き継ぎすることができます。

--Reference--

Menu [/menu]

Show Menu [GET]

このページで問題リストと問題の作成とユーザーの機能は表示されている。

  • Response 200 (text/html)

Question [/menu/question]

Create Qustion [POST]

難度によって新しい数独の問題を作る。

  • Request (application/json)

      {
          "cell_count": "48",
      }
    
  • Response 200 (application/json)

      {
          "status": "ok"
      }
    

Delete Question [DELETE]

既存の問題を消す。

  • Request (application/json)

      {
          "id": "1",
      }
    
  • Response 200 (application/json)

      {
         "status": "ok"
      }
    

Inherit User [PUT]

入力したユーザーIDで今のユーザーIDに数独の問題を引継ぎする。

  • Request (application/json)

      {
          "cookie": "5bdfd7a3ca6e98.84803180 ",
      }
    
  • Response 200 (application/json)

      {
          "status": "ok"
      }
    

Play [/play/{id}]

Show Play [GET]

このページで選んだ数独の問題で遊べる。

  • Response 200 (text/html)

Correction [/play/correction/{id}]

Correction [POST]

ユーザーが送った答えを訂正する。

  • Request (application/json)

      {
          "ans[]":  [
              {
                  0: 1,
                  1: 3,
                  2: 5,
                  3: 4,
                  4: 6,
                  5: 9,
                  6: 1,
                  7: 7,
                  8: 4,
                  9: 5,
                  10: 9,
                  11: 8,
                  12: 3,
                  13: 1,
                  14: 6,
                  15: 8,
                  16: 9,
                  17: 4,
                  18: 6,
                  19: 9,
                  20: 8,
                  21: 5,
                  22: 3,
                  23: 2,
                  24: 1,
                  25: 8,
                  26: 8,
                  27: 7,
                  28: 6,
                  29: 9,
                  30: 2,
                  31: 4,
                  32: 
              }
          ]
      }
    
  • Response 200 (application/json)

      {
          "status": "ok",
          "correction": [
              {
                  0: 0,
                  1: 1,
                  2: 1,
                  3: 1,
                  4: 0,
                  5: 1,
                  6: 1,
                  7: 1,
                  8: 1,
                  9: 1,
                  10: 1,
                  11: 1,
                  12: 1,
                  13: 1,
                  14: 1,
                  15: 1,
                  16: 1,
                  17: 1,
                  18: 1,
                  19: 1,
                  20: 0,
                  21: 1,
                  22: 1,
                  23: 1,
                  24: 1,
                  25: 1,
                  26: 1,
                  27: 1,
                  28: 1,
                  29: 0,
                  30: 1,
                  31: 1,
                  32: 2
              }
          ]
      }
    

Surrender [/play/surrender/{id}]

Surrender [POST]

ユーザーがやってる問題を解答する。

  • Request (application/json)

      {
          "ans[]":  [
              {
                  0: 1,
                  1: 3,
                  2: 5,
                  3: 4,
                  4: 6,
                  5: 9,
                  6: 1,
                  7: 7,
                  8: 4,
                  9: 5,
                  10: 9,
                  11: 8,
                  12: 3,
                  13: 1,
                  14: 6,
                  15: 8,
                  16: 9,
                  17: 4,
                  18: 6,
                  19: 9,
                  20: 8,
                  21: 5,
                  22: 3,
                  23: 2,
                  24: 1,
                  25: 8,
                  26: 8,
                  27: 7,
                  28: 6,
                  29: 9,
                  30: 2,
                  31: 4,
                  32: 
              }
          ]
      }
    
  • Response 200 (application/json)

      {
          "status": "ok",
          "correction": [
              {
                  0: 2,
                  1: 3,
                  2: 5,
                  3: 4,
                  4: 5,
                  5: 9,
                  6: 1,
                  7: 7,
                  8: 4,
                  9: 5,
                  10: 9,
                  11: 8,
                  12: 3,
                  13: 1,
                  14: 6,
                  15: 8,
                  16: 9,
                  17: 4,
                  18: 6,
                  19: 9,
                  20: 9,
                  21: 5,
                  22: 3,
                  23: 2,
                  24: 1,
                  25: 8,
                  26: 8,
                  27: 7,
                  28: 6,
                  29: 3,
                  30: 2,
                  31: 4,
                  32: 5
              }
          ]
      }
    

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages