コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
F-4 Phantom ◆2Fao.QP8H0Nw
2020/8/6 13:08
質問
質問
やっとREPEAT命令をLOGO坊もどきに追加しましたが、REPEAT命令の中でREPEAT命令を使う事ができません。
と言うのも、どこからどこまでをREPEATするのかの判別を上手くさせる方法が分かりません
下に今のプログラムを貼っておくので、わかるひと教えて下さい。
ちなみに公開キーもあります
公開キー:CKXNEJQF
(前略)
@INPUT
LINPUT ">";PRG$
@READ
CLS
IF PRG$=="" THEN GOTO @INPUT
I=INSTR(PRG$," ")
IF I==-1 THEN A$=PRG$ PRG$="" GO TO @JUDG
A$==LEFT$(PRG$,I)
PRG $=SUBST$(PRG$,0,I+1,"")

@JUDG
(中略)
IF A$=="REPEAT" THEN GOSUB @JUDG GOTO @READ
?"構文エラー"
GO TO @INPUT

@REPART
IF PRG$=="" THEN ?"構文エラー" GOTO @READ
I=INSTR(PRG$," ")
IF I==-1 THEN ?"構文エラー" GOTO @READ
IF I!=-1 THEN NUM=VAL(LEFT$(PRG$,I)) PRG$=SUBST$(PRG$,0,I+1,"")
S=INSTR(PRG$,"[")
E=INSTR(PRG$,"]")
IF S==-1 or E==-1 THEN ?"構文エラー" GOTO @READ
PRG$[0]="":PRG$[E-1]=""
REPEAT$=LEFT$(PRG$,E-S)
PUSH REPEAT$," "
FOR I=2 TO NUM
UNSHIFT PRG$,REPEAT$
NEXT
RETURN
(後略)

コメント

アバター
F-4 Phantom 2020/8/6 13:26 ◆2Fao.QP8H0Nw
あと、NUMの数字が360/6とかでも、計算して使えるようにしたいです。
どう工夫すれば良いですかね?
アバター
F-4 Phantom 2020/8/7 1:01 ◆2Fao.QP8H0Nw
なるほど
"["と"]"の数が同じになれば良いって事なんですね。
Naさんのプログラムは
"["があったら+1
"]"があったら-1
をして、Kが0になったら良いと言うことですかね?
あと、そのプログラムをどこに入れたら良いか分からないので、教えて貰えませんか?
アバター
あきと 2020/8/7 14:29 ◆qGd5dQw2g3a2
公開キーのソースを落としてみました。
自分スクリプトエンジンを作りたいのかなと想像しているのですが、一行の中に複数の命令が書かれているのを判定するのは大変なので、まずは別のテキストファイルに書かれている自分スクリプトを一行ずつ実行する形式にした方がREPEATなども作りやすくなるのではないかと思います。

数式の計算は結構大変です。私も作ってみましたが文字列内の計算式を解釈するルーチンに250行ぐらい書きました。
そしてスクリプトに組み込むとなると計算式の解釈と別に「命令とは違う『計算式』がある」と判定する事自体も大変です。「0〜9*-/+()」が空白と空白の間に挟まっている文字列で、かつ計算式として成り立っている判定も必要です。例えば「/2+4-」は計算式として成り立ってません。

自作した計算ルーチンを置いておきます。ただバグありです。ルーチンの検証用に4つの数字を10にするテストも入れてます
公開キー【BBR452AV】CALCSTR
アバター
F-4 Phantom 2020/8/7 16:30 ◆2Fao.QP8H0Nw
ありがとうございます!
自分が今作ろうとしてるのはスクリプトエンジンと言うんですね。(まずそこから)
別のテキストファイルに書いてからやるのも試してみます!
アバター
あきと 2020/8/7 19:17 ◆qGd5dQw2g3a2
いや合ってるか分からないですよ。
コマンド実行したらアプリが動作するOSもどきが目標なのであればスクリプトじゃなくてもいいことになりますし。

ソースの中に「タートル」と書いてあったのでスクラッチみたいなことがしたいのかなと思いました。
アバター
でんぺん 2020/8/7 22:41 ◆HfSy5ayxtyTa
テキストファイル以外でも、例えば使用してないスロットに自分のスクリプトを書いて実行するようにしてみるのもすぐに変更したり出来るのでいいかもしれませんね。
1行1命令的な感じの方が解析はしやすいと思うので、それからやってみてだんだん複数(マルチステートメント)にもチャレンジするとかしていくといいんじゃないかと思います。
アバター
F-4 Phantom 2020/8/7 23:04 ◆2Fao.QP8H0Nw
なるほど
だんだんレベルアップしてくと言うことですね
参考にさせて貰います!
ありがとうございます!

コメントを書く

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

- WEB PATIO -