プチコン3号 SmileBASIC コミュニティ投稿Godot orz_1272015/03/25 18:24:00昼頃あちこち探していて発見したのですが…。 公式ページの「秘密結社プチコン」の所に「プチコン3号公式ガイドブック」のエラッタが3/23付けで…。 知らなかった^^;1そうだね 1返信プレイ済み2017/11/03 22:38:28に取得
プチコン3号 SmileBASIC コミュニティ返信[14]親投稿Godot orz_1272015/3/25 12:31>べーさん 横道でもなんでも関連する情報を頂けるのはありがたいです。 たまに全く無関係なコメントをのこしてる人もみかけますがw 別投稿で書いていますがプチコン3は関数に限らず演算子で区切った項を右からリテラルになるまで評価し、その後で演算子順で処理している様です。0そうだね プレイ済み2017/11/03 22:42:23に取得
プチコン3号 SmileBASIC コミュニティ返信[13]親投稿Godot orz_1272015/3/25 12:23>けいさん 最近のISOやANSIだったらそれなりに規格化されているようですがK&Rの時代は演算子の優先順位くらいはあったとは思いますが、割りと混沌としていて実装によってさまざまだった気が。 ポケコンに別売りの拡張ROMをつけて動かすC言語のインタープリターとか割りと怪しい動きをしていた記憶がw いまでも何々準拠を唱っていればとりあえず安心ですが、個人が作って見ました的なものやマイナーなC言語だと何処までどう動くか不安です。 以前といっても大昔、C++が出始めた頃、そのハード様のネイティブなC++のコンパイラがなかったのでMakeするとプリプリプロセッサ的な物が動いて一旦C言語にコンバートしてからコンパイルされるC++がありました。 そいつは&&でも一旦全部評価してしまう仕様だったので、はまりかけたことがありますw0そうだね プレイ済み2017/11/03 22:42:23に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿Godot orz_1272015/3/25 8:30「A && B」AかつB Aであり、Bでもある。両方。 「A || B」A または B A か、B。どちらか。 IF文とかで両方の条件を満たす必要があるなら「&&」、どちらか一方の条件を満たせば良いなら「||」を使います。 0そうだね プレイ済み2017/11/03 22:39:34に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿Godot orz_1272015/3/24 20:37関数がと言うより、演算子区切りとして右側からリテラル化(でよいのかな?)してその後、演算子にしたがって計算のような。 なので投稿文にあるようにお互いが影響を受ける様な場合…思わぬバグをうみそうです^^;0そうだね プレイ済み2017/11/03 22:40:18に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿Godot orz_1272015/3/24 20:20演算子の順、演算子の優先順位がない場合は左からと思い込んでいましたが、実は演算子区切りで右側から値を出して、一通り値がでたら、演算子の順に計算と言う事みたいです。 但し「&&」(恐らく「||」も)は左から順に評価されるようです。 「&&」の場合は、左側が偽になったら右側は実行しないようです。0そうだね プレイ済み2017/11/03 22:40:18に取得
プチコン3号 SmileBASIC コミュニティ投稿Godot orz_1272015/03/24 20:11:57別の投稿「FILES "//"」で本題とは違う所ばかりコメントが伸びたので別記事にしました。 DIM A[1],B[2] A[0]=1:B[0]=2:B[1]=3 ?B[LEN(A)==1]+SHIFT(A) このとき配列Aのサイズが1なので[]内は真(==1)で左側が3。次に配列Aから要素をとりだすので右側は1。足したら4の筈が、何故か3。 簡単に検証して見ました。4そうだね 12返信プレイ済み2017/11/03 22:40:18に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿Godot orz_1272015/3/24 19:41>けいさん 単に+の左右の問題ではなさそうです^^ 本題と違う話が長くなってきたのでこの件は別で投稿しますw あとC言語と言っても準拠の度合いやプリプロセッサやコンパイラの実装の仕方によって色々だと思います。 あまりC言語だからと過信するとあぶないかもです^^; 0そうだね プレイ済み2017/11/03 22:42:23に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿Godot orz_1272015/3/24 19:18>Oskarさん そうですよね。 色々な実装があります。 普通と同じに*/+-の演算子があるのでそれなりの優先順位があるものと思っていたら実は演算子に優先順位などない、優先順位をつけたければ()で括れというものも。 確かHSPの前のバージョンがそうでした。 他言語への移植性や判り易さを考えると今は()が不要とわかって居てもあえて()で括れって感じですよね^^ 0そうだね プレイ済み2017/11/03 22:42:23に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿Godot orz_1272015/3/23 23:01通常の式ならば()で何とかなるんですが、今回はそのレベルではなさそうです^^; 大きく見るとひと塊のものを+で2つ並べているだけなので左側の塊が先になりそう。 で、左側の文字列の添え字部分が先に実行されるのでLEN()が先になる筈。よってSHIFT()でF$配列の要素数が0になる前のラス1状態を判定したら良い、と思っていたら残念な結果にw 普通は、一旦別の変数にいれますが、今回は一画面に納めたかったので全体的に詰め込み型のコーディングでw それと面白い現象だったでそのまま残しましたw 0そうだね プレイ済み2017/11/03 22:42:23に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿Godot orz_1272015/3/23 22:20書店に入ったらレジに直行して店員さんに聞いた方が良いですよ。 自分が最初に聞いた本屋では、23日に1冊だけ入荷しますと言われましたw1そうだね プレイ済み2017/11/03 22:42:03に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿Godot orz_1272015/3/23 22:05>りゅうまごさん 自分の投稿の方にはかきましたが どうやら、「FILES "//"」は 3.1.0 からのようです。 3.0.2ではエラーとはりました。 ヘルプには出てこないけど 公式ガイドには書いてある、という状態のようです^^; あねさんに伝わったみたいですね。 TOPの修正版に期待^^0そうだね プレイ済み2017/11/03 22:43:11に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿Godot orz_1272015/3/23 21:45>クッキーさん PUSH L$,"トL"[LEN(F$)==0]+SHIFT(F$) これの何処に()をいれれば? 素直にF$[]が最後のひとつ「==1」なら"L"として、その最後のひとつを取り出してつなげる、としたいのですが、先に右側のSHIFT()が実行されてしまいます^^;0そうだね プレイ済み2017/11/03 22:42:23に取得
プチコン3号 SmileBASIC コミュニティ返信[152]親投稿Godot orz_1272015/3/23 20:49適当に作っては、Go to startでまた始めてを繰り返してみました。 作った物が、反映される場合と、反映されない場合があるようです。 なので人によってはセーブされる、されないと変わるのではないかと思われます。0そうだね プレイ済み2017/11/03 22:47:05に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿Godot orz_1272015/3/23 20:30またやってしまった orz 肝心のプログラムの画像貼り忘れた。 0そうだね プレイ済み2017/11/03 22:42:23に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿Godot orz_1272015/3/23 19:25で、本題とは別件ですが 16行目、「[LEN(F$)==0]」の所、文字列配列F$をSHIFT()でひとつづつ削っていって、最後の1つになったらという意味で「==1」としていたのですが、どうやら先に後ろのSHIFT()が実行されるらしく、LEN()の時点ではサイズ 0 になっているらしい。 なので「==0」に変更。 式の評価順の仕様がよくわかりません orz0そうだね プレイ済み2017/11/03 22:42:24に取得
プチコン3号 SmileBASIC コミュニティ返信[145]親投稿Godot orz_1272015/3/23 19:06試してみようと思ったけど 最新版はプロフィールに書いてあるやつで良いですか?0そうだね プレイ済み2017/11/03 22:47:05に取得
プチコン3号 SmileBASIC コミュニティ投稿Godot orz_1272015/03/23 18:56:13りゅうまごさんが「FILES "//"」でプロジェクト一覧が表示出来ることを発見した模様。 確かに公式ガイドブックをみると書いてある…^^; 以前試行錯誤したとき「FILES "//"」ぐらい試してる筈と、3.0.2で実行してみたら、「Illegal function call(FILES)」。 どうやら3.1.0で機能追加されたらしい…。 で、試しにファイル一覧を表示するプログラムを書いてみました^^14そうだね 20返信プレイ済み2017/11/03 22:42:23に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿Godot orz_1272015/3/23 14:453.1.0から?? 前に"//"は試した様な…^^; 後で3.0.2で確認してみます。 0そうだね プレイ済み2017/11/03 22:43:11に取得
プチコン3号 SmileBASIC コミュニティ返信[77]親投稿Godot orz_1272015/3/22 16:39投稿ページのやつをDLしたのをじっこうしたので修正版では直っているのかもですが 発見した不具合を報告しておきます。 ジャンプしながら下に物を置くと上に上がってい行けますが、Y=0、1辺りで飛び跳ねたら out of renge のエラーがでました。 範囲外のチェックをすり抜けるルートがあるようです。 ご確認下さい。 0そうだね プレイ済み2017/11/03 22:47:00に取得