コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
あまさとしおん ◆mzDKTVUAtwqE
2021/7/9 16:21
#プチコン3号
【御子神ツインエディター】
ver.2107A sbkey=KRLXCWNE
アップデートしました。
去年11月以降に変更した細かい点を一挙に反映しました。

余談
プチコン3号とプチコン4の情報を分けてみたいときがあるので、プチバ公式にハッシュタグ機能が欲しいなど

コメント

アバター
あまさとしおん 2021/7/9 16:28 ◆mzDKTVUAtwqE
余談:『切り捨て』と『切り下げ』
表記が揺らいでいるわけではなく、明確な違いがあります。
『切り捨て』=0の方向への丸め。SmileBASICの『0 OR n』に相当。
『切り下げ』=負の無限大の方向への丸め。SmileBASICの『FLOOR(n)』に相当。
アバター
あまさとしおん 2021/7/9 16:31 ◆mzDKTVUAtwqE
御子神ツインエディターの関数では
INT()は切り捨て(正確には任意の値を整数にキャストする関数)
ROUNDDOWN()は切り下げです
アバター
あまさとしおん 2021/7/9 16:51 ◆mzDKTVUAtwqE
なんとなく仕様を疑似コードに翻訳しようと思ったけど飽きた

//ROUND()のみ1引数と2引数が存在する。これは1引数のほう
ROUND(o1…`Element[type=INT]`)={
return MAKEINT(round(GETV(o1)))
}

//以下3つ、第2引数が「小数部桁数」ではなく「基準値」であることに注意
ROUND(o1…`Element[type=INT]`,o2…`Element[type=INT]`)={
return MAKEINT(round(GETV(o1)/GETV(o2))*GETV(o2))
}

ROUNDUP(o1…`Element[type=INT]`,o2…`Element[type=INT]`)={
return MAKEINT(ceil(GETV(o1)/GETV(o2))*GETV(o2))
}

ROUNDDOWN(o1…`Element[type=INT]`,o2…`Element[type=INT]`)={
return MAKEINT(floor(GETV(o1)/GETV(o2))*GETV(o2))
}

INT(o1…`Element[type=INT]`)={
return MAKEINT(0 OR TOINT(o1))
}

//ElementをSBネイティブの値に変換する
GETV(o1…`Element`)={
case typeof(o1)
when `Element[type=INT]`:return toNumber(o1)…`Number`
when `Element[type=STR]`:return toString(o1)…`String`
}

//INTを称するが実態はNumberである(慣習的な命名)
//機能的にはGETV()の亜種
TOINT(o1…`Element`)={
case typeof(o1)
when `Element[type=INT]`:return toNumber(o1)…`Number`
otherwise:return 0…`Number`
}

//上に同じく
//命名規則が最悪だが、機能的にはTOINT()の逆
MAKEINT(o1…`Number`)={
return toElement(o1)…`Element[type=INT]`
}

SBはSmileBASICの略
…`ほげほげ` はそのオペランドの型を表す
小文字で書かれているものは、同名のSBの命令・関数と同義
toHoge() はhoge型に変換するという趣旨の仮想の関数
Element型 は計算エンジン内で用いられる仮想の型(SBから見るとtypeの付いたString)
アバター
あまさとしおん 2021/7/9 17:08 ◆mzDKTVUAtwqE
翻訳して分かったんだけど
数値型がintを名乗ったり、makeintとtointが逆の役割の関数だったりするので、命名規則が最悪すぎる(なおしませう)

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -