投稿
SCOREが1000を超えた時に特定の命令を出す場合、「IF SCORE>1000 THEN~~」でOKかと思いますが、SCOREの「一の位が5の時」や、「百の位が7の時」などに、特定の命令を処理させるにはどうしたらよいでしょうか?自分なりに考えたのですがよい方法が浮かびません。
1そうだね
プレイ済み
返信[1]
親投稿
☆TAKA☆ ParasolWaddleDee
まずは変数の値を文字列にして、それから文字を取り出せばできますよ!
0そうだね
プレイ済み
返信[2]
親投稿
TAKAさんの方法以外でも、例えば一の位の時は簡単ですよ。 要するに10で割った余り=一の位になるので、あまりを出す命令にはMODという命令があるので、これをスコアにつかってIF SCORE MOD 10==5 THEN〜のようにすれば一の位が5の時という判定になります。 百の位の場合は、その応用です。要は百の位が一の位になればいいわけですから、ちょっと考えてみてください。
1そうだね
プレイ済み
返信[3]
親投稿
Godot orz_127
100の位はMODとDIVを組み合わせるとできるかと。 前のコメントに考え手見てくださいとあったのでヒントまで。
1そうだね
プレイ済み
返信[4]
親投稿
コメントありがとうございます。 「変数の値を文字列にして・・・」というのが、ちょっとどういうことか分からなかったので、まずはそこからググってみます。 MODで余りを出すことができるんですね。MOD、DIVについても命令表で確認してみます!
0そうだね
プレイ済み
返信[5]
親投稿
けい kei0baisoku
文字にするというのはSTR$()かFORMAT$()命令の事です。 数桁の数字を、図形的な並びとして扱うなら文字列化、数学的に扱うならDIVやMODとかですね。 用途と好みで、良さそうな方を選んでいいと思います。
0そうだね
プレイ済み
返信[6]
親投稿
Godot orz_127
しまった^^; MOD、DIVは命令表にないかもです。 スペックの演算子の所をみないとかも。 先に言うと MODが余りで、DIVが商です。 数値を文字列は、STR$()です。 そのやり方だとLEN()、MID$()を使うと思います。 調べてみてください。
0そうだね
プレイ済み
返信[7]
親投稿
☆Tatsukin★ tatu_kin1192
MOD以外でも、10で割ったあまりなら、%10でいけます。例:IF A%10==5 THEN ~ → 一の位が5の時に~する。
0そうだね
プレイ済み
返信[8]
親投稿
数字を文字列として扱うことの利点がいまいちよく分からなくて(汗)、とりあえずMODを使ってみることにしました。MOD,DIVについては、スペック⇒算術演算子で確認できました(命令表、プチコンのヘルプではうまく見れなかった)。%を使うやり方もあるのですね。大変勉強になりました。ありがとうございます。
0そうだね
プレイ済み
返信[9]
親投稿
Godot orz_127
プチコン3では「%」はダメだと。 文法エラーになると思います。 自分もつい最初の頃「%」を使ってしまって…^^;
1そうだね
プレイ済み
返信[10]
親投稿
☆Tatsukin★ tatu_kin1192
確認したら、%は無理でした。そこで、MODを使い、時刻の秒の1の位によってなる音が違うプログラムを作りました。(毎秒音がなります。)おまけもついた公開キー[N32E1ES3]DLしたら共感してください。
1そうだね
プレイ済み
返信[11]
親投稿
けい kei0baisoku
やり方の違いだけですので、MODの方がやり易く感じるならそれで気にしなくていいと思います。 数字の扱いが苦手な人だと一度文字列にする方が分かりやすいかも。
1そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
数値の特定の桁の数字が何かを取り出す関数GETNUMを作りました。 DEF GETNUM(NUM,DIG) RETURN NUM MOD (DIG*10) DIV DIG END これを使えばSCOREの100の位の数字を知りたい場合はGETNUM(SCORE,100)で簡単に分かります。良かったら使ってみてください。
1そうだね
プレイ済み
返信[13]
親投稿
皆さんありがとうございました。かなり難しい話や命令も出てきて混乱気味ですが、少しずつ深めてみようと思います。
0そうだね
プレイ済み
返信[14]
親投稿
けい kei0baisoku
>メガネッシュさん あ、もし☆Tatsukin★さんとGodotさんのやり取りの事でしたら「MODは前作まで%という記号で書いていた」というだけですので、それ以上は気にしなくて大丈夫ですよ(^O^) ☆Tatsukin★さんが今作でも%だと勘違いして、それをGodotさんが指摘されて、最後に☆Tatsukin★さんがMODを利用したサンプルを作ってみて………という流れです。
1そうだね
プレイ済み