홀수×홀수 마방진을 만드는 프로그램

아니면 대화무자3로 어떻게 배열해 표를 만들어 보자.

발단


갑자기 왜 이렇게 됐는지 기억이 안 나요(땀)
하지만 어렵게 배웠으니 적어야 한다.

요구하면 반드시 들어주는 대로 선생님께 가르침을 청하다.


홀수×기수마방진의 제작 방법
인도교의 연속 방식이라고 한다.
규칙은 매우 간단한 것 같다.해볼게요.

준비(마방진 제작용 2차원 배열)


아무튼 제일 쉬운 3.×마방진 3개를 만들어 마방진에 사용할 빈 배열을 준비해 초기화한다.
무자1은 배열을 발표하지 않아도 동작하지만 무자3은 절대적으로 필요하다.
 魔方陣=空配列。価=0。
 3回
  魔方陣[回数-1]=空配列。
 ここまで。

0, 0부터 숫자를 넣습니다.


어린 왕자의 가르침대로라면 우선'위 중앙을 1로 만들라'는 것이지만, 절차상 좌표와 가치 모두 0부터 쉽게 알 수 있다.
 9回
  列=価%3。行=価/3を切捨。
  x=行*-1+列。y=行*2-列。
  • 상층의 왼쪽 끝, [0,0]의 위치에 0을 임시로 설치한다.
  • 값이 1씩 증가할 때마다 x방향은 +1이다.Y 방향으로 1.
    갑자기 부정적이긴 하지만 신경 안 써!
    그리고 되돌아갈 때의 시작 위치가 중요하다.
    여기 있습니다.
  • 지난번 시작 위치부터 x방향-1, y방향+2의 위치.
    여기서도 똑같이 가치를 두고,×3으로 9번 반복해서 모든 숫자를 위에 올리면 그렇다.
  • 초과된 숫자를 미끄러뜨리다

      x=(x+(3/2を切捨)+3)%3。
      y=(y+3)%3。
    
    우선 간단한 y부터 시작한다.
  • 모든 y에 3을 더한다.
    이렇게 하면 y의 위치가 모두 정수로 변한다.
  • 이외의 나머지는 y의 좌표다.
  • 다음은 x.
  • 모든 x에 1을 추가합니다.(1/2 반올림)
    이렇게 되자 0은 상단 중앙에 왔다.그리고 하나 더.
  • 모든 x에 3을 더한다.
    이렇게 하면 x의 위치는 모두 정수로 변한다.
  • 이외의 나머지는 x의 좌표다.
    다 했어!
  • 코드


    원하는 수량으로 마방진을 제작할 수 있습니다.
    「魔方陣のサイズ」を尋ねる。数=それ。
    もし、(数の変数型確認)=「string」ならば、数=数を半角変換してそれを整数変換。
    
    もし、数%2=1ならば、 #奇数
     数の奇数次魔方陣作成。
    違えば、
     「奇数を入力して下さい」と言う。
    ここまで。
    
    ●(数の)奇数次魔方陣作成
     魔方陣=空配列。価=0。
    
     # 魔方陣用の二次元配列を作る
     (数)回
      魔方陣[回数-1]=空配列。
     ここまで。
    
     (数*数)回。
      # 0,0から数字を置いていく
      列=価%数。行=価/数を切捨。
      x=行*-1+列。
      y=行*2-列。
    
      # はみ出した数をスライドさせる
      x=(x+(数/2を切捨)+数)%数。
      y=(y+数)%数。
    
      魔方陣[y][x]=価+1。
      価=価+1。
     ここまで。
     魔方陣の表作成。
    ここまで。
    
    #二次元配列でテーブルを作成(タイトルなし)
    ●(Aの)表作成
     表=「<table>」
     Aを反復
      表=表に「<tr>」を追加。
      対象を反復
       表=表に「<td>{対象}</td>」を追加。  
      ここまで。
      表=表に「</tr>」を追加。
     ここまで。
     表=表に「</table>」を追加。
     表をDOM親要素にHTML設定。
    ここまで。
    

    동작 확인


    https://nadesi.com/v3/storage/show.php?app_id=278
    실제 제작된 3*3의 마방진과 동일함을 확인했기 때문에 수량을 7로 설정해 어린 왕자의 예와 동일함을 확인했다.(값을 1부터 배열에 대입할 때 1을 추가함)

    끝나다


    무자씨가 마방진을 했습니다.잘 됐다!
    나는 이렇게 생각한다. 그렇지 않다.
    푸쯔3은 배열 총계가 없잖아!분명히 표열합계가 있는데 왜...라고 생각하면서 마방진을 입력한 후 정확한 판정을 내리려고 (바보)

    좋은 웹페이지 즐겨찾기