プレイ日記
まりを tomoyaTT88
『なんでもしますから!』 『ん?』 『いま、なんでもするって…』 の順に表示されると、繰り返しから抜ける(ンアーッ!)プログラムが組みたい! 誰か教えてくださいませんか? オナシャス!
4そうだね
プレイ済み
返信[1]
親投稿
Godot orz_127
多分、これで。
0そうだね
プレイ済み
返信[2]
親投稿
ランダムに表示し、ある順番がそろうと終了ってやつね 文字列で出た番号を記録しちゃうのもあるじゃね? REPEAT  R=RND(3)  (表示のIF文)  L$=L$+STR$(R) UNTIL RIGHT$(L$,3)=="012"
2そうだね
プレイ済み
返信[3]
親投稿
まりを tomoyaTT88
なるほど! しかし改めて思いましたがプログラミング難しすぎませんかねぇ…… C言語なんてきたら辞めたくなりますよー
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
『なんでもしますから!』をメッセージ0 『ん?』をメッセージ1 『いま、なんでもするって…』をメッセージ2 とすると「メッセージ0→メッセージ1→メッセージ2が順番に出れば良い」というのは分かりますよね? 順番に出ているかどうかを判断するにはさまざまな方法がありますが、前回のメッセージ番号、前々回のメッセージ番号を変数に記録しておくのが最も分かりやすいと思います。 R=RND(3)として変数Rに現在のメッセージ番号が入っている場合、変数Qに前回のを入れたいという場合にはRの値を決める前にQ=Rを入れておけば良いです。 前々回のを変数Pに入れたいという場合はQ=Rの前にP=Qを入れておけば良いです。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
それをまとめるとP=Q:Q=R:R=RND(3)で今回の番号がR、前回がQ、前々回がPという記述になります。 判定も簡単で「『Pの値が0と等しい』かつ『Qの値が1と等しい』かつ『Rの値が2と等しい』である場合」となります。 あとは自力でやってみてください。 プログラミングというのは何をしたいのかが具体的に分かりさえすれば簡単にできます。(今回の場合にはメッセージ番号が0、1、2で順番に出れば良いということが分かればいい) 慣れないと難しい部分もありますが、試行錯誤で解決できる場合も多いのでとりあえず自分でやってみるということが大切です。 自分でやってみた経験は決して無駄にはなりません。
0そうだね
プレイ済み
返信[6]
親投稿
MIKI ifconfig
ズンドコキヨシプログラム(「ズン」「ドコ」のいずれかをランダムで出力し続けて「ズン」「ズン」「ズン」「ズン」「ドコ」の配列が出たら「キ・ヨ・シ!」って出力した後終了)プログラムの亜種ですね。 おおげさに正規表現パーサで書いてみました。 ステートマシンで実装してあり、初期状態から 0 が来たらステート1になり、そこに 1 が来たらステート 2 になり、そこに 2 が来たら受理(-1)します。 正規表現のいいところは、012 のような固定パターンだけでなく 0(1または2)3 のように「または」が使えたり※1 011*2 のように繰り返しが使えたり※2することです。 ※1: 「なんでもしますから」->「ん?」または「え?」->「いま、なんでもry」で終了 ※2: 「なんでもしますから」->「ん?」->「ん?」の任意回の繰り返し->「いま、なんでもry」で終了
0そうだね
プレイ済み
返信[7]
親投稿
moh6an moh6an
こめのこ、興味深いです
0そうだね
プレイ済み
返信[8]
親投稿
HMm4o2 ltmitm
皆真面目に答えすぎィ! SmileBACICに自信ニキ、いいゾ~
0そうだね
プレイ済み
返信[9]
親投稿
まりを tomoyaTT88
BASIC なんで間違えるんですかねぇ……(呆れ)
0そうだね
プレイ済み
返信[10]
親投稿
MIKI ifconfig
0=なんでもしますから! 1=ん? 2=え? 3=いま、なんでもするって… として、 013 を受理するコードです。 8行目をコメントにして9行目をコメントじゃなくすると 0(1または2)3 を受理するコードになります。 8行目をコメントにして10行目をコメントじゃなくすると 01(1の任意回数の繰り返し)3 を受理するコードになります。
0そうだね
プレイ済み
返信[11]
親投稿
MIKI ifconfig
状態遷移図 左から「013」「0(1または2)3」「01(1の任意回数の繰り返し)3」を受理するステートマシンです。 ○の中の数字がステート(変数s)で、-1 になると受理 矢印に添えてある数字が入力(i)です。 矢印の意味は、左の例だと初期状態(s=0)に0が入力されるとs=1に遷移すると言う意味。 赤い矢印は、「その他の入力」による遷移です。
0そうだね
プレイ済み