プチコン3号 SmileBASIC コミュニティトピック受付中ヨシヒロ yoshihiro772016/06/21 14:02:39質問最近はじめました公式ガイドブックがわかりにくいので教えてくだたい。 ガイドブック37ページ、ボタン入力の説明文ですが7行目 IF (BU AND 15)==0 THEN @NYURYOKU とあるのですが、ここの”15”とはどのような意味ですか? 13や14では実際うまく動きません。 15である意味を教えてください。3そうだね 12返信プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿Soybeanman 2013niconico2016/6/21 14:51ボタンの当てはめられてる数を合わせた数(上+下+右+左)が15※なんです。 14だと(下+右+左)になります。 分かりにくいですよね… ※上は1 下は2 右は4 左は8です。2そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿ぴくと kanau12032016/6/21 16:3415は2進数で1111だからでは?2そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿kr/ラレドル de06292016/6/21 16:39ぴくとさんと同じですがand演算だとBU AND 15(1111)だからじゃないでしょうか2そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿kr/ラレドル de06292016/6/21 16:52うーん、すこしわかりずらいですかね。 BUTTON命令は入力されたボタンによって対応した数字が代入されます ↑は1,、↓は2、←は4、→は8、Aは16、Bは32…以下略 それぞれ二進数に直すと 1=1,2=10.4=100,8=1000,16=10000,32=100000 AND演算は二つの数値の値の両方が1の場合、その桁に1が入ります。 例えば 2(↓ボタン) と 15 なら二進数に直すと 10 AND 1111 で0010になり、2が入力されます。 すなわち、右ボタンを押した場合、(BU AND 15)には、2が代入されます。 十字キー全部でも同じです。 しかしAボタン(10000)だと 10000 AND 1111で0になり0が代入されます。 つまり十字キー以外の入力は0に、十字キーは対応した数値を代入します。 分かりにくかったら言ってください。補足します3そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿あまさと しおん ShionAmasato2016/6/21 16:57ボタン数字のお約束があるんですね 上 1、これはちょっと特別 下 2、ここからお約束が発動します 左 4、2*2=4だね 下 8、4*2=8 A 16、8*2=16 B、32、16*2=32 そう、ボタンごとの数字は「2を何回か掛けた数」なんです。 3そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿Godot orz_1272016/6/21 21:002進数とANDを理解していると解りやすいのですが…。 ボタンが押されると以下のような値がそれぞれ返ってきます。 2進数 10進数 十字キー 1000 8 ↑ 0100 4 ↓ 0010 2 ← 0001 1 → 15は以下の通り 1111 8+4+2+1=15 ANDすると同じ位置が1のところだけのこります。 何も押されていない場合は0、↓の場合は0100となり4の結果となります。よって15でANDすると↑↓←→のどれかが押されると0でない値となります。 14の場合は以下の様になるので→が押されても0000となり、 1110 8+4+2+0=14 13の場合は以下の様になるので←が押されても0000 1101 8+4+0+1=13 よって上手く動きません。3そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿あまさと しおん ShionAmasato2016/6/21 21:10(7行目の存在意義は薄いなんて言わなくはない)0そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿ヨシヒロ yoshihiro772016/6/22 1:04みなさまありがとうございます。 15の意味の前にANDを知る必要があったようです。 IF (BU AND 15)==0 THEN の意味としては”何も入力が無いから0000である”、”入力があった場合0000でなくなるためにIFが成立しない”ということですね。1そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿ヨシヒロ yoshihiro772016/6/22 2:13簡易ですがボタン入力テストプログラム組んでみました。きちんと動いてくれて感激です。 そしてボタンの番号がなぜ倍数なのかやっと理解しました。 少しずつですが頑張って行きます。1そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿Godot orz_1272016/6/22 8:59すみません 自分の説明の方で「なにも」と書いてしまったせいだと思いますが^^; 「AND 15」には受け付けるボタンを制限する意図があります。 例えばボタンAは、16なので2進数で「10000」、15は「01111」なので、ANDすると0になります。 ボタンAが押されてもなかったことにして「@NYURYOKU」に戻ります。 「AND 15」は十字キーの↑↓←→のみを有効として、↑↓←→の何れの入力がなければ0となります。 なので「何も入力がない」と言うより、「↑↓←→の何れの入力もない」と言う表現の方が正確です。 あと、ANDを覚えた所ならORも対で覚えておくと良いです。 仲間にXORと言うのもありますが、こちらは余力が有ればw XOR自分的には、あまり使う機会がない^^;2そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿ヨシヒロ yoshihiro772016/6/23 1:07Godotさんありがとうございます。 2進数は知っていますのでなんとか理解しました! 一桁目から順にボタンが割り当てられてるのですね。10進数で考えていたので理解していませんでした。 0000000000001 上 0000000000010 下 0000000000100 左 0000000001000 右 0000000010000 A 0000000100000 B 以下略 僕の見ている本にANDと一緒にORとXORも載っておりました。これは同時に覚える必要がありますね。 まだまだ入り口。頑張って行きます。2そうだね プレイ済み2017/11/03 18:05:00に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿Godot orz_1272016/6/23 12:07今、改めて読んでみたら最初に書いた説明部分の値とキーの方向が間違っていました^^; 上下左右の値は、ヨシヒロさん他の方がコメントで書いている値が正解です m(_ _)m それをベースに説明をしてしまったので全体的に間違ってます。 でも、説明的には伝わった様なのでよかったです^^ 3そうだね プレイ済み2017/11/03 18:05:00に取得