プチコン3号 SmileBASIC コミュニティプレイ日記すら Kagpro2015/11/11 19:46:01久しぶりの投稿です。BGとスプライトの配置をDATA化してみました!ただ1~9番までのBGしか使えないのが難点です…3そうだね 8返信プレイ済み2017/11/03 15:13:53に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿じてんしゃ kyabetu7162015/11/11 20:43ASC関数を使えば...すごいやん?2そうだね プレイ済み2017/11/03 15:13:53に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿あまさと しおん ShionAmasato2015/11/11 20:47ASCだと、改行マークとかがはいってしまう。 対策すればいいのだけど、そんなに種類がいらないならHEX$()というものがあります。 これだと、0-15番まで使えます。1そうだね プレイ済み2017/11/03 15:13:53に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿すら Kagpro2015/11/11 20:52ありがとうございます!1そうだね プレイ済み2017/11/03 15:13:53に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿MIKI ifconfig2015/11/11 21:19あまさとさんのコメントをを要約すると c=val(mid$(a$,i,1)) の代わりに c=val("&h"+mid$(a$,i,1)) で "0"~"9"が 0~9 "A"~"F"が 10~15 に変換できますということです。 "0"-"9","A"-"Z" を使って 36進数にすれば、0から35 を使えます。 (その場合は自作関数が必要) 豆知識: mid$(a$,i,1) は a$[i] と書く事が出来ます。こっちのほうが短くて速い。1そうだね プレイ済み2017/11/03 15:13:53に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿おちゃめ ochame_nako2015/11/12 20:5036進数くらいならこんな感じでINSTRを使って記述しても問題ないかなと個人的には思います。 C=INSTR("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ,A[I]) これで"Z"ならば35という値を返します。 とはいえ、これでも結局使えるのは0~35のBGだけになります。 すらさんが言いたいのはこういうことではなく例えば0がレンガ(動かせない)、1が石壁(動かせる)など好きなBGを割り当てる方法だと思います。 そのためには配列変数を使ってテーブルを作っておくと良いです。 配列変数BG[0]にはデータが0番の時のBGの番号、BG[1]にはデータが1番の時のBGの番号というようにしておけばC=BG[VAL(MID$(A$,I,1))]と変更するだけで0~9の数字で自由な10種類のBGを選ぶことが可能になります。0そうだね プレイ済み2017/11/03 15:13:53に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿otta777 otta777a2015/11/12 20:50INSTR関数を使うと任意の文字をDATA命令中に使うことができます。 C=INSTR("0123456789ABC~(中略)~XYZ",MID$(A$,I,1)) Cが-1の場合にはBGPUTをせずデータを無視するかエラーで止めるか する必要がありますね。 0そうだね プレイ済み2017/11/03 15:13:53に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿MIKI ifconfig2015/11/12 21:48あ、いいこと思いついた!! 文字列の線形検索実装できるね! b=5 l=1<<b 'キー最大長 ' テーブル初期化 for i = 0 to n-1 inc keys$, left$(left$(hash$[i],l-1)+chr$(0)*l, l) next '検索 def search(key$) return instr(keys$, left$(key$,l-1)+chr$(0))>>b end 自作のバイナリサーチより速そう!! 0そうだね プレイ済み2017/11/03 15:13:53に取得