Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1 2 3 4 5 6
次のページ(過去)
返信[9]
親投稿
おおみの Omi-no-mino-398
負数対応版 IF B%<0 THEN B%=B% AND &H7FFFFFFF WHILE B% B$=STR$(B% AND 1)+B$ B%=B% >> 1 WEND B$="1"+RIGHT$("0"*31+B$,31) ELSE (前述のやつ) ENDIF 実装するの結構面倒くさいですね。
1そうだね
プレイ済み
返信[7]
親投稿
おおみの Omi-no-mino-398
所詮やっつけなので負の数はきちんと出ない欠点が判明。 しおんさん版で負の数を入れると永久ループにハマった・・・。 ビットシフトは符号ビットの1をずっと引きずってくる仕様かー。
1そうだね
プレイ済み
返信[2]
親投稿
おおみの Omi-no-mino-398
とりあえずやっつけで作ってみました。 INPUT B% :B$="" WHILE B% A$=STR$(B% MOD 2) B%=B% DIV 2 B$=A$+B$ WEND PRINT B$ 単純に2で割っていって余りが出たら1、ない場合は0を「右から左に」つけていくだけです。
3そうだね
プレイ済み
返信[3]
親投稿
おおみの Omi-no-mino-398
端折って言えば「どっか行け」命令です。 繰り返し動かすなら「繰り返しの先頭に行け」となるというだけの話で、自由気ままにどこにでも飛ばすことができます。 やりすぎるとカオスなプログラムリストになります(処理系を目で追うのが困難になる)。
0そうだね
プレイ済み
返信[2]
親投稿
おおみの Omi-no-mino-398
しおんさんVSYNC忘れてる・・・。 しおんさんのサンプルは「Aボタンが押されたらBEEPを鳴らす」というプログラムです。この「BEEPを鳴らす」を「当たりの処理」に置き換えるイメージで作ってみてください。
2そうだね
プレイ済み
返信[4]
親投稿
おおみの Omi-no-mino-398
プログラムは習うより慣れろ、ということで ①文字を表示してみよう PRINT "BONSOIR!" ②音を出してみよう BEEP 77 ③喋らせてみよう TALK "プチコンサンゴウ" ひととおり試したらヘルプや公式サイトで PRINT, BEEP, TALK を調べてみましょう。 あとはサンプルゲームやほかの人の作品で遊んで、プチコンでどういうことができるのかを感じ取ってみましょう。
4そうだね
プレイ済み
返信[18]
親投稿
おおみの Omi-no-mino-398
訂正: ×IF (BUTTON(2) AND 17) THEN ~ ○IF (BUTTON(2) AND 17)==17 THEN ~
1そうだね
プレイ済み
返信[17]
親投稿
おおみの Omi-no-mino-398
上とA以外のものが押されていても上とAを押せばとにかく実行したい、というときはANDを使って IF (BUTTON(2) AND 17) THEN ~ のようにすれば余計なものがいっぱい押されていてもきちんとTHEN以降が実行されます。  &B10010101 (149) 左上、A、Yを同時に押す  &B00010001 (17) #UP OR #A  -----------------  &B00010001 (17) 上記のANDの結果
1そうだね
プレイ済み
返信[15]
親投稿
おおみの Omi-no-mino-398
1 OR 16 は結局17になるので、どちらで書いても構いませんよ。 ①IF BUTTON(2)==17 THEN ~ ②IF BUTTON(2)==(#UP OR #A) THEN ~ 見たときのわかりやすさが違う程度でどちらも同じです。わかりやすい表記を好むなら②、短いほうがいいなら①、このへんは好みの問題と言えます。 あと②だと例えばAボタンをXボタンに変えたいとき、#Aを#Xとするだけでいいというのもあります。①風に書くなら65(1 OR 64)ですね。 画像のプログラムについてひとつ言うなら、画面の描画やボタン入力を伴う永久ループを回すときは VSYNC 1 をループ末端(画像ではNEXT)の手前に入れてくださいね。
1そうだね
プレイ済み
返信[3]
親投稿
おおみの Omi-no-mino-398
ORの結果は普通に+で計算した時と同じ答えになることが多いですが、複数のビットが1になるような数がある場合は単純な足し算と違う値になります。  &B1011 (11)  &B1000 (8)  ------  &B1011 (11) このように、11 OR 8 の結果は11となります。
0そうだね
プレイ済み
返信[2]
親投稿
おおみの Omi-no-mino-398
C=#UP OR #LEFT ではCに#UP(1)と#LEFT(4)の論理和5が入ります。 2進数で表すとこうなります。  &B0001 (1) #UP  &B0100 (4) #LEFT  ------  &B0101 (5) 1 OR 4 の結果 ボタンが押されているチェックでANDを使います。 IF (BUTTON() AND #UP)==1 THEN ~ 右上が押されるとBUTTON()は9を返します。  &B1001 (9) BUTTON() 右上を押した  &B0001 (1) #UP  ------  &B0001 (1) 9 AND 1 の結果 これで上が押されているという判定ができました。
0そうだね
プレイ済み
返信[1]
親投稿
おおみの Omi-no-mino-398
足し算をするのは複数のボタンを同時に押したとき、それぞれの値をすべて反映させるためです。 ビットとは: 数の単位です。1bitで0と1の2通りを表せます(二進法)。 ちなみに8bitで1byte(バイト)となり、0~255の256通り(2の8乗)の数を表せます。ゲームでよく最大値が255になっているのはこういう理由です。 ORとは: 論理和。C = A OR B のとき、AとBの両方が0のときはC=0、ABどちらかまたは両方が1のときC=1となります。 ビット演算は他にAND、XORがあり、ANDは論理積、ビットごとの掛け算をします。つまり両方が1のときだけ答えが1となります。特定のビットが0か1か調べたり、マスクをかける(特定の部分以外を0にする)のに使います。 XORは排他的論理和というなんかムツカシイ言葉ですが、これはABが同じ値のときは0、違うときは1を返します。
0そうだね
プレイ済み
返信[15]
親投稿
おおみの Omi-no-mino-398
yuyaさんのようにプログラミング自体を楽しめる人って多くないし、向き不向きはあると思いますね。自分で試行錯誤する気があるかどうかが基準点だと思います。 >>パペットさん 自分で色々試して、それでもわからないから「○○してみたけどうまくいかない」的に質問するのと、調べもせず丸投げ質問するのとに大別されると思いますが、後者は明らかに向いていないです。前者は問題解決後「おーそうか」となって没頭できれば向いてると言えますね。 >>みむ さん 暇潰しで読んでて唐突に弄りたくなるというのは確かにありますね。 公式ガイドブックやmk2のときのマンガはよかったですけど、予算もかかるので企業的には難しいでしょうね。プチコンは破格ですし(N88-日本語BASICなんてウン万円してましたし)。
2そうだね
プレイ済み
返信[10]
親投稿
おおみの Omi-no-mino-398
ポケコン世代です。ただし雑誌を買い始めたのは1990年…。 あの頃はBASICマシン群雄割拠みたいな感じで、本や雑誌もたくさん出ていたので逆に今よりハードルは低かったかもしれませんね。 いか先生の言うように、自分でリストを打ち込んでエラーが出たら修正してという試行錯誤を繰り返すうちに勝手に会得していけた気がします。 人(雑誌社?)に聞くよりも自分でああだこうだしたほうが早かった、というのもあります。 今はネットですぐ探せるとは言っても、今自分が本当に必要な情報を見つけることができるかというと…う~ん? ここで各人の質問にその都度答えていても拡散はほとんどしないので同じ質問が繰り返されますよね。聞けばすぐ答えてくれるネット時代の欠点といえるのかも。 有志がプチコン3号まとめWikiにコラムを不定期掲載するなどして情報を一箇所にまとめられればよさそうですが…。
2そうだね
プレイ済み
返信[1]
親投稿
おおみの Omi-no-mino-398
見てみました。(変数名を小文字で表記) DEF NORTS0 nrt OUT hog0 VAR hog0 (以下略) DEFで受け渡し用にしている変数名はローカル変数宣言できません。VARで宣言すべきなのはFORで使っているCLとLOP0です。 VAR hog0を消してもこのままだと戻り値未設定なのでDEF終了時にエラーが出ます。どこかでhog0に戻り値を入れておきましょう。
1そうだね
プレイ済み
返信[3]
親投稿
おおみの Omi-no-mino-398
1トラック1音というのは誤りで、1トラック 1BGMPLAY です。 1BGMPLAYで最大16パート(16音)まで鳴らせます。 つまり最大8つまでのBGMを同時に鳴らせますが、発音数が多すぎると音飛びなどが発生します。なお再生中に音量を変えたいときは BGMVOL を使ってください。
1そうだね
プレイ済み
返信[2]
親投稿
おおみの Omi-no-mino-398
波形データは8bitの16~512サンプル(倍刻み)で定義します。 2文字で1サンプルなので、文字数はサンプル数の倍になります。 たとえばファミコンの25%パルス波だと "FFFFFFFF000000000000000000000000" となります(16サンプルの場合)。
0そうだね
プレイ済み
返信[1]
親投稿
おおみの Omi-no-mino-398
WAVSET <定義番号>,<A>,<D>,<S>,<R>,"<波形>"[,<基準音程>] 定義番号は224~255でないとだめです。 波形データの位置も違っています。
0そうだね
プレイ済み
返信[14]
親投稿
おおみの Omi-no-mino-398
プログラムは習うより慣れろ、といいますし、自分でいろいろやってみたりサンプルいじりをするのがいいと思います。 わからなければここで聞けばいろいろな人が教えてくれます。 >>プログラムだいすき! さん 前のトピックで言っていたのをDLしようとしましたがありませんと言われました・・・。
0そうだね
プレイ済み
返信[12]
親投稿
おおみの Omi-no-mino-398
そうですね、とりあえずは CLS:テキスト(PRINTで表示した文字)を消去 GCLS:グラフィック(GPUTCHRなどGで始まる命令群で描いたもの)を消去 ACLS:画面を全部消してBGやSPも初期状態に戻す IF~THEN(~ELSE):条件分岐 GOTO:無条件ジャンプ RND():乱数を生成 ラベル:@で始まる目印(ジャンプ先などでこれを指定する) あたりをおさえておけばいいと思います。これで数当てゲームは作れます。 WHILE~WEND はちょっぴり上級向けですね。これは条件を満たしている間、それぞれの間にある命令を実行し続けるもので、ヘタすると永久ループにハマってしまいます。 DIRECTがSTOPになっているのはプログラムが実行中ということですね。
0そうだね
プレイ済み