Skip to content

CollatzSequence ​

27から始め、偶数なら2で割り、奇数なら3倍して1を足すCollatz数列を1まで出力します。分岐と繰り返しのサンプルです。

JSONファイルを開く

json
{
  "version": 1,
  "comment": "27から始め、偶数なら2で割り、奇数なら3倍して1を足すCollatz数列を1まで出力します。分岐と繰り返しのサンプルです。",
  "data": [
    {
      "name": "__n",
      "type": "SystemInt32",
      "value": 0
    },
    {
      "name": "__next",
      "type": "SystemInt32",
      "value": 0
    },
    {
      "name": "__remainder",
      "type": "SystemInt32",
      "value": 0
    },
    {
      "name": "__triple",
      "type": "SystemInt32",
      "value": 0
    },
    {
      "name": "__one",
      "type": "SystemInt32",
      "value": 1
    },
    {
      "name": "__two",
      "type": "SystemInt32",
      "value": 2
    },
    {
      "name": "__three",
      "type": "SystemInt32",
      "value": 3
    },
    {
      "name": "__start_value",
      "type": "SystemInt32",
      "value": 27
    },
    {
      "name": "__zero",
      "type": "SystemInt32",
      "value": 0
    },
    {
      "name": "__condition",
      "type": "SystemBoolean",
      "value": false
    },
    {
      "name": "__shiras_result_object_name",
      "type": "SystemString",
      "value": "ShirasUdonResultText"
    },
    {
      "name": "__shiras_result_object",
      "type": "UnityEngineGameObject",
      "value": null
    },
    {
      "name": "__shiras_result_text_type",
      "type": "SystemType",
      "value": "UnityEngineUIText"
    },
    {
      "name": "__shiras_result_text",
      "type": "UnityEngineUIText",
      "value": null
    },
    {
      "name": "__shiras_result_found",
      "type": "SystemBoolean",
      "value": false
    },
    {
      "name": "__shiras_result_message_0",
      "type": "SystemString",
      "value": ""
    },
    {
      "name": "__shiras_result_builder",
      "type": "SystemTextStringBuilder",
      "value": null
    },
    {
      "name": "__shiras_result_builder_next",
      "type": "SystemTextStringBuilder",
      "value": null
    }
  ],
  "code": [
    {
      "name": "_start",
      "export": true,
      "instructions": [
        {
          "op": "EXTERN",
          "signature": "SystemTextStringBuilder.__ctor____SystemTextStringBuilder",
          "argumentCount": 0,
          "return": "__shiras_result_builder"
        },
        {
          "op": "POP"
        },
        {
          "op": "PUSH",
          "operand": "__start_value"
        },
        {
          "op": "PUSH",
          "operand": "__n"
        },
        {
          "op": "COPY"
        },
        {
          "op": "JUMP",
          "operand": "_loop"
        }
      ]
    },
    {
      "name": "_loop",
      "export": false,
      "instructions": [
        {
          "op": "PUSH",
          "operand": "__n"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineDebug.__Log__SystemObject__SystemVoid",
          "argumentCount": 1
        },
        {
          "op": "JUMP",
          "operand": "__shiras_display_0"
        }
      ]
    },
    {
      "name": "__shiras_display_0",
      "export": false,
      "instructions": [
        {
          "op": "PUSH",
          "operand": "__shiras_result_builder"
        },
        {
          "op": "PUSH",
          "operand": "__n"
        },
        {
          "op": "EXTERN",
          "signature": "SystemTextStringBuilder.__Append__SystemObject__SystemTextStringBuilder",
          "argumentCount": 2,
          "return": "__shiras_result_builder_next"
        },
        {
          "op": "POP"
        },
        {
          "op": "PUSH",
          "operand": "__shiras_result_builder"
        },
        {
          "op": "EXTERN",
          "signature": "SystemTextStringBuilder.__AppendLine__SystemTextStringBuilder",
          "argumentCount": 1,
          "return": "__shiras_result_builder_next"
        },
        {
          "op": "POP"
        },
        {
          "op": "PUSH",
          "operand": "__shiras_result_builder"
        },
        {
          "op": "EXTERN",
          "signature": "SystemTextStringBuilder.__ToString__SystemString",
          "argumentCount": 1,
          "return": "__shiras_result_message_0"
        },
        {
          "op": "POP"
        },
        {
          "op": "PUSH",
          "operand": "__shiras_result_object_name"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineGameObject.__Find__SystemString__UnityEngineGameObject",
          "argumentCount": 1,
          "return": "__shiras_result_object"
        },
        {
          "op": "POP"
        },
        {
          "op": "PUSH",
          "operand": "__shiras_result_object"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineObject.__op_Implicit__UnityEngineObject__SystemBoolean",
          "argumentCount": 1,
          "return": "__shiras_result_found"
        },
        {
          "op": "JUMP_IF_FALSE",
          "operand": "__shiras_continue_0"
        },
        {
          "op": "PUSH",
          "operand": "__shiras_result_object"
        },
        {
          "op": "PUSH",
          "operand": "__shiras_result_text_type"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineGameObject.__GetComponent__SystemType__UnityEngineComponent",
          "argumentCount": 2,
          "return": "__shiras_result_text"
        },
        {
          "op": "POP"
        },
        {
          "op": "PUSH",
          "operand": "__shiras_result_text"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineObject.__op_Implicit__UnityEngineObject__SystemBoolean",
          "argumentCount": 1,
          "return": "__shiras_result_found"
        },
        {
          "op": "JUMP_IF_FALSE",
          "operand": "__shiras_continue_0"
        },
        {
          "op": "PUSH",
          "operand": "__shiras_result_text"
        },
        {
          "op": "PUSH",
          "operand": "__shiras_result_message_0"
        },
        {
          "op": "EXTERN",
          "signature": "UnityEngineUIText.__set_text__SystemString__SystemVoid",
          "argumentCount": 2
        },
        {
          "op": "JUMP",
          "operand": "__shiras_continue_0"
        }
      ]
    },
    {
      "name": "__shiras_continue_0",
      "export": false,
      "instructions": [
        {
          "op": "PUSH",
          "operand": "__n"
        },
        {
          "op": "PUSH",
          "operand": "__one"
        },
        {
          "op": "EXTERN",
          "signature": "SystemInt32.__op_Equality__SystemInt32_SystemInt32__SystemBoolean",
          "argumentCount": 2,
          "return": "__condition"
        },
        {
          "op": "JUMP_IF_FALSE",
          "operand": "_check_even"
        },
        {
          "op": "JUMP",
          "operand": "_end"
        }
      ]
    },
    {
      "name": "_check_even",
      "export": false,
      "instructions": [
        {
          "op": "PUSH",
          "operand": "__n"
        },
        {
          "op": "PUSH",
          "operand": "__two"
        },
        {
          "op": "EXTERN",
          "signature": "SystemInt32.__op_Remainder__SystemInt32_SystemInt32__SystemInt32",
          "argumentCount": 2,
          "return": "__remainder"
        },
        {
          "op": "PUSH",
          "operand": "__zero"
        },
        {
          "op": "EXTERN",
          "signature": "SystemInt32.__op_Equality__SystemInt32_SystemInt32__SystemBoolean",
          "argumentCount": 2,
          "return": "__condition"
        },
        {
          "op": "JUMP_IF_FALSE",
          "operand": "_odd"
        },
        {
          "op": "JUMP",
          "operand": "_even"
        }
      ]
    },
    {
      "name": "_even",
      "export": false,
      "instructions": [
        {
          "op": "PUSH",
          "operand": "__n"
        },
        {
          "op": "PUSH",
          "operand": "__two"
        },
        {
          "op": "EXTERN",
          "signature": "SystemInt32.__op_Division__SystemInt32_SystemInt32__SystemInt32",
          "argumentCount": 2,
          "return": "__next"
        },
        {
          "op": "PUSH",
          "operand": "__n"
        },
        {
          "op": "COPY"
        },
        {
          "op": "JUMP",
          "operand": "_loop"
        }
      ]
    },
    {
      "name": "_odd",
      "export": false,
      "instructions": [
        {
          "op": "PUSH",
          "operand": "__n"
        },
        {
          "op": "PUSH",
          "operand": "__three"
        },
        {
          "op": "EXTERN",
          "signature": "SystemInt32.__op_Multiplication__SystemInt32_SystemInt32__SystemInt32",
          "argumentCount": 2,
          "return": "__triple"
        },
        {
          "op": "PUSH",
          "operand": "__one"
        },
        {
          "op": "EXTERN",
          "signature": "SystemInt32.__op_Addition__SystemInt32_SystemInt32__SystemInt32",
          "argumentCount": 2,
          "return": "__next"
        },
        {
          "op": "PUSH",
          "operand": "__n"
        },
        {
          "op": "COPY"
        },
        {
          "op": "JUMP",
          "operand": "_loop"
        }
      ]
    },
    {
      "name": "_end",
      "export": false,
      "instructions": []
    }
  ]
}