プチコン3号 SmileBASIC コミュニティ返信[11]親投稿おちゃめ ochame_nako2015/9/1 1:00PSTR$を使用すればここまで計算精度が高くなります。 プチコン3号の内部では2進数で表記されている関係で0.1は循環小数になるのですが、それさえもきっちりと表示してくれます。0そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿おちゃめ ochame_nako2015/9/1 0:03この電卓の計算結果の表示精度はSTR$の変換精度に依存しておりそれほど良いものではありません。 これでは不満があり精度を高めたいという人は私の自作関数PSTR$を使用してみてください。 上記の公開キーには最新となるPSTR$ ver.2.0を入れているため使用する場合はリスト2行目のSTR$をPSTR$に変更するだけで良いです。 デフォルトでPSTR$に対応させてないのはこの「簡易関数電卓」はあくまでQSPであり、別プログラムを使用せず単体で動作するようにしておく必要があるためです。 PSTR$がどのようなものかを知りたい人は私の過去の投稿からPSTR$ ver.2.0を見てください。0そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿おちゃめ ochame_nako2015/9/1 0:02P()は順列を計算する関数です。 P(N,R)で異なるN個の中からR個を取り出した時の順列を計算します。 例えば1~10の数字が書かれたくじがあり、そこから4枚を抜き出して並べる際に何通りの並べ方があるかはP(10,4)とすれば分かります。 P(10,4)=5040 (5040通り) 1,4,5,6 という順番で引かれたくじと 4,1,5,6 という順番で引かれたくじを別々のものとしてカウントした時の数字です。0そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿おちゃめ ochame_nako2015/9/1 0:01C()は組み合わせを計算する関数です。 C(N,R)で異なるN個の中からR個を取り出した時の組み合わせを計算します。エラーチェックはしてないのでN>=Rとなる値を指定してください。 例えば1~10の数字が書かれたくじがあり、そこから4枚を抜き出した場合に何通りの組み合わせがあるかはC(10,4)とすれば分かります。 C(10,4)=210 (210通り)0そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿おちゃめ ochame_nako2015/8/31 23:59この拡張関数ライブラリを導入することで新たにSIND()、COSD()、TAND()、FACT()、P()、C()という6つの関数が使用可能になります。 SIND()、COSD()、TAND()は例えばsin 60°の値を求める場合にSIN(RAD(60))とせずにSIND(60)のように「度」で直接指定できるだけの関数なので詳しい説明は不用だと思います。 FACT()は階乗を計算する関数です。FACT(10)とすれば10!(10の階乗)を求めることができます。 負数の階乗は計算できないので引数が負数の時はillegal function callエラーを出すようにしています。0そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿おちゃめ ochame_nako2015/8/31 23:58この簡易関数電卓用に拡張関数ライブラリを用意しました。0そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿おちゃめ ochame_nako2015/8/31 23:55動作原理を簡単に説明すると以前作ったRVAL関数のDEFを外してリスト短縮して使用しています。 RVAL関数というのは何かというと文字列化した式の値を求める関数です。 これは別スロットで実際に実行することで構文解析が不要になり短いリストで記述することが可能になっています。 詳しくは私の過去の投稿からRVAL関数を見てください。0そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿おちゃめ ochame_nako2015/8/31 23:54変数は使用できませんが、カッコ、SIN、COSなどの関数、&&などの論理演算子、TRUEなどのシステム変数、#Aなどの定数リテラルは使用可能です。 この電卓プログラムと直接関係ない話ですが、ver.3.2.1で定数リテラルの値に修正が加えられましたが色関係も修正が行われていて例えば#REDは-65536=RGB(255,0,0)だったのが-524288=RGB(248,0,0)になっています。 これはプチコン3号ではRGBが8の倍数で丸められた色コードで表示されGSPOITで読み出した値と定数リテラルの値が一致しないというのを避けるためだと思われます。 この「簡易関数電卓」の公開キーは【 ED2EM3 】、ファイル名は「1GQ_CALC」です。 この公開キーには下記の拡張関数ライブラリも含んでいます。1そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿おちゃめ ochame_nako2015/8/31 23:54F1には前回計算した式、F2には前回の計算結果が入っているので活用して下さい。 普通の電卓にあるメモリー機能は無いですが、Bボタンを押しながらAボタンを押すとF3、Xボタンを押しながらだとF4に計算結果が入るため上手く使えばメモリー機能以上のことができます。 なお、Aボタンの空打ちで改行となります。 画面表示が詰まって見にくくなったときに使用してください。0そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿おちゃめ ochame_nako2015/8/31 23:53このプログラムでは別途プログラムスロット1、2を使うため上記のプログラムはスロット0か3で実行してください。 例えば2+3*4という計算を行う場合は2+3*4という式を入力してAボタンを押してください。 演算優先順位を考慮して計算するため2+3*4=14と表示されます。 式の後の「=」は計算後に自動的に付くため入力の必要はありません。 式はプチコン3号で普通に記述する式と同じように入力しますが計算できない式を入力してエラーとなった場合はRUNし直してください。(計算可能な式かどうかの事前チェックは行っていません)0そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿おちゃめ ochame_nako2015/8/31 23:51これがプログラムリストです。(公開キーは後述)0そうだね プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティプレイ日記おちゃめ ochame_nako2015/08/31 23:47:41QSP(WIDTH 16の1画面プログラム)で「簡易関数電卓QSP」を作りました。 これは、四則演算だけではなく三角関数などのプチコン3号で使える関数による計算も可能な電卓プログラムです。4そうだね 12返信プレイ済み2017/11/03 15:56:30に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿おちゃめ ochame_nako2015/8/30 23:37偶数とは2で割り切れない「整数」、奇数とは2で割り切れない「整数」を意味します。 したがって、小数は「偶数でも奇数でもない数」になります。 ただし、その数の整数部分が偶数か奇数かというのを調べたいならばすでに皆さんが書かれている方法で問題ありません。 プチコン3号ではFLOORを使わなくてもMODやANDを使えば自動的に整数化が行われるため簡単に求められます。0そうだね プレイ済み2017/11/03 18:51:41に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿おちゃめ ochame_nako2015/8/28 0:02X=X-!(8AND B)+!(4AND B)を簡単に説明すると十字ボタンの右を押した場合にはX=X-!8+!0となり、!8=0、!0=1であるためX=X+1という動作になります。 十字ボタン左を押した場合にはX=X-!0+!4となり、!4=0であるためX=X-1という動作になります。 左右両方押してない場合には、X=X-!0+!0となるためX=Xという動作になります。 ちなみにX=X+!!(8AND B)-!!(4AND B)のように!を2つ重ねてSGN的な動作(※負数の場合はSGNとは異なる)をさせることもできますが、それと比べると2文字分(Y方向合わせてトータル4文字分)短縮できています。 B AND 8ではなく8AND Bとすることでさらにトータル4文字分短縮しています。3そうだね プレイ済み2017/11/03 18:52:33に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿おちゃめ ochame_nako2015/8/27 23:19論理反転を使えば8方向移動は B=BUTTON()X=X-!(8AND B)+!(4AND B)Y=Y-!(2AND B)+!(1AND B) と記述することができますね。 ちなみにプチコンmkIIでは剰余の演算子が「%」だったので次のものが最短でした。 B=BUTTON()X=X-(B%16-B%4+1)%3+1Y=Y-(B%4+1)%3+1 昔のコンピュータならばメモリが数100バイト~数KBしかなく私が持っていたポケコンも約1KBしかメモリが無かったため可読性を無視していてもリスト短縮テクニックは非常に有用でしたが、メモリが潤沢なプチコン3号ではOSP(1画面プログラム)やQSP(WIDTH 16の1画面プログラム)といった文字数制限プログラムを作る場合のみ有用なテクニックですね。1そうだね プレイ済み2017/11/03 18:52:33に取得
プチコン3号 SmileBASIC コミュニティ返信[25]親投稿おちゃめ ochame_nako2015/8/27 0:01Godotさんへ 本当はサークル参加したいところなんですが、最近は多忙なのでそれも難しいです。 私の本が毎回午前中に売り切れるのは発行部数が少ないのも原因です。 発行部数を増やしても良いのですが、売れ残るのが嫌なので・・・。(以前サークル参加した時の18禁同人誌は作りすぎてコミケで3割しか売れず、残り7割は通販をしても捌ききれず押入の肥やしになってしまった) しかも、サークル参加ではなく委託となると返本処理などの関係もあり、大変かつ面倒なので1回のコミケで確実に捌けるであろう部数にしているというわけです。1そうだね プレイ済み2017/11/03 18:55:18に取得
プチコン3号 SmileBASIC コミュニティ返信[24]親投稿おちゃめ ochame_nako2015/8/26 23:59nobuさんへ ジャンル違いについてですが、私自身も以前夏コミで「ポケコンサークル」としてサークル参加しているのに18禁漫画同人誌を作って頒布したことがあります。サークル内でのジャンル違いの本は複数の趣味があれば普通にあり得ることだと思います。 ちなみに「おちゃめ くらぶ」はコミケにサークルするために作った個人サークルなので当然私一人のみで構成されています。 ポケコンサークルならば数十人で構成されているサークルがありましたが、プチコンではそのようなサークルは聞かないですね。1そうだね プレイ済み2017/11/03 18:55:18に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿おちゃめ ochame_nako2015/8/22 5:34私の新刊を購入いただきありがとうございます。 いつも委託をお願いしている「まりも友の会」様が次の冬コミ(C89)に当選したらまた新刊を投入予定です。 C87で前編を書いたまま放置状態の「プチコン3号入門本」の後編(基礎知識を書いた前編とは異なり今度は実際にゲームを作るための方法を記した実践編になる予定)にしようかと思いますが、急いで作った(原稿書きから製本まで1日で作った)「QSP完全マニュアル」を作り直すというのも考えています。 今回が原稿用紙50枚分くらいの文章量だったのでさらに詳しく解説を書いた完全版は100枚分くらいになりそうです(笑)0そうだね プレイ済み2017/11/03 18:55:19に取得
プチコン3号 SmileBASIC コミュニティ返信[14]親投稿おちゃめ ochame_nako2015/8/22 5:22結局のところ「何が基準か」と聞かれたら「自分が基準」になるわけですが、自分がプレイするのに得意なジャンルかそうでないかによってバランス調整のポイントは変えています。(これは多くの人にテストプレイをしてもらわない限りはあくまで自分が想定しているユーザー像を基準にしているわけなのでその基準になっているのは自分自身であるため) あと100mゲームみたいに現実に競技として存在するモチーフをゲーム化する場合は上手い人で世界トップレベルの記録が出るようにしています。(「超人ゲーム」「小学生記録会」みたいな意図がない限りは超人的な記録が連発したり、上手い人でも小学生の記録レベルになるということが無いようにする)0そうだね プレイ済み2017/11/03 18:54:00に取得
プチコン3号 SmileBASIC コミュニティ返信[13]親投稿おちゃめ ochame_nako2015/8/22 5:05「プレイヤーがミスをした時にその理由が納得できる」というのは当たり判定で「今のミスはおかしい」とプレイヤーに思わせず「自分の技術不足が原因のミス」と思わせるようにするということです。そのためには当たり判定だけではなくステージ構成なども十分考える必要があります、 「リスクとリターンを適切にする」というのはリターンを得るにはそれに応じたリスクを用意するということです。 例えばボーナス得点などを得ようとすると難しいプレイ(ミスの確率が上がるプレイ)を要求されるみたいな感じです。 UIに関してもバランス調整と同じく何度もプレイして快適にプレイできると感じるものにしています。 これらはQSPを含めゲームやツールを問わずすべての公開プログラムにおいて考慮しています。0そうだね プレイ済み2017/11/03 18:54:00に取得