iBASICについて語ろうよ…

このエントリーをはてなブックマークに追加
1非通知さん@アプリ起動中
2非通知さん@アプリ起動中:04/01/04 17:23 ID:RCrv/4fM
BASIC最強!!!LINEとかが・・・
3非通知さん@アプリ起動中:04/01/05 01:43 ID:7oAzQxdI
ezBASICもあるです。
ttp://yasu.rank.nu/ez/?ezplus=ezbasic&t=1073234286
これで何か作ったやついるのかい?
4非通知さん@アプリ起動中:04/01/05 04:40 ID:v0TuHYBF
とりあえずブロック崩しでも作ってみようかな…
なんて思っても知識がない…。(´・ω・`)
5非通知さん@アプリ起動中:04/01/05 13:33 ID:USjoOzQg
>>3
作ろうと思ったら携帯上でしか動かないのか
入力が大変そうなのでパスです・・・
6非通知さん@アプリ起動中:04/01/06 00:57 ID:4k1I5Owm
Vbasicはないの?
7非通知さん@アプリ起動中:04/01/06 02:36 ID:yk72mshz
名前ださいから。
8非通知さん@アプリ起動中:04/01/06 06:07 ID:8ExZaXvT
これでドット絵作成ソフト作れる?
9非通知さん@アプリ起動中:04/01/06 19:46 ID:b+rV7Lqe
ブロック崩しのバーの部分です。ezで作ったので、iで動くかな?だれかeznesうpして…改行は自分でしてね
soft1("Exit")
j = 0i = 0
label loop
if input(0) and keysoft1 then exit endifif scan = keyleft then i = i + 7 endifif keyright = scan then i = i - 7 endif
lock()
color(255,255,255)line( 55 - j ,height-9 ,65- j ,height-9 )j = icolor(255,0,0)line( 55 - i ,height-9 ,65 - i ,height-9 )unlock(1)goto "loop"
10非通知さん@アプリ起動中:04/01/07 00:24 ID:+5ffH3Q4
>>9
iだと6行目の j = icolor(255,0,0)の部分でエラーが出る。
11非通知さん@アプリ起動中:04/01/07 00:54 ID:vdKepxDZ
>>10
line( 55 - j ,height-9 ,65- j ,height-9 )
j = i
color(255,0,0)
こんな風に改行してもだめだったらスマソ
12非通知さん@アプリ起動中:04/01/08 01:11 ID:ZDYny7Ka
A5302CA、改行できません!!

ということでBrainfuckの方が好きかも。
誰か、Brainfuckスレ立ててくれ。ム板の方はレベル高すぎてわからん。
13非通知さん@アプリ起動中:04/01/08 02:04 ID:IDfS5wCS
文字数制限の多い端末でやるもんじゃないと思う>BF
ただ入力部分自体を専用のものとすれば使う文字自体が少ないから入力は楽か?
そういう問題でもないと思うが……
14非通知さん@アプリ起動中:04/01/11 02:07 ID:aD/613y4
揚げ


ファミリーベーシックで我慢しとけ!
15非通知さん@アプリ起動中:04/01/16 00:21 ID:OKa/X4SK
SO505ではアプリ自体動作せず。残念
16非通知さん@アプリ起動中:04/01/18 03:13 ID:C+pUGvfV
ezBASICの場所がわかりにくいので説明

http://yasu.rank.nu/ez/ここから
ezBASIC
1.EZPLUS>すべて表示>ezBASIC
BrainFuck
1.EZPLUS>すべて表示>BrainFuck
お絵描きアプリ
Punkten
1.EZPLUS>ツール>Punkten
17非通知さん@アプリ起動中:04/01/21 11:01 ID:c2clSl3v
下がりすぎなので保守age
18非通知さん@アプリ起動中:04/02/07 00:18 ID:KzHgpA4e
19非通知さん@アプリ起動中:04/02/18 14:28 ID:p3vAWdxp
iBASIC以外にプログラミングできるiアプリある?
20非通知さん@アプリ起動中:04/02/26 09:59 ID:UYGNmssy
俺はCをかじったことしかないが、
EZBASICの説明書だけで作ってみた。
動かないんで、訂正お願いします〜

soft1("Exit")
label loop

if input(10) and keysoft2 then exit endif

if scan = keyselect then a=a+5


lock()

color(255,255,255)line(10 ,10-a ,25 ,10-a )

b=a

color(255,255,255)line(10 ,10-b ,25 ,10-b )

unlock(1)

goto "loop"

21非通知さん@アプリ起動中:04/02/26 21:45 ID:UYGNmssy
誰かレス呉
22非通知さん@アプリ起動中:04/02/26 23:48 ID:UYGNmssy
こんな感じに変わりますた


soft1("Exit")
j = 0
i = 0
label loop

if input(10) and keysoft1 then exit endif

if scan = keyselect then i = i + 7
else i = i - 3
endif

lock()

color(255,255,255)line(50 , 55 - j ,60 ,55- j )
j = i

color(255,0,0)line(50 , 55 - i ,60 ,55 - i )

unlock(1)
goto "loop"
23ezBASICの達人:04/02/27 02:48 ID:v7NAd0sn
俺はezBASICを極めてしまった。雪が降るやつとか水がポチャんてなるやつとかを
つくった。でもこれはほんの初期作品に過ぎない。今はゲーム作ろうとしているが
A5303の最速モードをもってしてもクソげーしかつくれんかった。なんか作って欲しかったら
"達人"まで(と言うのもケータイからパソコンへメールの送り方が分からなくて
長文うつすのがめんどいから書きません)
24ezBASICの達人:04/02/27 03:11 ID:v7NAd0sn
非通知さんが作りたいのはコレ?赤い線が上下してんだケド・・・
改行しなくても実際にこのままコピーで動きますよ。終了は1を押してください
label A
lock()color(255,255,255)line(50,55-i,60,55-i)a=scan
if a=key1 then exit endif
i=i-3if a=keyselect then i=i+7endif
color(255,0,0)line(50,55-i,60,55-i)unlock(1)goto"A"
25非通知さん@アプリ起動中:04/02/27 04:16 ID:lS7D76MW
ほぉ〜、scanを代入することも出来るんですか。
自分はSFcave?っぽいのを作ろうとしてました。

接触判定はどうやれば?ここでは上下の線の上側にあるか下側にあるかでできそうですが、迷路などではどうやるんでしょうね。午後にでもいろいろと調べてみよー。

出来れば、ここにはっつけたらいいのでは?
26ezBASICの鬼:04/02/27 12:13 ID:2+WzkNh2
あ、達人です。改名しました。
実は俺も前にSFcave作ったんですよ。いやあ、アレはヒドかった・・・
最初の画面は作れました。赤と黒のグラデーションの背景も作れました。
接触判定やゲームオーバー時の画面も作った・・・が、しかし!
実際あの水色のやつを動かせなかった・・・
というかバグってるみたいになった。アレでゲームを作っても遅いし
容量少ないから厳しいと思うよ?
(でもあの時より技術上げたから今なら出来るかも、暇な時にでもやってみるか)
27ezBASICの鬼:04/02/27 12:22 ID:+Np+HcR0
>>12
Brain Fuckは一部の字しか出なくてつまらなかった
あんなのプログラミングじゃないな
28ezBASICの鬼:04/02/28 01:04 ID:5KOqpcck
上線の接触判定は(上から30の場所に線がある場合)例えば
if 55-i<27then exit endif
とかで出来る。迷路はやたら容量とるから簡単なコースしか作れないっぽい
29ezBASICの鬼:04/02/28 15:47 ID:LcmuFRkv
ezBASICでSFcaveつくった。
1500文字位もあるので欲しい人はメアドを乗せとけ!
おくっちゃる!
30非通知さん@アプリ起動中:04/02/28 16:09 ID:YF6kD01G
>>29
分割してうぷしてくれたら神!!
31ezBASICの鬼:04/02/28 16:52 ID:3jdwS9dd
まずこれを「点数」という名前で保存してくれ。いわゆる「はじめの画面」だ。
label loop
color(128,128,255)frect(0,0,132,144)color(0,0,0)text("SFCave",36,40)color(255,255,255)text("SFCave",32,44)text("Score:0"+A,18,130)text("Hi-Score:2097",18,146)label take
if input(0)and keysoft2 then exit endif
if scan=keyselect then goto"cat"endif
srand()b=abs(rand)%128w=w+1color(0,0,128+b)farc(66-w,77-w,w*2.w*2)color(255,0,0)text("SELECT:UP",18,84)text("SELECT key to start!",18,100)if w=36then w=22goto"loop"endif
goto"take"label cat
パソコンに打つのマジしんどいから(~_~;)メアド書いといてくれたらホント神!!
32非通知さん@アプリ起動中:04/02/28 17:02 ID:4TM+JNXi
携帯から書き込め。
33非通知さん@アプリ起動中:04/02/28 17:03 ID:4TM+JNXi
無理ならパソコンにメールで転送しる。
34ezBASICの鬼:04/02/28 17:11 ID:DsX3Ya9F
昔作ってたやつとかと組み合せただけだから、文句言おうと思えば
いくらでも言えるレベルだけどなかなかスリリングだよ。はっはは
文句例)
・障害物が1個ずつしか来ない。
・コースに起伏がない
・結構展開が早い
・最高点を保存することが出来ないので俺の本物での最高点を書いといた。
ドナドナ・・・だから自分で色々改造してくれ。
ゲーム部分メールで送りたいからコレ見たら俺にメール下さい。たのんます!!
35ezBASICの鬼:04/02/28 17:42 ID:+z1OwrXe
前半ですよ。
label M
A=g
thread("点数","印")join("印")label D
color(q,0,0)frect(p,0,6,176)p=p+4if p=132then goto"E"endif
if q<1then n=n+62endif
if n>247then q=q+31endif
if q>247then n=0endif
if n<1then q=q-31 endif
goto"D"label E
origin(40,72)color(0,255,0)frect(-40,-72,132,38+d)frect(-40,38-d,132,38+d*2)if d>0then goto"G"endif
label A
lock()color(217,0,0)frect(0,-i,6,3)frect(93-c,e,3,15)a=scan
if c>130then d=d+1c=0goto"E"endif
label F
c=c+3if a=key1 then exit endif
i=i-2if a=keyselect then i=i+4endif
if c=93then goto"J"endif
label L
36ezBASICの鬼:04/02/28 17:54 ID:+z1OwrXe
後半ですよ。
if abs(-i)>36-d then goto"B"endif
color(255,255,255)frect(93-c,e,3,15)frect(0,-i,6,3)unlock(1)goto"A"label B
unlock(1)color(255,0,0)text("GAME OVER",20,-i)for b=0 to 30b=b+1arc(-b,-i-b,b*2,b*2)next
g=d*120+c
color(0,128,255)text("SCORE:"+g,20,-i+15)input()goto"M"label G
e=rand%38-d if e>22-d then e=23-d endif
if e<-37+d then e=-34+d endif
goto"F"label J
if 1-i<e-1then goto"L"endif
if 1-i>e+15then goto"L"endif
goto"B"
37省略:04/02/28 17:56 ID:+z1OwrXe
言い忘れてたけど、前半と後半は一つのスレッドに繋げて移すんだぞ
38非通知さん@アプリ起動中:04/02/28 19:49 ID:AN8lyO+K
神キター(・∀・)
39ezBASICの鬼:04/02/28 20:14 ID:gZjexY43
どうよこのヒドイできは!?
40非通知さん@アプリ起動中:04/02/28 20:29 ID:YF6kD01G
iBASICならエラーだらけでした…断念…
41ezBASICの鬼:04/02/28 21:25 ID:7EITLXiZ
あ、ezBASICとiBASICとじゃ文法全く違うからダメだよ!
機種変えろよ
42非通知さん@アプリ起動中:04/02/29 00:03 ID:qBD27GnF
機種かえるのはむりぽ
あうコンプレックスあるから…
43非通知さん@アプリ起動中:04/02/29 01:12 ID:8URZdP+L
>>ezBASICの鬼
SFcaveの画面サイコー!本物うりふたつデス。続き期待して待つ

自分もゲーム作りましたがthread(,,)の使い方を理解してないためミニゲーム位しか作れないので鬼さんには感動しま…

<漏れの生成物>
・ショボイブロック崩し
・グラフ描画
・ショボイタマゴッチ風スクリーンセーバ
・色ランダム作成
・GPS取得
etc…
44ezBASICの鬼:04/02/29 02:16 ID:ZGNsbB0T
threadの使い方を書いときましょう。例えばアプリ内に「家」という名前の
ファイルがあるとします。それを他のファイル内で呼び出したい時
thread("家","出")
「出」の所は何でも良い。更に家が終わるまで次の演算が始まらないようにするには
thread("家","出")join("出")
とすればいい。threadではlock(),unlock(1)が呼び出せないので注;
変数は結構リセットされずに継承されるのでこれまた注;
ブロック崩しか・・・つくれなかったんだよな・・・。ソース公開orメール送信してもらえると嬉しい
メールは上の方に書いてあるんでヨロシコ!そろそろSFCaveバージョンアップするか・・・
45ezBASICの鬼:04/02/29 02:22 ID:ZGNsbB0T
SFCave for ezBASIC ver.2
これを"A"というタイトルで保存しよう
label D
color(q,0,0)frect(132+p,0,6,176)p=p-3if p=-135then goto"E"endif
if q<1then n=2endif
if n=2then q=q+31endif
if q>247then n=0endif
if n<1then q=q-31 endif
goto"D"label E
46ezBASICの鬼:04/02/29 02:28 ID:ZGNsbB0T
次はコレを「点数」で保存だ!
label loop
color(128,128,255)frect(0,0,132,144)color(0,0,0)text("SFCave",36,40)color(255,255,255)text("SFCave",32,44)text("Score:"+A,18,130)z=max(A,2865)text("Hi-Score:"+z,18,146)label take
if input(0)and keysoft2 then exit endif
if input(0)and keyselect then goto"cat"endif
srand()b=abs(rand)%128w=w+1color(0,0,128+b)farc(66-w,77-w,w*2.w*2)color(255,0,0)text("SELECT:UP",18,84)text("SELECT key to start!",18,100)if w=36then w=22goto"loop"endif
goto"take"label cat
47ezBASICの鬼:04/02/29 02:56 ID:ZGNsbB0T
最後。本体。
label M
u=63y=26p=0q=0n=0d=0i=0c=0e=0b=0W=0A=g
origin(0,0)thread("点数","印")join("印")thread("A","B")join("B")label E
origin(40,72)color(0,255,0)frect(-40,-72,132,38+d)frect(-40,38-d,132,38+d*2)if d>0then goto"G"endif
label A
if q<1then n=2endif
if n=2then q=q+31endif
if q>247then n=0endif
if n<1then q=q-31 endif
lock()color(q,0,0)frecy(92-c,e,3,15)color(217,0,0)frect(y,-i,6,3)a=scan
if c>133then d=d+1c=0goto"E"endif
label F
c=c+3if a=key1 then exit endif
i=i-2if a=keyselect then i=i+4endif
if c=u then goto"J"endif
label L
if abs(-i)>36-d then goto"B"endif
color(255,255,255)frect(92-c,e,3,15)frect(y,-i,6,3)unlock(1)goto"A"label B
unlock(1)vib(1000)color(255,0,0)text("GAME OVER",20,-i)for b=0 to 30b=b+1arc(-b,-i-b,b*2,b*2)next
g=d*120+c
color(0,128,255)text("SCORE:"+g,20,-i+15)sleep(2000)goto"M"label G
e=rand%38-d
if e>22-d then e=23-d endif
if e<-37+d then e=-34+d endif
goto"F"label J
if 1-i<e-1then goto"L"endif
if 1-i>e+15then goto"L"endif
goto"B"
変わったとこはやれば分かると思うから書かないけど、かなりよくなったべ
あ〜、しんど・・。
48ezBASICの鬼:04/02/29 03:02 ID:ZGNsbB0T
つーか、ここに作者(tabrisさん)が降りてくりゃ一番手っ取り早いんだよな・・・
誰か呼んで来てくんねーかな。


49非通知さん@アプリ起動中:04/02/29 13:03 ID:8URZdP+L
ブロック崩し
ショボイのには理由がある、ブロックが一つしかない(崩したらまた一つブロックが出てくる)
soft2("Exit")
label @color(0,0,0)frect(0,0,132,144)x=10+abs(rand)%122
y=10+abs(rand)%120w=4h=4label Am=abs(rand)%112n=abs(rand)%120
color(155,200,255)frect(m,n,20,5)label Bl=rand%3k=rand%3if 73-i>x and x>47-i then h=-h+k w=w+l endifgoto"C"
label Dif m+21 > x and x > m-1 then h=-h color(0,0,0)frect(m,n,20,5) goto"A" endif
50非通知さん@アプリ起動中:04/02/29 13:05 ID:8URZdP+L
続き
label Cif input(0) and keysoft2 then exit endif
if x<2 then w=-w endifif y<2 then h=-h endifif 130<x then w=-w endifif 143<y then goto"E" endif
lock()color(0,0,0)frect(x,y,2,2)x=x+wy=y+hcolor(255,255,255)frect(x,y,2,2)
if scan=keyleft then i=i+7 endifif scan=keyright then i=i-7 endifcolor(2,3,242)line(47-i,134,73-i,134)
color(0,0,0)line(46-i,134,0,134)line(width,134,74-i,134)unlock(1)if 130<y and y<136 then goto"B" endif
if n-1<y and y<n+6 then goto"D" endifgoto "C"
label Ecolor(255,0,0)text("GAME-OVER",40,70)sleep(2000)goto"@"
51ezBASICの鬼:04/02/29 15:45 ID:jKYp4gm4
俺は神だってやつ降臨てくれー
出来る限りブロック崩しをバージョンアップして行きましょうや
52非通知さん@アプリ起動中:04/02/29 15:47 ID:m1zCd2eT
53ezBASICの鬼:04/02/29 17:07 ID:iev/LNFU
ブロック崩しを以下のように改良して逝こう!!
・残機機能をつける。(1アップもある)
・得点機能をつける。
・アイテムでパワーアップ出来るようにする。
てゆうかさあezBASICのスレちゃんと立てた方が良くない?

54ezBASIC見習い:04/02/29 17:46 ID:aaEU1FnG
鬼引退です。
教えてください。49さんの文の中で
if m+21 > x and x > m-1 then h=-h 〜 endif
という条件のif構文があったけど俺はイマイチandの使い方が分からん
それやってもいつも条件素道りされちゃうんだけど、なんかコツとかあるん?
それとorの使い方も知ってたら教えて
これの玉ってスピードとかはねかる角ってどうやって変えてんの??

5549:04/02/29 19:21 ID:8URZdP+L
5+i>x and x>iというのは両方満たすつまり
5+i>x>iということ。
orはわかんない

スピードはx軸ベクトルとy軸ベクトルそれぞれにランダムな変数を足す

56非通知さん@アプリ起動中:04/02/29 19:54 ID:iEqWqG5C
or は普通どちらかを満たすだが
57ezBASIC見習い:04/02/29 20:18 ID:AvjCoPW5
Thank's!ブロック崩しも色々付いてきたからニューばーじょんもうすぐうpできますわ。
58ezBASIC見習い:04/02/29 21:34 ID:BrfZcQsI
ブロックに点数と残機機能と1アップ付けました。
これを『1UP』というタイトルで保存せい。
color(A,A,A)text("残機:"+z,98,99)z=z+1x=x+500color(D,D,D)text("残機:"+z,98,99)
次にこれを『裏』というタイトルで保存ぜよ!
color(0,0,0)frect(0,0,132,144)color(255,255,255)rect(96,0,42,132)X=10+abs(rand)%76Y=10+abs(rand)%120W=4H=4
59非通知さん@アプリ起動中:04/02/29 22:01 ID:qBD27GnF
ezBASICについて語るスレになりました!!
60ezBASIC見習い:04/02/29 22:10 ID:CVyOABsJ
最後は好きなタイトルで保存してエエよ。点数は何故か最初から10点入っていて、その後1回死ぬ度に10点貰えるようになっちゃいました。
1アップは500点ごとにします。
x=500z=3label @
thread("裏","球")join("球")label A
m=abs(rand)%70n=9+abs(rand)%90color(0,0,0)text(""+h,98,36)h=h+10color(255,255,255)text("SCORE:",98,24)text(""+h,98,36)text("残機:"+z,98,99)color(155,200,255)frect(m,n,20,5)label B
l=rand%3k=rand%3if 58-i>X and X>32-i then H=k-H W=W+l endif
goto"C"label D
if m+21>X and X>m-1then H=-H color(0,0,0)frect(m,n,20,5)goto"A"endif
label C
if input(0)and keysoft2 then exit endif
if X<2then W=-W endif
if y<2then H=-H endif
if 88<X then W=-W endif
if 143<Y then goto"E"endif
if h=x then goto"a"endif
label !
lock()color(0,0,0)frect(X,Y,2,2)frect(32-i,134,26,3)X=X+W
Y=Y+H
color(255,255,255)frect(X,Y,2,2)if scan=keyleft then i=i+7endif
if scan=keyright then i=i-7endif
color(2,3,242)frect(32-i,134,26,3)unlock(1)if 130<Y and Y<136then goto"B"endif
if n-1<Y and Y<n+6then goto"D"endif
goto"C"label E
z=z-1if z=0then goto"Q"endif
goto"@"label Q
color(255,0,0)text("GAME-OVER",18,70)input (2000)exit
label a
A=0D=255thread("1UP","1")join("1")goto"!"
61ezBASIC見習い:04/02/29 22:16 ID:hIIIv0yP
え!?とうとうezBASICのスレに!?
祝!!「ezBASICについて語ろうよ…」で、いいんかな・・・?
つーかここの板立てた人はこれでいいのか?これじゃまるで・・・



ま、いっかーーーー!!!
62ezBASIC見習い:04/02/29 23:43 ID:xM4TzKfW
ブロック崩し自分でやったらバグの固まりでした・・・。
直せる神いたら宜しくオネガイシマス

/′
63非通知さん@アプリ起動中:04/03/01 07:17 ID:Ur3sjOhN
ezBasicってソース公開されてないんかな? 元々のiBasicはGPLだったはずだが。

ところでiBasicを504/505あたりで普通に動くようにするのは簡単なんだけど誰かやらないのかな?
64非通知さん@アプリ起動中:04/03/01 13:27 ID:y0Rzend8
ezBASIC専用
新プログラム『テニス』、ブロック崩しの応用。

『O』で保存。
color(0,0,0)frect(0,0,132,144)
label Aa=abs(rand)%144b=abs(rand)%144c=abs(rand)%144i=0
label Bif input(0) and keyselect then goto"C" endifi=i+25color(0,0,190)rect(i-90,a,25,0)
rect(i-130,b,25,0)rect(i-165,c,25,0)color(250,0,250)text("tennis0.10",37,80)color(170,170,255)
text("SELECT:play",35,100)text("RIGHT:右へ",35,115)text("LEFT:左へ",35,130)color(250,0,0)
if O=1 then text("lose",50,55) endifif O=2 then text("win",50,55) endifif i>320 then goto"A" endifgoto"B"label C
6549ブランド:04/03/01 13:30 ID:y0Rzend8
つぎに『B』で保存
label D
color(0,0,0)
frect(p,0,6,176)
p=p+3
if p>140 then goto"E" endif
goto"D"
label E
6649ブランド:04/03/01 13:33 ID:y0Rzend8
つぎに本体。
soft1("exit")
label Athread("O","p")join("p")thread("B","b")join("b")color(0,0,0)
frect(0,0,132,144)x=0y=72j=0w=rand%8h=5goto"C"
label Bl=rand%6k=rand%4if 7+i>x and x+22>i then h=-abs(h+k) w=w+l endifgoto"C"
label Dl=rand%10k=abs(rand)%2if 4+j>x and 16+x>j then h=abs(h+k) w=w+l endif
label Cif input(0) and keysoft1 then exit endifif x+66<2 then w=abs(w) endif
if y<0 then goto"F" endifif 130<x+66 then w=-abs(w) endifif 143<y then goto"E" endiflock()color(0,0,0)frect(x+66,y,2,2)
x=x+wy=y+hcolor(255,255,0)frect(x+66,y,2,2)color(0,0,0)line(i+47,134,73+i,134)
line(j+50,10,70+j,10)if scan=keyleft then i=i-7 endifif scan=keyright then i=i+7 endifif x+7>j then j=j+7 endif
if x+7<j then j=j-7 endifcolor(2,3,242)line(47+i,134,73+i,134)line(50+j,10,70+j,10)unlock(1)
if 124<y and y<140 then goto"B" endifif 1<y and y<13 then goto"D" endifgoto "C"label EO=1goto"G"
label FO=2
label G
goto"A"
6749ブランド:04/03/01 13:41 ID:y0Rzend8
つぎに本体。
soft1("exit")
label Athread("O","p")join("p")thread("B","b")join("b")color(0,0,0)
frect(0,0,132,144)x=0y=72j=0w=rand%8h=5goto"C"
label Bl=rand%6k=rand%4if 7+i>x and x+22>i then h=-abs(h+k) w=w+l endifgoto"C"
label Dl=rand%10k=abs(rand)%2if 4+j>x and 16+x>j then h=abs(h+k) w=w+l endif
label Cif input(0) and keysoft1 then exit endifif x+66<2 then w=abs(w) endif
if y<0 then goto"F" endifif 130<x+66 then w=-abs(w) endifif 143<y then goto"E" endiflock()color(0,0,0)frect(x+66,y,2,2)
x=x+wy=y+hcolor(255,255,0)frect(x+66,y,2,2)color(0,0,0)line(i+47,134,73+i,134)
line(j+50,10,70+j,10)if scan=keyleft then i=i-7 endifif scan=keyright then i=i+7 endifif x+7>j then j=j+7 endif
if x+7<j then j=j-7 endifcolor(2,3,242)line(47+i,134,73+i,134)line(50+j,10,70+j,10)unlock(1)
if 124<y and y<140 then goto"B" endifif 1<y and y<13 then goto"D" endifgoto "C"label EO=1goto"G"
label FO=2
label G
goto"A"
誰かもっとプログラム上げて。
68サイボーグ:04/03/01 16:29 ID:hkrFK5H/
テニスはとてもいいアイデアだったと思います。ただ、背景を緑にしたり
得点を計算して勝敗を決めるようになっていると良かったです。
(どちらかというとエアーホッケーっぽい?)(今度みんなでRPGを作っていこう!)
69見習い:04/03/01 16:45 ID:HI6PC8iR
糞時計↓なんとなくうp。。。
e=ampm if e=1then f=64else g=127endif
color(0,g,f+g*2)frect(0,0,132,144)label A
if input(0)and keysoft1 theb exit endif
lock()color(0,g,f+g*2)text("TIME_"+b,15,d)text(":"+c,57,d)text(":"+a,75,d)text(":"+i,93,d)if d>155then d=-5endif
i=millisecond
d=d+1c=minute
b=hourofday
color(f*3,f*3,f*3)text("TIME_"+b,15,d)text(":"+c,57,d)text(":"+a,75,d)text(":"+i,93,d)unlock(1)goto"A"
70非通知さん@アプリ起動中:04/03/01 20:59 ID:ga5z8JTs
iCとかezCホスィ…
71見習い:04/03/01 21:01 ID:49adFPuP
C言語ってどゆうの?
72非通知さん@アプリ起動中:04/03/01 23:06 ID:ga5z8JTs
>>71
http://www.kumei.ne.jp/c_lang/index_c.html

#include                  /* この行は必ず書く、と覚える */
main()                     /* 次からメインのプログラムですよ */
{                         /* 中カッコの中がプログラム本体 */
printf("hello, world\n");   /* hello, world と表示して改行する */
}


みたいな。覚えやすい。構造化で理解しやすい。
73非通知さん@アプリ起動中:04/03/01 23:07 ID:ga5z8JTs
stdio.hがなかった
74見習い:04/03/01 23:44 ID:sSBZux88
ほほう。俺は猫好きだからそそられるページでしたよ。Cってのはなんとなく
簡単というイメージがありましたが、やはりちょっとページを覗いて来て
BASICより簡単そうということが分かりましたよ。
でも俺はとことんパソコン音痴だから、パソコンで何かやろうとすると
必ず出来ずじまい。。。
この間もJAVAやりたかったのに4000円もかけたのに環境設定で終了!
誰か教えてくれー!!(やり方が書いてあるページはサンザン見たので紹介はいらんです)
75非通知さん@アプリ起動中:04/03/02 15:25 ID:T4+Iva7x
>>74
 環境設定が出来ましたか?ならば、とにかくプログラムを書くのみです。
簡単なプログラムを書きつづけることで、複雑なプログラムを構成できます。
最初はエラーが出まくっても、それを1つずつ潰していってはじめてプログラムが
完成します。冷酷に聞こえるかも知れませんが、とにかく書くのみです。
76見習い:04/03/02 15:50 ID:fdlv7W9E
吸いません…時間が無い…
77見習い:04/03/02 16:21 ID:2/1f60vy
携帯に雪が降ります。積もったらセンターキーで除雪できますぜ。
soft1("Exit")label c
b=0d=0c=0h=0color(128,128,128)frect(0,0,132,176)label ccc
a=abs(rand)%132label loop
if input(0)and keysoft1 then exit endif
if input(0)and keyselect then goto"f"endif
lock()color(128,128,128)farc(a+x,y,8,8)srand()x=x+i i=rand%3w=abs(rand)%140if x<w+5 then y=y+2 endif
color(255,255,255)farc(a+x,y,8,8)unlock(1)if y>136-t then y=0 goto"ddd"endif
goto"loop"input()label ddd
t=t+3color(255,255,255)frect(0,144-t,132,3)goto"ccc"label f
text("除雪!",51,78)goto"a"label a
vib(100,1)b=b+pow(2,2)c=c+1color(255,255,0-d-h*2)farc(60-b*2,143-t-c*2,b*4,c*4)t=0color(255,127-h,0-d-h*2)farc(61-b,144-t-b,b*2,b*2)clear(0,144-t,132,144)h=h-4if h=-120then d=1endif
if h=-128then goto"c"endif
goto"a"
昔のだからコード汚いス…
78見習い:04/03/02 16:34 ID:2/1f60vy
ただ押した方向に図形が動き続けるプログラム。これ応用して誰かなんか作って!
label a
a=scan
color(255,255,255)lock()rect(b+61,c+67,10,10)c=c-2if a=keyleft then goto"b"endif
if a=keyright then goto"c"endif
if a=keydown then goto"d"endif
color(0,0,0)rect(b+61,c+67,10,10)unlock(1)goto"a"label b
if input(0)and keysoft1 then exit endif
a=scan
color(255,255,255)lock()rect(b+61,c+67,10,10)b=b-2if a=keyup then goto"a"endif
if a=keyright then goto"c"endif
if a=keydown then goto"d"endif
color(0,0,0)rect(b+61,c+67,10,10)unlock(1)goto"b"label c
a=scan
color(255,255,255)lock()rect(b+61,c+67,10,10)b=b+2if a=keyup then goto"a"endif
if a=keyleft then goto"b"endif
if a=keydown then goto"d"endif
color(0,0,0)rect(b+61,c+67,10,10)unlock(1)goto"c"label d
a=scan
color(255,255,255)lock()rect(b+61,c+67,10,10)c=c+2if a=keyup then goto"a"endif
if a=keyleft then goto"b"endif
if a=keyright then goto"c"endif
color(0,0,0)rect(b+61,c+67,10,10)unlock(1)goto"d"
79見習い:04/03/02 16:56 ID:R42MA0cs
ezBASICのすれ立てました。ezBASICの人はちゃんとそっちへ移行ね
80見習い:04/03/02 16:58 ID:R42MA0cs
81非通知さん@アプリ起動中:04/03/02 17:38 ID:uUUzEOPt
意味無しage
82非通知さん@アプリ起動中:04/03/10 21:40 ID:LAZwfw8G
ezBASICの人ですがスレがなくなってるので、ここにカキコさせてもらいます。
有名なhit & brow を作りました。長いんでUPしました。
ttp://uploader.org/normal/data/up2810.txt
83非通知さん@アプリ起動中:04/03/12 20:47 ID:Sh3UZxD+
自分もこれでゲームとか作れるようになりたいんですが…プログラミングとか全然したことなくて、全く分かりません!どうやって勉強すればいいんですかね?本とか売ってる?
84非通知さん@アプリ起動中:04/03/13 00:22 ID:Xs9wY1fH
ジャバの本もCの本も売ってる 多分i/ezBASICはCににてると思う
85非通知さん@アプリ起動中:04/03/13 06:34 ID:0KiSV1He
じゃあC言語の本買えばいんですね?ありがとうございますm(_ _)m
86非通知さん@アプリ起動中:04/03/13 16:20 ID:XiNWcXRX
0から覚えるならJava覚えたほうがよさそうな・・
87非通知さん@アプリ起動中:04/03/15 16:48 ID:mXSYMKW6
SFCave for ezBASICの自キャラに残像をつけることは出来ませんか?
88見習い:04/03/18 17:14 ID:7LvF7PzU
>>87
残像をつけると言うのは10個以上の中塗短形を同時に動かすという事になり、結果動作が重くなって
ゲームとして成立しなくなります。あの程度でも結構ギリギリの動作なのです。
>>83
これは特に本はいりません。第一ezBASICは何かの本を見て出来るものではありません。
ezBASICは他とは別の言語。と思った方がいいと思います。私も初めてのプログラミングがezBASICであり、その当時はプログラミングどころか、
パソコンの知識すら全く無かったわけですし、それでもあそこまでできるようになったのだから本は必要ないと思います。
89非通知さん@アプリ起動中:04/03/20 10:59 ID:aUhECLwR
> 短形

(´・ω・`)
90非通知さん@アプリ起動中:04/03/20 15:28 ID:XRwfSH46
矩形(くけい)ですね
91見習い:04/03/20 20:30 ID:LbUf67e0
お恥かしい…
92ta-ko:04/03/20 21:42 ID:SvEA9lea
プログラム初心者です。知識ゼロでアプリの説明ページだけ見て作ったんで、
どっかおかしいかも。
プログラム名:「factoring-program」
内容:任意の数xを素因数分解します。EDITでxに適当な数を代入してください。
   5桁程度ならすぐに分解できます。素数だと時間がかかりますが。
   また、進行状況を%で表示します。
欠点:2の累乗の場合のみ、最後に1が表示されてしまいます。
x=12345 s=30
text("factoring…",2,14)
text(x,77,14)
line(0,15,150,15)
rect(105,24,2,100)
for p=0 to 25 step 5 text(p*4,112,32+4*p) next text("%",122,144)
label 0 if x-x/2*2=0 then text(2,3,s) x=x/2 s=s+12 goto 0
else t=3 goto 1
label 1 if t*t<=x and x-x/t*t=0 then text(t,3,s) x=x/t s=s+12
goto 1 else if t*t>x then text(x,3,s) frect(105,24,2,100) led(1,800,1) sleep(1)
else frect(105,24,2,t*t*100/x) t=t+2 goto 1 endif input()
93見習い:04/03/21 01:30 ID:eLKpbhrT
x=12345 s=30
text("factoring…",2,14)
text(x,77,14)
line(0,15,150,15)
rect(105,24,2,100)
for p=0 to 25 step 5 text(p*4,112,32+4*p) next text("%",122,144)
label 0 if x-x/2*2=0 then text(2,3,s) x=x/2 s=s+12 goto 0
else t=3 goto "1"
label 1 if t*t<=x and x-x/t*t=0 then text(""+t,3,s) x=x/t s=s+12
goto "1" else if t*t>x then text(""+x,3,s) frect(105,24,2,100) led(1,800,1) sleep(1)
else frect(105,24,2,t*t*100/x) t=t+2 goto "1" endif input()


これで動きます。役に立っていいですね。けっこうezBASICやってるひといるんですね。

94ta-ko:04/03/21 13:24 ID:fgFSPOD/
>見習いさん
「goto 1」は「goto "1"」に変えなくても動きませんか?
gotoと数字との間を1つ空ければ大丈夫なはず。数字でないとだめですけど。
ちなみに数字の後はくっつけて書いても大丈夫なんで、アルファベットとかより
文字数が1文字稼げます。labelの場合も同じです。
それから「text(t,3,s)」を「text(""+t,3,s)」に変える意味はあるのですか?
右にずらすだけなら、3を8くらいに変えるだけで済むと思うのですが・・・。
最後にもうひとつ質問です。(質問ばっかですいません)
どういうわけか、はじめから入っているプログラムのうち、
「Lineart」と「Gradation」と「bouncer-demo」EDITできない(強制終了する)
んですけど、そちらもそうなりますか?仕様ですかね。
95ta-ko:04/03/21 13:52 ID:fgFSPOD/
ついでにもう1つ投稿。
プログラム名:「遊飛行」
内容:敵からひたすら逃げます。敵に攻撃することもできますが、
   敵は不死身なので死にません。どこまでも追ってきます。
   つかまるとゲームオーバーとなり、得点が表示されます。
操作方法:↑↓→←で移動、決定キー?で攻撃。
     (裏技:♯キーでワープ)
欠点:重いです。いろいろつけたら重くなりました。
   あと500文字ぎりぎりなんでちょっと心配。僕のは動きました。
frect(0,0,150,150)soft1("脱出!")a=60b=72p=10q=10i=2048label
0lock()a=a+x b=b+y p=p+m*3q=q+n*3text("■",a-x,b-y)text("あ",a,b)x=0y=0text("■
",p-m*3,q-n*3)text("い",p,q)m=(a-p)/abs(a-p)n=(b-q)/abs(b-q)unlock(1)s=s+10t=scan
if abs(a-p)*abs(b-q)<9then vib(999,2)goto i/2else goto t/i label 32x=-9y=0goto
0label 64y=-9x=0goto 0label 128x=9y=0goto 0label 256y=9x=0goto 0label 512for
t=1to 5text("う",a,b-t*10)text("■",a,b-t*10)next goto 0label
1024soft2(s)sleep(999)exit label 1text("■",a,b)a=120-a b=135-b goto 0

「あ」の部分に自機を、「い」の部分に敵を、「う」の部分に攻撃のための弾を
表すような適当な記号を入れてください。ちなみに僕の場合はそれぞれUFO、宇宙人、
花火みたいなやつを入れました。それからp=p+m*3q=q+n*3の3の部分を6とか9とか
に変えることで難易度調整できます。(3の倍数でないとだめです)
96見習い:04/03/22 17:16 ID:Lp+dpI7o
EDITはできません。仕様です。
97非通知さん@アプリ起動中:04/03/31 15:17 ID:u1kPPHBZ
age
98非通知さん@アプリ起動中:04/04/06 16:48 ID:rRGIGww5
age
99非通知さん@アプリ起動中:04/04/06 17:11 ID:G1hSWF0q
使ってみたいけど漏れのSH505iじゃダウンロードすらできない・・・
裏山すぃ〜
100非通知さん@アプリ起動中:04/04/06 17:44 ID:EDYRROLp
いや!!isだな!!
101非通知さん@アプリ起動中:04/04/06 17:45 ID:EDYRROLp
出来るだろ!!Dは最悪だが!!車も最悪だな身潰!!
10299:04/04/06 19:45 ID:Jgr/sJ6M
ダウンロードを選択しても、ページトップに飛んでループ
するだけなんだよね〜
機体は11月製造Verで、2chで報告のあったほとんどの
バグ(電池のゆるみまでも!)が解決されてるのはあり
がたいんだけど、iBASIC以外にも落とせないソフトがい
くつかあるから仕様なのかな?
あ〜書き込んでるとよけい使いたくなってきた!
103非通知さん@アプリ起動中:04/04/08 08:28 ID:++i/c6CE
>>99
iBasicが504以降の機種で動かないことがある現象ならすぐ直せたんだが…
ベタに直しただけのやつを出しても意味がないかと思って公開してない。
104非通知さん@アプリ起動中:04/04/08 23:22 ID:p3Nsk7Sv
>>103
作者さんですか?
105非通知さん@アプリ起動中:04/04/14 00:24 ID:sBE0gvFv
ベーシックおもしれ―けどおすぇー!!
106非通知さん@アプリ起動中:04/05/02 18:46 ID:LbQDJ2t4
★BASICは40歳
http://ex4.2ch.net/test/read.cgi/news/1083304396/

"プログラミング言語BASICが明日5月1日に40歳の誕生日を迎える。プログラミング入門言語や初期のNEC98
シリーズのシェルとしてお世話になったスラド読者も多いだろう。読者諸兄のBASICにまつわる思い出や、
40歳になったことに対する祝いの言葉などを聞かせて欲しい。"

BASIC小史 や e-kiyo.lab. BASIC研究所 と言ったサイトによれば、BASIC は Dartmouth 大学の2人の数学者
John G. Kemeny と Professor Thomas Kurtz によって開発され、1964年5月1日にはじめてTSSシステム
(General Electric GE-225)上で実行されたそうだ。

http://slashdot.jp/articles/04/04/30/0459221.shtml?topic=58
107遊軍:04/05/04 08:51 ID:6zOWhzf4
BASICの当時の盛況振りを知りたければ内田裕也の十階のモスキート参照。

10 CLS
20 PRINT"**"
30 GOTO 20
40 END
(これはPC用なので使えません。念のため)

108非通知さん@アプリ起動中:04/05/17 14:50 ID:u5jjp1rZ
109非通知さん@アプリ起動中:04/05/19 16:33 ID:cbmFpjec
age
110非通知さん@アプリ起動中:04/06/19 17:35 ID:ebehmFxm
505で動かねー
作者サソ505にも対応してけれー!!
ちなみに当方p505isです

&age
111非通知さん@アプリ起動中:04/06/21 13:25 ID:YUHtpOH+
age
112非通知さん@アプリ起動中:04/06/24 23:16 ID:gjsUwzhB
113110:04/06/26 00:46 ID:0Q7Rq6MN
>>112
おお!サンクス!!
作ってくれていた人がいたのですねー
動作も完璧です

でも全然書けない(´・ω・`)ショボーン
うおお勉強だぁぁあ!!(`・ω・´)
114非通知さん@アプリ起動中:04/07/03 23:24 ID:N3NjB35G
的当てです。改行の必要はありません。…なにがしたいんだこれ……
Z=20Y=38X=32rect(110,55,11,33)label 1lock()color(255,255,255)frect(20,30,89,110)if B=0then line(X,100,X,108)if X>=100then a=1endif
if a=1then X=X-5endif
if X<=32then a=0endif
if a=0then X=X+5endif
else if B=1then line(30,Y,38,Y)if Y>=106then a=1endif
if a=1then Y=Y-5endif
if Y<=38then a=0endif
if a=0then Y=Y+5endif
else if B=2then frect(112,87-I,8,I)if I>=30then a=1endif
if a=1then I=I-2endif
if I<=0then a=0endif
if a=0then I=I+2endif
endif
endif
endif
color(0,255,0)line(X,100,X,108)line(30,Y,38,Y)color(255,0,0)frect(112,87-I,8,I)if pow(66-X,2)+pow(Y-72,2)<=pow(5+Z/2,2)and Z<=0then B=4color(0,0,255)else color(255,0,0)endif
farc(61,77,10,10)A=scan
if A=keyselect then B=B+1else if A=key1 then end endif
endif
if B=3then J=J+1Z=Z-J/6color(255,128,0)farc(X-Z/2,Y-Z/2,Z,Z)endif
unlock(1)yield()goto 1
115非通知さん@アプリ起動中:04/07/04 10:49 ID:g4lyc+so
的当て修正版です。
Z=20Y=38X=32rect(110,55,11,33)color(255,0,0)farc(61,67,10,10)label 1lock()A=scan
if A=keyselect and B<3then B=B+1else if A=key1 then end endif
endif
color(255,255,255)if B=0then line(X,100,X,108)if X>=100or X<=32then a=a+1endif
X=X+5*(-1+(a%2)*2)color(0,255,0)line(X,100,X,108)unlock(1)yield()goto 1else if B=1then line(30,Y,38,Y)if Y>=106or Y<=38then b=b+1endif
Y=Y+5*(-1+(b%2)*2)color(0,255,0)line(30,Y,38,Y)unlock(1)yield()goto 1else if B=2then frect(112,87-I,8,I)if I>=30or I<=0then c=c+1endif
I=I+2*(-1+(c%2)*2)color(255,0,0)frect(112,87-I,8,I)unlock(1)yield()goto 1endif
endif
endif
if B=3then frect(20,30,89,110)endif
if pow(66-X,2)+pow(Y-72,2)<=pow(5+Z/2,2)and Z=1then color(0,0,255)text("当り!",51,34)H=1else color(255,0,0)H=0endif
if Z=1and H=0then text("ハズレ!",51,34)endif
farc(61,67,10,10)if B=3then J=J+1Y=Y+J/(I/3)Z=Z-J/6if Z<0then B=4Z=1endif
color(255,128,0)farc(X-Z/2,Y-Z/2,Z,Z)endif
unlock(1)yield()goto 1
116非通知さん@アプリ起動中:04/07/04 10:52 ID:g4lyc+so
ちなみにezBASICのほうです。
117非通知さん@アプリ起動中:04/07/04 11:04 ID:2WV+Jpgo
>>116
先に言うてくれ…
iでやってめちゃエラー吐かれた_| ̄|○
118非通知さん@アプリ起動中:04/07/04 11:07 ID:g4lyc+so
*操作方法*
・左右に動くやつでX座標を指定
・同じ要領で上下の方でY座標を指定
・最後に力メータを止めて力を決める
・投げ出されたボールが円内に入っているかを判定してくれます。・これらの操作はすべてセンターキーで行います。
119非通知さん@アプリ起動中:04/07/04 19:21 ID:g4lyc+so
高速化しました。labelとgotoってこんな風にも使えるんですね。
操作方法は変わりません。
Z=20Y=38X=32rect(110,55,11,33)color(255,0,0)farc(61,67,10,10)label 4lock()A=scan
if input(0)and keyselect and B<3then B=B+1else if A=key1 then end endif
endif
color(255,255,255)goto B
label 0line(X,100,X,108)if X>=100or X<=32then a=a+1endif
X=X+5*(-1+(a%2)*2)color(0,255,0)line(X,100,X,108)unlock(1)yield()goto 4label 1line(30,Y,38,Y)if Y>=106or Y<=38then b=b+1endif
Y=Y+5*(-1+(b%2)*2)color(0,255,0)line(30,Y,38,Y)unlock(1)yield()goto 4label 2frect(112,87-I,8,I)if I>=30or I<=0then c=c+1endif
I=I+3*(-1+(c%2)*2)color(255,0,0)frect(112,87-I,8,I)unlock(1)yield()goto 4label 3frect(20,0,89,144)L=pow(66-X,2)+pow(Y-72,2)if L<=25and Z=1then color(0,0,255)text("当たり!",45,34)H=0else color(255,0,0)H=1if L<=64and Z=1then H=2endif
endif
if Z=1then if H=1then text("ハズレ!",51,34)else if H=2then text("惜しい!",45,34)endif
endif
endif
farc(61,67,10,10)if M=0then J=J+1Y=Y+J/(I/3)Z=Z-J/6if Z<0then Z=1M=1endif
color(255,128,0)farc(X-Z/2,Y-Z/2,Z,Z)endif
unlock(1)yield()goto 4
120非通知さん@アプリ起動中:04/07/20 09:00 ID:Vu3H2Jff
保守
121非通知さん@アプリ起動中:04/07/20 09:03 ID:Vu3H2Jff
iBASICで円(楕円でもいいけど)の描き方わかる人がいたら、教えて下さい。
やっぱ円の関数組むのは無理なんだろうか。
122非通知さん@アプリ起動中:04/07/28 14:27 ID:W478TtYK
iBASIC か ezBASIC を
Java 2 SDK Standard Edition Version 1.3.1
を入れないで win で動かせるソフトを作ってください
123非通知さん@アプリ起動中:04/07/28 15:40 ID:8gBe0RxL
>>122
( ゚д゚)ポカーン
124非通知さん@アプリ起動中:04/07/28 15:54 ID:W478TtYK
>>123
入れないとダメでしたか
125非通知さん@アプリ起動中:04/07/28 15:57 ID:W478TtYK
いやポカーンだけでは意味がわからん
何がいいたいの?
126非通知さん@アプリ起動中:04/07/28 16:01 ID:W478TtYK
普通に考えて
PCで動かしたいと
書けばよかった
知識が中途半場にあるとダメだ orz
127非通知さん@アプリ起動中:04/07/28 20:12 ID:5AXdYqrc
中途半端というのもおこがましい
128非通知さん@アプリ起動中:04/07/29 14:59 ID:+uZpRBv2
>>122
素直にJDK入れろ
129非通知さん@アプリ起動中:04/07/30 23:34 ID:ggQ3PSiq
ezBASICでなくiBASICのプログラムを
なんでもいいからうpしてくれー
神サマ〜〜〜〜〜〜〜〜〜
130非通知さん@アプリ起動中:04/07/31 08:44 ID:K8uaiIRH
もう似たようなソフトを作って
PCでも動けるソフト作って
関連本売ったりしてください
おねがいします。頼みます
この通りです。
名前は iScript とかいいかもしれません
お願いします。
そして打倒HSPですよ
携帯関連だから、利用人口爆発的に増えますよ
PCの人も使い出しますよ
みんなが皆うはうはですよ
最近ブーム?のプログラムを日本語化とかしちゃって
もいいかもしれませんし
お願いします。頼みます。
もう我慢できないんです
131非通知さん@アプリ起動中:04/07/31 09:47 ID:H4YVfuxv
>>121
ttp://www2.starcat.ne.jp/~fussy/algo/algo2-1.htm
解説が難しかったら、一番下にあるCのソースを移植すれ。
132129:04/07/31 09:57 ID:efoEoTJI
iBASICで i++ というのはどのようにすれば
いいのでしょうか?
133129:04/07/31 10:49 ID:efoEoTJI
誰か…iBASICを講座してください!
134非通知さん@アプリ起動中:04/07/31 11:58 ID:WwpSc9nT
俺も講義してほしい!
yasu氏のところでez版ダウソしたんだけど、まず何をしていいのかわからん…
とりあえず、説明を全部ノートに写して(PCないので)さぁやるぞ!って思ったんだけど、書いてあることの意味がわかんない…
誰か教えてもらえませんでしょうか?お願いします
135非通知さん@アプリ起動中:04/07/31 13:38 ID:h1PlK/pj
>>1のPC用の「iBASIC 開発ガイド」が
詳しく書いてあるのでそこを見るといいかもしれません
PC用ですが、画像とか使ってないので最新機種なら見れるかも
自分は携帯を持ってないので確認がとれないです
ezBASICもある程度似てるかもしれません
136129:04/07/31 15:10 ID:efoEoTJI
>>135
レスサンクスッス
見てみたのですがあまり分からなくて
でも>>9のezBASICのプログラムをいじってたら
こんなのができました ちなみに俺はiBASICの方です
soft1("Exit")
text("座標(x,y)",0ascent)
j = i = 0
n = m = 0
label loop
if input(0) and key soft1 then
exit endif
if scan = key4 then i = i + 3
endif
if key6 = scan then i = i - 3
endif
if scan = key2 then m = m + 3
endif
if key8 = scan then m = m - 3
endif
lock()
color(255,255,255)text("@",60-j,60-n)
color(255,255,255)text(x+","+y,70,10)
j = i
n = m
x = 60-i
y = 60-m
color(0,0,0)
text(x+","+y,70,10)
color(255,0,0)text("@",60-j,60-n)unlock(1)goto "loop"
@を動かして座標を表示させるもんです
137非通知さん@アプリ起動中:04/08/01 01:29 ID:DZaywA7Z
>>134
君のレスみてやる気が出てきたよ
俺の環境は携帯解約したけどezBASICを入れていて
作れる環境があるから俺も今から
プログラムをノートに書いて覚えてみる
やる気を与えてくれてありがとう
138134:04/08/01 07:17 ID:zXtmUTub
>>137
今、自分は最初に入ってるhello,world!プログラムをちょっとずついじって遊んでます。
頑張りましょう!
139129:04/08/01 22:18 ID:uqKqB7i8
だれかezBASICをiBASIC vol.2として移植してくれ
iBASICのプログラムが何ひとつなくつまらんし
いろんな機能がついていて羨ましい。
140137:04/08/01 23:46 ID:0UdIgOmZ
改行ができないからか、もうこれ以上プログラムが
携帯電話に打てない orz
>>134
俺のぶんまで頑張って…
141137:04/08/02 05:20 ID:4OxR04cB
http://up.isp.2ch.net/up/2662bcff1835.zip
まとめというか、今まででたプログラムをhtmlにしてみた
142非通知さん@アプリ起動中:04/08/02 07:17 ID:F1N6ZJxr
>>139
やってみればわかると思うが ezBASIC のプログラムもつまらんぞ。
143うんこ:04/08/04 16:23 ID:OYIMOsH+
なんちゃってマリオ。ジャンプは5終了は1。
color(0,255,255)frect(0,0,132,144)y=120A=111311112321122101111234324555540001002215555label 0lock()color(0,255,255)for B=X to X+7C=substr(A,B,1)frect(B*20-x,144-C*20,20,20)next
farc(40,y-30,20,20)frect(40,y-20,20,20)D=scan
X=x/20if D=keyright and x<746and R=0then x=x+5else if D=keyleft and x>4and L=0then x=x-5else if D=key1 then end endif
endif
endif
L=0R=0if D=key5 and J=1then E=8endif
B=X+3C=substr(A,B,1)if 60>B*20-x and x%20=5and y>144-C*20and y<184-C*20then x=x-(60-B*20+x)R=1endif
B=X+1C=substr(A,B,1)if B*20-x>20and x%20=15and y>144-C*20and y<184-C*20then x=B*20-20L=1endif
J=0z=3-(20-x%20)/20if E>0then y=y-E*2E=E-1for B=X+2 to X+z C=substr(A,B,1)if C>0and y<=164-C*20and y>144-C*20then y=184-C*20E=0endif
next
else y=y+10for B=X+2 to X+z C=substr(A,B,1)if C>0and y>=144-C*20and y<184-C*20then y=144-C*20J=1endif
next
endif
color(128,0,0)for B=X to X+7C=substr(A,B,1)frect(B*20-x,144-C*20,20,20)next
color(255,0,0)farc(40,y-30,20,20)color(0,0,255)frect(40,y-20,20,20)unlock(1)yield()goto 0
144うんこ:04/08/04 16:27 ID:OYIMOsH+
なんちゃって落ち物(BREWにあったカンパズ)。の背景部分。1という名前で保存してね。ちなみにマリオもこれもezだよ。
frect(0,0,132,144)color(255,255,255)rect(2,19,77,122)rect(32,4,17,15)text("HISCORE",84,28)text(1000,108,42)text("SCORE",84,60)text(0,126,74)text("LV",84,110)text(1,126,124)
color(0,0,0)line(33,19,48,19)H=10A=11111111B=11111111C=21111111D=11111111E=11111111F=C
145うんこ:04/08/04 16:30 ID:OYIMOsH+
これが本体。ブロックが積もるだけ。この2つのプログラムのすごいとこに気づく人はいるかな?
thread(1,0)gosub 11x=3label 0z=y+1G=scan
gosub x if G=keydown or H=0and y=7or substr(F,z,1)=2then x=3y=0gosub 11gosub 3F=F+pow(10,7)H=10gosub 8endif
lock()color(0,0,0)frect(x*15-11,21+y*15,14,14)z=y+1if G=keydown or H=0and y<7and substr(F,z,1)=1then F=F-pow(10,7-y)gosub x+5y=y+1F=F+pow(10,7-y)gosub x+5H=10endif
if x<5then gosub x+1if G=keyright and substr(F,y,1)=1then gosub x F=F-pow(10,7-y)gosub x+5x=x+1gosub x F=F+pow(10,(7-y))gosub x+5else gosub x endif
endif
if x>1then gosub x-1if G=keyleft and substr(F,y,1)=1then gosub x F=F-pow(10,7-y)gosub x+5x=x-1gosub x F=F+pow(10,7-y)gosub x+5else gosub x endif
endif
H=H-1if G=key1 then end endif
color(I*63,J*63,K*63)frect(x*15-11,21+y*15,14,14)unlock(1)goto 0label 1F=A
return label 2F=B
return label 3F=C
return label 4F=D
return label 5F=E
return label 6A=F
return label 7B=F
return label 8C=F
return label 9D=F
return label 10E=F
return label 11l=abs(rand)%5I=substr(44002,l,1)J=substr(04402,l,1)K=substr(00042,l,1)return
146非通知さん@アプリ起動中:04/08/05 22:18 ID:Gj6hpDzf
voda 用ある?
147非通知さん@アプリ起動中:04/08/06 01:45 ID:lm6h915X
>>132
i++ は i = i + 1
i-- は i = i - 1
148うんこ:04/08/06 18:56 ID:AGnJbdf7
>>140前の字が数字か"か)の時は改行いらないよ〜。改行できないなら代わりにスペースでもοκだよ〜
149うんこ:04/08/06 18:58 ID:AGnJbdf7
ezだよ〜…
150137:04/08/06 19:25 ID:2QIOiqo8
>>148
ありがとう
背景部分を試してみたよ
俺の携帯画面QVGAじゃないから
画面のサイズが合わなかったけど
表示されて嬉しかった
最後は input() で止めて見たり
text("Hello, world!",4,28) input()
で書いて見たりしている状況です

携帯新しく変えるまで
今ある携帯電話で色々してみます
151うんこ:04/08/06 22:43 ID:AGnJbdf7
あのプログラムはQVGAじゃないですよ。俺のケータイが132*144だからちょっとはみ出ただけだと思うよ。よかったら背景だけじゃなくて本体も一緒に動かしてくれ。動き遅いけど…
152うんこ:04/08/06 22:45 ID:AGnJbdf7
てゆうか修正版です。タイトルは1で保存してください。
soft1("♪")soft2("STOP")frect(0,0,132,144)color(255,255,255)rect(2,19,77,122)rect(32,4,17,15)text("HISCORE",84,16)text("SCORE",84,50)text("LEVEL",84,130)text(1000,108,30)text(0,126,64)text(1,126,144)
color(0,0,0)line(33,19,48,19)A=11111111B=11111111C=21111111D=11111111E=11111111H=10F=C
Q=44002R=04402S=00042M=2+rand%3L=2+rand%3I=substr(Q,L,1)J=substr(R,L,1)K=substr(S,L,1)N=substr(Q,M,1)O=substr(R,M,1)P=substr(S,M,1)
153うんこ:04/08/06 22:46 ID:AGnJbdf7
これのタイトルは2ですよ。
M=2+rand%3L=2+rand%3I=substr(Q,L,1)J=substr(R,L,1)K=substr(S,L,1)N=substr(Q,M,1)O=substr(R,M,1)P=substr(S,M,1)
if substr(C,0,1)=2then color(223,223,223)text("GAME OVER",13,79)text("GAME OVER",13,77)text("GAME OVER",12,78)text("GAME OVER",14,78)color(0,0,0)text("GAME OVER",13,78)input()thread(1,7)join(7)C=11111111F=C
endif
154うんこ:04/08/06 22:49 ID:AGnJbdf7
実行するときは他の2つはいじらずにこれだけを実行してください。タイトルは好きな名前でいいよ。
thread(1,0)x=3label 0z=y+1G=scan
gosub x if G=keydown or H=0and y=7or substr(F,z,1)=2then thread(4,3)join(3)x=3y=0gosub 3F=F+10000000H=6gosub 8endif
lock()color(0,0,0)frect(x*15-11,21+y*15,14,14)z=y+1if G=keydown or H=0and y<7and substr(F,z,1)=1then F=F-pow(10,7-y)y=y+1F=F+pow(10,7-y)gosub x+5H=6endif
if x<5then gosub x+1if G=keyright and substr(F,y,1)=1then F=F+pow(10,7-y)gosub x+6gosub x F=F-pow(10,7-y)gosub x+5x=x+1else gosub x endif
endif
if x>1then gosub x-1if G=keyleft and substr(F,y,1)=1then F=F+pow(10,7-y)gosub x+4gosub x F=F-pow(10,7-y)gosub x+5x=x-1endif
endif
H=H-1if G=key1 then end endif
color(I*63,J*63,K*63)frect(x*15-9,23+y*15,12,12)color(N*63,O*63,P*63)frect(x*15-11,21+y*15,12,12)unlock(1)goto 0label 1F=A
return label 2F=B
return label 3F=C
return label 4F=D
return label 5F=E
return label 6A=F
return label 7B=F
return label 8C=F
return label 9D=F
return label 10E=F
return
155137:04/08/06 23:58 ID:4afWIli+
>>151
試してみました
やはりプログラムは全て入りませんでした orz
携帯電話がC3001Hとかなり古いのが
いけなかったのかも知れません
156非通知さん@アプリ起動中:04/08/09 13:55 ID:x0DtoPPa
age
157うんこ:04/08/15 15:09 ID:+PKDEThD
誰も気づかないから自分で言うけどマリオとカンパズには実は配列を使ってるんだよーん。
ezBASICに配列は無いからsubstrを使って作りました。結構すごいことやってると思ってるんだが、どうかな?
注)配列…JAVAでは配列を持つ変数を宣言すると、その配列の任意の位置の数字やら文字やらを呼び出せる。
(例)
A={5,12,9,7,54,0};
と宣言すれば
B=A[4];
としたときにBに配列の5番目の54が代入される。
158うんこ:04/08/15 16:55 ID:+PKDEThD
昔作ったいろんな意味で汚いゲーム「W.C.」です。
うんこが飛び散る前にトイレットペーパーでおしりを拭くというもの。要はひたすらセンターキーを連打すればいいのです。
まずはこれを時計というタイトルで保存。
label l
sleep(1000)color(192,0,0)farc(6,v+2,4,6)farc(4,v+6,8,6)farc(2,v+10,12,6)v=v+16if v>64 then M=1goto"z" endif
goto"l"label z
color(128,0,0)m=m+1w=abs(rand)%132y=abs(rand)%100farc(w,y+30,4,6)farc(w-2,y+34,8,6)farc(w-4,y+38,12,6)if m>30 then input()end endif
goto"z"
159うんこ:04/08/15 16:57 ID:+PKDEThD
これが本体です。タイトルはW.C.。
とても下らないけど遊んだり改造したりしてみてね!
soft1("両手")soft2("禁止!!")for A=0 to 17lock()color(255,255,255)text("READY...",132-f,70)f=f+5color(0,0,0)text("READY...",132-f,70)unlock(1)yield()next
sleep(1000)color(255,255,255)text("READY...",42,70)for A=0 to 19lock()color(255,255,255)text("GO!!",54-g,70)g=g+4color(128,0,0)text("GO!!",54-g,70)unlock(1)yield()next
label a
thread("時計",0)lock()color(255,255,255)frect(-30,-20,162,164)origin(30,20)arc(a,20+a,b,b)line(25,20+a,55,20+a)line(25,70-a,55,70-a)arc(30+a,20+a,b,b)d=d+1b=50-a*2
color(0,0,0)arc(a,20+a,b,b)line(25,20+a,55,20+a)line(25,70-a,55,70-a)clear(25,21+a,30,b-1)arc(30+a,20+a,b,b)arc(50,40,10,10)color(192,128,0)farc(51,41,9,9)unlock(1)label b
if input()and keyselect and M=0then c=c+1 endif
if a>19then goto"c"endif
if c>d*30then a=a+1goto"a"endif
goto"b"label c
kill(0)frect(25,41,30,9)farc(21,41,9,9)color(0,0,0)arc(50,40,10,10)color(128,0,0)text("うんこを拭き取れマシタ。",-18,10)sleep(2800)
160129:04/08/17 22:43 ID:myDa6ZG/
鬼ごっこみたいなゲームつくりたいんだけど
逃げる人を操作するような奴は>>136でいいんだけど
逃げる人を追っかける 鬼をどうやってつくりゃあいいにか
おれにゃあ分からん 座標からひいても斜め下にさがって
逃げる人を操作できない
うんこさん!! 教えてくれ!!
161うんこ:04/08/18 00:36 ID:blY+T38j
大したもんじゃないけど…
操作方法…「俺」は数字キーに対応した向きに移動可。終了はセンターキー。文字の大きさとかに合わせて自分で調整してね。
label 1E=0D=3X=60Y=66x=0y=0color(255,255,255)frect(0,0,132,144)label 0A=scan
lock()color(255,255,255)text("俺",X,Y)text("鬼",x,y)E=E+1if A=key1 then B=-D C=-D else
if A=key2 then B=0C=-D else
if A=key3 then B=D C=-D else
if A=key4 then B=-D C=0else
if A=key6 then B=D C=0else
if A=key7 then B=-D C=D else
if A=key8 then B=0C=D else
if A=key9 then B=D C=D else
B=0C=0endif endif endif endif endif endif endif endif if A=keyselect then end endif
X=X+B Y=Y+C
if X>width-12then X=width-12else if X<0then X=0endif
endif
if Y>height then Y=height else if Y<0then Y=0endif
endif
if X>x then x=x+(D-1)else if X<x then x=x-(D-1)endif
endif
if Y>y then y=y+(D-1)else if Y<y then y=y-(D-1)endif
endif
color(0,0,0)text("俺",X,Y)text("鬼",x,y)unlock(1)yield()if X<=x+10then if X+10>=x then if Y<=y+10then if Y+10>=y then text(E+"点!!",0,20)sleep(2500)goto 1endif
endif
endif
endif
goto 0
162129:04/08/19 12:53 ID:M7FElPuS
うんこさんマジデありがとう!!
163うんこ:04/08/19 17:36 ID:Pa14WYr3
EZのほうでいいなら、講義するから言ってね。最初は俺も待ち受けくらいしか作れなかったけど、がんばればゲームっぽいのも作れるよ。
何よりこれ作った人に感動する、
164非通知さん@アプリ起動中:04/08/22 15:29 ID:9Dl2QbjA
避けゲーみたいなもの。だれか改造してくれ。
前半↓
label START origin(0,0) V=0 W=0 D=0
color(0,0,0) frect(0,0,240,320) origin(width/2-60,height/2-80)
X=55 Y=148 soft1("終了") label loop lock() if V>=155
then V=0 F=0 P=P+1 endif if scan=keyleft then X=X-2
endif if scan=keyright then X=X+2 endif if input(0)=keysoft1
then exit endif if X>=115 then X=115 endif if X<=0
then X=0 endif if F=0 then srand(tick) W=(abs(rand)%55+1)*2
F=1 V=0 endif if (V>=Y and V+5<=Y+5) and not(W<=X and W+10>=X+5) then D=1 endif
165非通知さん@アプリ起動中:04/08/22 15:30 ID:9Dl2QbjA
続き↓
clear(0,0,120,160) color(0,255,255) frect(0,V,120,5) clear(W,V,10,5) if
(D=1) then goto"GAMEOVER" endif color(10,50,200)
frect(X,Y,5,5) color(0,0,0) text("SCORE "+P,0,strheight)
unlock(1) if P>10 then A=2 endif V=V+2+A goto"loop"
label GAMEOVER color(255,0,0) gosub"BAN" color(255,255,255) gosub"BAN" color(0,0,0)
text("GAME OVER",20,80+strheight/2) if input()=keysoft1 then exit endif goto "START"
label BAN unlock(0) c=0 for a=2 to 40 step 4
farc(X-c,Y-c,a,a) c=c+2 next return
166非通知さん@アプリ起動中:04/08/23 23:57 ID:K9BVTp9s
iBASICとったんですが起動直後にエラーが出ます。機種はSH900iです。対応してないんでしょうか?1のリンクのサイトに問合せみたいな場所ありました?
167非通知さん@アプリ起動中:04/08/24 00:35 ID:WqBHvcLK
>>166
ttp://naoya.stargroove.jp/ibasic/
506なら動いたけど、どうかな。
168非通知さん@アプリ起動中:04/08/24 02:45 ID:PsQZNj91
167さんありがとうございます!動きました!
169おもち:04/08/25 22:36 ID:dqLemuHP
D505i でIBASICやってます。
スレッドの使い方がわからないので半角512文字から抜け出せません。
170おもち:04/08/25 22:39 ID:dqLemuHP
そんなわけでゲームは文字数におさめられません
見るだけのものです。ソフトキー2で終了です。
一行目のIの数値を変えてみてください。

I=20 G=width/I H=height/I
color(0,0,0)
frect(0,0,width,height)
goto 0
label 1 color(A,B,0) return
label 2 color(0,A,B) return
label 3 color(B,0,A) return
label 4 color(A,B,A/2) return
label 5 color(A/2,A,B) return
label 6 color(B,A/2,A) return
label 0
M=M+1 if M=7 then M=1 endif
for J = 0 to H
for K = 0 to G
F=J E=K
A=255*E/G B=255*F/H L=255-(A+B)/2
gosub M
frect(E*I,F*I,I,I)
color(L,L,L)
rect(E*I,F*I,I,I)
if input(0) and keysoft2 then exit endif
next next goto 0

171おもち:04/08/25 22:41 ID:dqLemuHP
同じく見るだけ。
iを変えてみてください。

I=30 W=width H=height
soft2("終了")
label 0
color(0,0,0)
frect(0,0,W,H)
X=abs(rand)%W/3+W/3 Y=abs(rand)%H/3+H/3
L=abs(rand)%128+128
M=abs(rand)%128+128
N=abs(rand)%128+128
O=abs(rand)%128
P=abs(rand)%128
Q=abs(rand)%128
R=(L-O)/I
S=(M-P)/I
T=(N-Q)/I
C=L D=M E=N
for K=0 to I-1
A=W*K/I B=H*K/I
C=C-R D=D-S E=E-T
color(C,D,E)
line(X,Y,W,B)
line(X,Y,W-A,H)
line(X,Y,0,H-B)
line(X,Y,A,0)
if input(0) and keysoft2 then exit endif
next goto 0
172おもち:04/08/25 22:42 ID:dqLemuHP
某ミニゲームの刹那の見切りです。
二人用で1と3で戦います。終了は0。
問題多すぎでつまらないでしょう・・・。

text("(´ω`)",10,260)text("(`ω´)",189,260)c=255
text("得点",10,245)
text("得点",190,245)
label 0
H=0 s=second+abs(rand)%3+2
color(c,c,c)frect(50,150,140,100)color(0,0,0)
text(X,50,245)
text(Y,170,245)
label 1
if input(0) and key0 then exit endif
if H=0 and second >= s then H=1 text("今だ!",99,170) endif
if scan=key1 then goto 2 endif if scan=key3 then goto 3 endif
goto 1
label 2
if H then X=X+1 else X=X-1 endif goto 0
label 3
if H then Y=Y+1 else Y=Y-1 endif goto 0
173非通知さん@アプリ起動中:04/08/26 08:33 ID:d6WsLXPp
threadなら結構前に書いてあったような
174おもち:04/08/26 14:50 ID:Hufl9b8h
joinは参考になります
でも変数の共有方法がわかりません
スレッド起動したとき
何がコピーされてるのかも

しばらく上のソース読んでがんばります
助言ありがとうございます
175トゲマル:04/08/26 15:58 ID:G9ajrz3i
N900iでやってます。
初プログラム作ってみました。
aに無料通話、bにその日までの通話料と通信料の合計を入れると
このままの調子で使った時、無料通話を超えるかどうか、
超えるならどのくらい節約すればいいのか
などが出るようにしてます。
二月に関しては未対応です。
アドバイスお願いします。a=1000
b=8000
d=dayofmonth
c=month
e=b/d
if c=2 or 4 or 6 or 9 or 11 then j=30 endif
if c=1 or 3 or 5 or 7 or 8 or 10 or 12 then j=31 endif
g=e*j
k=j-d
if g>a then i=g-a f=i/k+"円ずつにすれば無料通話ピッタリ!" text("このまま使うと"+i+"円上回ります_| ̄|〇",0,100) endif
if a>g then i=a-g f=i/k+"円ずつ多く使えマス!" text("このまま使うと"+i+"円余
ります(´ω`)",0,100) endif
if a<g then text("もう手遅れです(つД`)",0,120) else text("一日"+f,0,120) endif
input()
176トゲマル:04/08/26 15:59 ID:G9ajrz3i
sage忘れましたorz
177非通知さん@アプリ起動中:04/08/26 16:34 ID:d6WsLXPp
threadの変数では呼び出す側と呼び出された側で次のような関係があります。
A-Zはどちらからでも関係なくコピーされる
a-zは呼び出される側から呼び出す側にはコピーされないが、逆はある。
178おもち:04/08/26 21:03 ID:GS4PuEm7
>>177
ありがとうございます!!!
これで作品に幅がもてます!
しばらくがんばってみまーっす。
179走ろうよ:04/08/26 22:00 ID:d6WsLXPp
ネタもとはこちら→http://qwe.ne.jp/ezappli.php?word=%91%96%82%ea%83N%83%8e
めっちゃおそいよ
label 1x=0Y=0J=0S=0z=2A=2222222color(0,0,255)frect(0,50,60,10)label 0B=scan
lock()color(0,255,255)frect(0,0,60,50)color(0,255,0)if B=key1 then end endif
x=x+2if x=10then S=S+5x=0A=A-(A/1000000)*1000000A=A*10+abs(rand)%3+1endif
b=substr(A,z,1)if Y>25-b*10then unlock(1)color(255,127,127)farc(15,45,10,10)text("うんこ",12,36)color(0,0,255)frect(0,50,60,10)sleep(3000)goto 1else if B=keyselect and J=0then Y=Y-3if Y<=-27then J=1endif
else Y=Y+3if b>1and Y>20-b*10then Y=20-b*10J=0else J=1endif
endif
endif
for a=0 to 6b=substr(A,a,1)if b>1then frect(a*10-x,50-b*10,10,10)endif
next
color(255,255,255)frect(60,20,10,20)color(255,127,127)farc(15,20+Y,10,10)text(S+x/2,0,12)unlock(1)yield()goto 0
180うんこ:04/08/26 23:07 ID:d6WsLXPp
RPG風のやつ。これ使って誰かRPGつくってくれ!これはマップデータ。タイトルは「0」
lock()color(0,255,0)frect(0,0,120,120)goto C
label 0x=6y=6X=0Y=0A=2211111112122221121211211212212112122121121121211222212111111131goto"あ"
label 3X=6Y=1x=X y=6A=1222220221212121222111222111222122222222221212121222222211441111goto"あ"
label 4Y=1x=0y=6A=1133122112222211221111112122212222212222111111125222222211111111goto"あ"
label 5X=6Y=6A=2220022222222222222222222222222222222222222222222222222422222222goto"あ"
label あ
for b=0 to 63if substr(A,b,1)=1then color(127,0,0)frect(5+(b%8)*15,10+(b/8)*15,5,5)
color(0,127,0)farc(1+(b%8)*15,(b/8)*15,13,13)endif
next
181うんこ:04/08/26 23:08 ID:d6WsLXPp
本体。A5303H向きですよ。
label 1thread(0,1)join(1)label 0B=scan
lock()color(0,255,0)frect(X*15,Y*15,15,15)if X<7then a=X+Y*8+1b=substr(A,a,1)if B=keyright and not(b=1)then X=X+1endif
endif
if X>0then a=X+Y*8-1b=substr(A,a,1)if B=keyleft and not(b=1)then X=X-1endif
endif
if Y>0then a=X+Y*8-8b=substr(A,a,1)if B=keyup and not(b=1)then Y=Y-1endif
endif
if Y<7then a=X+Y*8+8b=substr(A,a,1)if B=keydown and not(b=1)then Y=Y+1endif
endif
if B=key1 then end endif
color(0,0,255)frect(X*15+1,Y*15+1,13,13)unlock(1)a=X+Y*8C=substr(A,a,1)if not(C=2)then goto 1endif
goto 0
182非通知さん@アプリ起動中:04/08/28 15:41 ID:KaI55KOe
あげ
183非通知さん@アプリ起動中:04/08/29 01:44 ID:639xoPfv
k
184非通知さん@アプリ起動中:04/09/07 21:50 ID:7S0tDWQt
PCでも作れればな
185非通知さん@アプリ起動中:04/09/14 23:57:15 ID:ZPtdliGS
おっぱい
186非通知さん@アプリ起動中:04/09/24 18:21:33 ID:rQQ+eJ9M
このスレ盛りあがってんな―!!!!おもしれー!みんなも濃いよ
187非通知さん@アプリ起動中:04/10/07 09:17:29 ID:5X42aBMQ
age
188非通知さん@アプリ起動中:04/10/09 17:32:20 ID:AqfSqAL0
まさしくBasic言語だなこりゃ
189うんこ:04/10/19 21:55:04 ID:84zMs3HD
ドコモには使える機能多いからうらやましい…これはrmodeというとても便利な機能が使われてます。
c=8
soft1("Cls")
soft2("Exit")
gosub "cls"
label loop
i=input(0)
if i and keysoft2 then exit endif
if i and keysoft1 then gosub "cls" endif
x = abs(rand) % width
y = abs(rand) % height
color(abs(rand)%64,abs(rand)%64,abs(rand)%64)
frect(x - c, y - c, c * 2, c * 2)
yield()
goto "loop"

label cls
rmode(0,255,255)
color(0,0,0)
frect(0,0,width,height)
rmode(1,255,255)
return
190非通知さん@アプリ起動中:04/10/20 07:22:39 ID:u8kM8SHu
うんこage
191非通知さん@アプリ起動中:04/10/23 21:04:49 ID:wiNB6ZiM
>>189
サンプルそのままを出して何が嬉しいんだ?
192非通知さん@アプリ起動中:04/11/21 23:34:25 ID:cpzYFJU/
無くなっちゃったよ。。。
193非通知さん@アプリ起動中:04/11/24 11:51:30 ID:JTomCW1o
質問なのですが、
タイトル探索
soft1("終わり")
a=5
line(30,30,90,75)
line(30,200,90,125)
line(190,30,130,75)
line(190,200,130,125)
rect(90,75,40,50)
label 0
if input(0) and keysoft1 then exit endif
if scan=keyup then goto 2
endif
goto 0

label 2
if a=5 then thread("コマンド","戦闘") thread("敵","出現") goto 0 endif
goto 0
194非通知さん@アプリ起動中:04/11/24 11:52:52 ID:JTomCW1o
タイトルコマンド
label 0
text("1・こうげき",20,230) text("2・ぼうぎょ",20,260) text("3・まほう",140,230) text("4・どうぐ",140,260) rect(15,200,210,60)
goto 0

195非通知さん@アプリ起動中:04/11/24 11:54:32 ID:JTomCW1o
タイトル敵
text("(・∀・)",80,170)
で探索のaの値をランダムにしてエンカウントバトルみたいにしたいときはどうすればいいんですか?
196くそ:04/11/24 23:12:12 ID:xzbi4kQv
if scan=keydown then のとこにてきとーにa=rand%20とかってやればいいんじゃないの?
197非通知さん@アプリ起動中:04/11/25 03:12:12 ID:9l9+c+d5
>196
ありがd。今日から猿のようにやってますが、楽しいですなー(・∀・)
198非通知さん@アプリ起動中:04/11/25 23:22:56 ID:9l9+c+d5
inputとrandについて聞きたいんですが、
r=abs(rand)%5
"%5"てなんですか?
あとinputの入力バッファってなんですか?
おしえてください
199まん○こ:04/11/25 23:40:09 ID:9eVUZtcN
%5は5で%の左の数を割った余り 上のだと0から4までの数が出る。
input()はscanと同じようにキー入力を受取るやつ、ただし一回押した時だけ。(scanは押してる間ずっと反応する)
()内が0以外だと毎回そこでなにか入力するまで止まるようになる
ざっとこんなもん
200非通知さん@アプリ起動中:04/11/25 23:55:06 ID:9l9+c+d5
(・∀・)ナルホド
さんくすです
201非通知さん@アプリ起動中:04/11/26 05:15:35 ID:2pkSt6jG
すみませんまた質問です。タイトル
clear(0,0,250,250)
soft1("終わる")
text("喧嘩道場",80,100)text("PUSH.1 START",60,150)

label 0
if input(0) and keysoft1 then exit endif
if input(0) and key1 then thread("バトル","スタート") join("スタート") endif

goto 0

202非通知さん@アプリ起動中:04/11/26 05:16:36 ID:2pkSt6jG
バトル

clear(0,0,250,250)
a=0
label 1
if input(1) and keysoft1 then thread("タイトル","戻る") join("戻る") endif
text("LIFE",30,230)
text("LIFE",170,230)
text("( `・∀・)",10,150)
text("| ○○",30,170)text("U U",40,190)
text("(・_・ )",160,150)text(" ○○)",160,170)text("U U",180,190)

if input(0) and keyselect then a=abs(rand)%2
if a=0 then thread("攻撃1","あ")join("あ")endif
if a=1 then thread("攻撃2","い")join("い")endif
endif
goto 1
203非通知さん@アプリ起動中:04/11/26 05:17:47 ID:2pkSt6jG
攻撃1
clear(0,0,250,250)
label 0
text("( `・д・)",50,150)
text("|<。|",70,170)
text("U U",80,190)
text("(・_・ )",160,150)text(" ○○)",160,170)text("U U",180,190)
sleep(500)
clear(0,0,250,250)
text("( `・д)",70,150)
text("| ==○",90,170)
text("U U",100,190)
text("(。д゚)",180,150)
text("))○)",180,170)
text("<<",200,190)
sleep(200)
clear(0,0,250,250)
end

goto 0

204非通知さん@アプリ起動中:04/11/26 05:20:59 ID:2pkSt6jG
攻撃2
clear(0,0,250,250)
label 0
text("( `・д)",50,150)
text("|レ|",70,170)
text("U U",80,190)
text("(・_・ )",160,150)text(" ○○)",160,170)text("U U",180,190)
sleep(500)
clear(0,0,250,250)
text("( `・д・)つ",80,150)
text("|レ|",100,170)
text("U U",110,190)
text("))д゚)",180,150)
text("○)○)",180,170)
text("<<",200,190)
sleep(200)
clear(0,0,250,250)
goto 0


でバトルにもどったときに前の表示が消えないのはどうしたらよいでしょうか?
205非通知さん@アプリ起動中:04/11/26 09:26:45 ID:2pkSt6jG
バトル

clear(0,0,250,250)
soft2("終わり")
a=0
label 1
if input(1) and keysoft2 then exit endif
text("LIFE",30,230)
text("LIFE",170,230)
text("( `・∀・)",30,150)
text("| ○○",50,170)text("U U",60,190)
text("(・_・ )",160,150)text(" ○○)",160,170)text("U U",180,190)

if input(1) and keyselect then a=abs(rand)%4
if a=2 then thread("攻撃1","あ")join("あ")endif
if a=3 then thread("攻撃2","い")join("い")endif
if a=0 then thread("防御1","う")join("う")endif
if a=1 then thread("防御2","え")join("え")endif
endif
goto 1
206非通知さん@アプリ起動中:04/11/26 09:27:27 ID:2pkSt6jG
攻撃1
clear(0,0,250,250)
label 0
text("( `・д・)",50,150)
text("|<。|",70,170)
text("U U",75,190)
text("(・_・ )",160,150)text(" ○○)",160,170)text("U U",180,190)
sleep(500)
clear(0,0,250,250)
text("( `・д)",70,150)
text("| ==○",90,170)
text("U U",90,190)
text("(。д゚)",180,150)
text("))○)",180,170)
text("<<",200,190)
sleep(200)
clear(0,0,250,250)
end

goto 0

207非通知さん@アプリ起動中:04/11/26 09:29:04 ID:2pkSt6jG
攻撃2
clear(0,0,250,250)
label 0
text("( `・д)",50,150)
text("|レ|",70,170)
text("U U",80,190)
text("(・_・ )",160,150)text(" ○○)",160,170)text("U U",180,190)
sleep(500)
clear(0,0,250,250)
text("( `・д・)つ",80,150)
text("|レ|",100,170)
text("U U",100,190)
text("))д゚)",180,150)
text("○)○)",180,170)
text("<<",200,190)
sleep(200)
clear(0,0,250,250)
end
goto 0

208非通知さん@アプリ起動中:04/11/26 09:29:53 ID:2pkSt6jG
防御1
clear(0,0,250,250)
label 0
text("( `・д・)",30,150)
text("| ○○",50,170)
text("U U",60,190)
text("(・_・ )",140,150)text("○) ○",140,170)text("U U",160,190)
sleep(500)
clear(0,0,250,250)
text("( ゚Д゚)",10,150)
text("(U((",20,170)
text(">>",40,190)

text("(_・ )",80,150)
text("○=== )",60,170)
text("U U",100,190)
sleep(200)
clear(0,0,250,250)
end

goto 0

209非通知さん@アプリ起動中:04/11/26 09:30:38 ID:2pkSt6jG
防御2
clear(0,0,250,250)
label 0
text("( `・д・)",30,150)
text("|○○",50,170)
text("U U",60,190)
text("(・_・ )",140,150)text(" ○= )",140,170)text("U U",160,190)
sleep(500)
clear(0,0,250,250)
text("(゚д゚((",10,150)
text("(○(○",30,170)
text(">>",80,190)
text("○=(・_・ )",70,150)
text("ヽ○ヽ",110,170)
text("U U",140,190)
sleep(200)
clear(0,0,250,250)
end

goto 0

210非通知さん@アプリ起動中:04/11/26 09:34:48 ID:2pkSt6jG
またまた質問なのですが、たとえは攻撃1の
( `・д・)
 |<。|
 U U
のsleepのあいだにkey1を押したらそのまま続行、時間内に押せなかったらend
というふうにするにはどうすればよいんでしょうか
211非通知さん@アプリ起動中:04/11/28 04:35:43 ID:z9JjTs9G
はじめまして;
小生、MSXなどでBASICをいぢってた者なのですが。
いまのPC上で昔のBASICの楽しさは味わえないのね。
ンデ、漂泊の身上はやいくとうせい・・・
(略)
デ、どうYO!?
どうなのYO、携帯アプリって;?
昔の味ってあるのかァ? もし、ココにMSXとかァー
ファンダムとかァー、マルチステートメントとかァー、きいて、
ニャリv
と、くる椰子がいたら、ご感想など拝聴したいのですが?



212非通知さん@アプリ起動中:04/11/28 04:51:45 ID:z9JjTs9G
イヤ;
「 聞くまへに打ち込め!」
が、BASIC道の鉄則、なのはヨーわかっとるんyo;
でも折れ携帯もって無ヒンです。
iBASICする為に携帯かう(契約)するワケで;
やっぱダメだぁコリャ〜状態だと、残るは、ドコからも
かかって来る予定の無ヒ、携帯がゴロンと転がってる訳で

カ、勘弁して下サイ(涙)
          
213かぼすっぱいんきん:04/11/28 08:49:00 ID:2H2B6fDB
エミュでやればいいじゃん
マァあんたが考えてるような代物じゃないことは確かだろうが…
214非通知さん@アプリ起動中:04/11/30 13:05:53 ID:uUpkydgt
あげ
215iBASICについて語ろうよ… ◆MmMJFErMAs :04/12/01 08:22:55 ID:H848Wzv8
iBASICについて語ろうよ…
216非通知さん@アプリ起動中:04/12/07 22:52:28 ID:U01iAWqg
いや、ezBASICについて語ろうよ…
217210:04/12/14 18:41:56 ID:nq2wC3a1
だれかわかんないでしょうか・・・・(´・ω・`)
218のm:04/12/15 00:07:09 ID:qpNrMOnP
>>217
if input(1000)and key1 then ホニャララ
てすればkey1の入力に1000ミリ秒のタイムアウトが設定できるよ
219非通知さん@アプリ起動中:04/12/15 01:02:14 ID:1//pk5e7
>218
ありがとうございました。おかげでなんとか形にはなりました。
ところでほかにこれやってる人っているんでしょうか。スレとBASICの活性を期待してage
ついでに少しずつ改良したいので完成はしてないけどUPしてもよいですか?
220N88:04/12/15 15:24:26 ID:J/Tc44xp
おれもやってるよ〜EZだけど、このスレの前にいくつか作ったゲームアップしたし他にもいくつかあるからいいんじゃない?
221非通知さん@アプリ起動中:04/12/15 22:43:35 ID:1//pk5e7
バトル
clear(0,0,250,250)
soft2("終わり")
a=0n=0

label 1
if input(1) and keysoft2 then exit endif
text("( `・∀・)",30,150)
text("| ○○",50,170)text("U U",60,190)
text("(・_・ )",160,150)text(" ○○)",160,170)text("U U",180,190)

if input(1) and keyselect then a=abs(rand)%401
if a>=0 and a<=99 then thread("攻撃1","あ")join("あ")endif
if a>=100 and a<=199 then thread("攻撃2","い")join("い")endif
if a>=200 and a<=299 then thread("防御1","う")join("う")endif
if a>=300 and a<=399 then thread("防御2","え")join("え")endif
if a=400 then thread("必殺","お")join("お")endif
endif
goto 1
222非通知さん@アプリ起動中:04/12/15 22:44:36 ID:1//pk5e7
攻撃1
clear(0,0,250,250)
label 0
text("( `・д・)",50,150)
text("|<。|",70,170)
text("U U",75,190)
text("(・_・ )",160,150)text(" ○○)",160,170)text("U U",180,190)
if input(300) and key4 then goto 2 endif clear(0,0,250,250)
end
label 2
clear(0,0,250,250)
text("( `・д)",70,150)
text("| ==○",90,170)
text("U U",90,190)
text("(。д゚)",180,150)
text("))○)",180,170)
text("<<",200,190)
sleep(200)
clear(0,0,250,250)
end

goto 0
223非通知さん@アプリ起動中:04/12/15 22:45:13 ID:1//pk5e7
攻撃2
clear(0,0,250,250)
label 0
text("( `・д)",50,150)
text("|レ|",70,170)
text("U U",80,190)
text("(・_・ )",160,150)text(" ○○)",160,170)text("U U",180,190)
if input(300) and key1 then goto 2 endif clear(0,0,250,250)
end
label 2
clear(0,0,250,250)
text("( `・д・)つ",80,150)
text("|レ|",100,170)
text("U U",100,190)
text("))д゚)",180,150)
text("○)○)",180,170)
text("<<",200,190)
sleep(200)
clear(0,0,250,250)
end
goto 0

224非通知さん@アプリ起動中:04/12/15 22:45:45 ID:1//pk5e7
防御1
clear(0,0,250,250)
label 0
text("( `・д・)",30,150)
text("| ○○",50,170)
text("U U",60,190)
text("(・_・ )",140,150)text("○) ○",140,170)text("U U",160,190)
if input(300) and key4 then clear(0,0,250,250) end
endif goto 2
label 2
clear(0,0,250,250)
text("( ゚Д゚)",10,150)
text("(U((",20,170)
text(">>",40,190)

text("(_・ )",80,150)
text("○=== )",60,170)
text("U U",100,190)
sleep(200)
clear(0,0,250,250)
end

goto 0

225非通知さん@アプリ起動中:04/12/15 22:47:34 ID:1//pk5e7
防御2
clear(0,0,250,250)
label 0
text("( `・д・)",30,150)
text("|○○",50,170)
text("U U",60,190)
text("(・_・ )",140,150)text(" ○= )",140,170)text("U U",160,190)
if input(300) and key1 then clear(0,0,250,250) end
endif goto 2

label 2
clear(0,0,250,250)
text("(゚д゚((",10,150)
text("(○(○",30,170)
text(">>",80,190)
text("○=(・_・ )",70,150)
text("ヽ○ヽ",110,170)
text("U U",140,190)
sleep(200)
clear(0,0,250,250)
end

goto 0

226非通知さん@アプリ起動中:04/12/15 22:49:28 ID:1//pk5e7
必殺
clear(0,0,250,250)
label 0
text("( `・д・)",70,150)
text("|○○",90,170)
text("U U",100,190)
text("(・_・ )",160,150)text(" ○○)",160,170)text("U U",180,190)
sleep(1000)
clear(0,0,250,250)

text("北",50,90)sleep(1000)text("斗",90,90)sleep(1000)text("神",130,90)sleep(1000)text("拳",170,90)sleep(1000)
for f=0 to 8 step 1
text("( `・д)",70,150)
text("| つ",90,170)
text("U U",90,190)
text("(。д゚)",180,150)
text("))○)",180,170)
text("<<",200,190)
sleep(200)
clear(0,0,250,250)
text("( `・д)",70,150)text("| つ",90,170)text("U U",90,190)text("(。д゚)",180,150)text("))○)",180,170)text("<<",200,190)
sleep(200)
clear(0,0,250,250)
text("( `・д)つ つ",70,150)text("|  つ つ",90,170)text("U U",90,190)text("))。д゚)",180,150)text("))○)",180,170)text("<<",200,190)
sleep(200)
clear(0,0,250,250)
end
goto 0

227非通知さん@アプリ起動中:04/12/15 22:53:14 ID:1//pk5e7
左が自分、右が敵です。センターキーを押すとランダムに自分か敵が動き出します。パンチは上下にわかれてて、それぞれキー1・2に対応してます。つまらないものですがせっかくなので
慣れてきたら防御をキー3・6にかえてみてください
228227:04/12/16 01:26:38 ID:Au8iufg9
また質問させてもらいます。次は少し複雑なゲームをつくってみようと思うのですが、ロボットに前に敵がいたら攻撃、とかいなかったら右45゚回転とかそんなかんじ行動のプログラムを組んで遊ぶゲームあるじゃないですか。
あれの思考ルーチン?ていうのかわかんないけど、それを別のプログラムにしようとしたら、それぞれ同時にうごかせないですよね?質問がわかりずらいのですが…
本体プログラム
ルーチンAプログラム
ルーチンBプログラム
にして、最強プログラムはどれ?みたいなカンジにしたいんです。
229のm:04/12/16 15:25:19 ID:Y7x5Izq4
全く分からない・・・
230非通知さん@アプリ起動中:04/12/16 17:19:48 ID:Au8iufg9
この文章じゃわからないですよねすみません。なんとか自分で調べてみます。
次は対戦物にしたかったんですよ。縦STGの1対1みたいな画面にして、動きをそれぞれ別のプログラムでうごかして
┏━━━━━┓
┃  ▽  ┃
┃  ・←弾┃
┃     ┃
┃   ▲ ┃
┗━━━━━┛
どんなプログラムが一番強いかを競う、てやつ。わかりずらくて本当すみません
231のm:04/12/16 17:50:51 ID:I3lVmA9U
キャラの動きのルーチンがいくつかあってそれを本体で呼び出して勝ち抜きみたいにするってこと?
例えば動きのルーチン0と2があったとすると
thread(0,1)join(1)
thread(2,3)join(3)
てやれば0の動きが先だけど2匹を戦わせる事が出来ると思うよ。
でもezBASICじゃ毎回スレッド呼び出すのはキツイと思うよ。重い
232非通知さん@アプリ起動中:04/12/16 18:02:24 ID:Au8iufg9
▽を動かすプログラム
▲を動かすプログラム
を独立させてthreadで呼び出しながら縦シューで遊べないかなと。
将棋でたとえると
将棋本体のプログラム
先手を打つプログラム
後手を打つプログラム
の3つにわけて、打つプログラムだけはみんなでつくって誰のプログラムが最強か、の縦シューバージョンみたいなやつです。でも無理ぽですかね?
233非通知さん@アプリ起動中:04/12/27 01:34:04 ID:goekBw3H
おもしろそーだったので、ボンバーマン形式でプログラムを戦わせるゲーム作りました
┌───────┐
| @←ボム |
| □ |
| |
| |
| ■@ |
| |
└───────┘
・■を動かすプログラム
・□を動かすプログラム
・@をsleep()を使って数秒後に爆発させるプログラム(接触判定で勝敗を決める)

これらのプログラムをthred("",)でまとめる
234のm:04/12/27 11:02:39 ID:L82bdmAU
ボムはsleepより時間を取得するやつで3秒計ったほうがいいと思うよ?
sleepじゃプログラムが止まる=操作もできなくなるわけだから
235非通知さん@アプリ起動中:04/12/27 15:42:43 ID:OIetxWb5
>233
ぜひやってみたいです
236のm:04/12/27 18:47:32 ID:TAXBg0NB
俺もやりたいです。もしかしてもう本体プログラムがあるの?
あるとしたらどういう感じで子スレッドを書けばいいですかね?(キャラの大きさとか歩くスピードの制限とか)
あと非QVGAの方がいいです。(みんなができる)
237非通知さん@アプリ起動中:04/12/27 18:57:21 ID:OIetxWb5
自分もそれが気になるんですよ。
はじめは本体には判定だけにしようと思ったんですけど、もっとわかりやすくしようと思って子スレッドにはひとつの数字を返してもらうように考えたんです。たとえば

返す値が1なら前に進む2なら右を向く5なら弾をだす。
プログラム一行にたいし数字を1づつたしてって、その数字を比較してたとえば二倍差があれば弾が2マス進む、みたいにしようとしたけど途中で中断しちゃったんで、参考がてらできてるならプログラムみてみたいです
238非通知さん@アプリ起動中:04/12/27 23:27:36 ID:OIetxWb5
本体
a=10 b=35 c=90 d=110 rect(10,10,100,100)soft1("終わり")text("●",a,b) text("○",c,d)
label 0
if input(0)and keysoft1 then exit endif clear(11,11,99,99) thread("サンプル","バトル1")join("バトル1")thread("サンプル1","バトル2")join("バトル2")
if e=1 then a=a+5 endif if e=2 then a=a-5 endif if e=3 then b=b+5 endif if e=4 then b=b-5 endif
if f=1 then c=c+5 endif if f=2 then c=c-5 endif if f=3 then d=d+5 endif if f=4 then d=d-5 endif
text("●",a,b)text("○",c,d)sleep(200)
if c<10 or c>90 or d<35 or d>120then goto 2 endif if a<10 or a>90 or b<35 or b>120then goto 1 endif
goto 0

label 1
text("lose ●",10,150)goto 0

label 2
text("lose ○",10,200)goto 0

239非通知さん@アプリ起動中:04/12/27 23:31:12 ID:OIetxWb5
サンプル1,2にe=1f=1endいれても動いてくれないのはなんでですかね?
ab→●のXY軸
cd→○のXY軸
ef→子スレッドで1から4を返す、1ならx軸に+5
みんなでひとつの作品つくってみたいっすね
240のm:04/12/27 23:56:49 ID:TAXBg0NB
>>239eとかfを大文字にすればだいじょぶだとおもいますよー

ボム対応(一人二つまで)遅い…
独自の機能とか使っちゃったんでez用です(-_-;)。やっぱ移動とかは子スレッドでやらせた方が早いと思います。
G=10000E=12099F=10200label 0lock()color(191,128,64)frect(0,0,100,100)thread("A",0)join(0)thread("B",1)join(1)
color(255,0,0)farc(A,B,12,12)color(0,0,255)farc(C,D,12,12)
color(0,0,0)for i=0 to 3p=i+1if not(substr(E,p,1)=9)then G=G+pow(10,3-i)a=substr(E,p,1)b=substr(F,p,1)if substr(G,p,1)=9then color(255,128,0)G=G-pow(10,3-i)*9frect(a*12,b*12-24,12,60)frect(a*12-24,b*12,60,12)E=E+pow(10,3-i)*(9-a)
else farc(a*12+1,b*12+1,10,10)endif
endif
next
if scan=key1 then end endif
unlock(1)yield()goto 0

子スレッドA,Bを呼び出します。E,F,GがそれぞれボムのX,Y軸、時間経過を表してます。
勝敗決定とかはついてませんね。
241のm:04/12/28 09:53:56 ID:+io8LHB4
本体。ちょっと変えました。
A=28B=44C=56D=44G=10000E=19999F=19999label 0lock()color(191,128,64)frect(0,0,96,96)thread("A",0)join(0)thread("B",1)join(1)
color(255,0,0)farc(A,B,12,12)color(0,0,255)farc(C,D,12,12)
for i=0 to 3p=i+1if not(substr(E,p,1)=9)then G=G+pow(10,3-i)a=substr(E,p,1)b=substr(F,p,1)if substr(G,p,1)=9then color(255,128,0)G=G-pow(10,3-i)*9frect(a*12,b*12-24,12,60)frect(a*12-24,b*12,60,12)E=E+pow(10,3-i)*(9-a)
else color(0,0,0)farc(a*12+1,b*12+1,10,10)endif
endif
next
if scan=key1 then end endif
unlock(1)yield()goto 0
242のm:04/12/28 09:54:55 ID:+io8LHB4
子スレッドA。ランダムな動きです

if J=H then J=abs(rand)%21H=0endif
H=H+1if J%4=0and A<84then A=A+4endif
if J%4=1and B<84then B=B+4endif
if J%4=2and A>0then A=A-4endif
if J%4=3and B>0then B=B-4endif
if A=C or B=D then for i=1 to 2if substr(E,i,1)=9then E=E-pow(10,4-i)*(9-A/12)a=substr(F,i,1)F=F-pow(10,4-i)*(a-B/12)end
endif
next
endif
243のm:04/12/28 09:55:53 ID:+io8LHB4
子スレッドB。Aに合わせて動きます。

if abs(C-A)<abs(B-D)then if A<C then if C>0then C=C-4endif
else if C<84then C=C+4endif
endif
else if B<D then if D>0then D=D-4endif
else if D<84then D=D+4endif
endif
endif
for i=3 to 4if substr(E,i,1)=9then E=E-pow(10,4-i)*(9-C/12)a=substr(F,i,1)F=F-pow(10,4-i)*(a-D/12)end
endif
next
244非通知さん@アプリ起動中:04/12/28 14:56:04 ID:N2fy7yuR
すごい^^かなり形になってますね。
で質問なんですけど、画面がチカチカしないのはなんでですか?
自分はclear→text→clearの繰り返しだからチカチカするんですよね
245のm:04/12/28 16:33:17 ID:+io8LHB4
lock()〜描画〜unlock(1)yield()
てやればチカチカしないです。遅くもなりますが…
yield()は動きがガクガクってなるときだけつければいいです。
246非通知さん@アプリ起動中:04/12/30 03:24:20 ID:IWFOesdb
<238さん凄いです
233です携帯がJavaに対応してないのでプログラムはアップできません…すいません、解約した携帯で作ったので

ちなみに俺はsubstrが使えないのですべてXY軸での接触判定で作った

プログラムの流れだけ言うと

オープニング→敵のレベル選択→ステージ描写→バトル→勝敗の決定→再び敵のレベル選択へ

こんな流れです

爆弾はauだったら絵文字を使うとリアルですよ
247Pu助:04/12/30 04:49:58 ID:IWFOesdb
まず本体

soft1("exit")P=2
label 1
color(0,0,0)frect(0,0,132,144)color(255,255,255)frect(0,0,135,135)
thread("敵",0)U=3
label 3
B=scan
lock()
color(255,255,255)rect(X*15+1,Y*15+1,13,13)
if B=1048576 then thread("ボム",P) P=P+1 endif
if B=262144 then if X<8 then X=X+1 endif endif
if B=262144 then if X>0 then X=X-1 endif endif
if B=524288 then if Y<8 then Y=Y+1 endif endif
if B=131072 then if Y>0 then Y=Y-1 endif endif
if B=2097152 then exit endif
color(0,0,255)rect(X*15+1,Y*15+1,13,13)
unlock(1)
goto U
248Pu助:04/12/30 05:01:38 ID:IWFOesdb
「ボム」で保存

x=X
y=Y
v=x*15+7
w=y*15+7
color(255,220,0)text("●",x*15+2,y*15+2)sleep(1800)
arc(v-4,w-36,8,72)arc(v-36,w-4,72,8)
if D=x and y-3<E and E<y+3 then goto 4 endif
if E=y and x-3<D and D<x+3 then goto 4 endif
sleep(1000)vib(300)color(255,255,255)frect(x*15,y*15,15,15)
arc(v-4,w-36,8,72)arc(v-36,w-4,72,8) end
vib(300)color(0,0,255)text("WIN!",50,144)sleep(1500)
U=1
249のm:04/12/30 09:06:36 ID:zidzEZyO
すごいよかったです!
なにより早いですしマルチスレッドの使い方があんまりわかってなかったので勉強になりました。
じゃあ敵のXY軸がDとEですよね?とりあえず敵の動き考えてみま〜す!
250非通知さん@アプリ起動中:04/12/30 10:32:23 ID:IWFOesdb
そうです敵がDとEです。 このプログラムの場合thread("","")で呼び起こした小プログラムを本体プログラムと同時に動かしています。(重くなりますが)
251非通知さん@アプリ起動中:04/12/30 12:22:54 ID:IWFOesdb
「敵」で保存

color(255,255,255)rect(D*15+1,E*15+1,13,13)
D=4
E=4
label 6
if U=1 then end endif
sleep(400)lock()color(255,255,255)rect(D*15+1,E*15+1,13,13)a=(rand)%2
if a=0 then thread("ボム2",Q) Q=Q+1 endif
if D<X then D=D+1 endif
if D>X then D=D-1 endifcolor(255,0,0)rect(D*15+1,E*15+1,13,13)unlock(1)sleep(400)lock()color(255,255,255)rect(D*15+1,E*15+1,13,13)
if E<Y then E=E+1 endif
if E>Y then E=E-1 endif
color(255,0,0)rect(D*15+1,E*15+1,13,13)unlock(1)
goto 6


残りは「ボム2」スレッドだけ
またこの敵はsleepの秒数を変化させれば敵の強さが設定でき
アプリが速い機種なら十分遊べるくらいの速さになります
252非通知さん@アプリ起動中:04/12/30 12:27:38 ID:IWFOesdb
234のsleep以外の時間の取得ってどうやるんですか?
253のm:04/12/30 14:52:38 ID:zidzEZyO
ボムは一つのスレッドにまとめればどっちの爆弾でもくらえてボンバーマンぽくなりますよ。
敵スレッドでthread("ボム",0)の前にZ=1て書けば一つで二つ分のはたらきします。
if Z then x=D y=E Z=0else x=X y=Y endif
v=x*15+7w=y*15+7color(255,220,0)text("",x*15+2,y*15+15)sleep(3000)arc(v-4,w-36,8,72)arc(v-36,w-4,72,8)color(0,0,255)if D=x and y-3<E and E<y+3 then goto 4endif
if E=y and x-3<D and D<x+3 then goto 4endif
if X=x and y-3<Y and Y<y+3 then goto 5endif
if Y=y and x-3<X and X<x+3 then goto 5endif
sleep(1000)color(255,255,255)frect(x*15,y*15,15,15)arc(v-4,w-36,8,72)arc(v-36,w-4,72,8)end
label 4text("WIN!",50,144)goto 6label 5text("LOSE",50,144)label 6sleep(1500)U=1end


時間はsecondとかmillisecondとかいろいろありますよ。
254非通知さん@アプリ起動中:04/12/30 19:39:19 ID:IWFOesdb
改良ありがとうございます。のmさんのプログラム大変参考になります
255非通知さん@アプリ起動中:04/12/30 21:09:20 ID:gmqO8m2U
なんだ?あいべ−しっくって?
256非通知さん@アプリ起動中:04/12/31 04:37:44 ID:lrBYF5XR
本体
x=10y=90z=20w=0
a=x b=x c=x d=x e=x f=x g=1 A=0
g=y h=y i=y j=y k=y l=y m=1 B=0
soft1("終わり")
label 0
if input(0)and keysoft1 then exit endif
rect(9,9,101,101)
text("☆",x,x+23)
text("☆",y,y+23)
frect(a,b,20,20)frect(c,d,20,20)frect(e,f,20,20)
rect(g,h,20,20)rect(i,j,20,20)rect(k,l,20,20)
sleep(1000)
thread("サンプル","あ")join("あ")
thread("サンプル1","い")join("い")
if A=1 then a=a+z endif if A=2 then a=a-z endif if A=3 then b=b+z endif if A=4 then b=b-z endif
if B=1 then c=c+z endif if B=2 then c=c-z endif if B=3 then d=d+z endif if B=4 then d=d-z endif
if a<x or a>y or b<x or b>y or a=i and b=j or a=k and b=l or a=y and b=y then w=w+1 endif
if g<x or g>y or h<x or h>y or g=c and h=d or g=e and h=f or g=x and h=x then w=w+2 endif

if w=1 then text("WIN",60,120)endif
if w=2 then text("LOSE",60,120)endif
if w=3 then text("DROW",60,120)endif
clear(10,10,100,100)
goto 0
257非通知さん@アプリ起動中:04/12/31 04:41:39 ID:lrBYF5XR
サンプル
A=1
end
これで移動した先にくっついてくプログラムてどうすればよいでしょ



●下に移動


●●横に移動

●●●また横移動

●●
□●下移動(□はスペース)
258非通知さん@アプリ起動中:04/12/31 05:21:03 ID:lrBYF5XR
自己解決しました
259非通知さん@アプリ起動中:04/12/31 05:53:14 ID:lrBYF5XR
x=10y=90z=20w=0
a=x b=x c=x d=x e=x f=x A=0
g=y h=y i=y j=y k=y l=y B=0
soft1("終わり")
label 0
if input(0)and keysoft1 then exit endif
rect(9,9,101,101)
text("☆",x,x+23)
text("☆",y,y+23)

thread("サンプル","あ")
thread("サンプル1","い")
e=c f=d c=a d=b
k=i l=j i=g j=h
if A=1 then a=a+z endif if A=2 then a=a-z endif if A=3 then b=b+z endif if A=4 then b=b-z endif
if B=1 then g=g+z endif if B=2 then g=g-z endif if B=3 then h=h+z endif if B=4 then h=h-z endif
if g<x or g>y or h<x or h>y or a=i and b=j or a=k and b=l then w=w+1 endif
if a<x or a>y or b<x or b>y or g=c and h=d or g=e and h=f then w=w+2 endif
frect(a,b,20,20)frect(c,d,20,20)frect(e,f,20,20)
rect(g,h,20,20)rect(i,j,20,20)rect(k,l,20,20)
if w=1 then text("WIN",60,160)endif
if w=2 then text("LOSE",60,160)endif
if w=3 then text("DROW",60,160)endif
sleep(1000)
clear(10,10,100,100)
goto 0
260非通知さん@アプリ起動中:04/12/31 05:58:55 ID:lrBYF5XR
ab,ghがメインのxy軸、(c,d)(e,f)と(i,j)(k,l)が影です。A、Bで動きを指定。相手の影踏むか陣地☆とったら勝ち、というのやりたいんですが、場外の判定がアチコチいじってたらダメになっちゃいました。
どう直せばよいでしょか?
261非通知さん@アプリ起動中:04/12/31 11:37:38 ID:z3BkSlfB
それは場外に落ちないようにするんじゃなくて場外に落ちたら負けという風にするんですか?
262非通知さん@アプリ起動中:04/12/31 12:41:10 ID:lrBYF5XR
基本的には落ちないようにプログラムくんでもらいますが、プログラム誤って落ちたら負け、としたいです
263非通知さん@アプリ起動中:05/01/06 05:39:31 ID:sCU6h4O4
age
264非通知さん@アプリ起動中:05/01/07 01:05:00 ID:Zat7AiOq
保守
265非通知さん@アプリ起動中:05/01/15 01:31:56 ID:ODmu012I
age
266べーしっ君 ◆w5dyDtGv0k :05/01/15 15:39:47 ID:bPEQqtR8
携帯でBASIC風のプログラムを実行できる「iBASIC」(Tabrisさん製作)を拡張しました。
(自由な変数名と配列の対応、プロジェクト管理機能、ソ―スのインクルード機能、待受け設定機能など)
※P505で動作確認しました。

ttp://satoo.jp/i/basic/
267べーしっ君 ◆w5dyDtGv0k :05/01/15 15:48:45 ID:bPEQqtR8
とりあえず名前は「携帯BASIC」としました。
時間があればEZ版とJ版も作りろうと思っています。
バグ報告や要望も募集してます。
268非通知さん@アプリ起動中:05/01/15 17:12:11 ID:YM+tKcps
EZ版マジで期待してます!おねがいします
269非通知さん@アプリ起動中:05/01/15 21:48:54 ID:YM+tKcps
前に俺がここに乗せたSFCaveがサンプルで入ってる…すげぇ。古いバージョンだけど
270べーしっ君 ◆w5dyDtGv0k :05/01/15 22:57:40 ID:wYZt6+K3
すみません勝手に収録させて貰いました。
携帯BASIC新機能でハイスコアを保存できるようになってます。
271非通知さん@アプリ起動中:05/01/16 00:57:13 ID:8aY1XAe5
うぉーーすげーー!
作者さんですよね?お願いがあるんですができればEZに移植するときにでもImage変数も扱えるようにしてほしいです!一つ目はImage.createImageで指定サイズのキャンバスを作りそこに図形描画などをして画像にする。
二つ目はbyte配列から作る方法、これはパソコンとかが必要になりますが、画像のバイト配列をint型にしてアプリに打ち込んで生成する。Image.createImage(buf,0,buf.length)
難しいと思いますが、16進表記も使えるようにしてください。
あつかましいようですがこれができたらかなりゲームぽくなると思うので世露死苦お願いします。
ついでにもう一つImageの二つ目の方法でmmfかspfを使えるようにしてください(mmfはデータフォルダ読み込みでもいいです)。
272非通知さん@アプリ起動中:05/01/16 09:37:09 ID:H0mSSdRy
おまいら!!
iBASICもいいけどこんなのもあるぞ!
ttp://www.c3-place.com/i/makers/index.html
273271:05/01/16 16:23:40 ID:8aY1XAe5
byte配列からリソースを作る件ですが
byte[]→int[]→Stringだとsaveするとき容量を取りまくってしまうと思うので、リソース生成機能としてメニュー選ぶとこに別に作ってできたリソースに名前をつけてbyte[]で保存できるようにした方がいいと思います。
で呼び出すときにImage=res(〜)として使えるようにしてほしいです。
arcは開始角と描画角も指定できてsetClipなんかも使えるとうれしいです。

でも一番は高速化かな…
274べーしっ君 ◆w5dyDtGv0k :05/01/16 19:20:36 ID:CersPFEl
>>271
今後の課題としてはまさに高速化なんですけど、
一応iBASICを改造したときに
iBASICではプログラムを解釈するとき、そのつどトークンに切り分けて
いたんですが、それをあらかじめ切り分けておいて処理を少なくするとか
してみたんですがあまり速度は改善せず、、、。あまりインタプリタの処理方法には詳しくないんで、、。
 >>272ところのアプリは速度的にはどの程度出ているんでしょうかね。

Imageに対応についてはドットエディタのようなImage作成アプリを別につくるか内蔵して
作ったデータをテキストボックスにコピぺできるようにしてアプリの中に読み込めるようにするとか。
そうなると夢がひろがりますかねぇ。
275非通知さん@アプリ起動中:05/01/17 16:36:25 ID:8HEmHCVr
byte[]をテキストボックスに入力するときどういう形にするのがいいですかね?
276非通知さん@アプリ起動中:05/01/18 08:21:49 ID:33UawEPj
>>274
とりあえず
・文字列 - 整数 の変換を毎回やっているのを減らす
・整数を32bitに
のふたつをやればかなり高速化できるはず。
特に前者はiBasic最大の弱点。

でも、それをやると、文字列型と整数型に変数を分けないといけないとか、
関数も文字列型を返す関数と整数を返す関数に明確に分けないといけないとか
言語仕様自体をいじらないといけなくなるから俺は一朝一夕でできることではないと思って、
ちょっと保留していた。
277276:05/01/18 08:23:38 ID:33UawEPj
>>274
俺はImageStore.getEntryでデータフォルダの画像とアプリを関連づけて
使えるようにしたらいいかなと思っていた。
278べーしっ君 ◆w5dyDtGv0k :05/01/18 10:34:16 ID:o2mdTvxb
>>276
整数を32bitにはすでに変更してます。
あと変数の自由な名前や配列対応のために変数をハッシュテーブルで管理しちゃってるんで、
やっぱり一文字制限にもどすとか、別の管理方法にするとかしないとだめかも。
文字列 - 整数 の変換は改造するとき悩んだけど、
iBASICの簡単さのためにとりあえず残しました。

画像のことはキャリアごとに互換性を持たしたいのと、作ったアプリを手軽に
掲示板に貼り付けて共有できるようにしたいので悩み中。
279非通知さん@アプリ起動中:05/01/19 20:49:14 ID:v6raS0yQ
前の方にあったものを改造して動く物を作ろうとしたのですが、正常に動作しません。
誰か解るが人居たら指摘お願いします。

soft1("Exit")label 1
E=0D=3X=60Y=66x=0y=0color(255,255,255)frect(0,0,132,144)
a="○"b="+"c="∧"d="-"e="‖"f="↓"g="|"h="+"label 0A=scanlock()color(255,255,255)text(a,X,Y)text(b,X,Y+15)text(c,X,Y+30)text(d,X-5,Y+10)text(e,X-10,Y+17)text(f,X-10,Y+22)text(g,X+16,Y+1)text(h,X+16,Y+15)
280非通知さん@アプリ起動中:05/01/19 20:51:55 ID:v6raS0yQ
続きです

E=E+1if A=keyup then B=0 C=-D elseif A=keyleft then B=-D C=0 elseif A=keyright then B=D C=0 elseif A=keydown then B=0 C=D elseB=0C=0 endif endif endif endif
if A=keyselect then end endifX=X+B Y=Y+Cif X>width-12 then X=width-12elseif X<0 then X=0 endif endif
if Y>height then Y=height elseif Y<0 then Y=0 endif endif
if X>x then x=x+(D-1) elseif X<x then x=x-(D-1) endif endif
if Y>y then y=y+(D-1) else if Y<y then y=y-(D-1) endif endif
text(a,X,Y)text(b,X,Y+15)text(c,X,Y+30)text(d,X-5,Y+10)
text(e,X-10,Y+17)text(f,X-10,Y+22)text(g,X+16,Y+1)text(h,X+16,Y+15)unlock(1)yield()goto 0
end
281279:05/01/19 20:55:21 ID:v6raS0yQ
因みに動かしたいものは下記です。

soft1("Exit")
label A
a="○"
b="+"
c="∧"
d="-"
e="‖"
f="↓"
g="|"
h="+"
i=100
j=150
text(a,i,j)
text(b,i,j+15)
text(c,i,j+30)
text(d,i-5,j+10)
text(e,i-10,j+17)
text(f,i-10,j+22)
text(g,i+16,j+1)
text(h,i+16,j+15)
input()
end
282非通知さん@アプリ起動中:05/01/20 02:12:43 ID:GONF2HDt
本体
line(20,200,200,200)
a=0
soft1("終わり")
label 0
if input(0) and keysoft1 then exit endif
a=abs(rand)%4
if a=1 then thread("真ん中","あ")join("あ")endif
if a=2 then thread("右","い")join("い")endif
if a=3 then thread("左","う")join("う")
endif
goto 0
283非通知さん@アプリ起動中:05/01/20 02:14:48 ID:GONF2HDt
真ん中
soft1("終わり")
label 0
if input(0) and keysoft1 then exit endif
A=80B=200C=90D=200
for i=0 to 4 step 1
text("(  )",A,B)
text("・∀・",C,D)
B=D D=D-10
sleep(200)
clear(80,100,80,100)
next
for i=0 to 3 step 1
B=D+5 D=B+5
text("(  )",A,B)
text("・∀・",C,D)
sleep(200)

clear(80,100,80,100)
next
end
284非通知さん@アプリ起動中:05/01/20 02:16:30 ID:GONF2HDt

soft1("終わり")
label 0
if input(0) and keysoft1 then exit endif
A=80B=200C=90D=200
for i=0 to 4 step 1
text("(  )",A,B)text("・∀・",C,D)
B=D D=D-10 A=C-10 C=C+3
sleep(200)
clear(80,100,80,100)
next
for i=0 to 3 step 1
text("(  )",A,B)text("・∀・",C,D)
D=B+10 B=D A=C-10 C=C+3
sleep(200)
clear(80,100,100,100)next
for i=0 to 4 step 1
B=D D=D-10 C=C-3 A=C-10
text("(  )",A,B)text("・∀・",C,D)
sleep(200)
clear(80,100,120,100)next
for i=0 to 4 step 1
text("(  )",A,B)text("・∀・",C,D)
D=B+10 B=D A=C-10 C=C-3
sleep(200)
clear(80,100,120,100)
next
end
285非通知さん@アプリ起動中:05/01/20 02:17:46 ID:GONF2HDt

soft1("終わり")
label 0
if input(0) and keysoft1 then exit endif
A=80B=200C=90D=200
for i=0 to 4 step 1
B=D D=D-10 A=C-10 C=C-3
text("(  )",A,B)text("・∀・",C,D)
sleep(200)
clear(10,100,200,100)
next
for i=0 to 3 step 1
D=B+10 B=D A=C-10 C=C-3
text("(  )",A,B)text("・∀・",C,D)
sleep(200)
clear(10,100,200,100)
next
for i=0 to 4 step 1
text("(  )",A,B)text("・∀・",C,D)
B=D D=D-10 A=A+3 C=A+10
sleep(200)
clear(10,100,200,100)next
for i=0 to 3 step 1
text("(  )",A,B)text("・∀・",C,D)
D=B+10 B=D A=A+3 C=A+10
sleep(200)
clear(10,100,200,100)
next
end
286非通知さん@アプリ起動中:05/01/20 02:21:01 ID:GONF2HDt
lock()〜描写〜unlock(0)のlock()はどこに書けばよいんでしょうか?
labelのあたりに書くと動かなくなるし、イマイチわかんないです
287非通知さん@アプリ起動中:05/01/20 05:23:18 ID:GONF2HDt
自己解決しました
288非通知さん@アプリ起動中:05/01/20 18:28:32 ID:W/qOSC/9
携帯BASICで画像を扱うやつは少なくともキャンバスを生成して作る方ぐらいならキャリアの違いも関係ないと思うので実装していただきたいです。
あつかましくてすいません(^_^;
289非通知さん@アプリ起動中:05/01/20 21:38:57 ID:GONF2HDt
スライム
A=111B=165C=105D=175E=98F=180G=93H=185I=90J=190K=200L=97M=203N=102O=117P=118Q=186R=106S=103T=197U=120V=185W=186X=200Y=197
soft1("終わり")
label 0
if input(0) and keysoft1 then exit endif
thread("上","あ")join("あ")
lock()
color(0,100,255)
frect(A,B,5,10)frect(C,D,17,5)frect(E,F,29,5)
frect(G,H,39,5)
frect(I,J,45,10)frect(G,K,39,5)frect(L,M,32,5)
color(255,255,255)frect(N,V,6,6)frect(O,V,6,6)
color(0,0,0)frect(S,W,4,4)frect(P,W,4,4)
color(255,0,0)frect(R,X,15,4)frect(S,Y,3,3)frect(U,Y,3,3)
unlock(1)
thread("下","い")join("い")
lock()
color(0,100,255)frect(A,B,5,10)frect(C,D,17,5)frect(E,F,29,5)frect(G,H,39,5)frect(I,J,45,10)frect(G,K,39,5)frect(L,M,32,5)
color(255,255,255)frect(N,V,6,6)frect(O,V,6,6)
color(0,0,0)frect(S,W,4,4)frect(P,W,4,4)
color(255,0,0)frect(R,X,15,4)frect(S,Y,3,3)frect(U,Y,3,3)
unlock(1)
a=abs(rand)%2000sleep(a)
goto 0

290非通知さん@アプリ起動中:05/01/20 21:39:47 ID:GONF2HDt

for i=0 to 5
lock()
color(0,100,255)frect(A,B,5,10)frect(C,D,17,5)frect(E,F,29,5)
frect(G,H,39,5)frect(I,J,45,10)frect(G,K,39,5)frect(L,M,32,5)
color(255,255,255)frect(N,V,6,6)frect(O,V,6,6)
color(0,0,0)frect(S,W,4,4)frect(P,W,4,4)
color(255,0,0)frect(R,X,15,4)frect(S,Y,3,3)frect(U,Y,3,3)
unlock(1)
sleep(1)
clear(50,20,100,250)
B=B-10 D=D-10 F=F-10H=H-10J=J-10K=K-10M=M-10Q=Q-10T=T-10V=V-11W=W-11X=X-12Y=Y-12
next

end
291非通知さん@アプリ起動中:05/01/20 21:40:40 ID:GONF2HDt

for i=0 to 5lock()
color(0,100,255)frect(A,B,5,10)frect(C,D,17,5)frect(E,F,29,5)frect(G,H,39,5)frect(I,J,45,10)frect(G,K,39,5)frect(L,M,32,5)
color(255,255,255)frect(N,V,6,6)frect(O,V,6,6)color(0,0,0)frect(S,W,4,4)frect(P,W,4,4)
color(255,0,0)frect(R,X,15,4)frect(S,Y,3,3)frect(U,Y,3,3)
unlock(1)
B=B+10D=D+10F=F+10H=H+10J=J+10K=K+10M=M+10Q=Q+10T=T+10V=V+11W=W+11X=X+12Y=Y+12
sleep(1)
clear(50,10,100,200)next
end
292(>-< ◆E9k1wjKgHI :05/01/21 22:05:27 ID:EixVrcqy
フォントの大きさ変えるのは、どうすればいいんですか?
293非通知さん@アプリ起動中:05/01/21 22:48:24 ID:O4tj7DWo
多分できないと思います
294非通知さん@アプリ起動中:05/01/21 23:13:33 ID:O4tj7DWo
今どんなの作ってるとかこんなん作ろうと思ってるとかみんなで発表してみませんか?
295べーしっ君 ◆w5dyDtGv0k :05/01/22 08:20:47 ID:z1SUx9YY
>>292
携帯BASICではできますよ。
・setfont(a1)
フォントのサイズを指定。a1は"T"(極小),"S"(小),"M"(中),"L"(大)を指定。初期設定では"T"


とりあえず現在はez版とj版に移植してます。画像対応などはそのあとになると思います。
296(>-< ◆E9k1wjKgHI :05/01/22 11:15:46 ID:PhN/L+7C
>>295
有難うございますo(^-^)o
また分からない事が有ったら、此処にきていいですか?
297非通知さん@アプリ起動中:05/01/22 15:13:12 ID:4Knbp8jc
関数の名前を集めて携帯用の辞書ファイル作ったらかなり楽になるかもね.

携帯Basicについて,
SH505iですが,マニュアルが途中で切れて最後まで読めません(512字?)
298非通知さん@アプリ起動中:05/01/22 16:44:27 ID:4Knbp8jc
命令辞書辞書自分で作りました.SH505用です.90xでは動くかどうか知りません.
適当にやったので間違ってるかも.
http://www.mchs-u.net/mc/dsh/ibasic.dsh

QRコードはこちらから
http://www.mchs-u.net/mc/index.php?%B7%C8%C2%D3Basic

カンマはエラーが出るそうなので抜いてあります.
「あ」で記号,後は頭文字が携帯の数字ボタンに対応してるはずです.(例えば,「か」→「A」)
299非通知さん@アプリ起動中:05/01/22 18:08:10 ID:U//KVss1
label 1
for〜
プログラム
goto 2

label 2
プログラム
next

goto〜labelを挟んだfor〜nextっていうのはダメなんですか?
300非通知さん@アプリ起動中:05/01/24 16:28:50 ID:rkNn1lNi
a=200
soft1("終わり")
for i=0 to 30
if input(0) and keysoft1 then exit endif
lock()
color(0,255,255)
frect(a,155,10,6)
frect(a+6,161,4,10)
frect(a+10,163,6,10)
frect(a+4,171,4,2)
frect(a+12,173,6,2)
frect(a+16,175,2,2)
color(255,255,0)
frect(a,153,8,2)
frect(a+4,155,2,2)
frect(a+6,157,4,4)
frect(a+8,155,2,2)
frect(a+10,159,2,2)
color(0,0,255)
frect(a+2,157,2,2)
color(0,200,200)
frect(a+14,163,2,2)
frect(a+14,159,6,4)
frect(a+16,157,6,2)
frect(a+18,155,4,2)
frect(a+20,153,2,2)
unlock(1)
sleep(5)
clear(a,150,30,30)
a=a-3
next
thread("ピクシー","ぴ")
301非通知さん@アプリ起動中:05/01/24 16:30:12 ID:rkNn1lNi
soft1("終わり")
label 0
if input(0) and keysoft1 then exit endif
lock()
color(0,0,255)
frect(85,85,70,70)
color(0,255,0)
frect(90,90,60,60)
color(255,255,0)
frect(105,125,30,5)
frect(105,100,5,25)
frect(130,100,5,25)
frect(110,95,20,10)
color(0,255,255)
frect(110,130,20,15)
frect(115,125,10,5)
frect(110,105,20,20)
frect(105,110,30,10)
frect(100,110,5,5)
frect(135,110,5,5)
frect(95,105,5,5)
frect(140,105,5,5)
color(0,0,255)
frect(110,110,5,5)
frect(125,110,5,5)
color(255,255,0)
frect(125,105,5,5)
unlock(1)
goto 0

このthreadが呼び出されないのってなんでですかね?
302非通知さん@アプリ起動中:05/01/24 22:17:19 ID:rkNn1lNi
一緒にゲームブックezbasicでつくりませんか?
といってみる(´・д・`)
303非通知さん@アプリ起動中:05/01/24 23:53:36 ID:MHd0LP37
俺は上の方にあるボンバーマンみたいなことがやりたいな.

暇ができたらまとめサイトくらいなら作る気あるかも,
と言ってみる.

とりあえず携帯Basicの他キャリア版を待つことにしましょう.
304非通知さん@アプリ起動中:05/01/25 00:12:07 ID:oWiEfLO0
>303
携帯ベーシックまでのつなぎになんかつくろと思ったんだけどね。
一人で頑張ってみます
305非通知さん@アプリ起動中:05/01/25 01:41:45 ID:A2qtEoKE
>>303
俺が今作ってたりするw
306非通知さん@アプリ起動中:05/01/25 16:51:46 ID:QVh7HtU1
>>305

ん? まとめサイト?
307非通知さん@アプリ起動中:05/01/25 17:44:39 ID:A2qtEoKE
>>307
まとめサイト。
308307:05/01/25 17:52:43 ID:A2qtEoKE
自分に言ってどーすんだorz
×>>307
>>306
309(>-< ◆E9k1wjKgHI :05/01/25 18:14:28 ID:y+LOJ7Ti
文字をフェードアウト及びフェードオンするには、どうしたらよいのでしょうか?
310非通知さん@アプリ起動中:05/01/25 21:00:14 ID:GlWKg5BO
たぶん「フェードアウト」の反対は「フェードイン」だと思う。
311非通知さん@アプリ起動中:05/01/25 21:17:02 ID:QVh7HtU1
>>309
たぶん色を変えながら徐々に表示したら良いんじゃないかしら.
color(●,●,●)
text(●,●,●)
sleep(●)
をforで回す感じで.

>>307
先を越されましたか.
がんばってください.
312(>-< ◆E9k1wjKgHI :05/01/25 22:20:43 ID:y+LOJ7Ti
フォーで回すってどうやるんですか?
313非通知さん@アプリ起動中:05/01/25 22:46:21 ID:oWiEfLO0
A=200
for i=0 to 5
frect(A,200,5,5)
sleep(200)
A=A-5
clear(A+5,200,5,5)
next

forはこんな感じでつかいます。
for i=0 to 5 step 1
;iが0からはじまり(i=0)1づつ(step 1;ただし1なら省略可)増えて5になったら終わり

next
;iに1を足して(step 1)forにもどる

もし間違ってたら訂正お願いします
314(>-< ◆E9k1wjKgHI :05/01/25 22:52:21 ID:y+LOJ7Ti
皆さんレス有難うございますo(^^)o度々すいませんがm(__)m『i』は虚数の意味ですか?
315非通知さん@アプリ起動中:05/01/25 23:01:19 ID:oWiEfLO0
iはなんでも大丈夫ですよ
aでもzでも
虚数はちとわかりません
316べーしっ君 ◆w5dyDtGv0k :05/01/25 23:53:24 ID:j74GESA9
ez版移植完了しました。Phase3以上対応です。
ver1.0.2
http://satoo.jp/ez/basic/

voda版も完成したんですがアプリゲットに申請中なんで公開はもうすこしかかりそうです。

>>297
報告ありがとうございます。マニュアルを500文字以内くらいに入るように分割しました。
317非通知さん@アプリ起動中:05/01/26 00:03:42 ID:0EHFT0S0
>>316
おつかれさんでっす!…と思ったらPhase3でしたか…なんとか3未満に対応出来ないですかね?
318非通知さん@アプリ起動中:05/01/26 00:30:49 ID:jkhYUZd/
お疲れ様です
マニュアルが中に入って使いやすさスッゴイイイデス
319非通知さん@アプリ起動中:05/01/26 00:56:22 ID:jOECX+8g
おつかれさんでっす.
マニュアル分割もどうもです.


簡易お絵かきソフトと,ディスプレイ見なくてもできるクソゲを作ってみた.
こんなことしてる暇は無いはずなのだが.
320非通知さん@アプリ起動中:05/01/26 05:49:19 ID:jkhYUZd/
(・∀・)
soft1("終わり")
A=80C=90E=2F=1G=2
line(0,215,235,215)

label 0
B=200 D=200
if input(0) and keysoft1 then exit endif
R=abs(rand)%2 r=abs(rand)%E s=abs(rand)%F t=abs(rand)%1000

if R=0 then r=r-r*2 endif
for i=0 to G
clear(A-25,B-40,100,50)
if A<=0 then r=r-r*2 endif
if A>=175 then r=r-r*2 endif
text("(  )",A,B) text("・∀・",C,D) B=D D=D-s A=A+r C=C+r
sleep(50)
next
for i=0 to G
clear(A-25,B-40,100,50)
if A<=0 then r=r-r*2 endif
if A>=175 then r=r-r*2 endif
text("(  )",A,B) text("・∀・",C,D) B=D D=D+s A=A+r C=C+r
sleep(30)
next
clear(A-25,B-40,100,50)text("(・∀・)",A-r,200)sleep(t)
if t<=200 then
clear(A-5,B-40,70,45) text("(-∀-)",A,200) sleep(100) endif
if t<=10 and F<5 then E=E+1 endif
if t>=970 and F<5 then F=F+1 endif
if t>500 and t<515 and G<5 then G=G+1 endif
goto 0
321べーしっ君 ◆w5dyDtGv0k :05/01/26 14:46:10 ID:UswxiIvP
>>317
phase3未満にもぜひ対応版を作りたいんですけど、
いろいろと細かい問題があるんです。
phase3未満ではソフトキーの押下状態が取得できないんで、
どうやってscan変数を実装するか考え中です。
ソフトキー以外だったらキーが押された瞬間と離した瞬間がわかるんで何とか実装できるんですけど。

yasuさんのezbasicで実験したところphase3未満対応なのに
ソフトキーの状態もscan変数で取得できてるので
どうやってやってるのか激しく知りたいです。

そこだけ解決すればすぐ対応できるんですが、、だれかおしえてくらちい。
322(>-< ◆E9k1wjKgHI :05/01/26 15:00:34 ID:LcEkr32a
>>315
有難うございます(*^o^*)
虚数は二乗して-1になる数字だと思います
323非通知さん@アプリ起動中:05/01/26 16:36:11 ID:jkhYUZd/
soft1("終わり")
rect(20,80,200,150) color(200,100,0) frect(21,201,199,29) A=80C=90E=1F=1G=0
color(0,0,0)
label 0
B=200 D=200
if input(0) and keysoft1 then exit endif
R=abs(rand)%2 r=abs(rand)%E s=abs(rand)%F t=abs(rand)%1000
if R=0 then r=r-r*2 endif
for i=0 to 4
clear(A,B-25,60,26) B=D D=D-s A=A+r C=C+rif A<30 then r=r-r*2 endif
if A>150 then r=r-r*2 endif
text("(  )",A,B) text("・∀・",C,D) sleep(50)
next
for i=0 to 4
clear(A,B-25,60,26) B=D D=D+s A=A+r C=C+r
if A<30 then r=r-r*2 endif
if A>150 then r=r-r*2 endif
text("(  )",A,B) text("・∀・",C,D) sleep(30)
next
clear(A,B-25,60,26) text("(・∀・)",A,200) sleep(t)
if t<=200 then
clear(A,B-25,60,25) text("(-∀-)",A,200) sleep(100) endif
if t<=G and E<3 then E=E+1 endif
if t>=1000-G and F<5 then F=F+1 endif
G=G+1
goto 0

ちょっと更新
>322
2乗して-1、ありえないから虚数っていうんですか。ナルホド
324非通知さん@アプリ起動中:05/01/26 17:03:06 ID:pjCSbrGq
satooさん、配列から透過対応のPNG画像を作れるクラス作ったんですけど使う予定無いですか?2.5Kbyteくらいで実装できると思うんですが
325非通知さん@アプリ起動中:05/01/26 18:24:42 ID:pjCSbrGq
ソフトキーはあまりそういう使い方しないと思うんでいらないです。そのかわり色の指定を一つの引数で指定できるようにしてほしいです。じゃないとRGBそれぞれで配列作らないとだめなんで…
おまけに配列に数をまとめて代入できるようになってると使いやすいです。val={0,100,50,3}みたいに
326非通知さん@アプリ起動中:05/01/26 23:43:50 ID:vO4J8gDe
まてめサイトにはどれを貼ればいいかな?
作品=完成品じゃないから判断が難しい…
それとも「(未完成)」として全て保存保存した方が良い?
327非通知さん@アプリ起動中:05/01/27 02:51:52 ID:cAjmutpl

soft1("終わり")
rect(20,80,200,150)
color(200,100,0)frect(21,201,199,29)
XX=90X=100YY=200
label 1
if input(0) and keysoft1 then exit endif
R=0G=0B=0r=250g=250b=250
for i=0 to 6
color(R,G,B)text("(  )",XX,YY)
if input(1000) and keysoft1 then exit endif
R=R+abs(rand)%45G=G+abs(rand)%45B=B+abs(rand)%45
next
if input((R+B+G)*100) and keysoft1 then exit endif
for i=0 to 10
color(r,g,b)text("-ε-",X,YY)r=r-(250-R)/9 g=g-(250-G)/9 b=b-(250-B)/9
if input(1000) and keysoft1 then exit endif
next
if input((R+B+G)*100) and keysoft1 then exit endif
clear(XX,YY-25,60,25) text("(・ε・)",XX,YY)
#赤ちゃん〜子供#
328非通知さん@アプリ起動中:05/01/27 02:55:15 ID:cAjmutpl
赤ちゃん〜子供
soft1("終わり")
color(0,0,0)rect(20,80,200,150) color(200,100,0)frect(21,201,199,29) W=1 H=1 C=0 Fb="・ε・" Fc="・∀・" Fa=Fb l=500 color(R,G,B)
label 0
YY=200 Y=200
if input(0) and keysoft1 then exit endif
p=abs(rand)%3 w=(rand)%W h=abs(rand)%H t=abs(rand)%1000
for i=0 to 4
text("(  )",XX,YY)text(Fa,X,Y) sleep(50) clear(XX,YY-25,60,26) YY=Y Y=Y-h XX=XX+w X=X+w
if XX<30 then w=w-w*2 endif
if XX>150 then w=w-w*2 endif
next
for i=0 to 5
text("(  )",XX,YY)text(Fa,X,Y) sleep(50) clear(XX,YY-25,60,26) YY=Y Y=Y+h XX=XX+w X=X+w
if XX<30 then w=w-w*2 endif
if XX>150 then w=w-w*2endif
next
text("(  )",XX,YY)text(Fa,X,YY)sleep(t) clear(XX,YY-25,60,26)
if t<=200 then
if Fa=Fb then
text("(-ε-)",XX,200) endif
if Fa=Fc then text("(-∀-)",XX,200)endif
sleep(100) clear(XX,YY-25,60,25)endif
if t<=C and W<3 then
W=W+1 C=0 endif
if t>=1000-C and H<5 then H=H+1 C=0 endif
C=C+p l=l-p
if l<=0 then #死亡# endif
if l<=300 then Fa=Fc endif
goto 0
329非通知さん@アプリ起動中:05/01/27 03:04:38 ID:cAjmutpl
死亡
R=abs(rand)%250
G=abs(rand)%250
B=abs(rand)%250
clear(XX,YY-25,60,25) for i=0 to 10
color(R,G,B)
text("(  )",XX,200) text(Fa,X,200)
R=((250-R)/10)+R
G=((250-G)/10)+G
B=((250-B)/10)+B
sleep(500)
next
clear(XX,YY-25,60,25) text("(-_-)",XX,200) label 1
if input(0) and keysoft1 then exit endif
goto 1

また少し更新

>326
未完成もとっといてくれるとうれしいです
330非通知さん@アプリ起動中:05/01/27 10:23:40 ID:zJ3Ff/8Z
>>326
改良されてるやつは,改良後だけで良いと思う.

あとは……適当に.
331べーしっ君 ◆w5dyDtGv0k :05/01/27 15:21:33 ID:mZTJYSlB
>>324
透過対応だと使いやすいですね、必ず対応できるかわかりませんが、
参考のために送っていただけますか?
ttp://satoo.jp/i/basic/ の管理人へのメールへ)
i版のために透過gifにも対応させたいですね。

>>327
たまごっちみたいでいい(・∀・)!!

phase3未満にも現在対応中です。もうすこしかかりそう。
332非通知さん@アプリ起動中:05/01/29 00:49:35 ID:RgYGZ4pS
どうすか?できそうすか?>>331
333非通知さん@アプリ起動中:05/01/31 00:31:16 ID:BEdkR5Uy
おまいら待ってろ!
俺がこいつでROGUE CLONEをつくる!

と無責任に発言してみる。
334非通知さん@アプリ起動中:05/01/31 16:47:41 ID:WAdmcEMQ
じゃあ俺ぷよぷよつーくろ
335べーしっ君 ◆w5dyDtGv0k :05/01/31 18:45:24 ID:KLHZMKKD
致命的なバグ(ifのなかにelseifが使えない、ez,jでエラーメッセージが出ないなど)があったので、ver1.0.3を公開しました。
前のversionを使っている方はすみませんがバージョンアップ推奨です。サンプルプログラムに倉庫番入れました。
それとezのphase3未満版もつくりました。かなり遅いかもしれません。
j版はアプリゲットで公開されてますが、ver1.0.3に変更されていないのでまだDLしないで下さい。

i版
ttp://satoo.jp/i/basic/
ez版
ttp://satoo.jp/ez/basic/

現在の作り方では、速度アップや拡張は厳しいのでインタプリタやコンパイラについて本をみて勉強中です。
なので、機能の拡張などは一旦休みます。携帯BASICの今後としては互換性を残しつつ根本的に作り直せたらいいなと思います。
そのときにimage生成にも対応するかもしれません。
336非通知さん@アプリ起動中:05/01/31 20:06:05 ID:WAdmcEMQ
キタ━━━━━━(゚∇゚)━━━━━━━━━━━!!!!
337べーしっ君 ◆w5dyDtGv0k :05/01/31 20:18:44 ID:KLHZMKKD
ちょっと気づいたんですが、バージョンアップをすると今までのスクラッチパッドは引き継がれるのですが、それだと新しいサンプルプログラムが出来ないですね。
かなり長いですがサンプルの「倉庫番」を載せておきます。1.0.3で動作します。サンプル収録したのを若干修正した物です。

'倉庫作業/時給710円ver1.0.1

m= "■■■■■■■■■"
m=m+"■・  ■  ・■"
m=m+"■ ・□■□・ ■"
m=m+"■   □ ♀ ■"
m=m+"■■ □■□ ■■"
m=m+"■   □   ■"
m=m+"■ ・□■□・ ■"
m=m+"■・  ■  ・■"
m=m+"■■■■■■■■■"
soft2("逃亡") jx=strwidth(" ")+descent jy=strheight+descent ox=width/2-(jx*9)/2 oy=height/2-(jy*9)/2 color(0,0,0)
for y = 0 to 8 for x = 0 to 8 MAP[y][x] = strat(m,(y*9)+x) if MAP[y][x]="♀" then px=x py=y
MAP[y][x]=" "
elseif MAP[y][x]="・" then
q=q+1
endif
text(MAP[y][x],ox+(x*jx),oy+(y*jy))
next
next
#一# #二# #三# #四#
338べーしっ君 ◆w5dyDtGv0k :05/01/31 20:20:11 ID:KLHZMKKD
'一
gosub "pdraw"
mes="社長:早く作業しろ!" gosub "tdraw"

label loop
lock()
'キー判定
key=input()
if key=keysoft2 then
end
elseif key=keyleft then
mx=-1 my=0 gosub "move"
elseif key=keyright then
mx=1 my=0 gosub "move"
elseif key=keyup then
mx=0 my=-1 gosub "move"
elseif key=keydown then
mx=0 my=1 gosub "move"
endif
'クリア判定
if q=a then
mes="社長:労働終了!帰れ!" gosub "tdraw"
unlock("1") onvib() input() exit
endif

unlock("1")
goto "loop"
339べーしっ君 ◆w5dyDtGv0k :05/01/31 20:20:55 ID:KLHZMKKD
'二
'サブルーチン
label move
if MAP[py+my][px+mx]=" " or MAP[py+my][px+mx]="・" then
for z = 0 to 1 dy=py+(z*my) dx=px+(z*mx) gosub "mdraw" next px=px+mx py=py+my gosub "pdraw"
elseif MAP[py+my][px+mx]="□" then
if MAP[py+(my*2)][px+(mx*2)]=" " then
MAP[py+(my*2)][px+(mx*2)]="□" MAP[py+my][px+mx]=" "
for z = 0 to 2 dy=py+(z*my) dx=px+(z*mx) gosub "mdraw" next px=px+mx py=py+my gosub "pdraw"
elseif MAP[py+(my*2)][px+(mx*2)]="・" then
MAP[py+(my*2)][px+(mx*2)]="田" MAP[py+my][px+mx]=" "
340べーしっ君 ◆w5dyDtGv0k :05/01/31 20:21:38 ID:KLHZMKKD
'三
for z = 0 to 2 dy=py+(z*my) dx=px+(z*mx) gosub "mdraw" next px=px+mx py=py+my a=a+1 gosub "pdraw"
endif
elseif MAP[py+my][px+mx]="田" then
if MAP[py+(my*2)][px+(mx*2)]=" " then
MAP[py+(my*2)][px+(mx*2)]="□" MAP[py+my][px+mx]="・"
for z = 0 to 2 dy=py+(z*my) dx=px+(z*mx) gosub "mdraw" next px=px+mx py=py+my a=a-1 gosub "pdraw"
elseif MAP[py+(my*2)][px+(mx*2)]="・" then
MAP[py+(my*2)][px+(mx*2)]="田" MAP[py+my][px+mx]="・"
for z = 0 to 2 dy=py+(z*my) dx=px+(z*mx) gosub "mdraw" next
341べーしっ君 ◆w5dyDtGv0k :05/01/31 20:22:23 ID:KLHZMKKD
'四
px=px+mx py=py+my gosub "pdraw"
endif
endif
return

label tdraw
color(255,255,255) frect(ox,oy+(jy*9)-jy+descent,jx*10,jy)
color(0,0,0) text(mes,ox,oy+(jy*9))
return

label mdraw
color(255,255,255) frect(ox+(dx*jx),oy+(dy*jy)-jy+descent,jx,jy)
color(0,0,0) text(MAP[dy][dx],ox+(dx*jx),oy+(dy*jy))
return

label pdraw
color(255,255,255) frect(ox,oy-(jy*1)-jy+descent,jx*4,jy)
color(0,0,0) text("手数"+(t),ox,oy-jy) text("♀",ox+(px*jx),oy+(py*jy))
t=t+1
return
342非通知さん@アプリ起動中:05/01/31 20:43:37 ID:YtrHKqFf
>335
さっそくDLさせてもらいました。
乙デス
343非通知さん@アプリ起動中:05/02/01 10:13:55 ID:xOAJZI7P
>335
さっそくDLさせてもらいました。
乙デス
344非通知さん@アプリ起動中:05/02/01 12:54:29 ID:lnMgndeQ
乙です。でもezBASICより操作性悪くなってるような…
save関数についてですが一つしか使えないのは厳しいので10個くらいにならないですか?
あと次の改良版マジで期待してます!がんばって
345べーしっ君 ◆w5dyDtGv0k :05/02/01 18:25:28 ID:LtsZmwyC
とりあえずvodafone版公開されましたのでageます。P5/P6に対応しています。動作はかなり遅いです。
下の紹介ページからアプリゲットのDLページに行って下さい。
ttp://satoo.jp/j/basic/
346非通知さん@アプリ起動中:05/02/01 20:59:52 ID:16vM1JAv
これって金かかんの?
347非通知さん@アプリ起動中:05/02/01 21:04:53 ID:HZqPnSg8
無料。もし初心者でBASICを手軽に理解したいなら
本くらいは買わないといかんかもしれんが、
ここは詳しいクリエイターが多いんで、少しくらいならここで聞くといい。
348非通知さん@アプリ起動中:05/02/01 21:24:46 ID:GeOTtggB
保存したいのが2つ以上あるとき、
SAVE=X*10+Y
で保存して
X=SAVE/10
Y=SAVE-SAVE/10
てできるんですか?
349非通知さん@アプリ起動中:05/02/01 21:57:27 ID:HZqPnSg8
やりたい事はわかるし、可能と思うけど…
式が少し変じゃないかな?
自分の頭が悪いだけかもしらんので間違ってたら御免。
350非通知さん@アプリ起動中:05/02/01 22:19:50 ID:HZqPnSg8
要は、10の位にX。1の位にYを保存して
元の値に解凍したいんだよね?
351非通知さん@アプリ起動中:05/02/01 23:14:33 ID:GeOTtggB
そういうことです
たとえば
X=1
Y=2
SAVE=X*10+Y

SAVE=1*10+1

SAVE=11

で読み込むときは
X=SAVE/10

X=11/10

X=1.1

ダメですね(/д`)
初め自分で調べようと思ったら桁が10億桁になるからスルーしてたんですが、だれかやってるのかなぁと
SAVEのなかの何桁目をXにする、とかにすればよいんですかね
352非通知さん@アプリ起動中:05/02/01 23:20:20 ID:HZqPnSg8
X=substr(SAVE,0,1)
Y=substr(SAVE,1,1)
でやってみたらイケない?
Yの方はSAVE-X*10でもOK。
353非通知さん@アプリ起動中:05/02/01 23:36:49 ID:GeOTtggB
関数まだあんまりわかんないですよ
ちなみに10億桁は無理ですよね(^_^;)
354非通知さん@アプリ起動中:05/02/01 23:45:32 ID:HZqPnSg8
10億桁…もまあ、工夫次第かな?
どんな値を保存したいのかはよくわからないけど、
少しやってみようか?
355非通知さん@アプリ起動中:05/02/01 23:51:56 ID:GeOTtggB
あ、お願いしてもよいですか?(・ω・)
イマイチわかんない事が多いんですよね
今は前の(・∀・)がピョンピョンするやつを育成+アドベンチャーで作りなおしてるんですが、皆さんどんなの作ってるんでしょ
356非通知さん@アプリ起動中:05/02/01 23:59:35 ID:HZqPnSg8
桶。自分が作ってんのはFF風の奴だな。
一応、ATBだけはできたんだが。
357非通知さん@アプリ起動中:05/02/02 00:06:23 ID:GeOTtggB
#ソース#で挿入っていいですよね。
キャラグラフィックはcolor frectですか?それともグラなし?
前のezBASICと表示の仕方がなんか違うんですかね。lock unlockでも表示されない(-д-)
358非通知さん@アプリ起動中:05/02/02 00:31:04 ID:cCZLAQjZ
突然で悪いがゲームできたんでうぷさせてもらいますよ。
タイトル □■
label 3#生成#
str[0]="□"
str[1]="■"
w=strwidth("全")
clear(0,0,w*8,w*8)
for i=0 to 7
for j=0 to 7
text(str[DATA[i][j]],i*w+1,j*w+2+w)
next
next
label 0lock()color(255,255,255)rect(X*w,Y*w,w,w)A=scan
if A=key1 then
end
elseif A=keyright and X<7then
X=X+1
elseif A=keyleft and X>0then
X=X-1
elseif A=keyup and Y>0then
Y=Y-1
elseif A=keydown and Y<7then
Y=Y+1
elseif A=keyselect then
T=T+1
gosub"CROSS"
endif
color(0,0,0)rect(X*w,Y*w,w,w)unlock(1)yield()goto 0
label CROSS
#十字#return
359非通知さん@アプリ起動中:05/02/02 00:32:28 ID:cCZLAQjZ
タイトル 生成
e=""if te>T then S=S+1if S=3then e="全クリ!"endif
else e="手数オーバー"endif
text(e,w,w*6)sleep(1000)T=0go[0]="A"go[1]="B"go[2]="C"
goto go[S]
label A
A="0000000000101100011000100010110000011000001001000001100000000000"te=6goto 9
label B
A="0000000000000000000110000011110000111100000110000000000000000000"te=5goto 9
label C
A="0000000100100110011110000001110101100011010111101111000001000000"te=11goto 9
label 9for i=0 to 63
DATA[i%8][i/8]=strat(A,i)
if DATA[i%8][i/8]=1then BW=BW+1endif
next
360非通知さん@アプリ起動中:05/02/02 00:34:28 ID:cCZLAQjZ
タイトル 十字
color(0,0,0)
V[0]=-1V[2]=1V[6]=-1V[8]=1
for i=0 to 4
if X+V[i]<8and X+V[i]>-1and Y+V[5+i]<8and Y+V[5+i]>-1then
DATA[X+V[i]][Y+V[5+i]]=1-DATA[X+V[i]][Y+V[5+i]]
if DATA[X+V[i]][Y+V[5+i]]=0then BW=BW-1else BW=BW+1endif
if BW=0then clear(0,0,w*8,w*8)text("CLEAR!",w*4-w*3/2,w*4)text(T+"手",w*3,w*5)BW=0X=0Y=0unlock(1)sleep(1000)goto 3endif
clear((X+V[i])*w,(Y+V[5+i])*w,w,w)
text(str[DATA[X+V[i]][Y+V[5+i]]],(X+V[i])*w+1,(Y+V[5+i])*w+2+w)
endif
next


黒いのを手数以内で全部白にしたらクリアです。「生成」をいじってオリジナルを作って遊んでみてください。
361非通知さん@アプリ起動中:05/02/02 16:23:25 ID:sQgc2SeT
ライフゲーム作ってみたけど,
やっぱり配列は処理が大分遅くなるみたい.
型を作れば解決かもしれないけど,難しいとこだね.
あと,配列にマイナス値を入れられるぽいかも.
a[-1]みたく.
362非通知さん@アプリ起動中:05/02/02 16:50:47 ID:5hVQj+n5
>357
ちょっとした素朴な疑問だけど、
10億桁っていったい何を保存する気なのかな?
3桁の数字で1千万個保存できる桁だぞ。
それとも実際のところ10桁と数字の10億を混同したのか?
…だと思いたいが。
363ネオ:05/02/02 18:54:08 ID:CQgoAqzz
乙。
さっそくDLしました。
364非通知さん@アプリ起動中:05/02/02 19:48:01 ID:cCZLAQjZ
いろんなパターン考えてみてください。変数teはそのパターンに許される手数+1の値です。
365非通知さん@アプリ起動中:05/02/02 20:27:08 ID:szGLRnwZ
>362
たとえばcolor(R,G,B)を保存するとしたら
100*100*100桁、100万桁ですよね。それとも16進数ですか?
366非通知さん@アプリ起動中:05/02/02 20:30:04 ID:9PeAP90g
iBASICでゲーム作るにはどこのサイトで勉学すればいいですか?
367非通知さん@アプリ起動中:05/02/02 20:57:25 ID:YLiBIhY/
言語解説読んでもいまいち作り方がワカンネ
だれか簡単に説明して
368ネオ:05/02/02 20:59:00 ID:CQgoAqzz
早速適当に作らせていただきました。

ADVなどのメッセージ表示。

soft2("end")
k="厨のプログラミングテスト。"
i=0
label loop
sleep(150)
text(substr(k,i,1),10+i*15,100)
i=i+1
if i > strlen(k)-1 then
sleep(500)
goto "fin"
else
goto "loop"
endif

label fin
if input() and keysoft2 then
end
else
goto "fin"
endif

369ネオ:05/02/02 21:05:47 ID:CQgoAqzz
>>362
10億?
RPGでも作るのか?

変数の方が何使われとるかしらんけど、INTEGERなら…ってか代入できるか試せよ。
370非通知さん@アプリ起動中:05/02/02 21:06:59 ID:wCmRXpKx
>>365
3+3+3で9桁では?
371ネオ:05/02/02 21:11:01 ID:CQgoAqzz
>>370
確かに。

>>367
ドンマイ(;´Д`)
372非通知さん@アプリ起動中:05/02/02 21:14:45 ID:szGLRnwZ
>370

(・д・)

(・д・;

(・д;;;,

(・;;;;;;,,

(;;;;;;;;,,,

俺ってなんてアホなんだ……
373非通知さん@アプリ起動中:05/02/02 21:17:48 ID:szGLRnwZ
>365さん

スミマセンorz
374(>-< ◆E9k1wjKgHI :05/02/02 21:19:22 ID:yStL3GxC
盛り上がってますね(^L^)
375非通知さん@アプリ起動中:05/02/02 21:23:53 ID:szGLRnwZ
間違えた
>356さんですorz
いってきます
376ネオ:05/02/02 21:39:09 ID:CQgoAqzz
育成ゲムきぼんぬ(つ∀`)

わしも作ってみるから誰かも作る(´ー`)人(`∀´∴)
…orz
377(>-< ◆E9k1wjKgHI :05/02/02 21:42:10 ID:yStL3GxC
僕はテキストノベル作っています(o^o^o)
378非通知さん@アプリ起動中:05/02/02 22:06:22 ID:cCZLAQjZ
ぷよぷよもどき作りました。俺の使ってる最速のアルゴリズム使ってもクソ遅い…
やっぱパズル系ぐらいが妥当か?

タイトル「ぷよぷよ」

frect(0,0,width,height)color(255,255,255)rect(28,19,75,120)rect(58,4,15,15)R[1]=255R[2]=255G[2]=255G[3]=255B[4]=255N=abs(rand)%4+1X=2label 0a=scan
lock()if s=0then
color(0,0,0)farc(29+X*15,20+Y*15,14,14)G=G+1if a=key1 then end elseif a=keyleft then if X>0and Y>-1and P[X-1][Y]=0then X=X-1endif
elseif a=keyright then if X<4and Y>-1and P[X+1][Y]=0then X=X+1endif
endif
if a=keydown or G=12then G=0if Y<7and P[X][Y+1]=0then Y=Y+1else P[X][Y]=N s=1endif
endif
color(R[N],G[N],B[N])farc(29+X*15,20+Y*15,14,14)else
for i=0 to 39C[i/8][i%8]=0next
M=0W=0for i=0 to 39X=i/8Y=i%8In=1if P[X][Y]>0and C[X][Y]=0then M=M+1C[X][Y]=M
Col=P[X][Y]gosub"CH"endif
if In>3then ket[W]=M
sr=sr+In
W=W+1endif
next
s=0if W>0then
for j=0 to 39for i=0 to W-1if C[j/8][j%8]=ket[i]then P[j/8][j%8]=0endif
next
next
#落下#s=1endif
X=2Y=-1N=abs(rand)%4+1if P[2][0]>0then color(255,0,0)text("LOSE",0,24)sleep(2000)end endif
endif
unlock(1)yield()goto 0label CH
#再帰#return
379非通知さん@アプリ起動中:05/02/02 22:07:43 ID:cCZLAQjZ
タイトル「再帰」

H[l]=X
I[l]=Y
if H[l]<4and C[H[l]+1][I[l]]=0and P[H[l]+1][I[l]]=Col then
C[H[l]+1][I[l]]=M
In=In+1X=H[l]+1Y=I[l]l=l+1gosub"CH"l=l-1endif
if H[l]>0and C[H[l]-1][I[l]]=0and P[H[l]-1][I[l]]=Col then
C[H[l]-1][I[l]]=M
In=In+1X=H[l]-1Y=I[l]l=l+1gosub"CH"l=l-1endif
if I[l]<7and C[H[l]][I[l]+1]=0and P[H[l]][I[l]+1]=Col then
C[H[l]][I[l]+1]=M
In=In+1X=H[l]Y=I[l]+1l=l+1gosub"CH"l=l-1endif
if I[l]>0and C[H[l]][I[l]-1]=0and P[H[l]][I[l]-1]=Col then
C[H[l]][I[l]-1]=M
In=In+1X=H[l]Y=I[l]-1l=l+1gosub"CH"l=l-1endif
380非通知さん@アプリ起動中:05/02/02 22:08:22 ID:cCZLAQjZ
タイトル「落下」

for i=0 to 4for j=1 to 7if P[i][j]=0then for k=0 to j-1
P[i][j-k]=P[i][j-k-1]next
P[i][0]=0endif
next
next
for i=0 to 4for j=0 to 7N=P[i][j]color(R[N],G[N],B[N])farc(29+i*15,20+j*15,14,14)next
next
381非通知さん@アプリ起動中:05/02/02 22:25:44 ID:5hVQj+n5
>375
いや、でも一言アドバイスを。
RGBなら使う色をあらかじめ決めておけば?
たとえばこれを先に定義づけておいて
RED1=16*X
GREEN1=16*Y
BLUE1=16*Z
実際に保存する場合XYZにすれば少ない桁数で済む。
>366-367
むしろ普通のBASICだと思うと理解し辛いかも。
しようか?説明。長くなるが。
382非通知さん@アプリ起動中:05/02/03 00:35:33 ID:yPs7ECaK
>381
R=RED*16
↑ナルホド!

説明、というか講義なんかしてくれるとうれしいです。
まだまだわかんない事いっぱいなので
383非通知さん@アプリ起動中:05/02/03 10:54:47 ID:k57T42FG
星のカービィスーパーDXの刹那の見切りみたいなの作ってくれませんか?
384非通知さん@アプリ起動中:05/02/03 13:56:26 ID:ytJXu2ql
結構簡単に再現できるハズ。
過去ログにも似たようなのあったかな?
見つけるか作るかしたらあげとく。
でも誰かがやってくれるとありがたい。
385非通知さん@アプリ起動中:05/02/03 23:00:07 ID:B9In6Yq5
line(0,0,10,10)と打ってもエラーが出ます
どうすれば線が引けますか?
386非通知さん@アプリ起動中:05/02/03 23:04:59 ID:k57T42FG
>>385
label 10
line(0,0,10,10)
goto 10
でやってみてください
387非通知さん@アプリ起動中:05/02/03 23:06:46 ID:B9In6Yq5
>>386
サンクス
labelがないとダメなんですね
388kewpie:05/02/03 23:41:48 ID:y7LZQMwv
このアプリすごいですね。BASIC懐かしくて触ってみました。質問なんですが、組み込み関数のmonthを使うと、今1月になってしまうんですけど、そうなるものでしたっけ?
…20年ぶりだから記憶が…(^^;
389非通知さん@アプリ起動中:05/02/04 00:03:26 ID:kOe9e0QT
>385
なぜエラーなのかを説明するとね。
lineの命令自体は実行されてるんだけど、
このアプリでは指令が途切れると終了扱いになるんだよね。
つまり、lineは引かれているが指令が途切れたから一瞬で終了したってわけ。
labelとgotoの方法は無限ループさせて終了させないようにしてるんだが、
抜けるのにいちいちアプリ自体を終了させなきゃならんのでお勧めしない。
labelの代わりにinput()でいったん入力を待たせる事をおすすめする。
て言うか多分、こっちが基本。
>388
dateは3になるね。
多分、この数字は1からでは無く0から始まってるんじゃなかろうか。
390非通知さん@アプリ起動中:05/02/04 00:05:06 ID:jwWOaO5O
ソフトキーの2を押すと、プログラムが終了するようにしたいんですけどどうしたら良いのでしょうか?
391非通知さん@アプリ起動中:05/02/04 00:18:17 ID:k/AZc02G
soft2("終わり")
label 0
if input(0) and keysoft2 then exit endif
goto 0

これでsoft2押せば大丈夫ですよ
392非通知さん@アプリ起動中:05/02/04 07:04:30 ID:jwWOaO5O
>>391
ありがとうございます(*´∀`)b
393非通知さん@アプリ起動中:05/02/04 18:07:30 ID:k/AZc02G
lock()
color(250,250,100)frect(100,130,25,25)frect(95,140,35,10)
color(0,0,0)
frect(95,155,35,20)frect(90,160,45,10)frect(100,155,25,35)frect(95,180,35,20)frect(100,140,10,5)frect(115,140,10,5)
color(255,255,255)frect(110,155,5,5)frect(95,160,5,10)frect(125,160,5,10)
frect(110,180,5,5)frect(100,185,25,5)frect(105,190,15,10)frect(95,190,5,5)frect(125,190,5,5)
unlock(0)
sleep((abs(rand)%10+1)*100)
color(255,255,255)frect(90,165,10,15)
color(155,155,155)frect(90,165,5,5)frect(85,165,5,15)
if input(abs(rand)%100+1/1000) and keyselect then
color(255,0,0)
frect(120,165,10,5)frect(125,175,5,5)frect(115,160,5,5)
else
color(255,0,0)
farc(50,50,200,200)
endif
soft1("終わり")
label 0
if input(0) and keysoft1 then exit endif
goto 0

即興でつくった刹那
つまらないけど
394ネオ:05/02/04 19:15:01 ID:8hA7Dd6T
↑せめて、予告バイブぐらい付けるわかりやすいんだが、無いと予知能力ないと無理ぽ(つ∀`)

395非通知さん@アプリ起動中:05/02/04 20:34:25 ID:k/AZc02G
SPEED=30
setfont("M")
text("PUSH",100,150)
XX=90X=100Y=200YY=200XXX=0YYY=200
soft1("終わり")
label 0
#input(0)exit#
if input(0) and keyselect then
clear(100,125,45,30)
SD=0
#EGG#
endif
goto 0

かなり長いけど
396非通知さん@アプリ起動中:05/02/04 20:36:21 ID:k/AZc02G
タイトル EGG
rect(20,80,200,150)
color(200,100,0)
frect(21,201,199,29)
color(0,0,0)
text("(  )",XX,200) #input(SPEED)exit#
Rr=abs(rand)%255
Gg=abs(rand)%255
Bb=abs(rand)%255
R=0G=0B=0
for i=0 to 8
color(R,G,B)
text("(  )",XX,YY)
R=(R+(Rr/9))
G=(G+(Gg/9))
B=(B+(Bb/9))
#input(SPEED)exit#
next
clear(XX,175,60,26)
text("(   )",X-20,Y)
#SEED#
397非通知さん@アプリ起動中:05/02/04 20:38:59 ID:k/AZc02G
タイトルSEED
if SD=0 then POW=0DEF=0STA=0 FFF=F XXX=0 YYY=0
FFF="(  )"FC="・∀・"FF="(  )"F="・ε・"#BABY#
elseif SD=1 then POW=0DEF=0STA=0F=",A`"#LIFE MAN#
elseif SD=2 then F="・ε・"FF="ミ  ミ"FC="・ω・"FFF="∧∧"XXX=10 YYY=25 POW=-1 DEF=-1 STA=3#BABY#
endif
398非通知さん@アプリ起動中:05/02/04 20:40:20 ID:k/AZc02G
タイトルinput(SPEED)exit
if input((SPEED)*(abs(rand)%10)) and keysoft1 then exit endif
399非通知さん@アプリ起動中:05/02/04 20:42:04 ID:k/AZc02G
タイトルinput(0)exit
if input(0) and keysoft1 then exit endif
400非通知さん@アプリ起動中:05/02/04 20:44:16 ID:k/AZc02G
タイトルBABY
lock() text(F,X,Y)text(FF,XX,Y)text(FFF,XX+XXX,Y-YYY) unlock(0)
W=1 H=1 POP=10 DEP=10 STP=10 HP=10 PP=60 DP=60 SP=60
#初期化#
clear(X-20,175,80,26) label 2
w=(rand)%W h=abs(rand)%H p=abs(rand)%3 color(R,G,B)
lock()
text(FFF,XX+XXX,Y-YYY)text(FF,XX,YY)text(F,X,Y) unlock(0)
#ジャンプ#
YY=200Y=200
lock()
text(FFF,XX+XXX,Y-YYY)text(FF,XX,YY)text(F,X,Y)unlock(0)
#まばたき#
#SEICHO#
if life<LIFE/5 then H=1 W=2 elseif life<LIFE/3 then H=3 W=3 elseif life<LIFE*4/5 then F=FC W=2 endif
goto 2
401非通知さん@アプリ起動中:05/02/04 20:46:07 ID:k/AZc02G
タイトルジャンプ
for i=0 to 8
lock()
text(FFF,XX+XXX,Y-YYY)text(FF,XX,YY)text(F,X,Y)unlock(0)
sleep(50)
clear(XX,Y-50,60,51)YY=Y XX=XX+w X=X+w if i<=3 then Y=Y-h elseif i>4 then Y=Y+h endif if XX<30 then w=w-w*2 endif if XX>150 then w=w-w*2 endif next
402非通知さん@アプリ起動中:05/02/04 20:48:24 ID:k/AZc02G
タイトルSEIHO
#input(SPEED)exit#
C=C+p life=life-p if life<=0 then #DEAD# endif
SEICHO=abs(rand)%100 if SEICHO<6 then POW=POW+R/PP+1 elseif SEICHO>94 then DEF=DEF+G/DP+1 elseif SEICHO>55 and SEICHO<61 then STA=STA+B/SP+1 endif
clear(20,0,50,81) text(POW,20,20) text(DEF,20,40)text(STA,20,60)text(life,20,80)color(255,0,0)frect(200,40-POW,5,POW)color(0,255,0)frect(210,40-DEF,5,DEF)color(0,0,255)frect(220,40-STA,5,STA)color(0,0,0)
WEEK=WEEK+1 clear(170,45,20,26)text(WEEK,170,70)color(R,G,B)
403非通知さん@アプリ起動中:05/02/04 20:49:27 ID:k/AZc02G
タイトル初期化
C=0 POW=POP+R/PP+POW DEF=DEP+G/DP+DEF STA=STP+B/SP+STA LIFE=HP+(255-R)/10+(255-G)/10+(255-B)/10 life=LIFE
WEEK=0
color(0,0,0)text("0週目",180,70)color(R,G,B)
404非通知さん@アプリ起動中:05/02/04 20:50:29 ID:k/AZc02G
タイトルDEAD
clear(X,Y-23,40,24)for i=0 to 10 color(R,G,B)text(F,X,200)R=(255-R)/11+R G=(255-G)/11+G B=(255-B)/11+B #input(SPEED)exit# next
clear(X,Y-23,40,24)text("-_-",X,200) label 3 #input(0)exit# goto 3
405非通知さん@アプリ起動中:05/02/04 20:53:54 ID:k/AZc02G
タイトルまばたき
t=abs(rand)%SPEED if input(SPEED*2) and keysoft1 then exit endif if t<=SPEED/5 then clear(X,177,10,24) clear(X+30,177,10,24) lock() text("-",X,200)text("-",X+30,200)unlock(0)sleep(100)clear(X,177,40,24)text(F,X,200)endif
406非通知さん@アプリ起動中:05/02/04 20:55:07 ID:k/AZc02G
タイトルLINE MAN
XX=X-10 xxx=XX+60 #LINE FACE# W=2 POP=3 DEP=3 STP=3 HP=80 PP=70 DP=70 SP=70 #初期化# clear(X-20,177,80,24) label 4 w=abs(rand)%W p=abs(rand)%4 color(R,G,B) #LINE FACE# i=abs(rand)%2 if i=0 then #RIGHT# endif
if i=1 then
#LEFT#
endif
XX=X-10xxx=XX+60
#LINE FACE#
#まばたき#
#SEICHO#
if life<LIFE/5 then W=2
elseif life<LIFE/3 then W=3
elseif life<LIFE/2 then F="。Д゚"
endif
goto 4

407非通知さん@アプリ起動中:05/02/04 20:56:50 ID:k/AZc02G
タイトルLEFT
for i=0 to 5 if XX<=30 then XX=XX+w goto 4 endif #LINE FACE# sleep(50) clear(XX,174,X-XX+1,27) XX=XX-w next
for i=0 to 5 #LINE FACE#sleep(50)clear(XX,174,xxx-XX+1,27)X=X-w next for i=0 to 5 #LINE FACE# sleep(50)clear(X+40,174,xxx-X-40+1,27)xxx=xxx-w next
408非通知さん@アプリ起動中:05/02/04 20:58:07 ID:k/AZc02G
タイトルRIGHT
for i=0 to 5 if xxx>=210 then xxx=xxx-w goto 4 endif
#LINE FACE# sleep(50)clear(X+40,175,xxx-X-40+1,26)xxx=xxx+w next
for i=0 to 5#LINE FACE#sleep(50)clear(XX,175,xxx-XX+1,26)X=X+w next
for i=0 to 5#LINE FACE#sleep(50)clear(XX,175,X-XX+1,26)XX=XX+w next
409非通知さん@アプリ起動中:05/02/04 21:01:06 ID:k/AZc02G
タイトルLINE FACE
lock()line(X,175,X+40,175)line(X,175,XX,200)line(X+40,175,xxx,200)text(F,X,200)unlock(1)
左に並ぶ数字は上から
STR
DEF
SKL
LIFE
育てて洞窟へ、という予定。なんかこういう風にしたほうがよさげ、とかあれば
410非通知さん@アプリ起動中:05/02/04 22:45:33 ID:+mkj30Yw
まずは非QVGAへ対応してくれ。できるだけプログラムは短い方がいいな。
411非通知さん@アプリ起動中:05/02/04 23:34:39 ID:afokH03G
お前要望など聞いておらん
412非通知さん@アプリ起動中:05/02/04 23:37:50 ID:kOe9e0QT
>411
ちょっと横から関係ないがIDがアフォ…
413非通知さん@アプリ起動中:05/02/04 23:41:48 ID:afokH03G
ひま人↑けてぃ
414非通知さん@アプリ起動中:05/02/04 23:48:09 ID:k/AZc02G
>非QVGA対応
QVGA限定ということで
>プログラムが長い
たしかに長い…ただ育成(といっても見てるだけだけど)のあとに戦闘もいれてみようかとも思ってるのでさらに完成すれば長くなります
最終的にはモンスターファームみたいなやつになるのかな
415非通知さん@アプリ起動中:05/02/05 00:11:44 ID:VkoWnkTD
べーしっ君 ◆w5dyDtGv0kサソ
PCからもDLできるようにしてください
416非通知さん@アプリ起動中:05/02/05 00:21:45 ID:Oa/u6RfU
あ、最初のソースのSPEEDは500に修正、とSEEDは0〜2でキャラ変わります
417非通知さん@アプリ起動中:05/02/05 01:00:15 ID:znULAkva
color(0,0,0)
frect(0,0,240,240)
for i=0 to 500 step 1
color(i/100,pow(i/100,2),25-i/500)
x=tan(i/10) y=sin(i)
a=120b =120
line(a+x,b+y,a-y,a+x)
line(a-y,a+x,a-x,a-y)
next
この図形なんですが…バージョンアップしたら前とは違う形になってしまいました…誰か教えてください
418非通知さん@アプリ起動中:05/02/05 01:25:12 ID:rLmQ6B4K
ふつうに直アドで取れるだろ
basicp2.kjx
basic.kjx
419非通知さん@アプリ起動中:05/02/05 01:31:42 ID:Oa/u6RfU
>417
なんかダイヤみたいな図形がでましたが…
前の図形はどんなんですか?
420非通知さん@アプリ起動中:05/02/05 01:44:57 ID:znULAkva
前のは、渦まく感じでした。
421非通知さん@アプリ起動中:05/02/05 02:46:59 ID:xaIgyFgg
渦巻く…。
これが円形だったとかかな?
422非通知さん@アプリ起動中:05/02/05 03:07:36 ID:znULAkva
線が残像を残しながら円みたいのを描いてました。
423非通知さん@アプリ起動中:05/02/05 03:17:01 ID:Oa/u6RfU
soft1("終わり")
for i=0 to 500
if input(0) and keysoft1 then exit endif
color(i/100,pow(i/100,2),i/100)
x=sin(i)
y=cos(i)
a=120
b=120
line(a+x,b+y,a-y,a+x) line(a-y,a+x,a-x,a-y) next

こんなかんじ?
424非通知さん@アプリ起動中:05/02/05 03:27:27 ID:znULAkva
すいませんが全然違います…iBasicで僕の方のを回すと分かりますよ
425非通知さん@アプリ起動中:05/02/05 03:35:45 ID:Oa/u6RfU
自分はauなんでiBASICはわかりません
ごめんなさい
426非通知さん@アプリ起動中:05/02/05 05:08:02 ID:xaIgyFgg
ちょっと素朴な疑問。
b=120って?
使われてないみたいだけど…
427非通知さん@アプリ起動中:05/02/05 12:07:11 ID:znULAkva
誰かiBasicで確かめてくださいm(_ _)m
428非通知さん@アプリ起動中:05/02/05 14:01:42 ID:rLmQ6B4K
今んとこ見つかったバグとか

・ソースを削除しようとすると上のソースに削除したソースが上書きされて上のソースが消える(致命的)。
例)ソースA
ソースB
ソースC
ソースCを消すと
  ソースA
ソースC
こうなる。
・サンプルソースがレコードストアに記録されてしまっている。(邪魔)

まだいくつかある。なんかいじるのが怖い
429べーしっ君 ◆w5dyDtGv0k :05/02/05 15:19:57 ID:3reqQyDW
>>417
たぶんtan()をezbasicで得られる値と同じに変更したからだと思います。

>>415
pc用にソースコードと一緒に配布してます。

>>428
携帯のキャリアはなんですか?
やべー、致命的だ、、。
430428:05/02/05 16:06:57 ID:rLmQ6B4K
EZのPhase2です。ほかにはあんま気にならないですが、プログラムを終了するとバックライトが消えます。サンプルはリソースとして毎回読み込んだ方がいいと思います。できればソースを選ぶ画面をezBASICと同じにしてほしいです。(速かった)
431非通知さん@アプリ起動中:05/02/05 16:48:00 ID:ZV2p6weY
soft2("終了")
a=b=c=d=e=f=g=0
label 10
color(e,f,g)
rect(a,b,c,d)
arc(a,b,c,d)
a=a+1
b=b+2
c=c+3
d=d+4
e=e+1
f=f+2
g=g+3
if a>140 then a=0 b=0 c=0 d=0 endif
if e>250 then e=0 endif
if f>250 then f=0 endif
if g>250 then g=0 endif
if input(0) and keysoft2 then exit endif
goto 10

ゲームじゃないけど
432非通知さん@アプリ起動中:05/02/05 17:55:56 ID:znULAkva
>>429さん
じゃあどうすれば、もとの図形に戻せるのですか?
433非通知さん@アプリ起動中:05/02/05 22:18:57 ID:xaIgyFgg
原因は小数点下の処理か何か?
434非通知さん@アプリ起動中:05/02/05 23:46:18 ID:KFvVjxtl
背景の色の変え方と十字キーで動かせる点のプログラム教えてもらえませんか?
435べーしっ君 ◆w5dyDtGv0k :05/02/06 00:36:55 ID:ZSIFMXw4
ver1.0.4 tan()の値がまちがっていた、バックライト消える問題を修正。(共通)、
ソースの削除時の致命的バグ(ezphase2,voda)。
アップしました。vodaは申請中。

>>432
tan()の値、昔のバージョンの方があってました。
さっきのプログラムをやってみたらちゃんとうねうねなりました。

436非通知さん@アプリ起動中:05/02/06 01:00:28 ID:WrW9u5vt
有難うございますm(__)m
早速修正版落とさせてもらいます
437非通知さん@アプリ起動中:05/02/06 01:10:57 ID:roq0lJs/
434
それらしいの作ってみたよ。
setfont("S")
text("push key",width/2-30,height/2)
soft1("終了")
x=width/2
y=height/2
sleep(2000)
label loop
clearinput()
key=scan
if key and keysoft1 then exit endif
if key and keyselect then onvib() a=abs(rand)%255 b=abs(rand)%255 c=abs(rand)%255 color(a,b,c) frect(0,0,width,height) else offvib() endif
if key and keyup then y=y-5 endif
if key and keydown then y=y+5 endif
if key and keyright then x=x+5 endif
if key and keyleft then x=x-5 endif
color(0,0,0)
farc(x,y,5,5)
goto "loop"
438非通知さん@アプリ起動中:05/02/06 01:27:28 ID:WrW9u5vt
リバーシの思考ルーチンをつくれる人いますか?
439非通知さん@アプリ起動中:05/02/06 08:47:08 ID:xEq5fOO7
>>437
ありがとう御座います
440非通知さん@アプリ起動中:05/02/06 09:56:53 ID:arS41CTN
バージョンアップお疲れさまです。^^
早速ですがフェーズ2版、起動するとやはりサンプルがレコードストアに記録されていました。すべて削除して再起動したらまたサンプルが記録されてました。何とかならないでしょうか?
441非通知さん@アプリ起動中:05/02/06 10:40:05 ID:WrW9u5vt
全て削除する前に、自分の作りたいやつを一つ残して、それ以外を消せば平気ですよ。
話し変わりますが、リバーシの思考ルーチンこれでどうやって作るか、知ってる人います?
442非通知さん@アプリ起動中:05/02/06 11:42:37 ID:dDn2E0Ua
オセロか?自分ならRPG作る方が楽でいいとさえ思うのに。
基本はマスごとに点数をつけておいて、置ける場合は
一番点の高い場所に置くようにする…って感じじゃなかったっけか。
それ関連のスレで探した方が良い気がする。
443非通知さん@アプリ起動中:05/02/06 11:44:53 ID:zQYXbeAY
ez版のは専用スレってないのでぃすか?
444非通知さん@アプリ起動中:05/02/06 11:53:55 ID:js9Cfcrb
本格的に思考させるなら、枝刈り法について勉強すると良い。
ただしiBASICが本格的な思考に向いているかどうかは別問題。
(まず処理速度面で不安)

わりと定番な手抜き案としては、たとえばマス毎にポイントを割り当て、ポイント順に打っていく。
このままではゲーム性は皆無だが、これを元にアイデアと工夫で独自の思考ルーチンに拡張するのもありといえばあり。
445非通知さん@アプリ起動中:05/02/06 11:54:42 ID:js9Cfcrb
かぶった。orz
446非通知さん@アプリ起動中:05/02/06 12:06:29 ID:arS41CTN
アレイコピーが使えればなぁ…forでやってたら遅くて遅くて。
447非通知さん@アプリ起動中:05/02/06 12:26:07 ID:WrW9u5vt
ポイントは優先順位の事ですよね?
448非通知さん@アプリ起動中:05/02/06 17:29:15 ID:arS41CTN
コンパクトかつ高速な単純モノクロお絵かきプログラムです。

label 0lock()A=scan
if A=2then end endif
x=X y=Y
A=A/4096
if A>15then A=A-16C[X][Y]=1-C[X][Y]if C[X][Y]then frect(X*8,Y*8,8,8)else clear(X*8,Y*8,8,8)endif
endif
if A>7then A=A-8Y=Y+1endif
if A>3then A=A-4X=X+1endif
if A>1then X=X-1A=A-2endif
if A=1then Y=Y-1endif
if not(x=X and y=Y)then if C[x][y]then frect(x*8,y*8,8,8)else clear(x*8,y*8,8,8)endif
next
endif
rect(X*8,Y*8,7,7)unlock(1)yield()goto 0
449非通知さん@アプリ起動中:05/02/06 18:05:42 ID:wXW961Ci
配列[]いまいちわかんないんです。
誰か解説お願いできますか
450非通知さん@アプリ起動中:05/02/06 18:40:26 ID:arS41CTN
配列変数には複数のデータが順番に並んで格納されています。そしてそれらに代入したり取り出すときに何番目のデータにするかを[]の数字で指定するのですよ。
451非通知さん@アプリ起動中:05/02/06 19:07:37 ID:wXW961Ci
ありがとうございます。俺馬鹿だから難しいです
お絵かきのソースみながら勉強してみます。
クレ君で悪いですが、もしよかったら配列の勉強になりそうなソースかいてもらいませんか?
452非通知さん@アプリ起動中:05/02/06 20:16:19 ID:arS41CTN
A="やあ!"
B="ぼくは"
C="トムさ"
text(A,0,20)
text(B,0,40)
text(C,0,60)
input()



A[0]="やあ!"
A[1]="ぼくは"
A[2]="トムさ"
for i=0 to 2
text(A[i],0,20+i*20)next
input()

は同じことをしています。これだけ見ても利点がわかりづらいかも知れませんが意味はわかると思います。がんばってください。
453非通知さん@アプリ起動中:05/02/06 21:23:41 ID:arS41CTN
オセロのルーチンか…ぷよぷよ以上に遅くなりそうだけど作ってみるか、できればプログラム同士で戦わせたりしたいな。
454非通知さん@アプリ起動中:05/02/06 21:30:12 ID:wXW961Ci
ありがとうございます
わかりやすいです
455非通知さん@アプリ起動中:05/02/06 22:00:22 ID:WrW9u5vt
枝刈り法PC板の方に書いてありましたが、よく分かりませんでした。て言うか対局リバーシすら作れなそうです(T_T) >>453
有難うございます
そうしていただく助かります(*^o^*)
456非通知さん@アプリ起動中:05/02/06 22:02:48 ID:WrW9u5vt
↑改訂がラリってますね
(;^_^Aすいませんです
457非通知さん@アプリ起動中:05/02/06 23:51:37 ID:js9Cfcrb
まあ予備知識無しに2chスレだけで理解できるわけはない罠。
だからこそ「勉強」という言葉を使ったわけで。

それはさておおき、(コンピュータ同士の)対局といっても難しく考えることはない。
一方のプログラムが導いた手を他方に手作業で入力、それを交互に繰り返せばいいだけのこと。
要は人間様相手のインターフェースさえ備えているだけでok。
当初予定していたものと一緒でしょ?
アルゴリズも>>442>>444の「なんちゃって思考ルーチン」なら、枝刈りよりは難しくはないはず。
最初なんて弱くて当たり前だし、気後れせずに挑戦するといいことがあるかもよ。
458非通知さん@アプリ起動中:05/02/06 23:55:50 ID:js9Cfcrb
書き忘れ。

>>447
そうです。
459非通知さん@アプリ起動中:05/02/07 00:35:33 ID:U2D8Um1z
コンピュータ同士の対局?人間同士じゃないんですか?
460非通知さん@アプリ起動中:05/02/07 02:51:00 ID:miKqS7+D
lock〜unlock〜yieldつかってfrectでつくった画像動かしてもチカチカしてしまうんですが、なんかよい方法ないですかね?
461非通知さん@アプリ起動中:05/02/07 18:18:58 ID:Ju75zSBM
オセロの思考ルーチンを携帯BASICに積んだところで遅いかパターン化しちゃうだけだろうということで二人対戦のにすることにしちゃったよ。もうほとんどできてるんだけど原因不明のバグがでてるからもう少しかかりそう。
462非通知さん@アプリ起動中:05/02/07 18:54:46 ID:U2D8Um1z
有難うございますm(__)m↑私は、まだまだ勉強不足なので、このスレッドで勉強させてもらいます。
463非通知さん@アプリ起動中:05/02/07 20:11:00 ID:Ju75zSBM
だめだ…いくら見てもバグの原因がわかんない。とりあえずアップするから誰かわかったら教えて
ちなみにバグは隙間を一個飛び越して変な風に色が変わっちゃうってやつ。

タイトル オセロ
label 0#初期化#label 1lock()color(0,0,0)rect(X*16,Y*16,16,16)#操作#color(0,128,255)rect(X*16,Y*16,16,16)clear(0,height-12,128,12)if not MEG=0then color(0,0,0)text(MEG,0,h)unlock(1)input()MEG=0clear(0,h-sw-1,w,sw)if te=60then goto 0endif
endif
unlock(1)yield()goto 1label C
#調査##調査2#return
464非通知さん@アプリ起動中:05/02/07 20:12:41 ID:Ju75zSBM
タイトル「初期化」
h=height
w=width
sw=strwidth("全")te=0WB[0]=0WB[1]=0WB[2]="黒"WB[3]="白"for i=0 to 99BAN[i/10-1][i%10-1]=2com[i/10-1][i%10-1]=2next
BAN[3][3]=1BAN[4][3]=0BAN[3][4]=0BAN[4][4]=1origin(w/2-64,0)color(0,128,0)frect(0,0,128,128)color(0,0,0)for i=0 to 8line(i*16,0,i*16,128)line(0,i*16,128,i*16)next
for i=0 to 3color(0,0,0)frect(47+(i%2)*32,47+(i/2)*32,3,3)j=255if BAN[3+i/2][3+i%2]=0then j=0endif
color(j,j,j)farc(51+(i/2)*16,51+(i%2)*16,11,11)next
soft1("パス")soft2("おわり")
465非通知さん@アプリ起動中:05/02/07 20:14:03 ID:Ju75zSBM
タイトル「操作」
A=input(0)if A and keyup and Y>0then Y=Y-1elseif A and keyleft and X>0then X=X-1elseif A and keyright and X<7then X=X+1elseif A and keydown and Y<7then Y=Y+1elseif A and keyselect then DAME=0PC=(te+pa)%2if BAN[X][Y]<2then DAME=9else
for K=0 to 8if BAN[X+K/3-1][Y+K%3-1]=1-(te+pa)%2then gosub"C"else DAME=DAME+1endif
next
endif
if DAME=9then MEG="そこには置けません"else te=te+1BAN[X][Y]=1-(te+pa)%2MEG=WB[2+(te+pa)%2]+"の番です。"for i=0 to 7for j=0 to 7k=BAN[i][j]if k<2then color(k*255,k*255,k*255)farc(i*16+3,j*16+3,11,11)if te=60then WB[k]=WB[k]+1endif
endif
next
next
if te=60then if WB[0]=WB[1]then MEG="引き分け"else
if WB[0]<WB[1]then MEG=WB[3]else MEG=WB[2]endif
MEG=MEG+"の勝ち!"endif
endif
endif
elseif A and keysoft2 then end elseif A and keysoft1 then pa=pa+1MEG=WB[2+(te+pa)%2]+"の番です。"endif
466非通知さん@アプリ起動中:05/02/07 20:15:35 ID:Ju75zSBM
タイトル「調査」
Ok=0x=X
y=Y
if K=7then
while x<7x=x+1if BAN[x][y]=PC then if X=x-1then x=8else for i=1 to x-X-1BAN[X+i][Y]=PC next
Ok=1x=8endif
endif
wend
elseif K=5then
while y<7y=y+1if BAN[x][y]=PC then if y=Y+1then y=8else for i=1 to y-Y-1BAN[X][Y+i]=PC next
Ok=1y=8endif
endif
wend
elseif K=1then
while x>0x=x-1if BAN[x][y]=PC then if x=X-1then x=0else for i=1 to X-x-1BAN[X-i][Y]=PC next
Ok=1x=0endif
endif
wend
elseif K=3then
while y>0y=y-1if BAN[x][y]=PC then if y=Y-1then y=0else for i=1 to Y-y-1BAN[X][Y-i]=PC next
Ok=1y=0endif
endif
wend
elseif K=0then
while y>0and x>0y=y-1x=x-1if BAN[x][y]=PC then if y=Y-1then y=0else for i=1 to Y-y-1BAN[X-i][Y-i]=PC next
Ok=1y=0endif
endif
wend
467非通知さん@アプリ起動中:05/02/07 20:16:43 ID:Ju75zSBM
タイトル「調査2」
elseif K=2then
while y<7and x>0y=y+1x=x-1if BAN[x][y]=PC then if x=X-1then y=8else for i=1 to y-Y-1BAN[X-i][Y+i]=PC next
Ok=1y=8endif
endif
wend
elseif K=6then
while y>0and x<7y=y-1x=x+1if BAN[x][y]=PC then if x=X+1then x=8else for i=1 to Y-y-1BAN[X+i][Y-i]=PC next
Ok=1x=8endif
endif
wend
elseif K=8then
while y<7and x<7y=y+1x=x+1if BAN[x][y]=PC then if x=X+1then x=8else for i=1 to y-Y-1BAN[X+i][Y+i]=PC next
Ok=1x=8endif
endif
wend
endif
if Ok=0then DAME=DAME+1endif
468非通知さん@アプリ起動中:05/02/07 21:47:49 ID:U2D8Um1z
すいません
画面が出て一瞬で終わってしまうんですけど…
469非通知さん@アプリ起動中:05/02/07 22:22:24 ID:Ju75zSBM
何で気づかなかったんだ…バグ修正版。完璧。画面が消えるんですか?それはたぶんifやforの数に対してendifやnextが足りないために起こるものだと思います。
またアップしますがそれでもだめならソースをよく見て確認してみてください。もしかしたら改行が変になってるのかも知れないね。自分で直してね

タイトル「オセロ」
label 0#初期化#label 1lock()color(0,0,0)rect(X*16,Y*16,16,16)#操作#color(0,128,255)rect(X*16,Y*16,16,16)clear(0,height-12,128,12)if not MEG=0then
color(0,0,0)text(MEG,0,h)unlock(1)input()MEG=0clear(0,h-sw-1,w,sw)if te=60then goto 0endif
endif
unlock(1)yield()goto 1label C
#調査##調査2#return
470非通知さん@アプリ起動中:05/02/07 22:23:57 ID:Ju75zSBM
タイトル「初期化」
h=height
w=width
sw=strwidth("全")te=0WB[0]=0WB[1]=0WB[2]="黒"WB[3]="白"for i=0 to 99BAN[i/10-1][i%10-1]=2com[i/10-1][i%10-1]=2next
BAN[3][3]=1BAN[4][3]=0BAN[3][4]=0BAN[4][4]=1origin(w/2-64,0)color(0,128,0)frect(0,0,128,128)color(0,0,0)for i=0 to 8line(i*16,0,i*16,128)line(0,i*16,128,i*16)next
for i=0 to 3color(0,0,0)frect(31+(i%2)*64,31+(i/2)*64,3,3)j=255if BAN[3+i/2][3+i%2]=0then j=0endif
color(j,j,j)farc(51+(i/2)*16,51+(i%2)*16,11,11)next
soft1("パス")soft2("おわり")
471非通知さん@アプリ起動中:05/02/07 22:25:02 ID:Ju75zSBM
タイトル「操作」
A=input(0)if A and keyup and Y>0then Y=Y-1elseif A and keyleft and X>0then X=X-1elseif A and keyright and X<7then X=X+1elseif A and keydown and Y<7then Y=Y+1elseif A and keyselect then DAME=0PC=(te+pa)%2if BAN[X][Y]<2then DAME=9else
for K=0 to 8if BAN[X+K/3-1][Y+K%3-1]=1-PC then gosub"C"else DAME=DAME+1endif
next
endif
if DAME=9then MEG="そこには置けません"else te=te+1BAN[X][Y]=1-(te+pa)%2MEG=WB[2+(te+pa)%2]+"の番です。"for i=0 to 7for j=0 to 7k=BAN[i][j]if k<2then color(k*255,k*255,k*255)farc(i*16+3,j*16+3,11,11)if te=60then WB[k]=WB[k]+1endif
endif
next
next
if te=60then if WB[0]=WB[1]then MEG="引き分け"else
if WB[0]<WB[1]then MEG=WB[3]else MEG=WB[2]endif
MEG=MEG+"の勝ち!"endif
endif
endif
elseif A and keysoft2 then end elseif A and keysoft1 then pa=pa+1MEG=WB[2+(te+pa)%2]+"の番です。"endif
472非通知さん@アプリ起動中:05/02/07 22:25:26 ID:XzKVTwTc
iαppliTool fot DoJa-4.0で動かすと、何を実行しても"unknown symbol"になってしまいます。

デモ、新規作成の「こんにちは」は動きます。
その編集画面ですべて選択、カット、ペーストしたものは動きません。
どなたか助言をお願いします。
473非通知さん@アプリ起動中:05/02/07 22:26:22 ID:Ju75zSBM
タイトル「調査」
Ok=0x=X
y=Y
if K=7then
while x<7x=x+1d=BAN[x][y]if d=PC then if X=x-1then x=8else for i=1 to x-X-1BAN[X+i][Y]=PC next
Ok=1x=8endif
elseif d=2then x=8endif
wend
elseif K=5then
while y<7y=y+1d=BAN[x][y]if d=PC then if y=Y+1then y=8else for i=1 to y-Y-1BAN[X][Y+i]=PC next
Ok=1y=8endif
elseif d=2then y=8endif
wend
elseif K=1then
while x>0x=x-1d=BAN[x][y]if PC=d then if x=X-1then x=0else for i=1 to X-x-1BAN[X-i][Y]=PC next
Ok=1x=0endif
elseif d=2then x=0endif
wend
elseif K=3then
while y>0y=y-1d=BAN[x][y]if d=PC then if y=Y-1then y=0else for i=1 to Y-y-1BAN[X][Y-i]=PC next
Ok=1y=0endif
elseif d=2then y=0endif
wend
elseif K=0then
while y>0and x>0y=y-1x=x-1d=BAN[x][y]if d=PC then if y=Y-1then y=0else for i=1 to Y-y-1BAN[X-i][Y-i]=PC next
Ok=1y=0endif
elseif d=2then y=0endif
wend
474非通知さん@アプリ起動中:05/02/07 22:27:48 ID:Ju75zSBM
タイトル「調査2」
elseif K=2then
while y<7and x>0y=y+1x=x-1d=BAN[x][y]if d=PC then if x=X-1then y=8else for i=1 to y-Y-1BAN[X-i][Y+i]=PC next
Ok=1y=8endif
elseif d=2then y=8endif
wend
elseif K=6then
while y>0and x<7y=y-1x=x+1d=BAN[x][y]if d=PC then if x=X+1then x=8else for i=1 to Y-y-1BAN[X+i][Y-i]=PC next
Ok=1x=8endif
elseif d=2then x=8endif
wend
elseif K=8then
while y<7and x<7y=y+1x=x+1d=BAN[x][y]if d=PC then if x=X+1then x=8else for i=1 to y-Y-1BAN[X+i][Y+i]=PC next
Ok=1x=8endif
elseif d=2then x=8endif
wend
endif
if Ok=0then DAME=DAME+1endif
475非通知さん@アプリ起動中:05/02/08 00:39:10 ID:0DDH7spQ
>satooさん
どうですか、Image関連の方は?GIFまだなら俺また手伝いますよ。
476非通知さん@アプリ起動中:05/02/08 01:13:53 ID:wInt+BAx
  ∧§∧
 ( 〆⌒ヾ
  ||  |
  Ч ∫|ソローリ
  〈〈〈 
   ∨∨






リバーシ動かない‥
477べーしっ君 ◆w5dyDtGv0k :05/02/08 15:13:10 ID:NBJ07mO7
>>475
PNGとおなじような感じでGIF生成できるクラスも作っていただけますか?
完成したらメールでおくってください。
とりあえずez版でImage対応できるようにがんばってみます。
478非通知さん@アプリ起動中:05/02/08 20:56:03 ID:gsd+daUe
スレを見直したら、根本的に勘違いしていることに気づいた。
うーん、GPLってなんじゃろ…
479非通知さん@アプリ起動中:05/02/08 21:59:24 ID:mLK9lc9R
物体を移動させるプログラムを作りたいのですが、
移動時の画面のチラつきを抑えるにはどのような
手法を用いればよいのでしょうか?
ちなみにezBASICの方です
480非通知さん@アプリ起動中:05/02/09 01:55:28 ID:26dMbUqv
>479
>245
481非通知さん@アプリ起動中:05/02/09 07:34:27 ID:wvdjLN+L
有り難うございました。
482非通知さん@アプリ起動中:05/02/09 11:23:28 ID:uaXJyxD1
もしかして携帯BASICって各キャリアの互換性が無いんですか?
483非通知さん@アプリ起動中:05/02/09 13:36:47 ID:U5fqAtVj
無いよね。
484非通知さん@アプリ起動中:05/02/09 14:42:52 ID:uaXJyxD1
だからリバーシ動かないのか…
485非通知さん@アプリ起動中:05/02/09 15:46:23 ID:uaXJyxD1
for x= 0 to 255
color(255-x,255-x,255-x)text("er",54,120)
color(x,x,x)
frect(0,0,240,240)
next
これでerがチカチカしてしまいます。ロック、アンロック使ってもダメでした…何か打開策は無いものでしょうか?
486非通知さん@アプリ起動中:05/02/09 16:04:06 ID:26dMbUqv
チカチカしてないですよ?
487非通知さん@アプリ起動中:05/02/09 16:54:05 ID:bgUR9tkq
これがやりたいのかな?
for x=0 to 255lock()color(x,x,x)frect(0,0,132,144)color(255-x,255-x,255-x)text("er",54,120)unlock(1)next
488非通知さん@アプリ起動中:05/02/09 17:09:08 ID:uaXJyxD1
そうです!それです!
有難うございました。
489非通知さん@アプリ起動中:05/02/09 17:55:41 ID:uaXJyxD1
setfont("L")
for y=0 to 120
lock()color(0,0,0)
frect(0,0,240,240)
color(255,255,255)
text("er",155,y)
unlock(1)next
for x=0 to 255 lock()color(x,x,x)frect(0,0,240,240)color(255-x,255-x,255-x)text("er",155,120)unlock(1)next

setfont("L")
for y=0 to 120
lock()color(0,0,0)
frect(0,0,240,240)
color(255,255,255)
text("er",155,7/4*y)
unlock(1)next
for x=0 to 255 lock()color(x,x,x)frect(0,0,240,240)color(255-x,255-x,255-x)text("er",155,120)unlock(1)next

後者はyに四分の七かけているのですが…何ら変わりありません、バグでしょうか?
490非通知さん@アプリ起動中:05/02/09 18:28:28 ID:bgUR9tkq
携帯じゃ小数は扱えないからとにかく計算を優先したい時は()をつけようね。(y*7)/4
491非通知さん@アプリ起動中:05/02/09 19:02:43 ID:uaXJyxD1
まいどまいど、すいませんm(__)m。詳しいですね(*^o^*)
492非通知さん@アプリ起動中:05/02/09 22:21:44 ID:BRitSF04
>>482

いや、互換性はあると思うよ。ezとボダでオセロやったけどちゃんと動いた。
たぶん機種固有のテキストボックスの文字数制限が原因だと思われ。
コピペしたときに制限に入りきらないと、ソースの尻が切れて保存されてしまうから。だいたい500文字でダメな機種もある。
それかヴァージョンが古いからかも。
493非通知さん@アプリ起動中:05/02/09 22:41:37 ID:uaXJyxD1
P900iで10000文字入ります。DoCoMoだけ駄目とかですか?
494非通知さん@アプリ起動中:05/02/11 13:28:49 ID:QPykQwUw
ここんとこゲームのプログラムあげてんの俺だけだよ〜、もっとみんな作ってくれ…つまんないんだ…
495非通知さん@アプリ起動中:05/02/11 15:30:27 ID:QPykQwUw
これ使って誰かおもしろいの作って

w=width
Y=20X=abs(rand)%(w-3)P=-2x=60frect(0,0,w,144)color(255,0,0)frect(0,136,w,8)frect(0,0,w,8)label 0lock()A=scan
color(0,0,0)frect(x,100,16,4)frect(X,Y,3,3)PY=Y
PX=X
Px=x
G=G-1if abs(G)>36then G=36*(G/abs(G))endif
Y=Y-G
if X<=0or X>w-5then P=-P endif
if abs(Y-152)<20then Y=133G=-G elseif abs(Y+11)<20then Y=8G=G-1G=-G endif
if abs(X-x-7)<10then if Y>96and PY<95and abs(PX-Px-7)<10then Y=97G=G-2G=-G elseif Y<103and PY>102and abs(PX-Px-7)<10then Y=104G=G+2G=-G endif
endif
X=X+P
if A=8192and x>0then x=x-4elseif A=16384and x<w-16then x=x+4elseif A=2then end endif
color(200,0,0)frect(x,100,16,4)frect(X,Y,3,3)unlock(1)yield()goto 0
496非通知さん@アプリ起動中:05/02/11 22:19:28 ID:NQWUipM3
リバーシまだ動かない
(;^_^A
497非通知さん@アプリ起動中:05/02/11 23:13:01 ID:QPykQwUw
いつまでも受け身じゃ絶対動きませんよ。がんばって解決しましょう。
498非通知さん@アプリ起動中:05/02/11 23:29:34 ID:NQWUipM3
とりあえず、五十回はやりました何回も改行ミスを見直しました、もしかしたらと思い書き込まれてるのとも照らし合わせました。
でも、動かない(>_<)
499非通知さん@アプリ起動中:05/02/11 23:52:58 ID:xfY4aiWx
複数キー入力の同時処理はどのようにしたらいいでしょうか?
例えば右キーと上キー同時押しで斜め移動…等

初心者なもんで申し訳ない…
500非通知さん@アプリ起動中:05/02/12 01:01:17 ID:OOmKdiaU
>>498
じゃあやっぱりドコもが不安定なせいじゃない?
>>499
A=scan
scanをAに代入
if A>15then A=A-16endif
Aが16以上(=key4)の場合Aから16引く。このとき何かの処理を入れる。処理がなくても大きい数字から順に引いてく必要がある

以下ズラーっと

基本的にはこんな感じ。十字キーだけでいいならA=scan/4096としておくと小さい数字ですむ

一応、例

A=scan/4096
if A>15then A=A-16'センターキーの処理'endif
if A>7then A=A-8'下キーの処理'endif
if A>3then A=A-4'右キーの処理'endif
if A>1then A=A-2'左キーの処理'endif
if A>1then '上キーの処理'endif
501非通知さん@アプリ起動中:05/02/12 10:55:54 ID:d6Jaw/7g
ご丁寧な解説有り難うございました!
502非通知さん@アプリ起動中:05/02/12 15:07:06 ID:ZWUubTFQ
携帯basicすごいですね〜。
感動しました。

ところでbrainfuckのvoda版ってあります?
503非通知さん@アプリ起動中:05/02/12 17:12:48 ID:bOO7NN9s
コピペすれば可能なようだがタイトルに半角英字しか打てない・・・
SH505is
504非通知さん@アプリ起動中:05/02/13 17:11:15 ID:MMAZqE3C
brainfuckのvoda版( ゚д゚)ホスィ…
505非通知さん@アプリ起動中:05/02/13 23:23:45 ID:WRriT3Gm
text("組み込み変数をすべて表示します"
0
ascent)
sleep(999*2)
nmax
506非通知さん@アプリ起動中:05/02/13 23:41:57 ID:MMAZqE3C
text("組み込み変数をすべて表示します",0,ascent)
sleep(999*2)
nmax=height/strheight
soft1("cls")
soft2("Exit")
goto "cls"
label main
str="nmax="+nmax
gosub "write"
str="tick="+tick
gosub "write"
str="rand="+rand
gosub "write"
str="width="+width
gosub "write"
str="height="+height
gosub "write"
str="ascent="+ascent
gosub "write"
str="descent="+descent
gosub "write"
str="strheight="+strheight
gosub "write"
str="ampm="+ampm
gosub "write"
str="date="+date
gosub "write"
str="dayofmonth="+dayofmonth
gosub "write"
str="dayofweek="+dayofweek
gosub "write"
507非通知さん@アプリ起動中:05/02/13 23:43:38 ID:v3xKWzTg
携帯BASICの作品できたら2chにアップするんじゃなくてべーしっ君のサイトの専用のとこにでもアップするようにしてほしい
iアプリのAppliMakersみたいに。
もっと広まってほしいし
508非通知さん@アプリ起動中:05/02/13 23:43:43 ID:MMAZqE3C
str="hour="+hour
gosub "write"
str="hourofday="+hourofday
gosub "write"
str="millisecond="+millisecond
gosub "write"
str="minute="+minute
gosub "write"
str="month="+month
gosub "write"
str="second="+second
gosub "write"
str="year="+year
gosub "write"
str="scan="+scan
gosub "write"
str="key0="+key0
gosub "write"
str="key1="+key1
gosub "write"
str="key2="+key2
gosub "write"
str="key3="+key3
gosub "write"
str="key4="+key4
gosub "write"
str="key5="+key5
gosub "write"
str="key6="+key6
gosub "write"
509非通知さん@アプリ起動中:05/02/14 01:05:30 ID:IdJu4gwt
すいません、質問です。
rmodeってどういうものなんでしょうか?

あとdescentとascentの意味が携帯basicの説明を
読んでもわかりません。誰か教えてください。
510非通知さん@アプリ起動中:05/02/14 07:29:02 ID:ASOJ5BU4
ソース見たらrmodeはなにもしない命令になってた
511非通知さん@アプリ起動中:05/02/15 13:42:57 ID:w94FJU8m
>>500
A=scan
if A and keyselect then 'センターキーの処理'endif
if A and keydown then '下キーの処理'endif
if A and keyright then '右キーの処理'endif
if A and keyleft then '左キーの処理'endif
if A and keyup then '上キーの処理'endif

のほうが簡単じゃないすか?
512非通知さん@アプリ起動中:05/02/15 15:02:55 ID:VoqnkK7m
ところで、
ibasicのページは4年近く更新されていない気がするのだが…
作者は今ドコに??
513非通知さん@アプリ起動中:05/02/15 21:09:18 ID:Tn2h+n14
この中でP900i使ってる人いますか?今だにリバーシ動かない(-_-)
514非通知さん@アプリ起動中:05/02/15 21:19:19 ID:jDNnIQDj
EZ版を解約した5403CAで使いたいんだが、kjxファイルをPCでダウンロードできないですか?
515非通知さん@アプリ起動中:05/02/15 22:42:14 ID:jDNnIQDj
事故解決した。
スレ汚しスマソ
516非通知さん@アプリ起動中:05/02/16 02:24:14 ID:5MkKSBfT
ガイシュツですけど、お絵描きプログラムです。消しゴム機能はこれから。
なにせプログラミングの文法の知識はあるけど実際に自分で製作した
ことがほとんどないので、一歩づつ。

d=5soft1("Cls")soft2("End")
label 0lock()A=scan prex=x prey=y
if A and keysoft1 then clear(0,0,width,height)endif
if A and keysoft2 then end endif
if(A and keyselect)or(A and key5)
then painted[x][y]=1frect(x*d,y*d,d,d)
else if painted[prex][prey]=0then clear(prex*d,prey*d,d,d)endif endif
if(A and key4)or(A and keyleft)then x=x-1endif
if(A and key6)or(A and keyright)then x=x+1endif
if(A and key2)or(A and keyup)then y=y-1endif
if(A and key8)or(A and keydown)then y=y+1endif
rect(x*d,y*d,d-1,d-1)unlock(1)yield()goto 0


ここはこうした方がよいとかあったらご指摘ください。
scanを使ったほうがいいのかinput(0)のがいいのかがわからない。
どっちでもいいんですかね?
517非通知さん@アプリ起動中:05/02/16 03:04:18 ID:5MkKSBfT
>>516
しばらくお絵描きを楽しんでClsすると、
白い四角が消えなくなるバグを早速発見。
ただいま検討中です。。。
518非通知さん@アプリ起動中:05/02/16 03:32:19 ID:5MkKSBfT
連カキスマソ。

Clsしたときにpainted[][]をすべて0に初期化しないといけないってことか!
マンドクサー

解決案としては、
1、Cls機能の撤廃
2、めんどいけどpainted[][]を初期化
3、painted[][]を使わない方法を模索する

3の方法教えてエロイ人〜
519非通知さん@アプリ起動中:05/02/16 06:38:40 ID:5MkKSBfT
d=5winx=width/d-1winy=height/d-1x=winx/2y=winy/2soft1("Cls")soft2("End")
label 0lock()ky=scan prex=x prey=y
if ky and keysoft1 then gosub 1endif
A=input(10)'ここだけinput()を使ったのは気まぐれかも
if A and keysoft2 then end endif
if(A and keyselect)or(A and key5)then switch=switch+1 if(switch>2)then
switch=0endif endif
preswitch=switch
'鉛筆
if(ky and keypound)or(switch=1)then switch=1 painted[x][y]=1
frect(x*d,y*d,d,d)elseif painted[prex][prey]=0then
clear(prex*d,prey*d,d,d)endif
'消しゴム
if(ky and key0)or(switch=2)then painted[x][y]=0clear(x*d,y*d,d,d) endif
switch=preswitch
if(ky and key2)or(ky and keyup)then y=y-1 endif
if(ky and key4)or(ky and keyleft)then x=x-1 endif
if(ky and key6)or(ky and keyright)then x=x+1 endif
if(ky and key8)or(ky and keydown)then y=y+1 endif
if(ky and key1)then x=x-1 y=y-1 endif
if(ky and key3)then x=x+1 y=y-1 endif
if(ky and key7)then x=x-1 y=y+1 endif
if(ky and key9)then x=x+1 y=y+1 endif
'画面の端判定
if x<0 then x=0 endif if x>winx then x=winx endif if y<0 then y=0 endif
if y>winy then y=winy endif
rect(x*d,y*d,d-1,d-1)unlock(1)yield()goto 0
label 1clear(0,0,width,height)for j=0to winy for i=0to winx
painted[i][j]=0switch=0next next return
520非通知さん@アプリ起動中:05/02/16 06:51:55 ID:5MkKSBfT
>>519の前に


'はじめに
text("Clsには時間が結構かかります。",0,strheight)
text("30秒くらい気長に待ってください。",0,strheight*2)
text("それかClsしないでください。",0,strheight*3)
str="#キー:鉛筆"text(str,width/2-strwidth(str)/2,strheight*8)
str="0キー:消しゴム"text(str,width/2-strwidth(str)/2,strheight*10)
str="selectキーor5キーを押す毎に"text(str,width/2-strwidth(str)/2,
strheight*12)
str="鉛筆モード→消しゴムモード→通常モード"text(str,width/2-strwidth(str)
/2,strheight*13)
str="Push Any Key"text(str,width/2-strwidth(str)/2,height)
input()clear(0,0,width,height)sleep(500)


を入れとくとグッド。

とりあえず>>518の2のやり方でやってみた。
次の目標は今なにモードか分かりやすくすることと色をつけること。
言ってなかったけど携帯basicで作りました。ヴぉだの。

input()はHSPで言うとstickのトリガータイプ指定、
scanはstickの非トリガータイプ指定かgetkeyみたいな感じってこと?
C言語で言うと・・・わかんね"。(漏れの知っている言語はこの2つだけ)

つまりscanは押しっぱを検出するけど、input()は押した瞬間だけを
検出するってことでFA?全然的外れだったらスマソ
521非通知さん@アプリ起動中:05/02/16 07:29:27 ID:a1kUjLr0
俺は前にあったやつの方がシンプルでよかったけどな
522非通知さん@アプリ起動中:05/02/16 12:31:29 ID:cJcKPkGF
RPG作ろうと思って、フィールド歩き回るやつを作ったんだけど、マップ切り替え時の待ち時間が長い…(´・ω・`)(8×8マスのマップで3〜5秒)
自分のプログラムの知識がほとんど無いってのもあるかもしれないけど、今の携帯BASICじゃこのぐらいが限界?
523非通知さん@アプリ起動中:05/02/16 15:18:31 ID:iQqj8BEp
だれか>>513に答えてやれよ
524機種P900i:05/02/17 00:40:16 ID:7QUpWul5
>>513
>>469-474で出来たよ
525非通知さん@アプリ起動中:05/02/18 01:11:50 ID:Kj8lMwQ3
初めてプログラミング試みました(〃д〃)

とりあえず時計です…。

携帯からの書き込みなので、あまり改行できず見づらいですが、よかったら改善のためのアドバイスお願いしますm(__)m
label loop soft2("Exit") if input(0) and keysoft2 then exit endif
lock () clear(216,0,16,30) y=year text(y,ascent,ascent) text("年",35,ascent) m=month m=m+1if m=13 then m=1 endif text(m,50,ascent) text("月",58,ascent)
d=date text(d,73,ascent) text("日",87,ascent) w=dayofweek if w=1 then text("(日)",102,ascent) endif if
w=2 then text("(月)",102,ascent) endif if w=3 then text("(火)",102,ascent) endif if w=4 then text("(水)",102,ascent) endif if w=5 then text("(木)",102,ascent) endif if w=6 then text("(金)",102,ascent) endif if w=7 then text("(土)",102,ascent) endif
g=ampm if g=0 then text("午前",127,ascent) endif if g=1 then text("午後",127,ascent) endif
h=hour text(h,160,ascent) text("時",168,ascent) m=minute text(m,184,ascent) text("分",200,ascent)
s=second text(s,216,ascent) text("秒",232,ascent) unlock (A) goto "loop"
526非通知さん@アプリ起動中:05/02/18 16:37:09 ID:wdv8VhdJ
>>525
曜日とか午前午後は最初に配列で用意しておくと毎回ifしなくてもいいからスッキリするよ
527非通知さん@アプリ起動中:05/02/18 19:56:37 ID:t+YowrIU
SH用の命令辞書をバージョンアップしました.
ttp://www.mchs-u.net/mc/index.php?%B7%C8%C2%D3Basic
528携帯Basic初心者:05/02/19 14:59:01 ID:j1eRvPDf
vodaで携帯Basicを使っているんですが、フォントサイズが"S"と"T","M"と"L"の大きさが同じなんですがこれはvoda版だけですかね?
529非通知さん@アプリ起動中:05/02/19 16:51:14 ID:Lp/6rUxb
自分はFOMAのN2102Vだけど、"L"(16×16)以外は全部同じサイズ(12×12)だった。
多分、機種によって、アプリ内で使える文字の種類が少ないからこうなるんだと思う。
530非通知さん@アプリ起動中:05/02/19 18:27:16 ID:clCMyxJE
P900iだとそうはならないんですが…機種依存ですかね?
531非通知さん@アプリ起動中:05/02/19 21:27:03 ID:iBmKiJej
処女作です
vodaの携帯Basicで作ったので他ので動くかわかりません
漏れの携帯だと10まで下げるとツツツと音しかしなくなりました
↓ボタンで間隔を下げて楽しんでくれy

soft1("Reset")
soft2("Exit")
text("interval",0,20)
text("↑up",50,40)
text("↓down",50,60)
text("key:",10,90)
interval=100
gosub "set"

label main
for i=0 to 12
key=input(0)
if key>0 then
clear(35,79,50,10)
text(key,35,90)
if key=keydown then interval=interval-5 gosub"set"
elseif key=keyup then interval=interval+5 gosub"set"
elseif key=keysoft1 then interval=100 gosub"set"
elseif key=keysoft2 then exit endif
endif
gosub "vib"
yield()
next
goto"main"

(↓をそのまま続けてコピペ)
532非通知さん@アプリ起動中:05/02/19 21:28:20 ID:iBmKiJej
(続き)

label vib
onvib()
sleep(interval)
offvib()
sleep(interval+wait[i])
return

label set
wait[2]=interval*2
wait[5]=interval*2
wait[12]=interval*2
clearinput()
key=0
clear(10,24,20,20)
text(interval,10,35)
return
533525:05/02/20 00:39:41 ID:i0yj8AmC
>>526

配列ってどう使うんですか(;_;)
534非通知さん@アプリ起動中:05/02/20 01:12:25 ID:rM46qrMi
配列は変数名の後に[index]をつけ操作できます。
(言語解説より引用)
いちいち宣言しなくて良いから凄く扱いやすい・・・
んで>>525の場合だと

youbi[1] = "日"
youbi[2] = "月"
youbi[3] = "火"
youbi[4] = "水"
youbi[5] = "木"
youbi[6] = "金"
youbi[7] = "土"
を用意しとけば
w=dayofweek
text(youbi[w],102,ascent)
これでいけると思う
535525:05/02/20 01:57:28 ID:i0yj8AmC
いけました!

すごくすっきりしましたヾ(^▽^)ノ

text("Thanks!!",2ch,534)
536非通知さん@アプリ起動中:05/02/20 02:13:15 ID:m9PJahAz
EDIT画面に行くときとか、保存するときとか、
runボタン押してそっから実際に実行されるまでの間
とかがめちゃくちゃ待たされるんですけど。。。携帯basic(ヴぉだ
プログラムの実行速度は十分ですからこれを速くできないかな?
>べーしっくん
メモリーカードに移せないのもなんとかできないですか?
537非通知さん@アプリ起動中:05/02/21 19:14:14 ID:7UQIEybW
いかにパッドで弾を受けられるかというゲーム。Pを変えることで難易度が変わるょ

P=8w=width
HSC=load()PX=-5Y=20X=58x=60frect(0,0,w,144)color(255,0,0)frect(0,136,w,8)frect(0,0,w,8)label 0lock()A=scan
color(0,0,0)frect(x,100,16,4)frect(PX,PY,3,3)text("S:"+SC,0,21)PY=Y
PX=X
G=G-1if abs(G)>36then G=36*(G/abs(G))endif
Y=Y-G
if PY=Y then Y=Y-1endif
if X<=0or X>w-4then P=-P endif
if abs(Y-152)<20then Y=133G=-G-2elseif abs(Y+11)<20then Y=8G=G-1G=-G endif
X=X+P
if Y>96and PY<97then i=X-PX j=Y-PY if abs((97*i-Y*i+j*X)/j-x-7)<10then Y=97G=-G+2SC=SC+G/5endif
elseif Y<103and PY>102then i=X-PX j=Y-PY if abs((104*i-Y*i+j*X)/j-x-7)<10then Y=104G=-G SC=SC-G/3endif
endif
if A=8192and x>0then x=x-4elseif A=16384and x<w-16then x=x+4elseif A=2then save(max(SC,HSC))end endif
color(200,0,0)frect(x,100,16,4)frect(X,Y,3,3)text("S:"+SC,0,21)text("H:"+HSC,0,34)unlock(1)yield()goto 0
538ドリキャス愛用者:05/02/24 10:11:52 ID:tikUKsoT
ベーシッ君のHP見られない…
539非通知さん@アプリ起動中:05/02/25 14:22:44 ID:d5V8xwHc
景気付けに何か作ってソースあげようと思うが、
どんなのがいいかね。
540非通知さん@アプリ起動中:05/02/25 14:33:47 ID:sUDxvir6
何でもいいから派手なゲーム作ってww!
541非通知さん@アプリ起動中:05/02/25 18:19:51 ID:nD4MojX6
合作やんない?合作
542非通知さん@アプリ起動中:05/02/25 19:12:56 ID:sUDxvir6
いいんじゃない?でなにする?
543非通知さん@アプリ起動中:05/02/25 19:41:23 ID:nD4MojX6
どんなんがいい?
544非通知さん@アプリ起動中:05/02/25 20:09:49 ID:gO/PDPDB
じゃあ俺はレベルアップの部分担当する
545非通知さん@アプリ起動中:05/02/25 20:13:56 ID:sUDxvir6
そもそも描画に弱いからな。パズルとかシミュレーションとか描画のすくないやつだろうな
まあアクションでもできないことはないだろうな
546非通知さん@アプリ起動中:05/02/25 20:17:59 ID:gO/PDPDB
俺はいつかカーブノアを作りたい。
547非通知さん@アプリ起動中:05/02/25 20:19:25 ID:nD4MojX6
ケータイの利点つかいたい。いつでもどこでもできて、5分でササッとも終われるし、1時間くらいやってもおもしろい
グラフでボクシングなんかはよかったなぁ
548非通知さん@アプリ起動中:05/02/25 21:01:17 ID:sUDxvir6
こんな感じで疑似3Dていうのもありじゃない?

z=-100x=-1000y=-1000origin(66,72)label 0lock()clear(-66,-72,132,144)A=scan
if A=32768and y>-2000then y=y-200elseif A=16384and x>-2000then x=x-200elseif A=8192and x<0then x=x+200elseif A=4096and y<0then y=y+200elseif A=2then end endif
z=z-1for i=0 to 3j=100+(z+i*25)%100rect(x/j,y/j,2000/j,2000/j)rect((EX[i]+x)/j,(EY[i]+y)/j,100/j,100/j)if j=1then EX[i]=abs(rand)%1950EY[i]=abs(rand)%1950onlight()endif
next
arc(-5,-5,10,10)unlock(1)yield()goto 0
549非通知さん@アプリ起動中:05/02/25 21:37:06 ID:nD4MojX6
いいね3D
本格的にプロジェクト立ててHPつくろっか
550非通知さん@アプリ起動中:05/02/25 22:20:57 ID:sUDxvir6
おお!!いいね!!こういうの待ってたんだよね〜
俺もマジがんばるわ
551非通知さん@アプリ起動中:05/02/25 23:11:42 ID:nD4MojX6
HPはある程度内容決まってからでいいよね
まずジャンルからだけど、3Dだとシューティング、CAVELIKE、ダンジョン系、DOOMLIKE
あとなにかある?
552☆彡 ◆NgOprN57Mo :05/02/25 23:27:18 ID:qDhXPYb7
Rogue likeもしくはダンジョンRPG系を作りたいです。
553非通知さん@アプリ起動中:05/02/25 23:43:29 ID:sUDxvir6
それぐらいなら何とかなるかもしれないですね。ダンジョンとなるとざっとこんなのが必要かな?

マップランダム生成
戦闘システム
アイテム

それぞれ何人かで担当すればスマートなプログラムができるっしょ。できればImageに対応したバージョンで作りたいね。そして何よりセーブ領域を改善して欲しい…
554非通知さん@アプリ起動中:05/02/25 23:44:58 ID:sUDxvir6
あと、非QVGAでやっていただきたい。俺のはPhase2.5なもんで…
555☆彡 ◆NgOprN57Mo :05/02/25 23:50:45 ID:qDhXPYb7
イメージ対応版って、いつ頃出るんでしょうかね?因みに、よければ私がイメージ担当したいです。
556非通知さん@アプリ起動中:05/02/25 23:51:17 ID:nD4MojX6
Image対応バージョンてでてたっけ?

>非QVGA
了解
557非通知さん@アプリ起動中:05/02/26 00:17:07 ID:MxFCtbJ3
マップが肝なんだろうけど、自分はちょっと無理みたいだ。
迷路しか作れない。
自分は計算式やバランス調整くらいしかできる事ないかも。
Imageなら自分も少しなら手伝えるんだが…。
558非通知さん@アプリ起動中:05/02/26 00:59:48 ID:Vn4+KY+q
image対応版ないよね?
559非通知さん@アプリ起動中:05/02/26 01:22:18 ID:C2bv2mTe
一応GIFとPNG生成クラスはもうsatooさんに送ったから組み込みを待つばかりなんだが、どうやら忙しいらしくてもうちょい遅れるらしい。
それに携帯BASICて複雑だからなぁ、いじるのがめんどくさそうだww
560非通知さん@アプリ起動中:05/02/26 01:33:28 ID:Vn4+KY+q
まだだよね
新しい携帯ベーシックでたのかと思ってHP行ったらないからなんだろうと思った

じゃ初プロジェクトはimageにこだわらず、ってことで。
実際ユーザーが増えれば携帯ベーシックももっと活発になるだろうし、テーマはユーザーを増やす、でどう?
561非通知さん@アプリ起動中:05/02/26 01:45:31 ID:3yfALk9z
じゃあ、記号をつかってローグライクって事で
562非通知さん@アプリ起動中:05/02/26 01:49:15 ID:Vn4+KY+q
ローグライク、作りたかった。挑戦したんだけどマップで自爆orz
画面を9分割してrandなfrectで部屋を9個つくってそこに道をつけて繋げるの?アルゴリズム全然わかんなかった
できる人いる?
563非通知さん@アプリ起動中:05/02/26 01:52:41 ID:Vn4+KY+q
ふと思いついたのが、パズルに限定したローグならできそうじゃね
シレンにあるなんとかの問題、あれ
自作を載せれば無限に遊べるし

本体ソースと問題ソースを別にして
564非通知さん@アプリ起動中:05/02/26 02:06:13 ID:MxFCtbJ3
>562
http://pc5.2ch.net/test/read.cgi/gamedev/1027084016/
参考になるだろうかねえ…。
565非通知さん@アプリ起動中:05/02/26 02:07:06 ID:3yfALk9z
ローグ出来たら凄いよね・・
566非通知さん@アプリ起動中:05/02/26 03:08:07 ID:Vn4+KY+q
一応
>疑似3D
>ローグライク
二つ案でたね。ジャンルは出しまくって明日中には決めたい
567非通知さん@アプリ起動中:05/02/26 16:40:25 ID:MxFCtbJ3
そこで疑似3D Rogue Likeですよ
568非通知さん@アプリ起動中:05/02/26 18:16:09 ID:Vn4+KY+q
3Dローグ懐かしい。
でも3DならWIZもおもしろそ。
569非通知さん@アプリ起動中:05/02/26 18:44:31 ID:ok9oxgrN
もしかしてベーシッ君ってかなり有名な方?
satoo.jpでぐぐったりしてたらいろいろ出てきたんだけど…
アプリゲットの授賞なんたらとか
570非通知さん@アプリ起動中:05/02/26 21:04:48 ID:3yfALk9z
べーしっくんさん(笑
早く来ないかなぁ…
571非通知さん@アプリ起動中:05/02/26 22:53:13 ID:a0ay98gt
知識なしで初めてようやく

a=0 b=12
text(こんにちは,a,b)
text(さようなら,a,b*2)
text(またあした,a,b*3)

ってとこまで出来たんだけど
RUNすると一瞬表示されてすぐ消える…
こんな漏れでもこのスレに居ていいですか?
572☆彡 ◆NgOprN57Mo :05/02/26 23:00:40 ID:3yfALk9z
とりあえず最後にinput()を入れてみたらどうでしょうか?
573非通知さん@アプリ起動中:05/02/26 23:01:38 ID:Vn4+KY+q
a=0
b=12
text(こんにちは,a,b)
text(さようなら,a,b*2)
text(またあした,a,b*3)
input()

これでよいはず。
574☆彡 ◆NgOprN57Mo :05/02/26 23:07:12 ID:3yfALk9z
>>573さん気が合いますね(笑
575非通知さん@アプリ起動中:05/02/26 23:11:56 ID:Vn4+KY+q
(^-^;ゝかぶっちゃった。こりゃ失礼
576305:05/02/26 23:40:06 ID:PvqQn1N7
だいぶ遅くなりましたが、まとめサイトが明日には公開出来そうです。
プロジェクト?の為にサイトが必要でしたら、今作ってるまとめサイトにプロジェクト用のコーナーも作ってしまおうと思っているのですが、どーでしょうか?
577☆彡 ◆NgOprN57Mo :05/02/26 23:44:27 ID:3yfALk9z
>>576さんお疲れさまでした(^o^;
578☆彡 ◆NgOprN57Mo :05/02/26 23:49:01 ID:3yfALk9z
プロジェクトのコーナーですか。。私は賛成ですが大丈夫なんですか?お手をわずらわせてしまって?
579非通知さん@アプリ起動中:05/02/26 23:50:56 ID:Vn4+KY+q
>576
プロジェクトのページお願いしてよいのならたのんます
580非通知さん@アプリ起動中:05/02/26 23:53:38 ID:t5esfN9s
習作。しかしソース美しくない(´・ω・`)

gosub "beg"
label L
i=input(0)
if i and keysoft1 then exit endif
if i and keysoft2 then gosub "beg" endif
if i and key0 then gosub "re" endif
farc(x,y,c,c)
gosub "enzan"
yield()
sleep(t)
goto "L"

つづく
581非通知さん@アプリ起動中:05/02/26 23:57:37 ID:t5esfN9s
つづき
label beg
st[1]="仰角" st[2]="初速" st[3]="加速" st[4]="時間"
soft1("終了") soft2("修正") origin(0,height/2)
for j=1 to 4 clear(0,-500,500,1000) text(st[j]+"入力(上下±10 左右±1)?:"+int[j],0,0) in=input()
if in and keysoft1 then exit endif
if in=keyup then int[j]=int[j]+10 endif
if in=keydown then int[j]=int[j]-10 endif
if in=keyright then int[j]=int[j]+1 endif
if in=keyleft then int[j]=int[j]-1 endif
if in xor keyselect then j=j-1 endif
next
まだつづく(´・ω・`)
582非通知さん@アプリ起動中:05/02/26 23:59:23 ID:t5esfN9s
label re
clear(0,-500,500,1000)
y=0 x=0
r=int[1] v=int[2] a=int[3]
vy=(v*sin(r))/100
vx=(v*cos(r))/100
t=int[4] c=5
line(0,0,500,0)
text("0",0,strheight)
text("100",100,strheight)
text("200",200,strheight)
text("仰角:"+r+" 初速:"+v+" 加速:"+a+" 時間:"+t,0,(height/2-strheight)*(-1))
text("0キーで同条件再描写",0,(height/2-(strheight*2))*(-1))
return

label enzan
x=x+vx
y=y+vy*(-1)
vy=vy+a
return
583非通知さん@アプリ起動中:05/02/27 00:02:12 ID:hY/Fd/la
連行スマソ。
一つのソースで書いたからひどいことになってる。
複数ソースに分けるってどうやるんだろう?
584☆彡 ◆NgOprN57Mo :05/02/27 00:14:54 ID:BUodeXDP
#ソース名#
を途中で入れればいいんじゃないでしょうか?
585305:05/02/27 00:30:49 ID:hrmg+f1r
>>578-579
なんとかなるでしょうι
公開してから、いろいろと指摘していただければ有り難いです。
586非通知さん@アプリ起動中:05/02/27 00:53:45 ID:hY/Fd/la
>>584
おお…できた。ありがとうございます。
587非通知さん@アプリ起動中:05/02/27 01:08:14 ID:dp1yEZrH
>>576
きたあー

楽しみにしてます.
588非通知さん@アプリ起動中:05/02/27 02:25:45 ID:dp1yEZrH
カップラーメンのタイマです

***(名前:ラーメンタイマ)
soft1("rset")
soft2("exit")
set=180000
setfont(L)

label SET'----------
ms=set
#時間表示#
k=input()
#キー処理#
goto "SET"

label START'--------
t=tick
while set-tick+t>0
ms=set-tick+t
#時間表示#
k=input(0)
#キー処理#
wend

onvib()
onlight()
sleep(3000)
offvib()
offlight()
goto "SET"
589非通知さん@アプリ起動中:05/02/27 02:27:45 ID:dp1yEZrH
***(名前:時間表示)
ms=(ms-(ms%1000))/1000
s=ms%60
ms=ms-s
m=ms/60
lock()
#CLS#
text("あと"+m+"分"+s+"秒",0,ascent)
unlock(0)


***(名前:CLS)
color(255,255,255)
frect(-width/2,-height/2,width,height)
color(0,0,0)
590非通知さん@アプリ起動中:05/02/27 02:28:45 ID:dp1yEZrH
***(名前:キー処理)
if k and keyselect then
goto "START"
endif

if k and keysoft2 then
exit
endif

if k and keysoft1 then
goto "SET"
endif

if k and keyup then
set=set+30000
endif

if k and keydown then
set=abs(set-30000)
endif

clearinput()
591非通知さん@アプリ起動中:05/02/27 08:00:09 ID:BgZ+NvWo
>>572-573
激しくとんくす!
仰せの通り入力したら成功しました
これからも皆さんのプログラムを参考にさせてもらいつつ勉強していきます

>>576
頑張れー出来上がったら俺も勉強の為にお邪魔しまっす
592非通知さん@アプリ起動中:05/02/27 12:49:35 ID:Lot1zetF
こんなかんじでどうかな?スムーズにしたかったけどできなかった。

#init#label 0lock()clear(-w/2,-h/2,w,h)clear(66,68,50,12)A=scan
if A=2then end endif
A=A/4096if A=1then j=V%2if M[j][P[j]+H[V]][P[1-j]]="B"then P[j]=P[j]+H[V]endif
elseif A=2or A=4then V=(1+V+A)%4endif
color(64,0,64)text("方位:"+N[V]+";座標("+P[1]+","+P[0]+")",-66,-58)rect(-56,-56,112,112)
for i=0 to 4j=8+i*24if M[V%2][P[V%2]+i*H[V]][P[1-V%2]]="B"then for k=0 to 1if M[V%2][P[V%2]+i*H[V]][P[1-V%2]+H[k]*(1-2*(V/2))]="B"then rect(x/(j+12*H[k]+12),y/(j+24),-x/(j+24)-x/j,-y*2/(j+24))endif
next
rect(x/j,y/j,-x*2/j,-y*2/j)else frect(x/j,y/j,-x*2/j,-y*2/j)i=5endif
next
farc(-10,40,20,5)color(0,128,254)frect(-8,12,16,30)unlock(1)yield()goto 0

つづく
593非通知さん@アプリ起動中:05/02/27 12:52:13 ID:Lot1zetF
変数Mにマップデータを入力。部屋ではなく通路にのみ対応。部屋にすると変になる。

タイトル「init」
w=width
h=height
N[0]="北"N[1]="東"N[2]="南"N[3]="西"H[0]=-1H[1]=1H[2]=1H[3]=-1M="AAAAAAAAAAAAAAAABBBBBABBBBBBBAABAAABABAAAAABAABBABBABABBBBBAAABABAABABABAAAABBABBBBABABBBAAAAAAAAAAAAAAAA"for i=0 to 104M[1][i%15][i/15]=strat(M,i)M[0][i/15][i%15]=strat(M,i)next
P[1]=1P[0]=5V=1x=-1000y=-1000origin(w/2,h/2)


これ使える?
594非通知さん@アプリ起動中:05/02/27 14:57:58 ID:Lot1zetF
rect(-56,-56,112,112)の後にfor i=0 to 3line(56*H[(i+1)%4],56*H[i],0,0)nextを入れるとより3D感が増す。遅くもなるが…
595305:05/02/27 22:17:53 ID:hrmg+f1r
大変申し訳ないのですが、レンタル鯖が落ちてしまったために更新が終了していません。公開は少し延期させて下さい。
596305:05/02/27 22:21:00 ID:hrmg+f1r
>>595
改行しわすれましたorz
読みづらいですね…
597非通知さん@アプリ起動中:05/02/27 22:29:43 ID:Lot1zetF
(´ー`)ワクワク
598非通知さん@アプリ起動中:05/02/28 13:16:18 ID:7Yt8YkNl
疑似3DSTG。漏れ最高30匹でした。よく作ったよ
origin(66,72)label 1H=load()P=0clearinput()x=0y=0z[0]=0z[1]=0z[2]=881z[3]=923TX[2]=-500TX[3]=600TY[2]=-400TY[3]=290j=1
label 0lock()color(0,160,255)frect(-66,-72,132,120+y/800)color(0,223,0)frect(-66,48+y/800,132,24+y/800)A=scan
if A and keydown then y=y-200elseif A and keyup then y=y+200endif
if A and keyright then x=x-200elseif A and keyleft then x=x+200elseif A=2then end endif
if input(0)and keyselect then for i=0 to 1if z[i]<920then z[i]=992TX[i]=x+250TY[i]=y+250i=3endif
next
endif
for i=0 to 3if z[i]>880then if i<2then color(255,255,0)z[i]=z[i]-3else color(255,0,0)z[i]=z[i]+3if z[i]=992then
color(0,0,0)text("GAME OVER",-27,-20)text(P+"匹倒した",-30,0)P=max(H,P)save(P)text("最高"+P+"匹倒した",-42,20)unlock(1)sleep(4000)goto 1endif
for k=0 to 1if z[k]-6=z[i]or z[k]-3=z[i]then if abs(TX[k]-TX[i])<500and abs(TY[k]-TY[i])<500then z[i]=881TX[i]=rand%1000TY[i]=rand%1000z[k]=0k=2P=P+1endif
endif
next
endif
j=1000-z[i]%1000rect((x-TX[i])/j,(y-TY[i])/j,500/j,500/j)endif
next
unlock(1)yield()goto 0
599非通知さん@アプリ起動中:05/02/28 14:22:54 ID:7Yt8YkNl
疑似3Dダンジョンちょっと修正しました。
w=width
h=height
N[0]="北"N[1]="東"N[2]="南"N[3]="西"H[0]=-1H[1]=1H[2]=1H[3]=-1M="BBABBBABBBBBBBBABBBABBBAAAAAABAAAAAAAABBBBBBBBBBBBBBBBAAAAAABABABABAAAAABBABBBBBBBABBBAABBAAAAAABBBABBBBA"for i=0 to 104M[1][i%15][i/15]=strat(M,i)M[0][i/15][i%15]=strat(M,i)next
P[1]=0P[0]=0V=1x=-1000y=-1000origin(w/2,h/2)label 0lock()clear(-w/2,-h/2,w,h)clear(66,68,50,12)color(64,0,64)A=scan
if A=2then end endif
A=A/4096if A=1then j=V%2if M[j][P[j]+H[V]][P[1-j]]="B"then P[j]=P[j]+H[V]endif
elseif A=2or A=4then V=(1+V+A)%4endif
text("方位:"+N[V]+";座標("+P[1]+","+P[0]+")",-66,-58)for i=0 to 3line(62*H[(i+1)%4],62*H[i],0,0)next
for i=0 to 4j=16+i*24if M[V%2][P[V%2]+i*H[V]][P[1-V%2]]="B"then for k=0 to 1if M[V%2][P[V%2]+i*H[V]][P[1-V%2]+H[k]*(1-2*(V/2))]="B"then J=j rect(x/(J+12*H[k]+12),y/(J+24),-x/(J+24)-x/J,-y*2/(J+24))endif
next
rect(x/j,y/j,2000/j,2000/j)else frect(x/j,y/j,2000/j,2000/j)i=5endif
next
farc(-10,40,20,5)color(0,128,254)frect(-8,12,16,30)
unlock(1)yield()goto 0
600非通知さん@アプリ起動中:05/02/28 14:41:22 ID:HVzWJAQK
乙です。
手始めにWIZ形式の普通のRPGでも作ってみようかね。
601非通知さん@アプリ起動中:05/02/28 14:45:39 ID:Jwnqwlku
ローグライク作ってよ
602非通知さん@アプリ起動中:05/02/28 23:34:51 ID:Jwnqwlku
プロジェクトホムペマダァー?
603非通知さん@アプリ起動中:05/02/28 23:56:40 ID:76hrFsGP
>602
なんにも決まってないからまだよ。

自動迷路のスレみてたんだけど、マップだけで遅くなりそう。それよりかはエンドレスダンジョンみたいなマップにしたほうがよいかな
携帯ベーシックとJAVAの違いを生かして、AIで突き進むエンドレスダンジョン風、なんかだとおもしろそうかな、と思った。
604非通知さん@アプリ起動中:05/03/01 00:18:19 ID:WYhwquAx
え?それどういうこと?見てるだけってこと?
605605:05/03/01 01:18:24 ID:whkThvxr
ごめん改めて
みんなで合作やりたいなって人挙手お願い。
で分かるように名前欄になんか入れて
606☆彡 ◆NgOprN57Mo :05/03/01 01:22:46 ID:EvmewDxN
イメージ担当したいです
607605:05/03/01 01:25:48 ID:whkThvxr
イメージは実装されてないよ。
608605:05/03/01 01:30:17 ID:whkThvxr
連レスごめん

frectでなんか書いてみる?
609☆彡 ◆NgOprN57Mo :05/03/01 01:39:20 ID:EvmewDxN
書いてみたいです
610605:05/03/01 01:55:32 ID:whkThvxr
OKヨロシクね
じゃ練習に50*50と30*30でなんこか書いてみて
テーマは自由で
611305:05/03/01 16:50:37 ID:lfO0eUPv
激しく途中ですが…
http://tool-2.net/?id=BASIC

【今後の予定】
* 全てソースをコピー可能に。
* プロジェクト用のコーナー設置。
* もっと見やすく、使いやすく。

気づいた点、要望、不都合 などサイトBBSまたはメールにてよろしくお願いします。
612非通知さん@アプリ起動中:05/03/01 22:02:37 ID:WYhwquAx
乙彼。ところでマップ生成プログラムはできた?
613非通知さん@アプリ起動中:05/03/02 01:42:52 ID:dgwMVc0G
まあつまり、>599で言うMをランダムで
ダンジョンらしい形に導き出せるようなプログラムにすればいい…のか?
614非通知さん@アプリ起動中:05/03/02 08:19:33 ID:IaFdMDeY
全く持ってその通り。ちなみに通路型にしか対応してないんで夜露死句
じゃあ俺はこの探索プログラムをさらに進化させとくわ夜露死句
615非通知さん@アプリ起動中:05/03/02 11:48:28 ID:IaFdMDeY
ダンジョン改良。遅い。たぶんこれで探索部はほぼ完成。後はエンカウントとアイテムだな。
マップで"C"のところへ来ると降りるかどうかウィンドウが出る。1か2を押して決める。
label 1#init#label 0lock()color(64,0,64)A=scan
if A=8then end endif
if B and M[1][P[1]][P[0]]="C"then clear(-27,-15,54,30)rect(-28,-16,55,31)text("1.おりる",-24,0)text("2.やめる",-24,13)if A=2then B=0goto 1elseif A=4then B=0endif
else clear(-w/2,-h/2,w,h)A=A/4096if A=1then j=V%2k=M[j][P[j]+H[V]][P[1-j]]if k="B"or k="C"then P[j]=P[j]+H[V]B=1endif
elseif A=2or A=4then V=(1+V+A)%4endif
text("方位:"+N[V]+";座標("+P[1]+","+P[0]+")",-66,-58)for i=0 to 3line(62*H[(i+1)%4],62*H[i],0,0)next
for i=0 to 4j=16+i*24K=V%2l=M[K][P[K]+i*H[V]][P[1-K]]if l="B"or l="C"then for k=0 to 1l=M[K][P[K]+i*H[V]][P[1-K]+H[k]*(1-2*(V/2))]if l="B"or l="C"then rect(x/(j+12*H[k]+12),y/(j+24),-x/(j+24)-x/j,-y*2/(j+24))endif
next
rect(x/j,y/j,2000/j,2000/j)else frect(x/j,y/j,2000/j,2000/j)i=5endif
next
farc(-10,40,20,5)color(0,128,254)frect(-8,12,16,30)
endif
unlock(1)yield()goto 0
616非通知さん@アプリ起動中:05/03/02 11:50:54 ID:IaFdMDeY
降りるを選ぶと初期化プログラム「init」が呼ばれるのでここでマップ生成と初期位置を決める。

w=width
h=height
N[0]="北"N[1]="東"N[2]="南"N[3]="西"H[0]=-1H[1]=1H[2]=1H[3]=-1M="BCABBBABBBBBBBBABBBABBBAAAAAABAAAAAAAABBBBBBBBBBBBBBBBAAAAAABABABABAAAAABBABBBBBBBABBBAABBAAAAAABBBABBBBA"for i=0 to 104M[1][i%15][i/15]=strat(M,i)M[0][i/15][i%15]=strat(M,i)next
P[1]=0P[0]=0V=1x=-1000y=-1000origin(w/2,h/2)
617非通知さん@アプリ起動中:05/03/02 13:27:55 ID:dgwMVc0G
ありゃ起動できん。バージョンの問題か?
618非通知さん@アプリ起動中:05/03/03 02:59:38 ID:yPR04jub
プロジェクト第一段としてゲームブック風を作ろうと思うんだけど☆ミ氏はいるかな?
619NOBA:05/03/03 09:38:34 ID:oufG0LSV
ゲームブックて何?
ちなみにこれ宇宙戦争(大げさ;

H=load()origin(66,0)label 1P=0p=0X=0S=0for i=0 to 4B[i]=rand%25-6next
B[3]=18setfont("L")label 0lock()A=scan
color(0,0,0)frect(-66,0,132,144)if A=8192and X>-40then X=X-4elseif A=16384and X<40then X=X+4elseif A=2then end endif
color(128,0,128)for i=0 to 4z=1000-i*200+p*40farc(B[P+i]*1000/z,40+24000/z,12000/z,4000/z)next
farc(X-9,87,16,5)text("",X-8,91)text("",X+8+(p%2)*4,79)S=P*5+p
color(96,96,223)text("SCORE:"+S,-66,40)unlock(1)yield()if p=3and abs(B[P+3]*100/52+11-X)<14then setfont("T")text("異次元へ飛ばされた…",-66,16)save(max(H,S))H=load()text("MAX"+H,-66,56)sleep(5000)goto 1endif
p=p+1if p=5then p=0B[P+5]=rand%25-6P=P+1endif
goto 0
620非通知さん@アプリ起動中:05/03/03 18:59:16 ID:yPR04jub
>619
非QVGA対応携帯?点数あんま伸びない
ゲームブックっていうかアドベンチャー。けどQVGAなんまよ
621619:05/03/03 19:18:50 ID:oufG0LSV
プログラムの途中に空のtextが2個あると思うけどその一個目に宇宙人、二個目に汗の絵文字入れるとぽくなる
622非通知さん@アプリ起動中:05/03/03 21:31:42 ID:oufG0LSV
この中で携帯アプリとかPCプログラムとか組んだことある人何人ぐらい居んの?ちなみに俺は携帯アプリ+etcやってるけど
623非通知さん@アプリ起動中:05/03/03 22:33:44 ID:qvh1lCUv
携帯BASIC
VisualBasic6.0
PC98のBASIC
Delphi6.0
JAVA(iAPPLIの)

こうやって書いてみると結構やってるなぁ。

あ、忘れてはならないのが、LOGOw
624非通知さん@アプリ起動中:05/03/03 22:41:13 ID:yPR04jub
305氏のHPみたいに掲示板の文字がコピーできるレンタルHPてある?
625非通知さん@アプリ起動中:05/03/03 23:00:23 ID:nrRYZz4A
>>622
VC、VBを少しやったけど短期間はまっただけなのでもう忘れた。

みんな、携帯でコード書いてる?

インテリセンスがほしい。
626非通知さん@アプリ起動中:05/03/03 23:00:56 ID:WEs1fkJH
>624
タグで大抵可能じゃない?
627非通知さん@アプリ起動中:05/03/03 23:02:51 ID:nrRYZz4A
>>624
特殊だからどうかな。
引用返信機能がついてる掲示板なら出来るね。
Perlで書いてみたら?結構簡単にできるよ。
628NOBA:05/03/03 23:10:13 ID:YmyQ9yhq
>>623
すげー。俺はまだプログラミング歴1年(ezBASIC入れたら1年半)の上に携帯関連しかいじってないから
MIDP
Doja
Perl
BRAINFUCK…orz
でも携帯上でPNGと圧縮GIF書出しなら出来るぜ!
早くImage対応版出ないかな。それよりプロジェクトページの方みんな見てるのか?
629NOBA:05/03/03 23:12:24 ID:YmyQ9yhq
スマソsage忘れた…orz
630非通知さん@アプリ起動中:05/03/03 23:29:31 ID:yPR04jub
>627
parlて微妙な書き方ができる言語だって先輩が卒検で発表してたなぁ・・
俺携帯オンリーなんだよね。
ゲームブックあんまり人気なさそうだたら自分のホムペつくって手伝ってみたいなってひといたら協力してもらうかたちをとろうかと思ったの
631非通知さん@アプリ起動中:05/03/04 01:47:54 ID:2KdvZ4Fi
rect(10,10,220,230)rect(15,15,100,100)rect(15,155,210,80)rect(15,130,20,20)rect(40,130,20,20)
text("DICE",25,130)text("H P >",130,30)text("STA >",130,45)text("満腹感 >  /100",120,60)text("FIG SKL >",120,75)text("THF SKL >",120,90)text("REN SKL >",120,105)text("WIZ SKL >",120,120)
text("場所",80,131)text(">1.進む",20,175)text(">2.探索",20,190)text(">3.道具",20,205)text(">4.魔法",20,220)frect(15,15,100,100)
color(255,255,255)rect(55,55,20,20)line(15,15,55,55)line(15,115,55,75)line(115,15,75,55)line(115,115,75,75)input()

長くなるけど説明を
QVGA対応。メインはこんな感じ
進むごとにランダムでイベントを起こす
>敵と遭遇or>壁にぶちあたるor>目の前に沼が現れる等
探索すると茸が手にはいったり、敵を先にみつけることができる
一定距離進むと次の階へ
スキルはたとえば茸を調理する
>2D6+レンジャースキル>7なら調理成功。茸が食料にかわる、とか
探索>敵を見つけた>隠れる
>2D6+シーフスキル>7なら隠れるのに成功
>隠れてやりすごすor奇襲をしかける、をできるとかそんなやつ。
自分でHPつくれないので、これみて少し興味がわいたりしたら協力ヨロ。
俺説
632NOBA:05/03/04 07:16:24 ID:34WntPM4
QVGAはちょっと…
633非通知さん@アプリ起動中:05/03/04 07:53:18 ID:2KdvZ4Fi
(・ω・`)ソッカ…

一応参考にしてるスレ
ttp://c-au.2ch.net/test/-/gamedev/1032881707/i

ま、一人でチョボチョボやっとりますわ
634非通知さん@アプリ起動中:05/03/04 14:18:11 ID:gY/+J6gS
>633
手伝おうか?
現状では何が不足?
635非通知さん@アプリ起動中:05/03/04 14:51:12 ID:2KdvZ4Fi
>634THX
今できてるところをupするのが一番よいんだけど、もう少しスッキリさせてから載せる
今ほしいっていうか、どんなことやりたいとかってある?

>プログラム
>画像←ドット一枚絵
>シナリオ

ちなみにプログラムできる人が一番ほしい
636非通知さん@アプリ起動中:05/03/04 14:57:04 ID:gY/+J6gS
プログラム一応できる。
ただし何分不慣れなもんできちゃないソースになるかも。
637非通知さん@アプリ起動中:05/03/04 15:04:12 ID:2KdvZ4Fi
俺もすげー汚いよ。まぁ現物あったほうがイメージわかるだろうし、やっぱ汚いけどのせとく




メイン(プログラムの名前じゃなくてソースね)
rect(10,10,220,230)rect(15,15,100,100)rect(15,155,210,80)rect(15,130,20,20)rect(40,130,20,20)
text("DICE",25,130)text("H P >",130,30)text("STA >",130,45)text("満腹感 >  /100",120,60)text("FIG SKL >",120,75)text("THF SKL >",120,90)text("RNG SKL >",120,105)text("WIZ SKL >",120,120)
text("場所",80,131)text("/",90,151)#森#input()
638非通知さん@アプリ起動中:05/03/04 15:05:20 ID:2KdvZ4Fi
ダイス
for i=0 to 6 DI1=abs(rand)%6+1 clear(16,131,18,18)text(DI1,23,148)input(10)next for i=0 to 6 DI2=abs(rand)%6+1 clear(41,131,18,18)text(DI2,48,148)input(10)next DICE=DI1+DI2 input()


P="森"R=0G=120B=0 color(R,G,B)frect(15,15,100,100)color(0,0,0) label MORI #メニュー# if PNT=2 then exit endif goto "MORI" input()

メニュー
clear(16,156,208,78)text(P,100,151)TXT[0]=">1.進む"TXT[1]=">2.探索"TXT[2]=">3.道具"TXT[3]=">4.魔法" for txt=0 to 3 text(TXT[txt],25,175+txt*15)next
if input()and key1 then PNT=PNT+1 clear(16,156,208,78)clear(70,136,18,13)text(PNT,70,151)TXT[0]=">コマンド>進む"TXT[1]=">あなたは薄暗い森を用心深く進んだ" TXT[2]=">"TXT[3]=">"TXT[4]=">"
for txt=0 to 1 text(TXT[txt],25,175+txt*15)next for txt=2 to 4 #場面# text(TXT[txt],25,175+txt*15) #ダイス# next endif
639非通知さん@アプリ起動中:05/03/04 15:06:12 ID:2KdvZ4Fi
場面
for MOVE=1 to 19 color(R,G,B)lock()frect(15,15,100,100)color(250,250,250)rect(55,55,20,20)rect(55-2*(MOVE%10),55-2*(MOVE%10),20+4*(MOVE%10),20+4*(MOVE%10))rect(35-2*(MOVE%10),35-2*(MOVE%10),60+4*(MOVE%10),60+4*(MOVE%10))
line(15,15,55,55)line(15,115,55,75)line(115,15,75,55)line(115,115,75,75)unlock(0)input(50)next color(0,0,0)
640非通知さん@アプリ起動中:05/03/04 15:22:51 ID:2KdvZ4Fi
今つくってる#森#は決まった数(PNT)を進み街にでるのが目的。#森#には決まった数(PNT)ごとにイベントがある
例えば>PNT=10 なら沼(4)があらわれる
選択肢は
>1.進む
>2.探索
>3.道具
>4.魔法

>コマンド>進む、なら対岸までの距離(4)まで泳いで渡る。判定は4回行う。判定式は2D6+レンジャースキル-武器防具の重さ+(スタミナ。スタミナは0点でなければ3点までいつでも割り振れる)>=7

みたいにしようと思ってるんだけど、ルールすげー多いから、やっぱHP必要かな
641非通知さん@アプリ起動中:05/03/04 15:36:04 ID:gY/+J6gS
大体わかった。色々いじってみる。
HPはあるに越した事は無いが…
642非通知さん@アプリ起動中:05/03/04 15:54:35 ID:2KdvZ4Fi
やることは多いから、ちょこちょこ分担してやろうか。

>コマンド>探索
>
>流木をみつけた
>あなたは流木にしっかりとつかまると、慎重に沼を泳いだ。
>沼は思った以上に深く、もし溺れたら二度と日の目をみることはできないだろう
>
>
>あなたは無事に沼を渡りきった。
>濡れた体をかわかしたいところだが、この邪悪な森でそんな危険なことはできない

やりたいことはおおいなーorz
643非通知さん@アプリ起動中:05/03/04 16:10:06 ID:gY/+J6gS
OK。もしかしたら結構大幅に
改修してしまうかもしれないけど…。
でも結構完成度高いな。
644非通知さん@アプリ起動中:05/03/04 16:25:01 ID:2KdvZ4Fi
じゃルールとして
・改修は予告してほしい・作業内容は明らかにしてほしい・あとで使い回しができる>画面にRGBをつかったのも、たとえば黒なら洞窟が表現できる・プログラム載せるときは見た目重視で
X=2
Y=0
じゃなくて
X=2Y=0←つめて。とりあえずこんなとこ。俺は今日は沼つくる
rect(15,155,210,80)clear(16,156,208,78)text(P,100,151)TXT[0]=">目前に灰色の沼(3)が広がっている"TXT[1]=">周囲は腐った様な臭気が立ち込め"TXT[2]=">あなたの気をムカムカさせる"
TXT[3]=">しかしこんなところで"TXT[4]=">立ち止まるわけにもいかないだろう"for txt=0 to 4 text(TXT[txt],25,175+txt*15)input()next
645非通知さん@アプリ起動中:05/03/04 17:14:25 ID:2KdvZ4Fi
ttp://pksp.jp/jqk-card/
ルール思いつくたびにかいてく
ゲームブック、TRPGやったことないからやってる人いねーかなあ
646NOBA:05/03/04 17:26:26 ID:34WntPM4
進んでるみたいだけどやっぱりQVGAなのね…
さ よ う な ら…
647非通知さん@アプリ起動中:05/03/04 17:34:32 ID:gY/+J6gS
じゃあ、変更点の提案を一ついいかな?
それぞれの数値は後で作成するとして、ステータス表示の部分を
Stat[0]=" H P  > "+HP+"/"+MHP
Stat[1]=" STA  > "+STA
Stat[2]="満腹感 > "+HNG+"/100"
Stat[3]="FIG SKL > "+SKLF
Stat[4]="THF SKL > "+SKLT
Stat[5]="RNG SKL > "+SKLR
Stat[6]="WIZ SKL > "+SKLW

for stat=0 to 6
text(Stat[stat],120,30+stat*15)next
のように変更してもOK?

後、QVGA以外の端末への対応は可能ならば調整しても良いかな?
648非通知さん@アプリ起動中:05/03/04 17:38:47 ID:2KdvZ4Fi
どうぞ
非QVGA対応もOKだよ。
649非通知さん@アプリ起動中:05/03/04 17:43:26 ID:gY/+J6gS
>648
THX。HPを見たらスキルに対応する数値名は決まっていたのか。
後で修正しておく。
非QVGA対応については非QVGA機所持の方の協力が必要だけど…
誰かやれる?
650NOBA:05/03/04 17:47:17 ID:34WntPM4
    648
    川
ノ(´Α`)ノワーイ
651非通知さん@アプリ起動中:05/03/04 18:28:36 ID:ahPbYmAf
ノベルゲーのエンジンっぽいのつくってみたよ。

名前:エンジン本体
#src# n=0
label 0
text(title,0,strheight) soft1("終了") len=strlen(T[n])-1 posx=0 posy=strheight*3 time=100 for i=0 to len
buf=substr(T[n],i,1) if buf="@" then posy=posy+strheight posx=0 buf="" endif
if posx>=width then posy=posy+strheight posx=0 endif wid=strwidth(buf) text(buf,posx,posy) posx=posx+wid
if scan and keyselect then time=0 endif if scan and keysoft1 then end endif clearinput() sleep(time) next
posy=posy+strheight lock() qn=strlen(N[n]) if qn<>1 then for j=1 to qn
posy=posy+strheight buf=substr(N[n],j-1,1) text(j+" "+Q[buf],24,posy) next endif unlock(0)
label 1
C=input() if C and keysoft1 then end endif #key#if C<=qn then n=substr(N[n],C-1,1) clear(0,0,500,500) goto 0 else goto 1 endif
652非通知さん@アプリ起動中:05/03/04 18:31:02 ID:ahPbYmAf
名前:key

if C and key1 then C=1 elseif C and key2 then C=2 elseif C and key3 then C=3
elseif C and key4 then C=4 elseif C and key5 then C=5 elseif C and key6 then C=6
elseif C and key7 then C=7 elseif C and key8 then C=8 elseif C and key9 then C=9
elseif C and key0 then C=0 else C=99 endif
653非通知さん@アプリ起動中:05/03/04 18:32:43 ID:ahPbYmAf
名前:src
title="ノベルエンジン仮"

T[0]="あなたは家にいます@どこにいきますか?"
N[0]=14
Q[1]="山"
Q[4]="海"

T[1]="せっせと登る…@なにをしよう?"
N[1]=23
Q[2]="寝る"
Q[3]="歩く"

T[2]="寝たよ〜@終了"
N[2]=0

T[3]="歩いたよ〜@  -完-"
N[3]=0

T[4]="海についた。@なにをしよう?"
N[4]=53
Q[5]="泳ぐ"
Q[3]="歩く"

T[5]="泳いだよ〜@  -完-"
N[5]=0
654非通知さん@アプリ起動中:05/03/04 18:40:44 ID:ahPbYmAf
それでsrcをいじるとノベルゲーが作れる。
titleがノベルのタイトル
T[n]が本文、nが番号で最初は0が選ばれる@で改行
Q[n]が選択肢テキストで、Q[n]を選ぶとnの本文ヘ行く
N[n]=は選択肢を判別するためのもので、半角数字で指定、例をみればたぶん分かる

655NOBA:05/03/04 21:00:51 ID:34WntPM4
なんかいろいろプログラム出たけど結局どれ使うの?非QVGA使いとしてはゲームブックでは文字が収まらないからキツい…
656非通知さん@アプリ起動中:05/03/04 21:13:39 ID:Kvzp2E0G
共同でやるなら、dojaでやったほうが・・・
657NOBA:05/03/04 21:29:44 ID:34WntPM4
ドコモは機種間の互換性低いからキラいw
658非通知さん@アプリ起動中:05/03/04 22:23:36 ID:2KdvZ4Fi
dojaっパソコンないとだめっしょ?
659非通知さん@アプリ起動中:05/03/05 00:24:26 ID:BZf9kFA2
>655
非QVGAて画面の大きさっていくつ?66*66だっけ?
660非通知さん@アプリ起動中:05/03/05 01:04:26 ID:19LgJmYT
>659
そこまで小さくもないんでない?
横は120程度が目安だと思う。
ただwidthやheightを駆使すれば図形の対応は可能だけど、
文字のデカさはどうしようもないからなァ。
661非通知さん@アプリ起動中:05/03/05 01:21:53 ID:BZf9kFA2
120*120だと全角で64文字はいるから
移動画面
行動選択画面
テキスト画面
ステータス画面
アイテム画面
にわけて文字を切り詰めてけば無理ではないかも。もしくは違うのにするか。ゲームブックはつくってくけどね
662非通知さん@アプリ起動中:05/03/05 08:32:33 ID:4OF1hdiC
関係ないけど、FCの迷宮の達人 大迷路、好きだったな…
663非通知さん@アプリ起動中:05/03/05 17:35:01 ID:BE2hKDVe
文字だったら、非QVGA機は12pxフォント、QVGA機は24pxフォントにすれば
縦横ともにどうにかならない?
とりあえず、QVGA機は240x240、非QVGA機は120x120で動かすとして。
664非通知さん@アプリ起動中:05/03/05 19:40:36 ID:BZf9kFA2
大きさより120*120で叩き台つくってそっから話すすめたほうがはやそうだね
ルールブックというやつだけ見つけたからこれから買いにいってくる。ルールは一気に更新しておくから。
665非通知さん@アプリ起動中:05/03/05 21:07:28 ID:BZf9kFA2
NOBA氏いる?
666非通知さん@アプリ起動中:05/03/05 21:42:23 ID:BZf9kFA2
移動
for MOVE=1 to 19 color(R,G,B)lock()frect(0,0,120,120)color(250,250,250)rect(40,40,40,40)rect(40-2*(MOVE%10),40-2*(MOVE%10),40+4*(MOVE%10),40+4*(MOVE%10))rect(20-2*(MOVE%10),20-2*(MOVE%10),80+4*(MOVE%10),80+4*(MOVE%10))
line(0,0,40,40)line(0,120,40,80)line(120,0,80,40)line(120,120,80,80)unlock(0)input(50)
next color(0,0,0)input()
667非通知さん@アプリ起動中:05/03/05 21:43:47 ID:BZf9kFA2
ステータス
rect(0,0,120,120)clear(30,0,80,120)rect(30,0,80,120)STAT[0]="H P >"STAT[1]="S T A >"STAT[2]="場 所 >"STAT[3]="空腹感 >"STAT[4]="FHTSKL >"STAT[5]="THFSKL >"STAT[6]="RNGSKL >"STAT[7]="WIZSKL >"
for stat=0 to 7 text(STAT[stat],35,15+stat*15)next STAT[0]=HP STAT[1]=STA STAT[2]=HARA STAT[3]=FHTS STAT[4]=THFS STAT[5]=RNGS STAT[6]=WIZS STAT[7]=CNT
for stat=0 to 7
text(STAT[stat],100,15+stat*15)next input()
668非通知さん@アプリ起動中:05/03/05 21:44:40 ID:BZf9kFA2
コマンド
clear(0,0,70,115)rect(0,0,70,115)TXT[0]=">コマンド" TXT[1]=">>1.進む" TXT[2]=">>2.探索" TXT[3]=">>3.道具" TXT[4]=">>4.魔法" TXT[5]=">>5.ステータス" TXT[6]=">>6.もどる"
for txt=0 to 6 text(TXT[txt],5,20+txt*15)next
input()if input()and key1 then #移動#endif
if input()and key5 then #ステータス#endif
669非通知さん@アプリ起動中:05/03/05 21:45:25 ID:BZf9kFA2
メニュー
clear(16,156,208,78)text(P,100,151)TXT[0]=">1.進む"TXT[1]=">2.探索"TXT[2]=">3.道具"TXT[3]=">4.魔法"
for txt=0 to 3 text(TXT[txt],25,175+txt*15)next if input()and key1 then PNT=PNT+1 clear(16,156,208,78)clear(70,136,18,13)text(PNT,70,151)TXT[0]=">コマンド>進む"TXT[1]=">あなたは薄暗い森を用心深く進んだ" TXT[2]=">"TXT[3]=">"TXT[4]=">"
for txt=0 to 1 text(TXT[txt],25,175+txt*15)next for txt=2 to 4 #場面# text(TXT[txt],25,175+txt*15) #ダイス# next endif
670非通知さん@アプリ起動中:05/03/05 21:46:22 ID:BZf9kFA2

P="森" R=0G=120B=0 CNT=1 label MORI #コマンド# goto "MORI"

これだとサイズ大丈夫?
671NOBA:05/03/05 22:43:51 ID:+QWCqJE5
「油断大敵 どっとあくしょん!」
ジャンプは5キー。QVGAの人はちょっと小さすぎるかも…
ちなみに俺の記録は4STAGEorz

origin(width/2-34,height/2-42)label 2M=""X=0Y=0color(128,0,0)for i=0 to 16for j=0 to 20B[i][j]=0if rand%9=5then B[i][j]=1endif
next
B[i][21]=0next
B[0][0]=0B[8][20]=0gosub 1color(255,0,0)label 0lock()clear(X*4,Y*4,4,4)A=scan
if A and keyleft and B[X-1][Y]=0then X=X-1elseif A and keyright and B[X+1][Y]=0then X=X+1elseif A=2then end endif
if A and key5 then if J=0and B[X][Y+1]=1then J=6endif
else J=0endif
if J>0and B[X][Y-1]=0then Y=Y-1J=J-1else J=0if B[X][Y+1]=0then Y=Y+1endif
endif
frect(X*4,Y*4,4,4)if X=8and Y=20then M="CLEAR!"S=S+1elseif Y=21then M="RECORD:"+S+"STAGES!"S=0endif
unlock(1)yield()if not(M="")then text(M,0,104)goto 2endif
goto 0label 1lock()clear(-width/2+34,-height/2+42,width,height)for i=0 to 16for j=0 to 20if B[i][j]=1then frect(i*4,j*4,4,4)endif
next
next
color(0,0,255)rect(32,80,3,3)unlock(1)return
672NOBA:05/03/05 22:45:43 ID:+QWCqJE5
あ、ごめん気づかずに投稿してた。今から確認してみます。
673非通知さん@アプリ起動中:05/03/05 22:51:51 ID:BZf9kFA2
ドットかなりむずい
2面しかいかなかった
674NOBA:05/03/05 23:00:54 ID:+QWCqJE5
これでいいのかな…?画面にはばっちり入ってます。
675非通知さん@アプリ起動中:05/03/06 00:00:35 ID:BZf9kFA2
>647
非QVGAにもってことでこの仕様でどう?
676NOBA:05/03/06 00:05:59 ID:C7aPqVJN
さんせ〜い!(^o^)/
677非通知さん@アプリ起動中:05/03/06 00:09:30 ID:Iv61MfC3
NOBA氏も協力してくれる?
678NOBA:05/03/06 00:35:42 ID:C7aPqVJN
はい。それとなく
679非通知さん@アプリ起動中:05/03/06 00:46:15 ID:Iv61MfC3
ヨロシク
まずはとりあえず簡単な流れを作ろうと思うんだよね

コマンド
↓>コマンド>進む>CNT+1>イベント判定
移動画面

イベント>なにごともなく進むor沼

なにごともなければコマンド。沼ならコマンドが変化
680非通知さん@アプリ起動中:05/03/06 01:44:19 ID:wwQoJ2hG
TXT[1]=">あなたは薄暗い森を用心深く進んだ"
TXT[2]=">ふと見るとベンチに一人の若い男が座っていた"
TXT[3]=">ウホッ! いい男…"
TXT[4]=">「やらないか」"
681非通知さん@アプリ起動中:05/03/06 19:36:43 ID:Iv61MfC3
TXT[0]=">男はあなたの眼を見つめると"
TXT[1]=">あなたの手をとり"
TXT[2]=">人気のない木陰へ手をひいた"
TXT[3]=">・・・"
TXT[4]=">あなたは漢の称号を得た"
682305:05/03/06 21:15:37 ID:faQ2Kujv
質問が有るのでコチラに寄って下さい。
http://m.z-z.jp/?BASIC
683非通知さん@アプリ起動中:05/03/06 23:45:48 ID:6b2mLd0t
ローグライク作ってください(×_×)
684非通知さん@アプリ起動中:05/03/07 00:04:57 ID:Iv61MfC3
305氏のとこのHPおちてる?
685べーしっ君 ◆w5dyDtGv0k :05/03/07 00:09:31 ID:HVnXzS6M
本当にお待たせしました。
携帯BASIC1.0.5をうpしました。vodaは例によって申請中です。
imageの作成、描画に対応しました。あと、freememory,totalmemoryを取得できるようになりました。

■imageについて
imageデータはソースコードに画像データをcvsファイル形式で記述します。
順番に色数,カラーテーブル(R,G,B),透過色index(一番目は0),width,height,画像ピクセルデータ(カラーテーブルで設定した色をindexで指定。左上から順にwidth×height分だけ記述)を指定します。
実際に画像を使用するには使用するソースコードで関数loadimg(a1,a2)を使って読み込みます。a1に画像変数名、a2にimageデータの名前を指定してください。
imageデータでも通常のソースと同じようにコメントアウトや改行、imageデータの挿入が使用できます。

サンプルをみるとわかりやすいと思いますが、プログラムを書くソースと画像データを書くソースを分けなければいけません。
大きな画像を作ろうとすると一つのソースファイルに書ききれなくてソースの挿入をしなきゃいけなくなるなどちょっと大変そうです。

PNG、GIF画像生成クラスを作ってくださったNOBAさん有難うございました。
686非通知さん@アプリ起動中:05/03/07 00:20:34 ID:JpY0C6vU
お疲れ様で-す
687NOBA:05/03/07 00:59:54 ID:xDglAREw
おーきてる!お疲れさまです。ただ俺はもう携帯BASICを4つとってるんだがかさばっちゃって、そろそろプログラム説明とサンプル無し版が欲しかったり…
688非通知さん@アプリ起動中:05/03/07 07:36:58 ID:JmUW29dQ
>>685
お疲れさまです。
でもFOMAのN2102Vでは機能しない…非対応でしたったけ…?
689688:05/03/07 08:00:32 ID:JmUW29dQ
あ、すみません。
機能しないのはimageだけです。
他は普通に動作しました。
690非通知さん@アプリ起動中:05/03/07 11:05:47 ID:Vx0RiyUB
Java(JavaScript)を動かせるアプリあれば俺も手伝えるのにorz
691非通知さん@アプリ起動中:05/03/07 13:23:12 ID:Zuq8gNoW
>>690
javaなんかよりよっぽど単純だよ。
692690:05/03/07 14:51:19 ID:0Rx/IwhX
>>691
そうか…ちょっと勉強してみる

べーしっ君さん(でいいのかな)のアプリ落とさせて頂きました
ありがとう。
693非通知さん@アプリ起動中:05/03/07 20:40:41 ID:JpY0C6vU
非QVGAの画面の位置って変更できるの?
694非通知さん@アプリ起動中:05/03/07 21:00:23 ID:xDglAREw
できるっしょ
9,0,0,0,128,0,0,0,64,128,128,0,128,192,32,0,255,0,255,255,128,255,255,255,255,32,255,255,8,20,17,8,8,8,8,8,8,8,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,3,5,6,3,0,0,0,8,8,8,8,8,8,8,8,8,0,0,6,6,6,6,6,
6,6,6,0,0,8,8,8,8,8,8,8,0,0,6,6,6,6,3,3,6,5,3,6,3,0,8,8,8,8,8,0,0,6,6,6,6,6,5,2,6,5,2,6,6,3,0,8,8,8,8,0,6,6,6,6,6,6,7,2,6,7,2,6,6,6,0,8,8,8,0,0,6,6,6,6,6,6,5,2,6,5,2,6,6,6,5,0,8,8
,0,3,6,6,6,6,6,6,5,0,6,5,0,6,6,6,5,3,0,0,0,6,6,6,6,6,5,5,5,0,6,5,0,6,6,6,6,5,0,0,3,6,6,5,6,6,6,6,6,6,6,6,6,6,6,6,6,5,0,0,5,6,6,5,6,6,6,6,6,6,6,0,6,6,6,6,5,0,0,0,5,5,5,5,6,6,6,6,6,
6,6,6,6,6,6,6,5,0,8,8,0,0,0,5,5,5,5,5,6,6,6,6,6,6,6,5,0,8,8,8,8,0,0,1,4,4,1,5,5,5,5,5,5,5,4,4,4,0,8,8,0,1,4,7,4,4,4,1,5,5,3,0,4,4,4,4,4,1,0,8,0,1,1,4,4,4,1,1,0,0,0,1,1,4,4,4,1,1,0,8,8,0,0,0,0,0,0,0,8,8,8,0,0,0,0,0,0,0,8
695非通知さん@アプリ起動中:05/03/07 21:50:45 ID:JpY0C6vU
A=20 Y=60 X=60 S=scan label 0 origin(X-X,Y-Y) MOVE=MOVE+1
lock()color(0,100,0)frect(0,0,240,240)color(250,250,250)rect(80,80,80,80)rect(80-2*(MOVE%A),80-2*(MOVE%A),80+4*(MOVE%A),80+4*(MOVE%A))rect(40-2*(MOVE%A),40-2*(MOVE%A),160+4*(MOVE%A),160+4*(MOVE%A))
line(0,0,80,80)line(0,240,80,160)line(240,0,160,80)line(240,240,160,160)
origin(X,Y)color(0,0,0)frect(0-X,0-Y,X,240+Y)frect(120,0-Y,240-X,240+Y)frect(0-X,0-Y,240,Y)frect(0-X,120,240+X,240-Y)unlock(0)
if input(0)and key0 then exit endif if scan=keyup then Y=Y-5 elseif scan=keydown then Y=Y+5 elseif scan=keyleft then X=X-5 elseif scan=keyright then X=X+5 endif input(1) if MOVE%2=0 then Y=Y-MOVE%3 elseif MOVE%2=1 then Y=Y+MOVE%3 endif goto 0
非QVGAだとどう表示される?
696非通知さん@アプリ起動中:05/03/07 23:44:43 ID:xDglAREw
でかくて4/1しか見えませんでした〜;
ところでみんなもう画像使ってる?いいけどあの記述はちょっと効率が悪い気g(ry
697非通知さん@アプリ起動中:05/03/08 00:01:44 ID:JpY0C6vU
1/4てことは画面は動かなかった?
画面動かせば非QVGAでも表示されると思ったんだけどなあ
698非通知さん@アプリ起動中:05/03/08 00:35:19 ID:bF6Pm1VH
>697
て言うか、座標に使ってる値を倍にして自分の機種で走らせてみれ。
旧機種なんて使わなくてもどういう状態になるかわかるハズだけど。
699BASIC勉強厨:05/03/08 08:16:44 ID:/hZcIbAa
上の方のNOBA氏のプログラムにある
origin(width/2-34,height/2-42)
ってのはみんなにとっちゃ基本なんだろうけど俺感動しちゃいました

いろいろと勉強中なんだけど未だにガベージコレクトとステートメントが何なのかよくわかりませんorz
700NOBA:05/03/08 12:12:52 ID:ZrCZnv3u
ガベコレは大事だ。freememoryを常に表示してればわかると思うけどスレッドが走っている間は減り続けるだろ?
で、ある値以下になるとまた増える。(たまにこのときアプリが止まる)この増える瞬間JAVAVMが勝手にガベコレしてくれてるんだけどこれを自分で任意にしたいときにgc()てやるんだよ。
701勉強厨:05/03/09 08:37:06 ID:73P8uPkj
NOBA氏のどっとあくしょん、

next
next
gc()

っていじってみたら動作が軽くなりました(D900i)
解説ありがとうございますm(_ _)m
702非通知さん@アプリ起動中:05/03/09 11:10:53 ID:ifeS4suv
voda3G(902SH)で起動したのですが
言語解説の部分が空白です。
902で使えるのでしょうか?
703非通知さん@アプリ起動中:05/03/09 11:13:04 ID:ifeS4suv
連投ですみません。携帯ベーシックでしたorz
704非通知さん@アプリ起動中:05/03/10 01:42:44 ID:I1E4QMfB
gcの話しのついでで気付いたことがあります。無限ループの実験で
こんなソースを書いてみました。

'ソース
soft2("終了")

label lp
key=input(0)
text(totalmemory,30,30)
text(freememory,30,50)
if keysoft2 and key then exit endif
clear(0,0,width,height)
gc()
yield()
goto "lp"

この文のgoto文をwhile文で書き換えました(label lpをwhile 1に・goto "lp"を
wendに変更)。つまり、c言語のwhile(1)ループ(ソフトキーが押されるまでは
ループを継続)を作ってみました。そして、goto文で構成したループとwhile文
で構成したループを何回かまわしてみました。
(補足:「RUN」キーでプログラムを開始し、ソフトキーの「終了」を押した時
までを1回のループとする。また、ループを回す時間は考慮していない)

プログラムを動かすとメモリの総量(totalmemory)に対し、
ヒープ領域(freememory)が減少しますが、goto文ではヒープ領域の
値はほとんど変化しませんでした。
ただし、while文では値は徐々に減少し、しかもループを1回まわしただけ
でも携帯BASIC全体の動作も重くなってしまいます。


私はF900iで試しましたが、他の携帯ではどうなるのでしょうか?
長文申しわけありませんが教えてエロい人
705NOBA:05/03/10 15:31:50 ID:01bTHkxg
「砲撃訓練」
30発打って何個風船を射るか、というゲーム。絵文字は各自で入れてください。非QVGAだとうまく見えます。QVGAはちょっと汚いかもしれないんで文字サイズ調整してください。ていうかsetClip欲しい…

BG[0]="風船の絵文字"BG[1]="パンっ!ていう絵文字"BG[2]=""setfont("L")origin(-16,80)label 1R=1HX=148HY=64G=0B=0for i=0 to 3BX[i]=-i*36BS[i]=0next
S=224label 0lock()A=scan
color(0,128,255)frect(16,-80,132,144)if A=16384and S<270then S=S+4elseif A=8192and S>182then S=S-4elseif A=65536then if R then R=0VY=sin(S)/6VX=cos(S)/6HX=147HY=63B=B+1endif
elseif A=2then end endif
for i=0 to 3BX[i]=BX[i]+2BY[i]=BY[i]+rand%3if abs(HX-BX[i]-8)<8and abs(HY-BY[i]+8)<8and BS[i]=0then BS[i]=1G=G+1endif
text(BG[BS[i]],BX[i],BY[i])if BS[i]=1then BS[i]=2endif
if BX[i]=148then BX[i]=0BY[i]=rand%21BS[i]=0endif
next
color(32,32,32)line(cos(S)/6+147,sin(S)/6+63,147,63)farc(138,54,20,20)color(255,255,0)PX=HX
PY=HY
VY=VY+1HX=HX+VX
HY=HY+VY
line(HX,HY,PX,PY)unlock(1)if R=0and PX<0or PY>64then HY=99if B=30then color(255,128,0)text("SCORE:"+G,50,0)gc()sleep(1800)goto 1endif
R=1endif
yield()goto 0
706非通知さん@アプリ起動中:05/03/11 11:53:47 ID:vFcdsoch
ものすごい初歩的かも知れないけど

A=10
B=A+abs(rand)%10

って文があったら、
Bに代入される数値は0〜9までのランダム数値、って事?

A=100
B=A+abs(rand)%100
text("今日のラッキー指数は"+B+"だよ♪")

ってな事もできるでしょうか…
707非通知さん@アプリ起動中:05/03/11 11:56:32 ID:vFcdsoch
すみません、
text("今日のラッキー指数は"+B+"だよ♪",2,height/2-6)
でした
708NOBA:05/03/11 12:34:41 ID:5T1A8tUK
abs(rand)%100
はランダムな値を100で割ったあまりの絶対値だから0から99までが返る。このぐらいはまずじぶんでためしたほうがいいよ。ほんとに
709非通知さん@アプリ起動中:05/03/11 14:02:55 ID:ycdOLkHB
質問です。
自分で書いた絵を>>694さんのように数字にするには、どうすればいいのですか?
710非通知さん@アプリ起動中:05/03/11 15:33:23 ID:Q3N6r2S3
>>NOVA氏
できました。

origin(width/2-60,height/2-60)y=12A=abs(rand)%101
text("今日のラッキー度は",+A+"♪",0,y)
input()

それで今度は配列から文章を取り出したいと思ったんですが

soft2("終了")
label s
origin(width/2-60,height/2-60)y=12
A=abs(rand)%101
i=abs(rand)%5
C="赤,黄,緑,青,紫"
D="小物,車,タオル,上着,(・∀・)"
text("ラッキー度は"+A+"♪",2,y)
text(C[i]+"色の"+D[i]+"が",2,y*2)
text("ハッピーの鍵!",2,y*3)
text("決定キーでもっかい",2,y*7)
if input() keysoft2 then exit elseif keyselect then goto "c" endif
label c
clear(0,0,width,height)
goto "s"

↑でエラーにはならないものの
ソフキでの終了ができず、決定キー以外でもlabel cへジャンプし、
CとDの配列からの情報取得がうまくいかず「0色の0が」って表示される…
どうやったらいいんでしょう?
711非通知さん@アプリ起動中:05/03/11 15:49:23 ID:fV9cVR3Y
>>709
念じる
712NOBA:05/03/11 16:31:40 ID:JrF+cEa4
>>710
いたるろころにヒントはある。頑張って調べてね。
713非通知さん@アプリ起動中:05/03/11 18:38:34 ID:Q3N6r2S3
stratを使ってみたけど
「,色の小が」とか意味不明な事に…orz
どなたかお助けを…

操作系は諦めました。
714非通知さん@アプリ起動中:05/03/11 20:47:42 ID:KCPlc741
代入の仕方が問題。

A[0]="赤"
A[1]="青"
i=abs(rand%2)
text(A[i],10,10)

こうすれば大丈夫なはず。頑張れ
715非通知さん@アプリ起動中:05/03/11 22:26:28 ID:LX5bJVX4
>>714
うおお、ありがとございます
配列は分けて書かないといけないんスね…orz
今夜頑張ってみます。

p.s. IDとレス番が近い感じでイイ!
716非通知さん@アプリ起動中:05/03/12 08:21:43 ID:lPT66cko
連投すみません。これで基本は理解できました。
次は描画と操作系に挑戦したいと思います。

■ラッキーうらない

origin(width/2-60,height/2-60) y=12
label s
A=abs(rand)%5 i=abs(rand)%5
j=abs(rand)%5 k=abs(rand)%4
C[0]="赤"C[1]="緑"C[2]="青"C[3]="白"C[4]="茶"
D[0]="小物"D[1]="車"D[2]="携帯"D[3]="シャツ"D[4]="上着"
E[0]="ウキウキ"E[1]="ワクワク"E[2]="ルンルン"E[3]="ニコニコ"
text("今日のラッキー度は"+A+"♪",2,y)
text(C[i]+"色の"+D[j]+"が",2,y*2)
text(E[k]+"のカギ!",2,y*3)
text("今日も Fine day !",2,y*7)
input()

携帯BASICを落として約1ヶ月…昨日、突然閃いたように組めるようになりました。
NOBAさん、>714さん、スレ住人の皆さんに感謝m(_ _)m
まだまだ勉強不足ですがハイレベルなプログラムが出来るように頑張ります。
717NOBA:05/03/13 15:10:35 ID:kSobQM62
ブロック崩しの基礎部分です。起動がちょっと遅いですが、改造したりしてみてください。
「init」
color(0,127,0)frect(8,4,88,96)for i=0 to 4for j=0 to 3B[i][j]=abs(rand)%6if B[i][j]>0then drawimg(b[B[i][j]],20+i*13,12+j*9)n=n+1endif
next
next
「KABE」
3,32,32,32,96,96,96,191,191,191,3,8,4,1,2,2,2,2,2,2,1,1,1,2,2,2,2,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1
「moto」
3,8,4,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,0,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2
「BLOCK1」
3,255,255,255,223,223,223,128,128,128,#moto#
「BLOCK2」
3,255,96,96,255,0,0,128,0,0,#moto#
「BLOCK3」
3,255,255,96,255,255,0,128,128,0,#moto#
「BLOCK4」
3,96,255,96,0,223,0,0,128,0,#moto#
「BLOCK5」
3,96,96,255,0,0,223,0,0,128,#moto#
「BALL」
4,255,255,255,191,191,191,96,96,96,0,0,0,3,4,4,3,1,1,3,1,0,1,2,1,1,1,2,3,2,2,3
「PAD」
9,255,191,32,255,128,0,223,64,0,223,223,223,160,160,160,96,96,96,32,32,32,0,0,0,0,0,0,8,12,5,8,2,2,4,4,4,4,4,4,2,2,8,
2,1,2,4,3,3,3,3,4,2,1,2,2,0,2,5,7,7,7,7,5,2,1,2,2,1,2,5,7,5,5,7,5,2,1,2,8,2,2,5,5,5,5,5,5,2,2,8
718NOBA:05/03/13 15:12:20 ID:kSobQM62
「本体」
origin(width/2-52,height/2-50)for i=1 to 5loadimg(b[i],"BLOCK"+i)text("OK",0,i*13)gc()next
loadimg(WALL,"KABE")loadimg(B,"BALL")loadimg(P,"PAD")label 1gc()for i=0 to 49drawimg(WALL,(i/25)*96,(i%25)*4)next for i=0 to 11drawimg(WALL,i*8+8,0)next
#init#x=40XV=abs(rand)%4+1X=42Y=84YV=5-XV C=0label 0lock()frect(x,88,12,5)frect(X,Y,4,4)A=scan if A=8192and x>8then x=x-4elseif A=16384and x<84then x=x+4elseif
A=2then end endif if X<9then X=8XV=-XV elseif X>91then X=92XV=-XV endif if Y<5then Y=4YV=-YV endif X=X+XV Y=Y+YV if abs(Y-86)<3and abs(X-x-4)<9then XV=(X-x-4)/2if XV=0then XV=1endif
YV=abs(XV)-5elseif Y>92then Y=84YV=-3X=x+4endif if Y>7and Y<40then if X<81and X>15then Q=(X-16)/13R=(Y-8)/9if B[Q][R]>0then B[Q][R]=0frect(Q*13+20,R*9+12,8,4)if X<Q*13+17or X>Q*13+27then XV=-XV endif
if Y<R*9+10or Y>R*9+14then YV=-YV endif n=n-1if n=0then C=1endif endif endif endif drawimg(P,x,88)drawimg(B,X,Y)unlock(1)yield()if C then color(255,0,0)text("CLEAR",20,44)sleep(999)goto 1endif
goto 0
719非通知さん@アプリ起動中:05/03/15 16:14:59 ID:xLPbZnPI
<チラシの裏>
今日DoCoMoの友達がiBASICを落としてました。
いつも使ってる携帯ベーシック(ヴォダ)よりめちゃくちゃサクサクで驚きました。
</チラシの裏>
720非通知さん@アプリ起動中:05/03/15 21:56:40 ID:HMwINpKN
さてと。
721非通知さん@アプリ起動中:05/03/16 08:41:53 ID:hQmNMElq
NOBA氏のブロック崩しは誰も感想入れないのか?
俺はとにかく面白かった。玉が貫通する時もあるが
逆に爽快で1時間プレイしてた…はっきり言って超sugeeeeee
でも一つだけ。MISS判定もあるとよかったデス。
砲撃訓練も一発で多数割れる所が面白かった

あと、砲撃訓練もそうだけど
A=8192 → A=keyleft
A=16384 → A=keyright
にしないと動かなかった…D900i
722NOBA:05/03/16 14:11:49 ID:6DLvl1Gt
ありがとうございます!自分的にもちょっとアルカノイドっぽいとこが気に入ってました。衝突判定はやればできますが携帯BASICだとやはり速度が追いつかないので省きました(オイ。
723MC:05/03/16 15:45:37 ID:Q0NKfgG1
ところで皆は,upされたコードをコピーするのにどうしてますか?
俺はreate使ってます.
724非通知さん@アプリ起動中:05/03/16 15:54:01 ID:Wyu9NLtN
コピーしてメールで…
725非通知さん@アプリ起動中:05/03/16 15:57:31 ID:p1y1jwz7
携帯しか持ってないからクラシックとiMona
余程興味が無いとソースコピーとかしないし、無問題。
726非通知さん@アプリ起動中:05/03/17 15:52:23 ID:mi5/0PDB
プロジェクトの話ってどうなった?
727長くてスマソ:05/03/17 21:22:06 ID:Wrz4TXq2
イメージ作成補助ツール作ったから書き込もうとしたら改行が多い言われて、改行なくしたら一行が長すぎと言われ…orz
とりあえずツールの概要だけ紹介。後ほどソース書き込みます。

・縦横の大きさとカラーテーブル10色を設定可能
・ドットを一つずつうっていき、完成したらイメージデータを数値の羅列で表示可能
・一応非QVGA対応させたつもりですが、微妙に失敗してそうな予感

注意点
・メイン画面での操作は方向キーでカーソル移動、数字ボタンで描画色変更、決定でドットを描画
・描画メニューから選択中のカラーテーブルを変更可能。RGBを5単位で調整出来ます。カラーテーブルはメモっといてください
・カラーテーブルをまず設定してから作るとベター。画像を復元するのは時間かかるんで、完了→新規キャンバスがオススメ
・描画メニュー→キャンバスメニューで新規作成か再描画出来ます。再描画するとグリッドが消えて綺麗に見れます。
・終了メニューから数値表示出来ます。紙にでもメモって下さい。続き有りが表示されたらソフキで続きが見れます。リセットを選ぶとキャンバスサイズから新規作成出来ます

こんなとこか…。ロード長いので気長によろしく。それじゃソース引っ張ってくる。
728疲れたorz:05/03/17 21:30:21 ID:Wrz4TXq2
書き忘れ。普通に考えて無理な操作はしないようにお願いします(色にマイナス設定するとか)

「ドットヘルパー」
label start gosub"initclr" ini=0 re=0 label init lock() w=width h=height
setfont("S") origin(w/2-55,h/2-75) clear(0,0,w,h) color(0,0,0) text("キャンバスサイズ",10,12) text("縦:",0,30) text("横:",40,30)
text("左右でフォーカス移動",0,75) text("上下で値変更",0,95) text("Fで決定",0,115) CX=15 CY=18 tx=5 clearinput() label 0
origin(w/2-50,h/2-75) color(0,128,0) gosub"1" text("▲",tx,50) unlock(1) yield() key=input() lock() gosub"cls"
if key=keyselect then goto"comp" elseif key=keyright then tx=tx+40 elseif key=keyleft then tx=tx-40 elseif key=keyup then if tx=5 then CY=CY+1 else CX=CX+1 endif gosub"1"
elseif key=keydown then if tx=5 then CY=CY-1 else CX=CX-1 endif gosub"1" endif goto"0" label 1
text(CY,15,30) text(CX,55,30) return label cls color(255,255,255) gosub"1" text("▲",tx,50) return
#make_canvas#
729疲れたorz:05/03/17 21:34:18 ID:Wrz4TXq2
「make_canvas」
label repaint for j=1 to CY for i=1 to CX for k=1 to 9 if DOT[i][j]=k then clr=k
gosub"clr" X=i-1 Y=j-1 gosub"paint" endif next next next return
label comp if ini=0 then ini=1 for i=0 to CX for j=0 to CY DOT[i][j]=0 next next endif
origin(w/2-55,h/2-75) clear(0,0,w,h) color(192,192,192) rect(0,0,CX*4,CY*4) for i=1 to CX-1 line(4*i,0,4*i,4*CY) next
for i=1 to CY-1 line(0,4*i,4*CX,4*i) next for i=0 to 4 color(0,0,0) text(i,12*i+10,100) clr=i
gosub"clr" frect(12*i+10,100,8,8) next for i=5 to 9 color(0,0,0) text(i,12*i-50,140) clr=i
gosub"clr" frect(12*i-50,140,8,8) next gc() if re=1 then gosub"repaint" re=0 endif
#main_key#
730疲れたorz:05/03/17 21:36:52 ID:Wrz4TXq2
「color_table」
label initclr R[0]=255 G[0]=255 B[0]=255 R[1]=0 G[1]=0 B[1]=0 R[2]=255
G[2]=0 B[2]=0 R[3]=0 G[3]=255 B[3]=0 R[4]=0 G[4]=0 B[4]=255 R[5]=255 G[5]=255
B[5]=0 R[6]=0 G[6]=255 B[6]=255 R[7]=255 G[7]=0 B[7]=255 R[8]=128 G[8]=128 B[8]=128 R[9]=128 G[9]=128 B[9]=0 return
label clr color(R[clr],G[clr],B[clr]) return
731疲れたorz:05/03/17 21:39:45 ID:Wrz4TXq2
「main_key」
X=0 tempx=0 Y=0 tempy=0 tempclr=0 clr=0 gosub"move2" gosub"move" label overtop soft1("描画メニュー") soft2("終了メニュー")
label top clearinput() unlock(1) key=input() if key=keysoft1 then goto"soft1" elseif key=keysoft2 then goto"soft2"
elseif key=keyup then Y=Y-1 gosub"move" elseif key=keydown then Y=Y+1 gosub"move" elseif key=keyleft then X=X-1 gosub"move"
elseif key=keyright then X=X+1 gosub"move" elseif key=key0 then clr=0 gosub"move2" elseif key=key1 then clr=1 gosub"move2"
elseif key=key2 then clr=2 gosub"move2" elseif key=key3 then clr=3 gosub"move2" elseif key=key4 then clr=4 gosub"move2" elseif key=key5 then clr=5 gosub"move2"
elseif key=key6 then clr=6 gosub"move2" elseif key=key7 then clr=7 gosub"move2" elseif key=key8 then clr=8 gosub"move2" elseif key=key9 then clr=9 gosub"move2" elseif key=keyselect then gosub"paint" endif
#main_key2#
732疲れたorz:05/03/17 21:44:48 ID:Wrz4TXq2
「main_key2」
goto"top" label soft1 soft1("色設定") soft2("キャンバスメニュー") key=input() if key=keysoft2 then goto"can"
elseif key=keysoft1 then goto"setclr" endif label can soft1("キャンバスクリア") soft2("再描画") key=input() if key=keysoft1 then ini=0 else re=1 endif goto"comp" #main_key3#
label move lock() color(192,192,192) rect(4*tempx,4*tempy,4,4) tempx=X tempy=Y color(0,0,0) rect(4*X,4*Y,4,4) gosub"clr"return
label paint frect(4*X,4*Y,4,4) DOT[X+1][Y+1]=clr return label soft2 soft1("数値表示") soft2("終了")
label again2 key=input() if key=keysoft1 then goto"num" elseif key=keysoft2 then exit else goto"again2" endif
label num if CY>12 then soft1("続き有り") else soft1("リセット") endif color(0,0,0) clear(0,0,width,height) n=0 m=1
for j=1 to min(CY,12) for i=1 to CX text(DOT[i][j],6*n,12*m) n=n+1 if n=CX then n=0 endif
next m=m+1 next if CY<=12 then goto"again3" endif c=1 label again key=input() if key=keysoft2 then exit elseif key=keysoft1 then
clear(0,0,width,height) n=0 m=1 for j=13*c to min(CY,13*c+12) for i=1 to CX text(DOT[i][j],6*n,12*m) n=n+1 if n=CX then n=0 endif next
m=m+1 next if 13*c+12>=CY then soft1("リセット") label again3 key=input() if key=keysoft1 then goto"start"
elseif key=keysoft2 then exit else goto"again3" endif endif c=c+1 goto"again" else sleep(50) goto"again" endif
#color_table#
733疲れたorz:05/03/17 21:50:38 ID:Wrz4TXq2
「main_key3」
label move2 lock() color(255,255,255) if tempclr<5 then rect(12*tempclr+9,99,9,9) else rect(12*tempclr-51,139,9,9)
endif color(0,0,0) tempclr=clr if clr<5 then rect(12*clr+9,99,9,9) else rect(12*clr-51,139,9,9) endif yield()
gosub"clr" return label setclr clear(0,0,w,h) soft1("色確認") soft2("設定完了") frect(40,0,40,30) color(0,0,0) text("赤:",0,60) text("緑:",40,60) text("青:",80,60)
tx=10 gosub"again4" label again5 key=input(0) if key=keysoft1 then gosub"clr" frect(40,0,40,30) sleep(50) goto"again5" elseif key=keysoft2 then goto"judge" endif
lock() gosub"cls2" if key=keyright then tx=tx+40 elseif key=keyleft then tx=tx-40 elseif key=keyup and tx=10 then R[clr]=R[clr]+5
elseif key=keyup and tx=50 then G[clr]=G[clr]+5 elseif key=keyup and tx=90 then B[clr]=B[clr]+5 elseif key=keydown and tx=10 then R[clr]=R[clr]-5
elseif key=keydown and tx=50 then G[clr]=G[clr]-5 elseif key=keydown and tx=90 then B[clr]=B[clr]-5 endif gosub"again4" unlock(1) yield()
sleep(50) goto"again5" label again4 color(0,128,0) text("▲",tx,80) text(R[clr],18,60) text(G[clr],58,60) text(B[clr],98,60) return
label cls2 color(255,255,255) text("▲",tx,80) text(R[clr],18,60) text(G[clr],58,60) text(B[clr],98,60) return label judge
soft1("新規キャンバス") soft2("絵を復元") clearinput() key=input() if key=keysoft1 then ini=0 goto"comp" else re=1 goto"comp" endif


以上、汚いソースですまんです&連投失礼しました
734非通知さん@アプリ起動中:05/03/17 21:56:09 ID:WO1mAaO1
>727
激乙
main_key2,3が長くてコピできないです。分割激しくキボン
735勉強厨:05/03/17 22:43:15 ID:mi5/0PDB
流れぶったぎってスマソ

C=0
label a
color(C,C,C)frect(0,0,30,30)
if input() keyselect then C=C+10 endif
goto "a"

決定キーを押すと色が黒から白に変わっていくプログラムを作りたいんだけど
どうしたらいいですか?
全然意図した働きをしてくれないorz
736非通知さん@アプリ起動中:05/03/17 23:11:43 ID:GGWiq64l
>>735
if input() and keyselect then C=C+10 endif
でどうよ
737初心者がこたえてみる:05/03/17 23:12:26 ID:L1iYXEvZ
多分、if文の式の中にinput()を使うのはNGかと。
変数に入れて、代わりにそれを式に使えば、動作するはず。
738非通知さん@アプリ起動中:05/03/17 23:14:15 ID:L1iYXEvZ
知ったか&遅レスでスマン。吊ってくる…orz
739非通知さん@アプリ起動中:05/03/17 23:23:16 ID:GGWiq64l
>>737
イ`

>>727
禿乙
今から動かしてみる
740727:05/03/18 00:29:09 ID:sMlLmXc0
>>734
すまんかった(;´д`)
今、QVGAなら32×32くらいまで作れるように修正してみたから、改良とバグ取り終わったら完成品を分割して書き込むんで待ってて下さい。携帯からだから書き込むの大変で…orz


とりあえず次はブラシ(複数マス塗り)の実装をしようかなと思ってますが、ぶっちゃけこのツール使えますか?微妙なら自粛しますが、ここは改良してほしいとか、実装してほしい機能があれば取り入れてみたいのでみなさん意見をお願いします。
741非通知さん@アプリ起動中:05/03/18 00:33:49 ID:NW1Hb0Jo
激使えまっせ
yasu氏のとこのPUNKTENが参考になるのではと。
742勉強厨:05/03/18 08:33:14 ID:briiBMKI
流れ無視でごめんなさい、なんとかなりました
動かせる奴は初めてデス…晒してみます

■色気のある生活
■黒から始まり、RGB色を増減させます。色配合量表示つき。
 ←R+,↑G+,→B+,↓リセット
 1=R+,2=G+,3=B+, 4=R-,5=G-,6=B-, 7〜9=増減値プリセット

soft1("QUIT")r=0g=0b=0w=width h=height p=5'pは増減値設定
text("←R+,↑G+,→B+,↓RESET",2,15)
label a
lock()
color(r,g,b)frect(0,20,w,h)
color(255,255,255)frect(w-48,25,46,95)
color(0,0,0)text("R="+r,w-42,40)text("G="+g,w-42,60)text("B="+b,w-42,80)text("増減幅=",w-46,105)text(p,w-30,119)
unlock(1)
if r+p<256 and scan=keyleft then r=r+p elseif g+p<256 and scan=keyup then g=g+p elseif b+p<256 and scan=keyright then b=b+p elseif scan=keydown then r=0g=0b=0
elseif scan=keysoft1 then exit
elseif r+p<256 and scan=key1 then r=r+p elseif g+p<256 and scan=key2 then g=g+p elseif b+p<256 and scan=key3 then b=b+p
elseif r>0 and scan=key4 then r=r-p elseif g>0 and scan=key5 then g=g-p elseif b>0 and scan=key6 then b=b-p
elseif scan=key7 then p=10 elseif scan=key8 then p=5 elseif scan=key9 then p=1
elseif scan=key0 then r=0g=0b=0 endif
goto "a"

操作はscan取得ならなんとかなりました。操作部分だけでも別ソースにした方がいいかな…?

>>727
すげー…使わせてもらいますm(_ _)m
乙です
743742:05/03/18 15:13:42 ID:Iv3QHT/x
古いver.書いてた…orz
・lock()の後に
 「i=abs(rand)%256j=abs(rand)%256k=abs(rand)%256」
・endifの前に
 「elseif scan=keyselect then r=i g=j b=k 」
を入れてください。決定キーでランダムカラー表示機能
744非通知さん@アプリ起動中:05/03/18 19:02:06 ID:NW1Hb0Jo
ver.1.0.5でS=scanの代入がならないんだけど・・・
S=scan
label 0
if S=keyselect then exit endif
goto 0

前はこれでうごかなかったっけ?
745非通知さん@アプリ起動中:05/03/18 19:38:07 ID:sMlLmXc0
>744
それはループ外にscanの代入があるから動かないだけかと。ただ検証で
label 0
S=scan
if S=keyselect then exit endif
goto 0
ってやったらエラー終了した。どこかにsleep(1)とか処理入れれば大丈夫だったけどね。
746非通知さん@アプリ起動中:05/03/18 19:41:18 ID:FxQmaVdQ
Sはscanが入る、Sにはkeyselectを入れる。
という事になるんかな?
よくわからないけど、Sを小文字にしたりするのは駄目なん?
もしくは他で変数名Sを使ってしまってるとか…
どうしてもダメなら素直にscan=keyselect
747非通知さん@アプリ起動中:05/03/18 20:00:50 ID:NW1Hb0Jo
>745>746

S=scan
if S=key

ここでSにkeyがはいっちゃうのかな。thx
748745:05/03/18 21:21:50 ID:sMlLmXc0
ちがうちがう(;´д`)
ifの条件式なら=使っても代入されないよ。俺が言ってるのはscanの代入式もループ内に入れないとダメってこと。

s=scan
label 0

じゃなくて

label 0
s=scan
にするってことだから。
749745:05/03/18 21:24:36 ID:sMlLmXc0
ageちまった_| ̄|〇
申し訳ない…
750携帯Basic初心者:05/03/18 21:27:57 ID:yTi7UuvD
自分もイメージ作成ツールを作っていたのに先に作られてしまった…。
で、作ってて思ったんですが『透過色』のところには何の色を設定すればいいんですか?
751非通知さん@アプリ起動中:05/03/18 21:32:38 ID:NW1Hb0Jo
なんでそうなるか今ひとつワカラヌー(;´Д`)なるようになるんだろうけど
F=frect
C=color
CL=clear
T=text
て先に宣言しちゃって

C(0,0,0)F(0,0,5,5)T(txt,5,5)CL(0,0,5,5)云々・・・
て感じにできんもんかヌーと思っただけなんだけどね
752非通知さん@アプリ起動中:05/03/18 23:39:23 ID:sMlLmXc0
>750
何色でも勝手に決めれる。要は透明にしたい色を指定してやればいいわけだ。

>751
あぁ…そういう意味だったのか。その書き方は残念ながら無理だね。
S=scanは、Sってグローバル変数にscanの中身が代入されるだけだから、この式に来た時点でkey0が押されてたらSにはkey0が格納されるわけだ。
その状態でlabel 0のループに入っちゃってるから、いくらif S=keyselect って比較してもSにはkey0が保存してあるから一致せず動作しない。
S=scanってやっても、Sがscanと同じになるわけじゃないのだよ。この説明で分かった?
753非通知さん@アプリ起動中:05/03/18 23:44:25 ID:yqNCiNBm
>>752
751じゃないけど参考にさせて貰いました
素直にちゃんと命令式書けって事ですな(´・ω・`)ショボーン

ところでプロジェクトの話h(ry
754非通知さん@アプリ起動中:05/03/19 00:02:04 ID:NW1Hb0Jo
>752
ようは、素直に宣言しようてことね
755非通知さん@アプリ起動中:05/03/19 12:57:44 ID:0VfAV30j
楽しみだなー、最新のドットヘルパー
期待age でも目欄はsage
756非通知さん@アプリ起動中:05/03/19 15:35:03 ID:sA6ZFFgR
次の携帯Bにはドットヘルパーが入ってるといいな…
757携帯Basic初心者:05/03/19 16:41:59 ID:guodqgAd
>752
透明にしたい色を指定するってことはそこと同じ色を使ってるところが透明になるってことですか?
って事は、255,255,255を指定しておけば間違いないって事ですよね?
758非通知さん@アプリ起動中:05/03/19 17:25:20 ID:E+MkJfXs
ローグライク作ってください。おながいします
759非通知さん@アプリ起動中:05/03/19 18:09:00 ID:7JCFOxsi
>758
頼むだけじゃなくて自分でつくってみたら?
760非通知さん@アプリ起動中:05/03/19 18:52:31 ID:AYOoF9h+
>757
そういうことだね。ただ白を透過させると、例えば目を書いたとしたら白目が透明になるわけで、黒い背景の上にそのイメージを置くと真っ黒な目になっちゃいますよね?だから関係ない色を透明にしたい部分に塗っておくと便利です。

さて、ドットヘルパーver2完成しましたのでお届けします。今回はQVGAで更に便利になりました
◆共通仕様
・ブラシ実装(3×3で塗れます。メインで*を押すとブラシサイズがトグルします)
・操作性アップ(メイン:長押しで継続移動出来ます。色変更:単押しで1、長押しで10単位で調整可能に)
・完成予想図実装(非QVGAでは最終チェックに使うことをオススメします)
・数値表示で、サイズとカラーテーブルも表示
・メイン画面で重くなってきたら#でガベージコレクトしてください。また間違えて別のメニューにいった場合に#でキャンセル出来ます。
・再描画微高速化

◆QVGAメリット
・作成途中でも気軽にカラーテーブル変更できます。
・完成予想図も気軽に見れます
・作成可能サイズが増えました(40×40くらいまで可能、めんどいけど)

一部メニューかわってるので注意してください。
761非通知さん@アプリ起動中:05/03/19 19:00:18 ID:AYOoF9h+
また上げてるしorz
書ききれなかった注意点で、非QVGAは最初の変数を0にして使って下さい。また起動に40秒くらいかかります。ソースをインクルードではなく直接埋め込んでやれば多少速くなるはず。

「ドットヘルパー」
QVGA=1
'非QVGAは0にする
kmax=0 pats=4 pen="t" label start soft1("") soft2("") w=width h=height clear(0,0,w,h) qv=100*QVGA gosub"initclr" ini=0 re=0
label init lock() setfont("S") origin(w/2-55,h/2-75) clear(0,0,w,h) color(0,0,0) text("キャンバスサイズ",10,12) text("横:",0,30) text("縦:",40,30) text("左右でフォーカス移動",0,75) text("上下で値変更",0,95)
text("Fで決定",0,115) CX=15 CY=18 tx=5 clearinput() label 0 origin(w/2-50,h/2-75) color(0,128,0) gosub"1" text("▲",tx,50) unlock(1) yield() key=input() lock()
gosub"cls" if key=keyselect then goto"comp" elseif key=keyright then tx=tx+40 elseif key=keyleft then tx=tx-40 elseif key=keyup then if tx=5 then CX=CX+1 else CY=CY+1 endif gosub"1"
elseif key=keydown then if tx=5 then CX=CX-1 else CY=CY-1 endif gosub"1" endif goto"0" label 1 text(CX,15,30) text(CY,55,30) return label cls
color(255,255,255) gosub"1" text("▲",tx,50) return #make_canvas# #main_key#
762非通知さん@アプリ起動中:05/03/19 19:04:05 ID:AYOoF9h+
「make_canvas」
label repaint tem=pen pen="t" tempkmax=kmax for j=1 to CY kmax=tempkmax for k=0 to kmax for i=1 to CX kmax=max(DOT[i][j],kmax) if DOT[i][j]=k then clr=k gosub"clr"
X=i-1 Y=j-1 gosub"paint" endif next gc() next next pen=tem return label comp if ini=0 then ini=1 for i=0 to CX
for j=0 to CY DOT[i][j]=0 next next endif if QVGA=0 then origin(w/2-55,h/2-75) else origin(10,10) endif clear(-10,-10,w+10,h+10) color(192,192,192)
rect(0,0,CX*4,CY*4) for i=1 to CX-1 line(4*i,0,4*i,4*CY) next for i=1 to CY-1 line(0,4*i,4*CX,4*i) next for i=0 to 4 color(0,0,0) text(i,12*i+10,110+qv) clr=i gosub"clr"
frect(12*i+10,110+qv,8,8) next for i=5 to 9 color(0,0,0) text(i,12*i-50,140+qv) clr=i gosub"clr" frect(12*i-50,140+qv,8,8) next gc() if re=1 then gosub"repaint" re=0 endif
763非通知さん@アプリ起動中:05/03/19 19:08:48 ID:AYOoF9h+
あ、それから終了しようとすると携帯ベーシックがエラー終了するときがあります。これはたぶん携帯ベーシック側のバグなんでどうにもならないです…。

「color_table」
label initclr R[0]=255 G[0]=255 B[0]=255 R[1]=0 G[1]=0 B[1]=0 R[2]=255 G[2]=0 B[2]=0
R[3]=0 G[3]=255 B[3]=0 R[4]=0 G[4]=0 B[4]=255 R[5]=255 G[5]=255 B[5]=0 R[6]=0 G[6]=255 B[6]=255
R[7]=255 G[7]=0 B[7]=255 R[8]=128 G[8]=128 B[8]=128 R[9]=128 G[9]=128 B[9]=0 return label clr color(R[clr],G[clr],B[clr])return
764非通知さん@アプリ起動中:05/03/19 19:12:01 ID:AYOoF9h+
「main_key」
X=0 tempx=0 Y=0 tempy=0 tempclr=0 clr=0 gosub"move2" gosub"move" label overtop clearinput() gosub"clr" soft1("描画メニュー") soft2("終了メニュー")
label top unlock(1) key=input(100) if key=0 and scan=buf then key=buf endif buf=key if key=keysoft1 then goto"soft1" elseif key=keysoft2 then goto"soft2"
elseif key=keyup then Y=Y-pats/4 gosub"move" elseif key=keydown then Y=Y+pats/4 gosub"move" elseif key=keyleft then X=X-pats/4 gosub"move" elseif key=keyright then X=X+pats/4 gosub"move"
elseif key=key0 then clr=0 gosub"move2" elseif key=key1 then clr=1 gosub"move2" elseif key=key2 then clr=2 gosub"move2" elseif key=key3 then clr=3 gosub"move2"
elseif key=key4 then clr=4 gosub"move2" elseif key=key5 then clr=5 gosub"move2" elseif key=key6 then clr=6 gosub"move2" elseif key=key7 then clr=7 gosub"move2" elseif key=key8 then clr=8 gosub"move2"
elseif key=key9 then clr=9 gosub"move2" elseif key=keyselect then gosub"paint" elseif key=keyast then gosub"pen" elseif key=keypound then gc() endif goto"top" #main_key2#
765非通知さん@アプリ起動中:05/03/19 19:16:22 ID:AYOoF9h+
「main_key2」
label soft1 soft1("色設定") soft2("キャンバスメニュー") key=input() if key=keysoft2 then goto"can" elseif key=keysoft1 then goto"setclr" elseif key=keypound then goto"overtop" endif
goto"soft1" label can soft1("キャンバス破棄") soft2("完成図予想") key=input() if key=keysoft1 then goto"start" else goto"img" elseif key=keypound then goto"overtop" endif
goto"can" #main_key3# #main_key4# #main_key5# #main_key6# #color_table#
label move lock() if pen="t" then color(192,192,192) rect(4*tempx,4*tempy,4,4) tempx=X tempy=Y color(0,0,0) rect(4*X,4*Y,4,4) else color(192,192,192)
rect(4*tempx,4*tempy,pats,pats) tempx=X tempy=Y color(0,0,0) rect(4*X,4*Y,pats,pats) endif gosub"clr" unlock(1) yield() return
label paint kmax=max(kmax,clr) if pen="t" then frect(4*X+1,4*Y+1,3,3) DOT[X+1][Y+1]=clr else lock() frect(4*X+1,4*Y+1,pats-1,pats-1) color(192,192,192)
for i=1 to 2 line(4*(X+i),4*Y,4*(X+i),4*Y+pats) line(4*X,4*(Y+i),4*X+pats,4*(Y+i)) next unlock(1) yield() for j=1 to pats/4 for i=1 to pats/4
DOT[X+i][Y+j]=clr next next gosub"clr" endif return label soft2 soft1("数値表示") soft2("終了") key=input()
if key=keysoft1 then goto"num" elseif key=keysoft2 then exit elseif key=keypound then goto"overtop" endif goto"soft2"
766非通知さん@アプリ起動中:05/03/19 19:18:34 ID:AYOoF9h+
「main_key3」
label move2 lock() color(255,255,255) if tempclr<5 then rect(12*tempclr+9,109+qv,9,9) else rect(12*tempclr-51,139+qv,9,9) endif
color(0,0,0) tempclr=clr if clr<5 then rect(12*clr+9,109+qv,9,9) else rect(12*clr-51,139+qv,9,9) endif yield() gosub"clr" return
label reclr gosub"clr" if clr<5 then frect(12*clr+10,110+qv,8,8) else frect(12*clr-50,140+qv,8,8) endif return
767非通知さん@アプリ起動中:05/03/19 19:21:36 ID:AYOoF9h+
「main_key4」
label num color(0,0,0) if QVGA=1 then origin(10,10) endif gosub"ctable" soft1("データ") soft2("終了")
label again6 clearinput() key=input() if key=keysoft2 then exit elseif key=keysoft1 then else goto"again6" endif c=0 label again
clear(0,0,w,h) n=0 m=1 for j=12*c+1 to min(CY,12*c+12) for i=1 to CX text(DOT[i][j],6*n,12*m) n=n+1
if n=CX then n=0 endif next m=m+1 next if 12*c+12>=CY then soft1("新規作成") else soft1("続き有り") c=c+1 label a clearinput() key=input() if key=keysoft1 then goto"again" elseif key=keysoft2 then exit else goto"a" endif endif
label again3 clearinput() key=input() if key=keysoft1 then goto"start" elseif key=keysoft2 then exit else goto"again3" endif
label ctable clear(0,0,w,h) if QVGA=1 then origin(10,10) endif text(CX+"×"+CY,0,12) for i=0 to 9 text(i+"("+R[i]+","+G[i]+","+B[i]+")",0,12*i+36) next return
768非通知さん@アプリ起動中:05/03/19 19:24:23 ID:AYOoF9h+
「main_key5」
label setclr if QVGA=0 then clear(0,0,w,h) else origin(90,200) endif soft1("色確認") soft2("設定完了") frect(45,10,30,15)
color(0,0,0) text("赤:",0,40) text("緑:",40,40) text("青:",80,40) tx=10 gosub"again4" label again5 key=input(100) p=1 if key=0 and scan=buf then key=buf p=10 endif
buf=key if key=keysoft1 then gosub"clr" frect(45,10,30,15) sleep(50) goto"again5" elseif key=keysoft2 then goto"judge" endif lock() gosub"cls2"
if key=keyright then tx=tx+40 elseif key=keyleft then tx=tx-40 elseif key=keyup and tx=10 then R[clr]=R[clr]+p elseif key=keyup and tx=50 then G[clr]=G[clr]+p
elseif key=keyup and tx=90 then B[clr]=B[clr]+p elseif key=keydown and tx=10 then R[clr]=R[clr]-p elseif key=keydown and tx=50 then G[clr]=G[clr]-p
elseif key=keydown and tx=90 then B[clr]=B[clr]-p endif gosub"again4" unlock(1) yield() goto"again5"
769非通知さん@アプリ起動中:05/03/19 19:27:33 ID:AYOoF9h+
「main_key6」
#pen# #img# label again4 color(0,128,0) text("▲",tx,55) text(R[clr],18,40) text(G[clr],58,40) text(B[clr],98,40) return
label cls2 color(255,255,255) text("▲",tx,55) text(R[clr],18,40) text(G[clr],58,40) text(B[clr],98,40) return label judge if QVGA=1 then
clear(0,0,w,h) origin(10,10) gosub"reclr" soft1("再描画シナイ") soft2("変更反映") clearinput() key=input() if key=keysoft2 then gosub"repaint2" endif goto"overtop" else
soft1("白紙キャンバス") soft2("絵を復元") clearinput() key=input() if key=keysoft1 then ini=0 else re=1 endif goto"comp" endif
label repaint2 tem=pen pen="t" for j=1 to CY for i=1 to CX if DOT[i][j]=clr then X=i-1 Y=j-1 gosub"paint" endif next next pen=tem X=tempx Y=tempy return
770非通知さん@アプリ起動中:05/03/19 19:29:12 ID:AYOoF9h+
「pen」
label pen if pen="f" then color(192,192,192) rect(4*X,4*Y,pats,pats) color(0,0,0) rect(4*X,4*Y,4,4) pen="t" pats=4 else pats=12
color(192,192,192) rect(4*X,4*Y,4,4) color(0,0,0) rect(4*X,4*Y,pats,pats) pen="f" endif gosub"clr" return
771非通知さん@アプリ起動中:05/03/19 19:33:29 ID:AYOoF9h+
ラストー。長すぎですまんです。みんなこれ使ってRogueLike作成頑張ってね(・ω・)ノシ

「img」
label img if QVGA=1 then origin(160,h-50) endif clear(0,0,w,h) if QVGA=0 then origin(w/2-50,h/2-70) endif soft1("Now making..") soft2("")
tempkmax=kmax for j=1 to CY kmax=tempkmax for k=0 to kmax for i=1 to CX kmax=max(DOT[i][j],kmax) if DOT[i][j]=k then clr=k gosub"clr"
frect(i,j,1,1) endif next gc() next next color(0,0,0) text("Complete!",0,CY+15) soft1("数値表示") soft2("戻る") label in key=input() if key=keysoft1 then goto"num" elseif key=keysoft2 then
if QVGA=0 then re=1 goto"comp" elseif QVGA=1 then clear(0,0,w,h) origin(10,10) goto"overtop" endif endif goto"in"
772携帯Basic初心者:05/03/19 21:23:39 ID:guodqgAd
>760
やっと理解できました。ありがとうございます。
これで僕もイメージ作成ツールが作れます。まあ、ドットヘルパーとほとんど似ているけど…。
773非通知さん@アプリ起動中:05/03/19 22:10:49 ID:jZZ3rV5c
アナログ時計作ってみますた。

soft2("Exit") sc=10000/(width/2) origin(width/2,height/2)
label A
tp=second label B if tp=second then goto "B" endif
lock() clear(-width/2,-height/2,width,height)
for i=0 to 330 step 30 ax=sin(i)*90 ay=-cos(i)*90 bx=sin(i)*97 by=-cos(i)*97 line(ax/sc,ay/sc,bx/sc,by/sc) next
k=hour*30+minute/2 ax=sin(k)*60 ay=-cos(k)*60 bx=sin(k+120)*7 by=-cos(k+120)*7 cx=sin(k+240)*7 cy=-cos(k+240)*7
line(ax/sc,ay/sc,bx/sc,by/sc) line(bx/sc,by/sc,cx/sc,cy/sc) line(cx/sc,cy/sc,ax/sc,ay/sc)
k=minute*6+second/10 ax=sin(k)*88 ay=-cos(k)*88 bx=sin(k+120)*6 by=-cos(k+120)*6 cx=sin(k+240)*6 cy=-cos(k+240)*6
line(ax/sc,ay/sc,bx/sc,by/sc) line(bx/sc,by/sc,cx/sc,cy/sc) line(cx/sc,cy/sc,ax/sc,ay/sc)
k=(second)*6 ax=sin(k)*88 ay=-cos(k)*88 line(0,0,ax/sc,ay/sc)
unlock(0) yield() gc()
if input(0) and keysoft2 then exit endif
goto "A"

AU版ver1_0_5で作成
一応殆どの画面サイズに対応出来てると思うんだが・・・
他キャリア及び非QVGA機の方、よろしければ動作報告していただけると助かります
774非通知さん@アプリ起動中:05/03/19 23:09:29 ID:D7y9AnN4
はい。またしてもどっとへるぱー文字数大杉でコピぺできません。
この際ふつうにアプリとしてそういうの作っちゃおうかな
775非通知さん@アプリ起動中:05/03/19 23:14:11 ID:E+MkJfXs
>>773
P900i激しくオッケーです五回転したら
ちゃんとラインの所につきますた。
776非通知さん@アプリ起動中:05/03/19 23:16:31 ID:ubaQcci+
おつかれーしょん!
今気づいたんだが、color_tableの変数をいじってやれば、
自分好みのパレットが使えるって事やね。
さらにcolor_tableのソースをコピペしてct1,ct2,ct3って感じでいくつも保存しておいて
main_key2の#color_table#を書き替えれば使いやすくなりそう。
次の構想もあるなら、カラーテーブル切り替えも視野におながいします

あとは細かい事だし、何もできない俺が偉そうな事は言えないが
「make_canvas」…とかソース名は「mc」とかにできないかな
こちら側でちょっとソースいじればいいだけなんだが
ソース名を後から修正できない理由もあってちょっと不便が発生する事がある
make_canbusって入れて焦ったり。
作者としてはソース名とかにこだわりたいのはすっごい分かるんだけど…

しかし、操作性の大幅な向上、速度アップとはすごいな…
ありがたく使わせていただきます

p.s. ドコモではSetfont("T")にしないと結果画面が見辛かった
777727:05/03/19 23:51:59 ID:AYOoF9h+
>773
J-SH53素晴らしく動きました。乙です

>774
マジっすか(;´д`)
もっと細かく分割してもいいんだけど、起動が遅くなってくから大変…。ソースコピったらアプリの方でソースの数を自分で調整してもらえるなら、次回は全て一つ500以内くらいにはしたいと思います。というかどこまでならコピれるとか目安教えて下さいませ。

>776
意見ありがとです。次回構想はなかったんですが、カラーテーブル変更はいいですね。実験してみます。
ソース名にこだわりはないんですが、何を書いたソースか分からなくなるので……すでに分かりませんが(笑)
次回はソースを入れ換えて分かりやすくしたいと思います。フォントも画面に入り切るならTにしてみます。
778非通知さん@アプリ起動中:05/03/20 00:07:37 ID:CkBX9vrw
↑全角2400字ぐらいまでこぴれますた
779727:05/03/20 00:43:01 ID:ASWA9Ojn
全角2400ですか…?
それだと余裕でコピれるんですが、240とかの間違いじゃないですよね?
う〜ん、とりあえず現在かなり細かく切ってますので次回こそはなんとかなると思います。それでも無理ってなったら地道に分割コピペしてください。
780非通知さん@アプリ起動中:05/03/20 00:46:57 ID:CkBX9vrw
↑N900iは恐らくコピれます
781勉強厨 ◆3otyK7MmBU :05/03/20 18:17:13 ID:YNXRZvjA
■エンタメ版RenderMode
■←:赤増加 ↑:緑増加 →:青増加 ↓:増加reset 決定:パステル⇔ダーク *:小さく #:大きく

s=0l=0r=0g=0b=0c=16soft1("CLEAR")gosub "cls"
label loop
soft2("R"+r+"G"+g+"B"+b)if scan=keysoft2 then exit elseif scan=keysoft1 then gosub "cls" endif
x=abs(rand)%width y=abs(rand)%height color(abs(rand)%64+l+r*8,abs(rand)%64+l+g*8,abs(rand)%64+l+b*8)frect(x-c,y-c,c,c)

if r<8 and scan=keyleft then r=r+1 elseif g<8 and scan=keyup then g=g+1 elseif b<8 and scan=keyright then b=b+1
elseif scan=keydown then r=0g=0b=0 elseif l<127 and scan=keyselect then l=127 s=255 gosub "cls"
elseif c<64 and scan=keyast then c=c+1 elseif c>1 and scan=keypound then c=c-1 endif
yield()
goto "loop"

label cls
rmode(0,255,255)color(s,s,s)frect(0,0,width,height)rmode(1,255,255)
return

ああ、input取得できないorzと同時につまらん物をあげてすまんです本音はメ欄
782773:05/03/20 23:54:19 ID:B5+rclZp
>>775
>>777
他キャリアの機種でも大丈夫みたいですね、動作報告ありがとうございます。


>>779
コピー、オレが使ってるW11Kだとテキストボックスが全角512文字、1024バイト位までしか対応してないみたいです。
(オーバーすると後ろの方が切れる

因にミラー版クラシックの「写」使ってます。
783非通知さん@アプリ起動中:2005/03/21(月) 15:10:04 ID:VI0ZtLmk
color(0,0,0)
frect(0,0,50,50) label a
color(abs(rand)%255,abs(rand)%255,abs(rand)%255)line(25,0,0,25)
color(abs(rand)%255,abs(rand)%255,abs(rand)%255)line(25,0,50,25)
color(abs(rand)%255,abs(rand)%255,abs(rand)%255)line(25,50,50,25)
color(abs(rand)%255,abs(rand)%255,abs(rand)%255)line(25,50,0,25)
sleep(100)goto"a"




color(0,0,0)
frect(0,0,50,50) label a
a=abs(rand)%255
color(a,a,a)line(25,0,0,25)
color(a,a,a)line(25,0,50,25)
color(a,a,a)line(25,50,50,25)
color(a,a,a)line(25,50,0,25)
sleep(100)goto"a"
この二つは似てるんですが違う色の採り方します。何でこうなるんですか?誰か教えてください(T_T)
784非通知さん@アプリ起動中:2005/03/21(月) 15:29:23 ID:+i2F4oxI
color(0,0,0)frect(0,0,50,50)
for i=0 to 7
color(abs(rand)%255,abs(rand)%255,abs(rand)%255)line(5,5+i*5,40,5+i*5)
next
input()


color(0,0,0)frect(0,0,50,50)
color(abs(rand)%255,abs(rand)%255,abs(rand)%255)
for i=0 to 7
line(5,5+i*5,40,5+i*5)
next
input()
785勉強厨 ◆3otyK7MmBU :2005/03/21(月) 16:55:10 ID:jw51MQws
>>783
(a,a,a)は、それぞれにabs(rand)%255を入れたつもりでも
実際はaの箱にはランダムに取得した数値が入っているから
もう一度ランダム数値を取得するか現在の代入値を破棄するかしないと
意図した働きはしてくれないと思う。
俺もそれで悩みましたorz

そうそう、俺も質問があるんですが
forとnextって「ここから」「ここまで」みたいな関係?
nextまで来たら一つ前のforに戻るって事になるんですかね?
講義お願いします
786727:2005/03/21(月) 20:26:33 ID:7WSuh/I8
ドットヘルパーですが、ソース分割細かくしたら起動に1分半近くかかってしまいましたorz
逆に三つにまとめこんだらなんと10秒程度に。やっぱソース数増えるときつくなります。
カラーテーブル変更に使えるかと思った案が失敗したのもありまして、この前書いたバージョンで一段落にいたします。コピれない方は申し訳ないですが分割コピペして下さい。

話かわりますがdispose関数はどういうふうに使えばいいんでしょうね?使うメリットとか分かる方は教えて下さいm(__)m


ちょこっとアイデア↓
label a
color(r[a],g[a],b[a])
return

aに値を代入してサブルーチンジャンプ(gosub"a")すると引数みたいに使えて便利です。マジオススメ
787非通知さん@アプリ起動中:2005/03/21(月) 20:40:46 ID:+i2F4oxI
>727氏
「ドットヘルパー」「main_key」「main_key2」
の3つをわけてもらえますか?
W11Hだと表示すらされないナリ
788勉強厨 ◆3otyK7MmBU :2005/03/21(月) 21:30:50 ID:eXvLrfpv
gosubってそういう風に使うのか…(;´Д`)
参考になったよありがとん

text("本日のラッキーカラー!",20,20)

label main
for f=0 to 2
gosub "sub"frect(f*10+20,40,8,8)
next
input()

label sub
i=abs(rand)%255j=abs(rand)%255k=abs(rand)%255color(i,j,k)
return
789非通知さん@アプリ起動中:2005/03/21(月) 21:54:46 ID:+i2F4oxI
>788
コテつけてる意味あんの?
790非通知さん@アプリ起動中:2005/03/21(月) 22:00:19 ID:pDgGYaup
>>788
それだとinput越えたあとまたlabel subまで実行しちゃわない?
違ってたらスマソ
791非通知さん@アプリ起動中:2005/03/21(月) 22:11:38 ID:DwRjqLNc
最近は頭悪い人が多いのね…マジで。このくらいノーヒントでもやってりゃわかることばっかだろ…
792非通知さん@アプリ起動中:2005/03/21(月) 22:20:16 ID:VI0ZtLmk
みなさんお答え頂き有難うございましたm(__)m
>>789
人が傷つくようなこと言わないでくれませんか?スレッドの質が悪くなります
793非通知さん@アプリ起動中:2005/03/22(火) 04:28:09 ID:TrnTjkA4
>>785

↓こうすると処理Aを10回繰り返す。

for a=0 to 9
処理A
next

『for a=0 to 9』の所を以下の様に変えても、同様に処理Aを10回繰り返す。

for a=1 to 10
for a=101 to 110
for a=10 to 100 step 10
for a=9 to 0 step -1

続く
794非通知さん@アプリ起動中:2005/03/22(火) 04:29:52 ID:TrnTjkA4
続き
forとnextの関係は以下のようになる。

 ┌→for a=1 to x
 └─next
 ┌→for a=1 to x
 └─next

┌─→for a=1 to x
│┌→for b=1 to x
│└─next
└──next

┌─→for a=1 to x
│┌→for b=1 to x
│└─next
│┌→for b=1 to x
│└─next
└──next
795非通知さん@アプリ起動中:2005/03/22(火) 04:31:54 ID:TrnTjkA4
>>786
dispose関数はメモリーが足りなくなった時に、不要になった変数を消去してメモリーの空きを確保する為に使うんだと思われ
796勉強厨 ◆3otyK7MmBU :2005/03/22(火) 08:13:01 ID:kb0f6obo
>>789
コテというかトリップ?プロジェクト参加したいから付けた
外した方がいいかな?

>>790
ドコモではちゃんと終了できた

>>791
名前の通りなもんで。スレ汚しゴメンネ('A`)

>>793-794
激thx!良く分かる講義ありがとん!
nextとforは常に対であり、二重のforも可能である…と
これでまた何か出来たら晒します。
797727:2005/03/22(火) 12:39:41 ID:Yj9QXC0X
「ドットヘルパー」
QVGA=1 '非QVGAは0にする
kmax=0 pats=4 pen="t" label start soft1("") soft2("") w=width h=height clear(0
0
w
h) qv=100*QVGA gosub"initclr" ini=0 re=0 label init lock() setfont("S") origin(w/2-55
h/2-75) clear(0
0
w
h) color(0
0
0) text("キャンバスサイズ"
10
12) text("横:"
0
30) text("縦:"
40
30) text("左右でフォーカス移動"
0
75) text("上下で値変更"
0
95) text("Fで決定"
0
115) CX=15 CY=18 tx=5 clearinput() label 0 origin(w/2-50
h/2-75) color(0
128
0) gosub"1" text("▲"
tx
50) unlock(1) yield() key=input() lock()
#ヘルパー2#
798727:2005/03/22(火) 12:45:02 ID:Yj9QXC0X
やっべ……iMona使って書き込んだらカンマが全部改行になっちまった(;´д`)
改めてブラウザから書き込みます。無駄なスレ消費スマソ
799727:2005/03/22(火) 12:48:53 ID:Yj9QXC0X
「ドットヘルパー」
QVGA=1 '非QVGAは0にする
kmax=0 pats=4 pen="t" label start soft1("") soft2("") w=width h=height clear(0,0,w,h) qv=100*QVGA gosub"initclr" ini=0 re=0
label init lock() setfont("S") origin(w/2-55,h/2-75) clear(0,0,w,h) color(0,0,0) text("キャンバスサイズ",10,12) text("横:",0,30) text("縦:",40,30) text("左右でフォーカス移動",0,75) text("上下で値変更",0,95) text("Fで決定",0,115)
CX=15 CY=18 tx=5 clearinput() label 0 origin(w/2-50,h/2-75) color(0,128,0) gosub"1" text("▲",tx,50) unlock(1) yield() key=input() lock() #ヘルパー2#
800727:2005/03/22(火) 12:50:15 ID:Yj9QXC0X
「ヘルパー2」
gosub"cls" if key=keyselect then goto"comp" elseif key=keyright then tx=tx+40 elseif key=keyleft then tx=tx-40 elseif key=keyup then
if tx=5 then CX=CX+1 else CY=CY+1 endif gosub"1" elseif key=keydown then if tx=5 then CX=CX-1 else CY=CY-1 endif gosub"1" endif goto"0"
label 1 text(CX,15,30) text(CY,55,30) return label cls color(255,255,255) gosub"1" text("▲",tx,50) return #make_canvas# #main_key#
801727:2005/03/22(火) 12:54:06 ID:Yj9QXC0X
「main_key」
X=0 tempx=0 Y=0 tempy=0 tempclr=0 clr=0 gosub"move2" gosub"move"
label overtop clearinput() gosub"clr" soft1("描画メニュー") soft2("終了メニュー") label top unlock(1) key=input(100)
if key=0 and scan=buf then key=buf endif buf=key if key=keysoft1 then goto"soft1" elseif key=keysoft2 then goto"soft2" elseif key=keyup then Y=Y-pats/4 gosub"move"
elseif key=keydown then Y=Y+pats/4 gosub"move" elseif key=keyleft then X=X-pats/4 gosub"move" elseif key=keyright then X=X+pats/4 gosub"move" #main2#
802727:2005/03/22(火) 12:55:36 ID:Yj9QXC0X
「main2」
elseif key=key0 then clr=0 gosub"move2" elseif key=key1 then clr=1 gosub"move2" elseif key=key2 then clr=2 gosub"move2"
elseif key=key3 then clr=3 gosub"move2" elseif key=key4 then clr=4 gosub"move2" elseif key=key5 then clr=5 gosub"move2" elseif key=key6 then clr=6 gosub"move2"
elseif key=key7 then clr=7 gosub"move2" elseif key=key8 then clr=8 gosub"move2" elseif key=key9 then clr=9 gosub"move2"
elseif key=keyselect then gosub"paint" elseif key=keyast then gosub"pen" elseif key=keypound then gc() endif goto"top" #main_key2#
803727:2005/03/22(火) 12:57:49 ID:Yj9QXC0X
「main_key2」
label soft1 soft1("色設定") soft2("キャンバスメニュー") key=input() if key=keysoft2 then goto"can" elseif key=keysoft1 then
goto"setclr" elseif key=keypound then goto"overtop" endif goto"soft1" label can soft1("キャンバス破棄") soft2("完成図予想") key=input()
if key=keysoft1 then goto"start" else goto"img" elseif key=keypound then goto"overtop" endif goto"can"
#main_key3# #main_key4# #main_key5# #main_key6# #color_table# label move lock() if pen="t" then color(192,192,192) rect(4*tempx,4*tempy,4,4)
tempx=X tempy=Y color(0,0,0) rect(4*X,4*Y,4,4) else color(192,192,192) rect(4*tempx,4*tempy,pats,pats) tempx=X tempy=Y color(0,0,0) rect(4*X,4*Y,pats,pats) endif gosub"clr" unlock(1) yield() return
#key2#
804727:2005/03/22(火) 12:59:36 ID:Yj9QXC0X
「key2」
label paint kmax=max(kmax,clr) if pen="t" then frect(4*X+1,4*Y+1,3,3) DOT[X+1][Y+1]=clr else lock()
frect(4*X+1,4*Y+1,pats-1,pats-1) color(192,192,192) for i=1 to 2 line(4*(X+i),4*Y,4*(X+i),4*Y+pats) line(4*X,4*(Y+i),4*X+pats,4*(Y+i)) next unlock(1) yield()
for j=1 to pats/4 for i=1 to pats/4 DOT[X+i][Y+j]=clr next next gosub"clr" endif return label soft2 soft1("数値表示") soft2("終了") key=input()
if key=keysoft1 then goto"num" elseif key=keysoft2 then exit elseif key=keypound then goto"overtop" endif goto"soft2"
805727:2005/03/22(火) 13:15:49 ID:Yj9QXC0X
これでいかがでしょうか?ドットヘルパーとmain_key・main_key2以外は>>761からのソースで補って下さい。

>>795
ガベコレとかまた違うメモリー開放なのかな?でも用途は分かったよ。ありがとう

>>796
>>790が言うとおり、あれだとまたsubラベルも実行されちゃうよ。そしたらサブルーチンジャンプじゃないからreturnが意味なくて終了してるだけかと思われ。
あと自分で試してみるのも大事だで。forのあとにnext入れないソース書いてみるとか、forのあとにonlightとofflightさせてnextのあとにonvibを置いたらどういう動作するかとか。
C言語の入門書読んで制御構造とかを軽く勉強しとくといいかも。括弧使った制御構造見ればfor nextやif endif やwhile wendの多重構造も理解しやすいと思う。がんがれ
806非通知さん@アプリ起動中:2005/03/22(火) 13:19:28 ID:n37YDF4V
>>789の見下した態度と>>787の低姿勢に和路巣

>>727
禿乙
807非通知さん@アプリ起動中:2005/03/22(火) 15:21:41 ID:rtW8kfaH
>806
あなたもスレの質下げてますよ
808非通知さん@アプリ起動中:2005/03/22(火) 22:18:28 ID:O35+1Ih5
文字がランダムな値を取りながら動いて、
画面の端にいったら跳ね返る
(アプリのなかに入っている、デモの文字バージョンみたいなもの)
を作っているんですが…
まったく出来ません(T_T)
誰か教えてください
809非通知さん@アプリ起動中:2005/03/22(火) 22:40:55 ID:XzSkQpgJ
え〜…frectをtextに変えるだけなのになんでできないんだ……
810非通知さん@アプリ起動中:2005/03/22(火) 23:17:33 ID:IgEAru1S
frectをtextに変えただけだから出来ないって事はないか?

frect(描画位置x,描画位置y,幅,高さ)
text(描画文字列,描画位置x,描画位置ベースラインy)

>>789 >>791 >>806 >>807
>>792もか?とりあえず煽るな。

>>796
本来ならばreturnの後にexitを入れるのが良いかと
そのプログラム単体ならば必要ないが。

あとは蛇足だがプロジェクトも今は動きが無いし鳥外して静観しとけ。
厳しい事を言うがforの使い方が分からんような段階では
プロジェクト参加してもプログラムが理解できずに終わるぞ。
811非通知さん@アプリ起動中:2005/03/23(水) 03:00:25 ID:5fJozsxD
べーしっくんさん、
プログラミングで作ったゲームの中にテキストボックスを
表示出来るような機能を
取り付けてもらえないでしょうか?
そうすれば>>727さんのドッヘルがますます使い易くなると思います。
812非通知さん@アプリ起動中:2005/03/23(水) 05:16:52 ID:LDxVsiWy
探せば初心者向けのプログラミング講座もあるかと思ったけど,なかなか良さそうなのがないなあ.

いまのところ見つけたのはこの辺.
ttp://hp.vector.co.jp/authors/VA003991/kouza/beginner/kouza_basic.html
参考になるところはあると思う.
813勉強厨 ◆3otyK7MmBU :2005/03/23(水) 08:21:29 ID:BvnCJ/VM
>>810
確かに俺も、プロジェクト参加しても足引っ張るような
そういう感じがしていただけに…
コテ・トリップはこれで最後にして名無しに戻ります。
んでプログラム勉強してプロジェクトに備えます(´・ω・`)

>>812
うわ、中学の時に習った奴だ…懐かしい
ループからgotoで抜けるのは良くないのねorz
勉強になりました、ありがとう


ところで携帯BASICに最初から入ってるバウンサーデモ、
あれのマルチスレッドって途中で処理追い付かなくなる…
携帯のアプリ性能がヘボだからかなぁ…D900i
2〜3コ弾が出たところで固まるんですがみんなはどうなのかな
814携帯Basic初心者:2005/03/23(水) 19:44:18 ID:xcAOdeSn
やっとイメージ作成ツールができました。QVGA専用です。使ってみてください。

[本体]
soft1("end") x=2 y=2 r=255 g=255 b=255 r1=255 g1=255 b1=255
label wi color(0,0,0) text("width:"+x,20,12) unlock(1)
key=input() if key=keyup then x=x+1 elseif key=keydown then x=x-1 elseif key=keyselect then goto "he" elseif key=keysoft1 then end endif
if x<2 then x=2 elseif x>40 then x=40 endif lock() clear(20,0,48,12) goto "wi"
label he color(0,0,0) text("height:"+y,70,12) unlock(1)
key=input() if key=keyup then y=y+1 elseif key=keydown then y=y-1 elseif key=keyselect then goto "im" elseif key=keysoft1 then end endif
if y<2 then y=2 elseif y>40 then y=40 endif lock() clear(70,0,54,12) goto "he"
label im lock() text("*:マス変更 2:透過色",10,24) text("0:clear",10,36) text("1:変換",10,48) rect(106,37,28,9) color(255,0,0) text("R:"+r1,72,36) color(0,255,0) text("G:"+g1,72,48) color(0,0,255) text("B:"+b1,105,36)
yy=50 for i=1 to y xx=10 for j=1 to x color(0,0,0) rect(xx,yy,5,5) col[j][i]=r+","+g+","+b xx=xx+5 next yy=yy+5 next
rect(190,22,5,5) color(255,0,0) text("R:"+r,200,15) color(0,255,0)
text("G:"+g,200,30) color(0,0,255) text("B:"+b,200,45) unlock(1) #img#
815携帯Basic初心者:2005/03/23(水) 19:46:45 ID:xcAOdeSn
[img]
soft2("color") xx=10 yy=50
label dr color(255,0,0) rect(xx,yy,5,5)
key=input() if key=keyup then gosub "up" elseif key=keydown then gosub "down" elseif key=keyleft then gosub "left"
elseif key=keyright then gosub "right" elseif key=keyselect then gosub "dr2" elseif key=key0 then gosub "cl1"
elseif key=key1 then #CHANGE# elseif key=key2 then #tran# elseif key=keyast then goto "cl" elseif key=keysoft1 then end
elseif key=keysoft2 then #COLOR# endif goto "dr"
label up color(0,0,0) rect(xx,yy,5,5) yy=yy-5
if yy<50 then yy=(y-1)*5+50 endif color(255,0,0) rect(xx,yy,5,5) return
label down color(0,0,0) rect(xx,yy,5,5) yy=yy+5
if yy>(y-1)*5+50 then yy=50 endif color(255,0,0) rect(xx,yy,5,5) return
label left color(0,0,0) rect(xx,yy,5,5) xx=xx-5
if xx<10 then xx=(x-1)*5+10 endif color(255,0,0) rect(xx,yy,5,5) return
label right color(0,0,0) rect(xx,yy,5,5) xx=xx+5
if xx>(x-1)*5+10 then xx=10 endif color(255,0,0) rect(xx,yy,5,5) return
label dr2 color(r,g,b) frect(xx+1,yy+1,4,4) x1=xx/5-1 y1=yy/5-9 col[x1][y1]=r+","+g+","+b return
label cl r=255 g=255 b=255 r1=255 g1=255 b1=255 clear(0,0,width,height) goto "wi"
label cl1 for y1=1 to y yy1=y1*5+46
for x1=1 to x col[x1][y1]=255+","+255+","+255 xx1=x1*5+6 color(255,255,255) frect(xx1,yy1,4,4) next next goto "dr"
816携帯Basic初心者:2005/03/23(水) 19:48:45 ID:xcAOdeSn
[COLOR]
soft1("塗り潰す") soft2("Green")
label red color(255,0,0) text("R:"+r,200,15) color(r,g,b) frect(191,23,4,4) unlock(1)
sc=scan if sc=keyup then r=r+1 elseif sc=keydown then r=r-1 elseif sc=keyright then r=r+50 elseif sc=keyleft then r=r-50
elseif sc=keyselect then soft1("end") soft2("color") clearinput() goto "dr" elseif sc=keysoft1 then gosub "pai"
elseif sc=keysoft2 then soft2("Blue") goto "green" endif
if r>255 then r=255 elseif r<0 then r=0 endif lock() clear(200,3,30,12) goto "red"
label green color(0,255,0) text("G:"+g,200,30) color(r,g,b) frect(191,23,4,4) unlock(1)
sc=scan if sc=keyup then g=g+1 elseif sc=keydown then g=g-1 elseif sc=keyright then g=g+50 elseif sc=keyleft then g=g-50
elseif sc=keyselect then soft1("end") soft2("color") clearinput() goto "dr" elseif sc=keysoft1 then gosub "pai"
elseif sc=keysoft2 then soft2("Red") goto "blue" endif
if g>255 then g=255 elseif g<0 then g=0 endif lock() clear(200,18,30,12) goto "green"
label blue color(0,0,255) text("B:"+b,200,45) color(r,g,b) frect(191,23,4,4) unlock(1)
sc=scan if sc=keyup then b=b+1 elseif sc=keydown then b=b-1 elseif sc=keyright then b=b+50 elseif sc=keyleft then b=b-50
elseif sc=keyselect then soft1("end") soft2("color") clearinput() goto "dr" elseif sc=keysoft1 then gosub "pai"
elseif sc=keysoft2 then soft2("Green") goto "red" endif
if b>255 then b=255 elseif b<0 then b=0 endif lock() clear(200,32,30,12) goto "blue"
label pai for y1=1 to y yy1=y1*5+46 for x1=1 to x col[x1][y1]=r+","+g+","+b xx1=x1*5+6 color(r,g,b) frect(xx1,yy1,4,4) next next return
817携帯Basic初心者:2005/03/23(水) 19:49:25 ID:xcAOdeSn
[CHANGE]
soft2("again") clear(0,0,width,height) tr=r1+","+g1+","+b1 i=0
for y1=1 to y for x1=1 to x data[x1][y1]=i i=i+1 co[i]=col[x1][y1] i1=i
for j=1 to i-1 if co[j]=co[i] then i1=i1-1 data[x1][y1]=j-1 endif
next i=i1 next next
tr1=-1 for j=1 to i if co[j]=tr then tr1=j-1 endif next
if tr1=-1 then tr1=i i=i+1 co[i]=tr endif
moji=i+"," for j=1 to i moji=moji+co[j]+"," next moji=moji+tr1+","+x+","+y
for y1=1 to y for x1=1 to x moji=moji+","+data[x1][y1] next next
ji=12 st=strlen(moji) st1=st for j=0 to st step 40 if st1<40 then jj=st1 else jj=40 endif
color(0,0,0) text(substr(moji,j,jj),0,ji) st1=st1-40 ji=ji+12 next clearinput()
label da key=input() if key=keysoft2 then goto "cl" elseif key=keysoft1 then end endif goto "da"
818携帯Basic初心者:2005/03/23(水) 19:50:19 ID:xcAOdeSn
[tran]
soft1("") soft2("Green")
label red1 color(255,0,0) text("R:"+r1,72,36) color(r1,g1,b1) frect(107,38,27,8) unlock(1)
sc=scan if sc=keyup then r1=r1+1 elseif sc=keydown then r1=r1-1 elseif sc=keyright then r1=r1+50 elseif sc=keyleft then r1=r1-50
elseif sc=keyselect then soft1("end") soft2("color") clearinput() goto "dr" elseif sc=keysoft2 then soft2("Blue") goto "green1" endif
if r1>255 then r1=255 elseif r1<0 then r1=0 endif lock() clear(72,24,30,12) goto "red1"
label green1 color(0,255,0) text("G:"+g1,72,48) color(r1,g1,b1) frect(107,38,27,8) unlock(1)
sc=scan if sc=keyup then g1=g1+1 elseif sc=keydown then g1=g1-1 elseif sc=keyright then g1=g1+50 elseif sc=keyleft then g1=g1-50
elseif sc=keyselect then soft1("end") soft2("color") clearinput() goto "dr" elseif sc=keysoft2 then soft2("Red") goto "blue1" endif
if g1>255 then g1=255 elseif g1<0 then g1=0 endif lock() clear(72,36,30,12) goto "green1"
label blue1 color(0,0,255) text("B:"+b1,105,36) color(r1,g1,b1) frect(107,38,27,8) unlock(1)
sc=scan if sc=keyup then b1=b1+1 elseif sc=keydown then b1=b1-1 elseif sc=keyright then b1=b1+50 elseif sc=keyleft then b1=b1-50
elseif sc=keyselect then soft1("end") soft2("color") clearinput() goto "dr" elseif sc=keysoft2 then soft2("Green") goto "red1" endif
if b1>255 then b1=255 elseif b1<0 then b1=0 endif lock() clear(105,24,30,12) goto "blue1"

819携帯Basic初心者:2005/03/23(水) 20:00:35 ID:xcAOdeSn
使い方
最初に幅を選択します。その次に高さです。両方とも上下で選択して決定ボタンで次に行きます。
マスが出てきたらソフト右キーで色を選択します。最初は赤で、またソフト右キーを押すごとに緑→青→赤と選択できます。決定ボタンで決定です。
2キーを押すと透過色をせんたくします。
1キーで数値に変換します。変換して出てきた数字をそのまま写してくれれば大丈夫だと思います。
まあ基本的な操作はこんなもんです。あとはやってみればわかると思います。

まだまだ改良中ですのでバグがあるかもしれません。みつけたら言ってください。
あとフォントサイズなどがあわないときも言ってください。

説明が下手ですみません。。
820携帯Basic初心者:2005/03/23(水) 20:40:51 ID:xcAOdeSn
書き忘れてました。
たぶん大丈夫だと思いますが、変換したときに一行に40文字表示するようにしてあるので、それ以下しか表示できない場合は
[CHANG]のなかの40っていう数字を全部表示できる文字数に変え
てください。
V601SHで作りましたので、それ以外の機種を使っている方は確認してみてください。
821非通知さん@アプリ起動中:2005/03/23(水) 22:36:57 ID:5fJozsxD
for x= 0 to 255
color(x,x,x)
text("DoCoMo最高〜〜!",54,120)
next
これなんですがステップを変えずに、早くするフェードアウト方法はあるのでしょうか?
あったら教えてください
m(__)mおねがいします
822非通知さん@アプリ起動中:2005/03/23(水) 23:08:19 ID:7L49n17+
NOBA氏最近来ないな〜
それにプロジェクトの面々ももう一週間くらい来てないような
続きに期待してたんだけどな…

ここ2ヶ月の集大成としてアクションパズル制作中
823727:2005/03/23(水) 23:13:28 ID:ej5V8EhJ
>>821
俺はそれが最速だと思います。

>携帯basic初心者
乙です。
早速使った感想を。
俺のより細かい配慮があって嬉しい部分が多かった(笑)
ただ色変更で、ソフキちょっと押しすぎるとすぐR→Bとかにdじゃうんで、scan取得には微少スリープとか入れてみてはいかがでしょうか?
結果表示はあのままコピればいいので便利ですね。工夫次第でもう少し高速にいけるのではないかと思いましたが、正直あのへんのソースは解析しきれませんでした。
似たツール作者としてアルゴリズムに興味あったのですが…無念。


ローグライクプロジェクトとは別に補助ツール系プロジェクトなんかあっても楽しそうだなぁ。
824非通知さん@アプリ起動中:2005/03/23(水) 23:24:52 ID:7L49n17+
>>811
俺も希望します。テキストボックス。
RPGの戦闘シーンのアナウンスとか入れられそう。
ノベルゲー作る場合も\nで改行とか出来たら
プログラム文字数節約にもなるし組む段階でも分かりやすくなりそう。
825非通知さん@アプリ起動中:2005/03/24(木) 00:46:30 ID:XdGkpm5u
>>824さん?テキストボックスはプログラム実行中に書き込むものですよ?
例えばメモアプリとして
プログラム実行中テキストボックスのなかにメモ出来るようなかんじに
ここからは妄想


texb()で使え、ドットヘルパーの数値情報の直コピ可能に!!
826非通知さん@アプリ起動中:2005/03/24(木) 05:56:18 ID:ec+8cpNa
タグ機能付きテキスト表示システム作ってみますた

DAT="{W}{W}ぬ{W}る{W}ぽ{R}{W}{W}{VON}{VOF}ガッ!{KEY}"
i=0 tf=0 TAG="" origin(width/2-60,height/2-60) gosub "P"
label MAIN if i=strlen(DAT) then exit endif
A=strat(DAT,i) i=i+1 if A="}" then tf=0 gosub "TAGMODE" elseif tf=1 then TAG=TAG+A elseif A="{" then tf=1 else gosub"H" endif goto "MAIN"
label H if x=10 then gosub "R" endif text(A,1+12*x,15+15*y) x=x+1 return
label TAGMODE
if TAG="R" then gosub "R" elseif TAG="P" then gosub "P" elseif TAG="W" then gosub "W" elseif TAG="KEY" then gosub "KEY" elseif TAG="VON" then gosub "VON" elseif TAG="VOF" then gosub "VOF" else A="{"+TAG+"?}" gosub "H" endif TAG="" return
label R y=y+1 x=0 if y=8 then gosub "P" endif return
label P color(200,200,200) frect(0,0,120,120) color(0,0,0) x=0 y=0 return
label W sleep(500) return
label KEY input() return
label VON onvib() return
label VOF offvib() return

作成環境/携帯BASIC ver1.0.5、W11K
827非通知さん@アプリ起動中:2005/03/24(木) 05:57:00 ID:ec+8cpNa
解説。
最初の「DAT=""」の中を書き換えると色々な文章を表示できます。
また、文章中にタグを埋め込む事により、色々な機能を呼び出せます
今の段階で使えるタグは、
{R}改行、{P}ページ切り替え、
{W}ウエイト、{KEY}キー入力待ち、
{VON}バイブON、{VOF}バイブOFF
以上の6つです。

で、ここからが本題なんですけど、
このシステムのタグ機能を拡張していくと、テキストベースのアドベンチャーゲームが作れる!!と思うのですが…。
現在タグは前記の6種だけですが、タグ機能を拡張していく事により
ページリンク、キー入力対応リンク、確率、条件付きリンク、フラグ、パラメーター管理、アイテム取得、
等を実現出来るのではないかと・・・多分。イメージ呼び出しなんかも頑張れば可能だと思います。
とまあそんな訳です。新たにプロジェクトとして立ち上げてみようかとも思うのですが、どうでしょうか?。
宜しければアドバイス、アイデア等お聞かせください。
あと表示うまくいくかな?
828NOBA:2005/03/24(木) 07:32:33 ID:ktIpXEvg
プロジェクトはもう終わっちゃったのか?まぁドンマイか…

そういえばこないだあげた砲撃訓練改良してEZアプリ化したらアプゲとEZLIBでダウンロード一位とったてよ
829非通知さん@アプリ起動中:2005/03/24(木) 08:19:47 ID:ec+8cpNa
>>826のプログラム改良。

DAT="{W}{W}ぬ{W}る{W}ぽ{R}{W}{W}{VON}{VOF}ガッ!{KEY}"
i=0 tf=0 TAG="" origin(width/2-60,height/2-60) gosub "P"
label MAIN
if i=strlen(DAT) then exit endif
A=strat(DAT,i) i=i+1
if A="}" then tf=0 gosub TAG TAG=""
elseif tf=1 then TAG=TAG+A
elseif A="{" then tf=1
else gosub"H" endif
goto "MAIN"
label H if x=10 then gosub "R" endif text(A,1+12*x,15+15*y) x=x+1 return

label R x=0 y=y+1 if y=8 then gosub "P" endif return
label P color(200,200,200) frect(0,0,120,120) color(0,0,0) x=0 y=0 return
label W sleep(500) return
label KEY input() return
label VON onvib() return
label VOF offvib() return

大幅にコード数削減、同時に中途半端な使えないエラー表示機能削除、その他の機能は>>826と同じ、解説は>>827
830非通知さん@アプリ起動中:2005/03/24(木) 11:30:24 ID:XdGkpm5u
>>828
プロジェクトはただ今休止中ですが…
皆さんでゲーム作成補助システムを作っているので、
恐らく近いうちに再開となるでしょう
831非通知さん@アプリ起動中:2005/03/24(木) 11:56:55 ID:vG2pZdPr
>>829をさらに改良(文字数増えてしまうが)すると

qj=width/120 を先頭に追加

origin(width/2-60,height/2-60) を消して
if width>239 then setfont("M") を記入

label P の frect(0,0,120,120) を
frect(0,0,width,height) に書き替え


これでQVGAと非QVGAの差がなくなるはず

↓できるかな、これ…
label SCRL for i=16 to 240 step qj
text(A,1+12*x,i+15*y)next gosub "P"
832831:2005/03/24(木) 15:30:16 ID:vG2pZdPr
ごめん、全部忘れてくれorz
8330.02:2005/03/24(木) 16:28:27 ID:tlPqyHhh
イメージって何が原因でロード失敗するのかわからん…

9,
255,255,255,255,0,100,245,220,0,215,190,0,180,80,0,130,50,0,255,205,180,130,150,255,0,0,0,
8,
18,18,
8,8,8,8,1,1,1,1,8,8,8,8,1,1,1,1,1,8,
8,8,8,8,1,1,3,3,2,3,2,2,2,2,1,1,1,8,
8,8,8,8,3,3,2,2,2,2,2,3,2,2,2,3,1,1,
8,8,8,3,3,2,3,2,2,2,3,2,3,3,2,2,3,1,
8,8,3,3,2,2,2,2,2,2,2,3,3,2,3,3,2,1,
8,8,2,2,3,2,2,2,2,2,2,3,2,2,3,2,3,2,
8,3,2,3,2,3,2,2,2,3,3,2,3,2,2,3,2,3,
8,3,2,2,5,3,6,6,3,6,5,5,5,2,3,2,3,2,
3,2,3,5,0,4,6,6,6,5,4,4,0,5,2,3,2,3,
3,2,3,5,0,4,6,6,6,6,4,4,0,5,2,3,2,3,
8,2,3,6,6,6,6,6,6,6,6,6,6,6,3,2,2,3,
8,3,3,6,6,6,6,6,6,6,6,6,6,6,6,3,3,8,
8,3,6,6,6,6,1,1,1,1,1,6,6,6,6,2,3,8,
8,8,8,6,6,6,6,1,1,1,6,6,6,6,6,3,3,8,
8,8,8,8,6,6,6,1,1,6,6,6,6,6,6,8,8,8,
8,8,8,8,8,6,6,6,6,6,6,6,6,8,8,8,8,8,
8,8,8,8,8,7,7,6,6,6,7,7,7,8,8,8,8,8,
8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,


>>825
>>824は読み出しの事を言いたいんだと思われ
834非通知さん@アプリ起動中:2005/03/24(木) 19:02:30 ID:Y7q74OrR
一番最後にもカンマがあるからとか?


俺は外部ソースの書き込み読み込みが出来たら嬉しいかな。そしたらソース配布も楽になるし、結果をファイルとして残せるし。

以下妄想
write(a1
a2)で変数a1の内容をa2という名前のテキストファイルで保存可能に!
835非通知さん@アプリ起動中:2005/03/24(木) 19:25:19 ID:IEBXY+JV
プログラムのやりとりをもっと楽にできないもんかな
にちゃんに投稿→コピー→携帯ベーシック起動→ペースト→長いプログラムはまたにちゃん開いてコピって起動して、の繰り返しでしょ。
なんかよい方法ないかな。
836非通知さん@アプリ起動中:2005/03/24(木) 20:59:36 ID:ktIpXEvg
AppliMakersみたいにしてほしいな。
ここからさらに妄想すると絵はstreamでサーバーに送受信できれば容量小さくて済みそうや…
837非通知さん@アプリ起動中:2005/03/24(木) 22:06:02 ID:QOGC8C/G
テキストを偽装した画像を読み込めば,勝手にプロジェクトが出来るとか.
キャリアによって大分違いそうだからきついかな?
8380.02:2005/03/24(木) 22:09:17 ID:9w3Qxgf2
最後のカンマ抜いたけど駄目ぽ…
いろいろ試してheight値を5、画像構成値を6行目以降消去してみたら表示できた。
heightを6、画像構成値6行目を入れるとロード失敗する…
なんか容量の問題があるっぽい?
ちなみに複数ソースで書いてみても駄目だった。
改善方法をぜひべーしっ君さんに教えて頂きたいな〜。

ちなみに今欲しいアプリと携帯BASIC機能
・アプリから画像を作って携帯に保存するアプリ
・携帯に保存されている画像を携帯BASICに登録可能
・テキスト変換エディタ(9#255#255#255→9,255,255,255みたいな)

特に2番目があればすっごく使いやすいんだよな〜
テキスト変換エディタは画像ソース打ち込み時にカンマ打つのが
非常に辛いのでぜひ実装して欲しい…
839非通知さん@アプリ起動中:2005/03/24(木) 23:02:48 ID:l7zrJHV+
すごい初歩的な質問ですみません。
ezBASICで、変数xとyが等しいこと(x==yのようなもの)は、
どう表現すれば良いのでしょうか?
どなたか教えてください。
840非通知さん@アプリ起動中:2005/03/25(金) 00:00:06 ID:IYBZWZA6
>>838
saveで保存できる変数の数値は511桁くらいだったけど、(自分の携帯では)
画像データの量もコレくらいしか入らないとかかねぇ…
841非通知さん@アプリ起動中:2005/03/25(金) 02:47:47 ID:QGTdER95
>>826-827,829
色々考えて見たんだがタグ機能でAVGシステム作るってのも難しい気がしてきた…
ウェブゲーとかも実際には殆どをCGIに頼ってる訳だし
何より記述効率が悪そうな予感・・・
もっと勉強して出直してきますorz
842非通知さん@アプリ起動中:2005/03/25(金) 08:28:27 ID:VTpd9jMW
>>842
漏れはソース読みやすくていいプログラムだと思ったけど。
前、俺もAVGっぽい事考えてここに出したが、俺のも非効率的だったからなぁ。
タグだと選択肢を表示して分岐するシステムが作りにくい。
けどDNMLもあるから可能なんだろうな。ぜひ頑張ってほしい
843非通知さん@アプリ起動中:2005/03/25(金) 08:52:33 ID:VTpd9jMW
>>842×
>>841

練炭ってどこで売ってたっけ…
8440.02:2005/03/25(金) 09:08:03 ID:IT2Y0WNC
>>839
ezでも使えるのかは知らないけど
if x=y then 処理 endif
でいいんじゃない?
thenの後ろにx=yってしちゃうとxにyが代入されちゃうけど


>>841
すご(・∀・)イイ!と思ったけどなぁ。
見た所タグ拡張もしやすそうだし。
みんなで>>831みたいにタグ拡張していこうYO!


>>840
(´・ω・`)ショボーン
複数に分けて表示すればOKかな…
何にしてもイメージの容量が増える事を祈るのみ
10色,最大32x32くらい出来るといいなぁ
情報ありがとん



ところで本物の初心者にも解るヘルプページみたいな物も
必要じゃないかと思えてきた今日この頃

■if X>0 then Y=Y+1 endif
if:もしも X>0:Xが0より大きい場合は then:以下の処理をします
Y=Y+1:Yには現在のY値に1を足した数を代入します endif:if文おわり
845非通知さん@アプリ起動中:2005/03/25(金) 09:42:27 ID:Z9/eZa1s
探すの面倒だったからメモ用に貼り付けるね

保管庫@BASIC
http://tool-2.net/?id=BASIC
846非通知さん@アプリ起動中:2005/03/25(金) 14:52:47 ID:zGB95KuT
そういや,昔やってたHSPについてたチュートリアルが,凄く初心者向けで良かったと思う.
文法的にもなかなか似てるし,参考になるんじゃないかな.

ttp://www.onionsoft.net/hsp/
(PCのみ)
847非通知さん@アプリ起動中:2005/03/25(金) 19:31:45 ID:9Wxtka5v
>>825のシステムはイメージデータを数値化するうえで、
必須になってくると思うので、早く付けてほしい
848非通知さん@アプリ起動中:2005/03/25(金) 20:04:59 ID:QGTdER95
タグ機能付きテキスト表示システムについて感想くれた方々有り難うございます。
まず色々考えてくと、目指している物はタグというのとも少し違う気がしてきたので、取り敢えずファンクションと呼ぼうかと。
当面はファンクション呼び出し時にパラメーターを受け渡しできるようする予定。
変数型の自動切り替わりが把握できずに苦労してましたorz
小改良として>>651-654氏にならって@で改行するようにしてみたり、
あとgosubで跳んだ場合跳び先ではgoto使えない?みたいですね、
これでは何かと不便なのでファンクション呼び出しには基本的にgotoで跳ぶようにしようと画策中。
ビジョンとしては、
{SB 西へ行く,森西,東へ行く,湖}
のようなファンクション指定でセレクトボタンを表示
[湖]等をDATの中にラベルとして入れておいて
stridx(DAT,[湖])で検索&ジャンプ。
というふうにできそうな・・・
地道に少しずつ頑張ります


>>838
もしかしてこれ役に立つかも
文字置換ツール
http://xweb.under.jp/i/x2/replace.php
849839:2005/03/25(金) 22:05:27 ID:vSShdHB5
>>844
ありがとうございます。
そんな簡単なことだったんですね。
850非通知さん@アプリ起動中:2005/03/26(土) 01:28:21 ID:QaUkemS8
if input(0) and keysoft1 then exit endif
これをタグ化するにはどうやったらいいのでしょうか?
851826:2005/03/26(土) 04:04:03 ID:e5P59qFE
>>850
while、wendで囲めば良いのでは・・・と思ったけど、
これすると携帯BASICのシステムが不安定になるようなのでやらないほうが良いかも
なので、かなりイレギュラーな方法だけど
label KEY2
for g=0 to 0
if input(0) and keysoft1 then exit endif
g=g-1
next
'return

これでどう?
あとはDAT読み込み時の位置指定に使っている、
変数iを操作して同じタグを何度も読ませる事も出来ますが・・・
やっぱりgoto使えないのは不便かな
今後の改良にご期待ください
8520.02:2005/03/26(土) 09:22:22 ID:iFWGuRIH
>>845-848
ありがとー
このテキストエディタいいねー

>>タグテキストの人
かなり期待age
タグから変数操作もできるなら色変更タグも使えるのかな
文字全体が染まっちゃいそうだけど…

ところでゲームできたんでやってみてください
ttp://www.geocities.jp/nagata_2yen/wall_adventure.txt
長くなってしまったので俺んちにうp
携帯だと読み込めないカモ
853非通知さん@アプリ起動中:2005/03/26(土) 14:46:46 ID:u4dEtiRw
囚人のジレンマをルール改変してみんなで勝負しない
オリジナルルールは、互いに協調か裏切り(0か1)をだす
協調同士  0/0
協調/裏切り 5/0
裏切り同士 1/1

1000回やって点数が低い方が勝ち、ってやつ。それぞれの戦略(性格)がでておもしろそう
854非通知さん@アプリ起動中:2005/03/26(土) 15:33:55 ID:u4dEtiRw
soft2("終わり")
P1=0 P2=0
S=50'スピード
for i=1 to 200
#ランダム君#
#仕返し君#
clear(0,0,120,100)
if a=1 and b=0 then P1=P1+5 text("裏切/協調",30,40)'P1;裏切/P2;協調
elseif a=0 and b=1 then P2=P2+5 text("協調/裏切",30,40)'P1;協調/P2;裏切
elseif a=0 and b=0 then P1=P1+1 P2=P2+1 text("協調/協調",30,40)'P1/P2;協調
else text("裏切/裏切",30,40) endif'P1/P2;協調
lock()
text("回数"+i,40,20)
text("P1="+P1,25,60)
text("P2="+P2,65,60)
unlock(1)
if input(S)and keysoft2 then exit endif
a5=a4 a4=a3 a3=a2 a2=a1 a1=a
b5=b4 b4=b3 b3=b2 b2=b1 b1=b
next
input()
ルール間違えた。
裏切り/裏切り 0/0
裏切り/協調 5/0
協調/協調 1/1
855非通知さん@アプリ起動中:2005/03/26(土) 15:35:54 ID:u4dEtiRw
ランダム君
a=abs(rand)%2'ランダムな取引

仕返し君
b=0
if a1=1 then FLG=1 endif
if FLG=1 then b=1 endif'相手が一度でも裏切るとずーっと裏切り続ける
このふたつは極端な例だけどこんな感じでどう?
856非通知さん@アプリ起動中:2005/03/26(土) 16:23:45 ID:/GwPiieG
>>855
おもしろそうですね.
ちょっと考えてみます.
857非通知さん@アプリ起動中:2005/03/26(土) 16:27:17 ID:u4dEtiRw
ごめんまたルール間違えた
協調/協調 3/3
裏切/裏切 0/0

S=50'スピード soft2("終わり") P1=0 P2=0
for i=1 to 200
#仕返し君#
#お返し君#
clear(0,0,120,100)
if a=1 and b=0 then P1=P1+5 text("裏切/協調",30,40)'P1;裏切/P2;協調
elseif a=0 and b=1 then P2=P2+5 text("協調/裏切",30,40)'P1;協調/P2;裏切
elseif a=1 and b=1 then P1=P1+1 P2=P2+1 text("裏切/裏切",30,40)'P1/P2;裏切
else text("協調/協調",30,40) P1=P1+3 P2=P2+3 endif'P1/P2;協調
lock()
text("回数"+i,40,20)
text("P1="+P1,25,60)
text("P2="+P2,65,60)
unlock(1)
if input(S)and keysoft2 then exit endif
a5=a4 a4=a3 a3=a2 a2=a1 a1=a
b5=b4 b4=b3 b3=b2 b2=b1 b1=b
if a=1 then CNT1=CNT1+1 endif
if b=1 then CNT2=CNT2+1 endif
next
input()
clear(0,0,120,100)
text("裏切"+CNT1+"  裏切"+CNT2,20,20)
text("協調"+(200-CNT1)+"  協調"+(200-CNT2),20,50)
input()
858非通知さん@アプリ起動中:2005/03/26(土) 16:28:35 ID:u4dEtiRw
最終的には複数でマネートレードもどきやってみたいな。売り買いでいかに資産を増やすか、っていうルールをつくって
859非通知さん@アプリ起動中:2005/03/26(土) 16:47:10 ID:loijHS7I
>>853
囚人のジレンマの元ネタ知らない人も多いかも

共犯二人を別々に取り調べて
両方自白で5年の刑期、両方黙秘で1年の刑期、
片方自白で無罪、黙秘側は懲役10年とか
そんな条件を前に悩む囚人のジレンマ
なんかそういう本だったよね

ランダム君 と 裏切り君 を書き替える事で
それぞれ個人のAIが使えるってワケかぁ…おもしろそう

「温厚君(PLAYER"b"側)」
b=0GEKIDO=0
if a1=1 and KANNIN<4 then KANNIN=KANNIN+1 else then KANNIN=KANNIN-1 endif
if KANNIN>4 then GEKIDO=20 endif
if GEKIDO>0 then b=1GEKIDO=GEKIDO-1 elseif GEKIDO=0 then b=0KANNIN=0 endif
解説:普段は協調するが5回連続で裏切られると20回連続で裏切り返す

残念なのは結果によって得られる獲得点数の差が大きくて
協調するメリットがあんまりない事かな
そういう意味じゃなかったらスマソ
860非通知さん@アプリ起動中:2005/03/26(土) 16:51:13 ID:/GwPiieG
861非通知さん@アプリ起動中:2005/03/26(土) 16:53:57 ID:u4dEtiRw
>859
協調の点数を上げるべきかな。
でも4/4だとグダグダになるし、裏切り協調を3/-1?
温厚君さっそく試してみるよ。まぁこれって勝ち負けよりどんな戦い方すんのかなっていうのを楽しむようなゲームだと思うし
ところで株わかる人いないかなぁ。
862非通知さん@アプリ起動中:2005/03/26(土) 17:00:42 ID:loijHS7I
リロード忘れた…スマソ
しかもKANNIN値の初期設定忘れてるし
for回る度にGEKIDO値いちいち0になるし
意味ないな、これ…orz

なのでforの前にそれぞれ自由に使える変数を
a側とb側で4〜5個ほど入れておいて欲しいな

あとtextで決めセリフを入れられるのもいいな
a側は高さ100、b側は高さ120のところに、とか
863非通知さん@アプリ起動中:2005/03/26(土) 17:04:00 ID:/GwPiieG
まだちゃんと理解してないから,見当はずれだったら申し訳ないけど,
a5=a4 a4=a3 a3=a2 a2=a1 a1=a
b5=b4 b4=b3 b3=b2 b2=b1 b1=b
のところは配列にしたらすっきりしない?
864非通知さん@アプリ起動中:2005/03/26(土) 17:18:59 ID:u4dEtiRw
>862
セリフは面白いね。さりげない個性がでて
>863
即興でつくった適当なソースだから、もしかしたら配列いけんのかな

今なんとなく考えてるマネートレード
例えば各々会社は資本金1000と株1000をもって取引する。銀行から借りつけることも可(有利子)
株価は自分で値段を決められる、ほうがよいのか売れる分だけ高くなるほうがよいのか
過半数(50%)を所有するとその会社を買い取ったかたちになって買い取られた会社は死亡
これを繰り返し資本金をためる


株がよくわかんねからルールとしてどうなのか、やっぱわかる人いないかなぁ
865非通知さん@アプリ起動中:2005/03/26(土) 19:50:50 ID:/GwPiieG
あとはA側とB側でどちらでも同じソースを使えるようにしたいね.

>>860とか,ttp://ccs.cla.kobe-u.ac.jp/Jouhou/95/Takahasi/prisoner.html
を見て思ったんですけど,
協調=黙秘
裏切=自白
点数が低い方が勝ちだとすると,
片方が裏切った場合(自白),裏切った方(自白)が点が少なくなるはずだから,
ちょっと違う気がします.

866非通知さん@アプリ起動中:2005/03/26(土) 21:48:09 ID:d2BhpgI/
特に変数の初期代入を宣言してなくても使えるのかorz

温厚君改変
if GE=0 and a=1 and KA<5 then b=0KA=KA+1 else then KA=0 endif
if KA=5 then GE=20KA=0 endif
if GE>0 then b=1GE=GE-1 endif

解説:相手に5連続裏切られると20回連続裏切り

これで動くかな
867連投スマソ:2005/03/26(土) 22:17:39 ID:d2BhpgI/
「カズ・ホソーキ(B)」
URA=abs(rand)%2NAI=abs(rand)%2
if UWY=1 then text("ズバリ言うわよ!",10,120)b=0UWY=0 endif
if a=1 then ZBR=ZBR+1 endif
if UWY=0 and URA=0 then b=0 elseif URA=1 then b=1 endif
if a=1 and NAI=1 and ZBR>7 then UWY=1 endif

8回裏切られると、次に裏切られた時の次のターンで1/2の確率でセリフ発動
セリフ発動すると目からうろこないい意味での裏切り


「盛進一(A)」
text("こんばんは盛進一です",10,100)
if ENKA=0 then a=0ENKA=1 elseif ENKA=1 then a=1ENKA=0 endif

お約束の挨拶を毎ターン出し、独特の声のビブラートのように
裏切りと協調を繰り返すだけの歌手


「山上姉妹(A)」
text("てじなーにゃ",10,100)sleep(100)MAGIC=abs(rand)%10
if MAGIC=0 then text("はい!",94,100)a=1 else a=0text("あれ?",94,100) endif

てじなーにゃ成功確率は10%。びっくりさせて相手をいい意味で裏切る手品姉妹

やっべおもしれ
868非通知さん@アプリ起動中:2005/03/26(土) 22:48:23 ID:u4dEtiRw
>865
soft2("終わり")
P1=0 P2=0
for i=1 to 200
#ランダム君#
#温厚君#
clear(0,0,120,100)
if a=1 and b=0 then P1=P1+5 text("裏切/協調",30,40)
elseif a=0 and b=1 then P2=P2+5 text("協調/裏切",30,40)
elseif a=1 and b=1 then P1=P1+3 P2=P2+3 text("裏切/裏切",30,40)
else text("協調/協調",30,40) P1=P1+4 P2=P2+4 endif
lock()
text("回数"+i,40,20)
text("P1="+P1,25,60)
text("P2="+P2,65,60)
unlock(1)
if input(S)and keysoft2 then exit endif
a5=a4 a4=a3 a3=a2 a2=a1 a1=a
b5=b4 b4=b3 b3=b2 b2=b1 b1=b
if a=1 then CNT1=CNT1+1 endif
if b=1 then CNT2=CNT2+1 endif
next
input()
clear(0,0,120,100)
text("裏切"+CNT1+"  裏切"+CNT2,20,20)
text("協調"+(200-CNT1)+"  協調"+(200-CNT2),20,50)
input()

減点法と加点法間違えたかな。これでよい?

>866
ズバリいうわよワラタww
869非通知さん@アプリ起動中:2005/03/27(日) 03:36:47 ID:xNxWLNkF
x=150 K=100 M1=10000 M2=10000 M3=10000 PNT1=30 PNT2=30 PNT3=30 rect(5,5,110,110) soft2("終了")
for CNT=1 to 200
#A# #B# #C# clear(6,6,108,108)lock()text(K+"  "+CNT,15,25)text(M1+"/"+PNT1,10,50)text(M2+"/"+PNT2,10,75)text(M3+"/"+PNT3,10,100)unlock(1)#判定# #判定2#
X=x x=150-(K-100)color(0,250,0)line(0,150,200,150)color(250,0,0)line(CNT-1,X,CNT,x)'グラフはQVGA
next input()

株価  回数
資金/株券
資金/株券
資金/株券

買い/買い/買い/株価が5あがる
買い/買い/売り/株価が2あがる
買い/売り/売り/2さがる
売り/売り/売り/5さがる
売値と買値は一緒で、買う前に取引内容によって株価が変動
870非通知さん@アプリ起動中:2005/03/27(日) 03:37:47 ID:xNxWLNkF
判定
if A=0 and B=0 and C=0 then K=K+5 M1=M1-K M2=M2-K M3=M3-K PNT1=PNT1+1 PNT2=PNT2+1 PNT3=PNT3+1 TXT[0]="買い"TXT[1]="買い"TXT[2]="買い"
elseif A=1 and B=0 and C=0 then K=K+1 M1=M1+K M2=M2-K M3=M3-K PNT1=PNT1-1 PNT2=PNT2+1 PNT3=PNT3+1 TXT[0]="売り"TXT[1]="買い"TXT[2]="買い"
elseif A=1 and B=1 and C=0 then K=K-2 M1=M1+K M2=M2+K M3=M3-K PNT1=PNT1-1 PNT2=PNT2-1 PNT3=PNT3+1 TXT[0]="売り"TXT[1]="売り"TXT[2]="買い"
elseif A=1 and B=0 and C=1 then K=K-2 M1=M1+K M2=M2-K M3=M3+K PNT1=PNT1-1 PNT2=PNT2+1 PNT3=PNT3-1 TXT[0]="売り"TXT[1]="買い"TXT[2]="売り"
871非通知さん@アプリ起動中:2005/03/27(日) 03:38:46 ID:xNxWLNkF
判定2
elseif A=1 and B=1 and C=1 then K=K-5 M1=M1+K M2=M2+K M3=M3+K PNT1=PNT1-1 PNT2=PNT2-1 PNT3=PNT3-1 TXT[0]="売り"TXT[1]="売り"TXT[2]="売り"
elseif A=0 and B=1 and C=0 then K=K+2 M1=M1-K M2=M2+K M3=M3-K PNT1=PNT1+1 PNT2=PNT2-1 PNT3=PNT3+1 TXT[0]="買い"TXT[1]="売り"TXT[2]="買い"
elseif A=0 and B=1 and C=1 then K=K-2 M1=M1-K M2=M2+K M3=M3+K PNT1=PNT1+1 PNT2=PNT2-1 PNT3=PNT3-1 TXT[0]="買い"TXT[1]="売り"TXT[2]="売り"
elseif A=0 and B=0 and C=1 then K=K+2 M1=M1-K M2=M2-K M3=M3+K PNT1=PNT1+1 PNT2=PNT2+1 PNT3=PNT3-1 TXT[0]="買い"TXT[1]="買い"TXT[2]="売り"endif
for i=0 to 2
text(TXT[i],90,50+i*25)next
if input(100)and keysoft2 then exit endif
if PNT1=0 or PNT2=0 or PNT3=0 or M1<0 or M2<0 or M3<0 or K<30 then input()exit endif

A
A=abs(rand)%2
B、Cもテキトーに
872連ごめんね:2005/03/27(日) 03:46:14 ID:xNxWLNkF
とりあえずかたちにだけしようとガリガリ書いたからAIは全然手つけてないし株よくわかんないからシステムも大雑把(-_-)
873826:2005/03/27(日) 08:40:46 ID:ODrzf+2A
先生!!タグ機能付きテキスト表示システムの改良版が出来ましたよ
コードが長くなってしまったので分割。

ファイルは

「FTSYS_ver1.0」
メインシステム

「F_PACK_ver1.0」
ファンクションパック

「サンプル」
サンプルデータ(これを実行

以上です
874826:2005/03/27(日) 08:42:28 ID:ODrzf+2A
「FTSYS_ver1.0」

rp=0 soft2("糸冬") mcr=0 mcg=128 mcb=0 bcr=200 bcg=200 bcb=200 origin(width/2-60,height/2-60) gosub "PAGE"

label TXTR
m=strat(dat,rp) rp=rp+1
if m="{" then goto "TAGR" elseif m="[" then goto "TRU" elseif m="@" then gosub "KAI" else gosub "HYOJI" endif
goto "TXTR"

label TRU m=strat(dat,rp) rp=rp+1 if m="]" then goto "TXTR" endif goto "TRU"

label TAGR
l=0 fg=0 n=0
label TAGR1
m=strat(dat,rp) rp=rp+1
if fg=1 and (m="}" or m=",") then p[n]=substr(dat,rp-l-1,l) if m="}" then n=n+1 goto fnc endif n=n+1 l=0
elseif m="}" or m="," then fnc=substr(dat,rp-l-1,l) if m="}" then goto fnc endif fg=1 l=0
else l=l+1
endif
goto "TAGR1"

label FEND goto "TXTR"

label HYOJI
if x=10 then gosub "KAI" endif text(m,1+12*x,15+15*y) x=x+1 return

label KAI
y=y+1 x=0 if y=8 then gosub "PAGE" endif return

label PAGE
color(bcr,bcg,bcb) frect(0,0,120,120) color(mcr,mcg,mcb) x=0 y=0 return
875826:2005/03/27(日) 08:44:03 ID:ODrzf+2A
「F_PACK_ver1.0」

label SB
if n=1 then n=2 fg=1 else fg=0 endif
clearinput() sby=0 all=n/2

label SB1
lock() color(bcr,bcg,bcb) frect(0,119-all*14,120,all*14)
color(0,150,230) frect(1,119-(all-sby)*14,118,14)
color(0,0,0) for i=0 to n-2 step 2 text(p[i],1,135-(all-i/2)*14) next unlock(0)

label SB2
k=input(0)
if k=keyup and sby>0 then sby=sby-1 elseif k=keydown and sby<all-1 then sby=sby+1 elseif k=keyselect then goto "SB3" elseif k=keysoft2 then exit else goto "SB2" endif
goto "SB1"

label SB3
color(bcr,bcg,bcb) frect(0,119-all*14,120,all*14) color(mcr,mcg,mcb)
if fg=0 then rp=stridx(dat,"["+p[(sby+1)*2-1]+"]") endif
goto "FEND"

label R gosub "KAI" goto "FEND"
label P gosub "PAGE" goto "FEND"
label W sleep(500) goto "FEND"
label KEY input() goto "FEND"
label VON onvib() goto "FEND"
label VOF offvib() goto "FEND"
label EXIT exit
876826:2005/03/27(日) 08:49:36 ID:ODrzf+2A
「サンプル」

dat="[始]{P}改良しました!!@名称は「ファンクショナル・テキスト・システム」略して「FTSYS」です。{SB,次へ}{P}データ内に埋め込むコードは従来通り「タグ」、タグによって呼び出されるプ"+
"ログラムは「ファンクション」とします。{SB,次へ}{P}システム面ではタグにパラメーターを付加できるようになりまつた。{SB,次へ}{P}まずはセレクトボタン?のファンクションを作ってみました。@"+
"どうでしょうか?{SB,スゲーじゃん,喜,それがどうした,怒}[喜]{P}おぉ!!@ありがとうございます!!{SB,次へ,1}[怒]{P}ぬゎあぁにぃぃぃぃぃ!!@{W}貴様のようなやつにはこうだっ!{W}{VON}{W}{S"+
"B,うわっやめろ〜!}@{W}{P}{VOF}ふむ、以後気をつけたまえW{SB,次へ}[1]{P}まあ、そんなわけで、なんとかここまで作る事ができました。@@orz疲れた・・・{SB,おしまい,糸冬,最初から読む,始}[糸冬]{EXIT}"

#FTSYS_ver1.0#
#F_PACK_ver1.0#
877826:2005/03/27(日) 08:57:09 ID:ODrzf+2A
以上です。
では解説・・・といきたいところですが、
なれない長いプログロム+サンプルデータまで作ったら気力が残ってないorz
なのでまとまった解説はまた今度。
不明な点などありましたら個別に質問してください。
協力してくれる方も募集中です
878非通知さん@アプリ起動中:2005/03/27(日) 12:36:05 ID:ZA02XzHp
879非通知さん@アプリ起動中:2005/03/27(日) 13:56:24 ID:ez+xROZn
826氏
すごいできじゃないですか!がんばって
880非通知さん@アプリ起動中:2005/03/27(日) 16:43:04 ID:xNxWLNkF
>878
株ってむずかしいのねん
8810.02:2005/03/27(日) 17:38:42 ID:Ux/RSUxg
FTSYSすげー…乙でっす
ところでdat部分みて思ったけど
長すぎるテキストは"文章"+"文章"+"文章"みたいにしていくのね
タグが分断されても機能するなんて素晴らしすぎる
ファンクションパック追加期待age!

>>868のジレンママジ面白い…
>866,867の他にも10個くらいアルゴリズム作って楽しませてもらいました(・∀・)
あまりに面白くて刺激されたんでちょっと何か作ってみます

株は…難しいやorz


ところで非QVGAの方に質問
text(width+"x"+height,2,20)
input()
で横幅と縦幅出ると思うんですがどのくらいの数値出ます?
両ディスプレイ対応ゲーム作りたいんでぜひ教えてください
882NOBA:2005/03/27(日) 19:12:24 ID:j+Mn5cC+
132*144ですよ
883非通知さん@アプリ起動中:2005/03/27(日) 20:51:12 ID:xNxWLNkF
株って用は需要が多いと株価は高く供給が多いと下がる、と考えていいんだよねたぶん
誰か株AIで勝負しない?プログラム少しかえるけど
思ったより囚人のジレンマ好感触でよかった(;´∀`)プログラム汚くてごめんなさい
8840.02:2005/03/27(日) 22:59:16 ID:Yg4zeJeg
>>NOBA氏
132x144か、ありがとう!
あんまり横幅120にこだわる必要はないのかな(;・∀・)

しかし>>853のAI対戦というファクターの持ち込みによって
このスレ全体の士気が高まったような気がする。
俺も刺激されてバトルエンピツ制作中(;´Д`)
>853 GJ!!
885非通知さん@アプリ起動中:2005/03/28(月) 00:18:09 ID:atqTvxww
>884
THX
実は前レスにあるプログラムを持ち合わせたシューティングを考えた中の人。もともと携帯ベーシックってプログラムを持ち合わせられるから、っていうのが頭にあったから。

x=150 K=100 M1=10000 M2=10000 M3=10000 PNT1=30 PNT2=30 PNT3=30 rect(5,5,110,110) soft2("終了")
for CNT=1 to 200
if M1<1 or M2<1 or M3<1 or PNT1<0 or PNT2<0 or PNT3<0 then input()exit endif
#A# #B# #C# clear(6,6,108,108) K=K-A-B-C
text(K+"  "+CNT,15,25)
M1=M1-(K*A)PNT1=PNT1+A M2=M2-(K*B)PNT2=PNT2+B M3=M3-(K*C)PNT3=PNT3+C lock()
if A=1 then Z1="買い"else Z1="売り"endif text(NAME1+";"+M1+"/"+PNT1+"/"+Z1,10,50)
if B=1 then Z2="買い"else Z2="売り"endif text(NAME2+";"+M2+"/"+PNT2+"/"+Z2,10,75)
if C=1 then Z3="買い"else Z3="売り"endif text(NAME3+";"+M3+"/"+PNT3+"/"+Z3,10,100)
unlock(1)
#QVGA#
if input(20)and keysoft2 then exit endif
next input()
886非通知さん@アプリ起動中:2005/03/28(月) 00:24:14 ID:atqTvxww
QVGA

X=x x=150-(K-100)L=L+1 color(0,250,0)line(0,150,200,150)color(250,0,0)line(CNT-1,X,CNT,x)
if A=1 then color(0,0,250)else color(250,0,0)endif frect(L,200,1,10)if B=1 then color(0,0,250)else color(250,0,0)endif frect(L,215,1,10)if C=1 then color(0,0,250)else color(250,0,0)endif frect(L,230,1,10)color(0,0,0)

短くできたから短くしてみた。返す値は1(PNTを増やす/買う)or-1(PNTを減らす/売る)

NAME1="A"
A=abs(rand)%2 if A=0 then A=-1 endif
NAME2="B"B=CNT%2
if B=0 then B=-1 endif
NAME3="C"C=abs(rand)%5 if C<3 then C=-1 endif
887非通知さん@アプリ起動中:2005/03/28(月) 00:52:51 ID:atqTvxww
>885
×/K=A-B-C
○/K=A+B+C
888何度も申し訳ない:2005/03/28(月) 02:20:00 ID:atqTvxww
j=3 x=150 K=100
for J=0 to j
M[J]=10000 PNT[J]=30 next
soft2("終了")
for CNT=1 to 200
for J=0 to j
if M[J]<1 or PNT[J] then input()exit endif next
#A# #B# #C# #D#
clear(6,6,108,108) text(K+"  "+CNT,15,20)
for J=0 to j
K=K+P[J]
next
for J=0 to j
M[J]=M[J]-(K*P[J])PNT[J]=PNT[J]+P[J]
next
lock()
for J=0 to j
if P[J]=1 then Z[J]="買い"else Z[J]="売り"endif
text(NAME[J]+";"+M[J]+"/"+PNT[J]+"/"+Z[J],10,40+20*J)
next
unlock(1)
#QVGA#
if input(20)and keysoft2 then exit endif
next input()

配列化してみたり
jの値を増やせばデータが増やせる。返す値はP[]
889何度も申し訳ない:2005/03/28(月) 02:20:52 ID:atqTvxww
X=x x=150-(K-100)L=L+1 color(0,250,0)line(0,150,200,150)color(250,0,0)line(CNT-1,X,CNT,x)color(0,0,0)
for J=0 to j
if P[J]=1 then color(0,0,250)else color(250,0,0)endif frect(L,200+J*15,1,10)
next
color(0,0,0)
890何度も申し訳ない:2005/03/28(月) 02:23:41 ID:atqTvxww
NAME[0]="A"
clearinput()
input()
if scan=keysoft2 then exit elseif scan=key1 then P[0]=1 elseif scan=key3 then P[0]=-1 endif

サンプルとして自分でkey1key3で売り買い。テスト用に

NAME[1]="B"
P[1]=abs(rand)%5 if P[1]<2 then P[1]=1 else P[1]=-1 endif

3/5で買い

NAME[2]="C"P[2]=abs(rand)%2 if P[2]=0 then P[2]=-1 endif

ランダム

NAME[3]="D"
P[3]=abs(rand)%10 if P[3]<7 then P[3]=-1 else P[3]=1 endif

20%で売り
891何度も申し訳ない:2005/03/28(月) 02:35:14 ID:atqTvxww
調子にのってルールも

価値は終値なので"その価値で買うわけではない"
価値=終値+買った総数-売った総数

棒グラフは青/買い,赤/売り

誰かが破産/終値が30を切る/誰かが持ち株が0を切る/になると取引中止
たぶんやってるうちにジレンマがでてくると思う。
データは沢山ほしいから挑戦者したい方はプリーズ
892修正。連マジごめんなさい:2005/03/28(月) 22:11:14 ID:atqTvxww
j=3 x=150 K=100
for J=0 to j
M[J]=10000 PNT[J]=30 next
soft2("終了")
for CNT=1 to 200
for J=0 to j
if M[J]<1 or PNT[J]<0 then input()exit endif next
#A# #B# #C# #D#
clear(6,6,108,108) text(K+"  "+CNT,15,20)
for J=0 to j K=K+P[J] next
for J=0 to j M[J]=M[J]-(K*P[J])PNT[J]=PNT[J]+P[J] next
lock()
for J=0 to j if P[J]=1 then Z[J]="買い"else Z[J]="売り"endif text(NAME[J]+";"+M[J]+"/"+PNT[J]+"/"+Z[J],10,40+20*J)next
unlock(1)
#QVGA#
for i=0 to 10 N[CNT-i]=K next
if input(0)and keysoft2 then exit endif next input()clear(6,6,108,108)
for J=0 to j text(NAME[J]+";"+(M[J]+K*PNT[J]),10,40+20*J)next
input()
893修正。連マジごめんなさい:2005/03/28(月) 22:14:49 ID:atqTvxww
QVGA
X=x x=150-(K-100)L=L+1 color(0,250,0)line(0,150,200,150)color(250,0,0)line(CNT-1,X,CNT,x)color(0,0,0)
for J=0 to j if P[J]=1 then color(0,0,250)else color(250,0,0)endif frect(L,200+J*15,1,10)next color(0,0,0)

配列化と前のルールの変更で取引が終了したらPNTを全部売却して総合的な資産がでる
894修正。連マジごめんなさい:2005/03/28(月) 22:15:38 ID:atqTvxww
NAME[0]="A" A1=0 A2=0 if M[0]<K*2 then A1=A1-10 endif if PNT[0]<3 then A1=A1+10 endif for i=0 to 10 A2=A2+N[i] next
if A2<(K*11) then A1=A1-3 else A1=A1+3 endif if A1<0 then P[0]=-1 else P[0]=1 endif
今のとこ最強

NAME[1]="B"P[1]=abs(rand)%5 if P[1]<2 then P[1]=1 else P[1]=-1 endif if PNT[1]<1 then P[1]=1 endif

NAME[2]="C"P[2]=CNT%2 if P[2]=0 then P[2]=-1 endif

NAME[3]="D"P[3]=abs(rand)%2 if P[3]=0 then P[3]=-1 endif
895826:2005/03/28(月) 23:45:24 ID:dBu+yoxG
FTSYS小改良しました!!
変更点は、
1.文字表示システムが半角に対応、
2.変数操作系ファンクション追加、
です。

まだフラグ分岐と確率分岐はありませんが・・・取り敢えずupします

ファイルは、
「FTSYS_ver1.2」
「F_PACK_ver1.2」
「F_PACK_ver1.2_f2」
「サンプルデータ2」(これを実行
です
896826:2005/03/28(月) 23:47:55 ID:dBu+yoxG
「FTSYS_ver1.2」

soft2("糸冬") mcr=0 mcg=128 mcb=0 bcr=200 bcg=200 bcb=200 origin(width/2-60,height/2-60) gosub "PAGE"
rp=0 hnmbr=0

label TXTR
fg=0
label TXTR1
m=strat(dat,rp) rp=rp+1
if fg="1" then if m="]" then goto "TXTR" endif elseif m="{" then goto "TAGR" elseif m="[" then fg=1 elseif m="@" then gosub "KAI" else gosub "HYOJI" endif
goto "TXTR1"

label TAGR
l=0 fg=0 n=0
label TAGR1
m=strat(dat,rp) rp=rp+1
if fg=1 and (m="}" or m=",") then p[n]=substr(dat,rp-l-1,l) if m="}" then n=n+1 goto fnc endif n=n+1 l=0
elseif m="}" or m="," then fnc=substr(dat,rp-l-1,l) if m="}" then goto fnc endif fg=1 l=0
else l=l+1
endif
goto "TAGR1"

label FEND goto "TXTR"

label HYOJI
mw=strwidth(m)/6 if x+mw > 20 then gosub "KAI" endif text(m,1+6*x,15+13*y) x=x+mw return

label KAI
y=y+1 x=0 if y=9 then gosub "PAGE" endif return

label PAGE
color(bcr,bcg,bcb) frect(0,0,120,120) color(mcr,mcg,mcb) x=0 y=0 return
897826:2005/03/28(月) 23:53:12 ID:dBu+yoxG
「F_PACK_ver1.2」

label SB
if n=1 then n=2 fg=1 else fg=0 endif
sby=0 all=n/2 clearinput()
label SB1
lock() color(bcr,bcg,bcb) frect(0,119-all*13,120,all*13) color(0,150,230) frect(1,119-(all-sby)*13,118,13)
color(0,0,0) for i=0 to n-2 step 2 text(p[i],1,134-(all-i/2)*13) next
unlock(0)
label SB2
k=input(0)
if k=keyup and sby>0 then sby=sby-1
elseif k=keydown and sby<all-1 then sby=sby+1
elseif k=keyselect then goto "SB3"
elseif k=keysoft2 then exit
else goto "SB2" endif
goto "SB1"
label SB3
color(bcr,bcg,bcb) frect(0,119-all*13,120,all*13) color(mcr,mcg,mcb)
if fg=0 then rp=stridx(dat,"["+p[(sby+1)*2-1]+"]") endif
goto "FEND"

label R gosub "KAI" goto "FEND"
label P gosub "PAGE" goto "FEND"
label W sleep(500) goto "FEND"
label KEY input() goto "FEND"
label VON onvib() goto "FEND"
label VOF offvib() goto "FEND"
label EXIT exit

#F_PACK_ver1.2_f2#
898826:2005/03/28(月) 23:58:06 ID:dBu+yoxG
「F_PACK_ver1.2_f2」

label HS i=0
label HS1
if i=hnmbr then goto "HS2"
elseif hidx[i]=p[0] then hensu[i]=p[1] goto "FEND" endif
i=i+1 goto "HS1"
label HS2
hidx[hnmbr]=p[0] hensu[hnmbr]=p[1] hnmbr=hnmbr+1
goto "FEND"

label HH i=0
label HH1
if i=hnmbr then goto "FEND"
elseif hidx[i]=p[0] then goto "HH2"
endif
i=i+1 goto "HH1"
label HH2
for j=0 to strlen(hensu[i])-1
m=strat(hensu[i],j) gosub "HYOJI"
next
goto "FEND"

label HM p[1]="-"+p[1]
label HP i=0
label HP1
if i=hnmbr then goto "FEND"
elseif hidx[i]=p[0] then hensu[i]=hensu[i]+p[1] goto "FEND"
endif
i=i+1 goto HP1
899826:2005/03/28(月) 23:59:34 ID:dBu+yoxG
「サンプルデータ2」

dat="{HS,一覧カウント,0}[覧]{HP,一覧カウント,1}{P} 〜サンプルデータ一覧〜@@このページを@ 表示した回数/{HH,一覧カウント}回目{SB,モナ茶,茶,コソーリ,コ,ギコ,ギコ,糸冬 了,終}[終]{EXIT}"+
"[茶]{P}  ∧=∧@ ( ´∀`∩  い@| ̄U ̄ ̄ ̄|  い@|  ┼─┼ |  湯@|  /\ |  だ@| / ホ \|  な@\____/ モ ぁ@  └─┘  ナ{SB,戻る,覧}"+
"[コ]{P}半角対応したので・・・@|⌒彡@|冫、)@|` /@| /@|/@AA使えるようになりましたよ。{SB,TOP画面へ,覧}"+
"[ギコ]{P}マジデ!?@  ∧ ∧@  (;゚Д゚)@  /  |@〜(___丿{SB,戻る,覧}"

#FTSYS_ver1.2#
#F_PACK_ver1.2#
900826:2005/03/29(火) 00:03:28 ID:dBu+yoxG
〜タグの解説〜

◆セレクトボタン
{SB,a1,b1,a2,b2}
aに選択肢、bに跳び先。選択肢の個数限定なし(ただし数が多くなると画面からはみでる)
{SB,右へ行く,街,左へ行く,公園}このように使う。{SB,次を読む}選択肢が1つの時は、跳び先は省略可能

◆変数設定
{HS,変数名,設定値}
{HS,体力,100}、{HS,状態,毒}の様に使う
(この変数の内容はhensu[]に、変数名はhidx[]に入れて管理してます。

◆変数に値をプラスする
{HP,変数名,加算値}
◆変数から値をマイナスする
{HM,変数名,減算値}
(変数設定で変数を登録してからじゃないと使えません

◆変数の内容を表示
{HH,変数名}

◆その他のタグ
{EXIT}終了、{P}ページ切り替え、{R}改行、{W}ウエイト、{VON}{VOF}バイブオン・オフ

〜仕様についての解説〜

◆ラベル
[シーン1].....[場面2]...[敵]
SBの跳び先として使用

◆タグのパラメーター
タグに付加されたパラメーターは順番にp[0]〜p[x] に保管されファンクションに渡されます(なお、nにパラメーターの個数が入ってます。
901826:2005/03/29(火) 00:18:57 ID:LAj3Tcr9
>>879
>>881
ありがとうございます!!

その他のみなさまも、プログラム作成に集中してたので、まともにレスできませんでしたが、有り難う御座います!!
。・゚・(ノД`)・゚・。
皆様の応援反響、大変にありがたいです

大画面対応等も検討してるのですが、色々と調整が難しいので今回は見送り。

あと、囚人のジレンマってやつ面白そうですね、こっちが一段落したらオレも参加してみようかな。
基本ルール飲み込めてないけど・・・
902非通知さん@アプリ起動中:2005/03/29(火) 00:49:16 ID:JV/Cz+kG
>826
スゲー!!!乙かれ様デス
9030.02:2005/03/29(火) 08:13:49 ID:rUP8vDa8
>>885
あのシューティング面白そう…
動くゲームのAIって作り甲斐ありそうだし
株がひと段落したら作り直してみませんか と言ってみる
俺も動くゲームのAIって興味があるし…
と思ったら株完成?乙でっす!

>>826
すごいな…プロジェクトの土台に出来るんじゃなかろうか
カラオケ風字幕も使えるかも?
しかしながら脱帽です。激乙!

ところでバトルエンピツできたけど
いろいろ付けてたらプログラムすっげー長く…。・゚・(ノД`)・゚・。
エラー対策とか演出とかにこだわってしまっていつの間にか5KB…
904非通知さん@アプリ起動中:2005/03/29(火) 09:31:45 ID:JV/Cz+kG
>903
AI+imgでSTG。前よりは知識ついたと思うからやってみようかな。
株もどきはシステムはちょこちょこ改良してるよ。各買い率、平均価値、他もろもろ

バトル鉛筆世代ではないけれど、おもしろそう。やってみたいな
9050.02:2005/03/29(火) 16:26:27 ID:N2xWtJDM
うはwwwごめww5KBって言ったけど嘘ww



7KBだった(´・ω・`)ショボーン
一応書き写したけど2chにうpすると長くなりすぎるカモ
需要があればソース分割して書き込みます。
一応自分とこに上げてはみたけど…(↓PCのみ)
ttp://www.geocities.jp/nagata_2yen/basic/

改良すればRPG戦闘にも使えそうな予感


>904
株もどんどんVer.UPして行くのかな。
株もいいけど、そろそろみんなでジレンマ大会とかやってみたいね
906非通知さん@アプリ起動中:2005/03/29(火) 17:40:39 ID:JV/Cz+kG
ジレンマ大会やるならもっかいプログラム組み直すよ
907非通知さん@アプリ起動中:2005/03/29(火) 18:24:47 ID:JV/Cz+kG
ひっそりと大会用Ver.UPプログラム
返す値は以前と同じaとb。強調は青、裏切りは赤で表示。
A[CNT]、B[CNT]に返した値が入る
FREE、FREE2は自由なソースが入るので、研究用その他なんでもどうぞ

「囚人のジレンマ」
「FREE」
「FREE2」
908非通知さん@アプリ起動中:2005/03/29(火) 18:25:45 ID:JV/Cz+kG
soft2("終わり")origin(width/2-60,height/2-60)for CNT=1 to 200 #ランダム君# #自由# color(0,0,0)
C=a+b*3 if C=1 then P1=P1+5 A="裏切" ACR=1 ACB=0 B="強調" BCR=0 BCB=1 elseif C=3 then P2=P2+5 A="強調" ACR=0 ACB=1 B="裏切"
BCR=1 BCB=0 elseif C=4 then P1=P1+1 P2=P2+1 A="裏切" ACR=1 ACB=0 B="裏切" BCR=1 BCB=0 else P1=P1+3 P2=P2+3 A="強調" ACR=0 ACB=1 B="強調" BCR=0 BCB=1 endif lock()
clear(0,0,120,120) text("回数"+CNT,40,20) color(ACR*250,0,ACB*250) text(P1+"/"+A,30,40) color(BCR*250,0,BCB*250) text(P2+"/"+B,30,60) unlock(1)
if input(50)and keysoft2 then exit endif AS[CNT]=a BS[CNT]=b #FREE# next input() #FREE2# input()
909非通知さん@アプリ起動中:2005/03/29(火) 18:45:54 ID:JV/Cz+kG
AS[CNT]、B[CNT]がはいらないバグ発見したのでごめん修正


soft2("終わり")origin(width/2-60,height/2-60)for CNT=1 to 200 #ランダム君# #自由# color(0,0,0) C=a+b*3 if C=1 then P1=P1+5 A="裏切" ACR=1 ACB=0 B="強調"
BCR=0 BCB=1 elseif C=3 then P2=P2+5 A="強調" ACR=0 ACB=1 B="裏切" BCR=1 BCB=0 elseif C=4 then P1=P1+1 P2=P2+1 A="裏切" ACR=1 ACB=0 B="裏切" BCR=1 BCB=0 else P1=P1+3 P2=P2+3 A="強調" ACR=0 ACB=1 B="強調" BCR=0 BCB=1 endif
if input(50)and keysoft2 then exit endif AS[CNT]=a BS[CNT]=b
lock() clear(0,0,120,120) text("回数"+CNT,40,20) color(ACR*250,0,ACB*250) text(P1+"/"+A,30,40) color(BCR*250,0,BCB*250) text(P2+"/"+B,30,60)#FREE# unlock(1)next input() #FREE2# input()
910非通知さん@アプリ起動中:2005/03/30(水) 00:06:21 ID:FGc4aQ74
ジレンマのちょっとしたツール(といっても確率だすのとグラフをつかって視覚的になるだけだけど)もできたんで、改めて大会やってみようかと提案してみるテスト
ルールは
プラン1
総当たり戦(どれくらい集まるかはわかんないけど)で一試合は5回、繰り返す(計1000回)
点数がもっとも高いものが優勝
プログラムの途中書き換えは不可

プラン2
一試合を三回戦(計600回)とし、一試合ごとにプログラムを変えることができる
あとはプラン1と一緒

プラン2の方は相手のアルゴリズムに合わせた戦法がとれる分、面白いかも
911826:2005/03/30(水) 02:37:52 ID:/VDtV4o1
FTSYSのファンクション追加
>>898に繋いで使ってください。
「F_PACK_ver1.2_f3」

label J rp=stridx(dat,"["+p[0]+"]") goto "FEND"

label IJ i=0
label IJ1
if i=hnmbr then goto "FEND" elseif hidx[i]=p[0] then goto "IJ2" endif
i=i+1 goto "IJ1"
label IJ2
pm=substr(p[1],1,strlen(p[1])-1)
kigou=strat(p[1],0)
if kigou="=" then goto "IJ3" elseif kigou=">" then goto "IJ4" elseif kigou="<" then goto "IJ5" endif
goto "FEND"
label IJ3
if hensu[i]=pm then goto "IJ6" endif goto "FEND"
label IJ4
if hensu[i]>pm then goto "IJ6" endif goto "FEND"
label IJ5
if hensu[i]<pm then goto "IJ6" endif goto "FEND"
label IJ6
rp=stridx(dat,"["+p[2]+"]") goto "FEND"

label RJ
r=abs(rand)%100 i=0
label RJ1
if r<p[i] then goto "RJ2" elseif i+1=n/2 then goto "FEND" endif
p[i+2]=p[i+2]+p[i] i=i+2 goto "RJ1"
label RJ2
rp=stridx(dat,"["+p[i+1]+"]") goto "FEND"
912826:2005/03/30(水) 02:40:12 ID:/VDtV4o1
新しく使えるようになるタグ

◆ジャンプ
{J,跳び先}
BASICの「goto」と同じ

◆IFジャンプ
{IJ,変数名,条件,跳び先}
使用例
{IJ,体力,<1,死亡}
{IJ,鍵,=所持,開く}
{IJ,鍵,=無い,開かない}
条件指定に使える記号は、
「=」、「>」、「<」の3種類

◆ランダムジャンプ
{RJ,a1,b1,a2,b2}
aに確率、bに跳び先
使用例
{RJ,50,吉,50,凶}
{RJ,60,通常,30,2倍,10,ミス}
913非通知さん@アプリ起動中:2005/03/30(水) 02:51:59 ID:FGc4aQ74
>826
ウホッ。素晴らしいものが着々とできつつありますね
ここからはチラシの裏と思ってもらってよござんす
{W}に関して、input()のファンクションもあった方がよいと便利ですね
長い文章だと{P}で切り替えるときに先の文章読む前に切り替わっちゃうので
914826:2005/03/30(水) 02:53:42 ID:/VDtV4o1
これで取り敢えずゲームブックみたいのなら作れると思います。

今回のFTSYSの作成は自分にとって色々勉強になりました。
応援してくれたみなさん本当に有り難う!!!

FTSYSは一応はこれで一段落。
これ以上の改良は今のオレの力量ではムリですorz
入れ子構造にも対応したスクリプト的なものとか、いつかは作ってみたいなぁ

次は囚人のジレンマ研究してみます(シンプルだけどかなり面白そう
915826:2005/03/30(水) 02:57:19 ID:/VDtV4o1
>>913
ごめん新レス見ないでカキコした(汗
説明文に載せ忘れたけど一応{KEY}てのがあるので、それを使ってみてください
916非通知さん@アプリ起動中:2005/03/30(水) 03:04:25 ID:FGc4aQ74
>915
ソース全然読まないでいたので失礼しました。さっそく使わせてもらいます
あと参考用ジレンマの研究用ツール(FREE2)
x=1000 y=1000 clear(0,0,120,120)origin(0,0)
for CNT=1 to 200 X=x Y=y C=AS[CNT]+BS[CNT]*3 if C=1 then ACR=1 ACB=0 BCR=0 BCB=1 A10=A10+1 x=x-5
elseif C=3 then ACR=0 ACB=1 BCR=1 BCB=0 A01=A01+1 y=y-5 elseif C=4 then ACR=1 ACB=0 BCR=1 BCB=0 A11=A11+1 x=x-1 y=y-1 else ACR=0 ACB=1 BCR=0 BCB=1 A00=A00+1 x=x-3 y=y-3 endif lock()
次へ
917非通知さん@アプリ起動中:2005/03/30(水) 03:07:03 ID:FGc4aQ74
clear(195,160,50,50) color(250,0,0) line(CNT-1,X/5,CNT,x/5) text(-x+1000,200,180)color(0,0,250) line(CNT-1,Y/5,CNT,y/5) text(-y+1000,200,200) clear(20,0,130,100) color(0,0,0)text("強調/強調"+";"+A00+"/"+(A00*100/CNT)+"%",20,20)
text("強調/裏切"+";"+A01+"/"+(A01*100/CNT)+"%",20,40) text("裏切/強調"+";"+A10+"/"+(A10*100/CNT)+"%",20,60) text("裏切/裏切"+";"+A11+"/"+(A11*100/CNT)+"%",20,80)
unlock(1) color(ACR*250,0,ACB*250) frect(CNT-1,220,1,10) color(BCR*250,0,BCB*250) frect(CNT-1,240,1,10) if input(1)and keysoft2 then exit endif next

QVGA対応だけど研究用に。初めては公開しないつもりだったから変数も見方もわかりづらいけど、なんとなくはわかるかな。
9180.02:2005/03/30(水) 09:27:00 ID:dd6kGnzZ
バトルエンピツをなんとか分割完了

プロジェクト「バトルエンピツ」
ソース「init」「2」「3」「4」「5」「6」「7」
ソース「A軍キャラ」
ソース「B軍キャラ」

■バトルエンピツ
'非QVGAでレイアウト下端が切れてしまう場合はorigin(0,-10)
soft2("QUIT")TURN=abs(rand)%2AX=12TC=0ASL=0BSL=0
AY[0]=85AY[1]=97AY[2]=109AY[3]=121AY[4]=133i=0
gosub"Afst"gosub"Bfst"

label MAIN
lock()
TC=TC+1soft1("TURN"+TC)RCV=0DFC=0MDM=0DMG=0MNG=0MMP=0JDM=0POI=0SLP=0
DICE=abs(rand)%6+1SUB=abs(rand)%6+1COIN=abs(rand)%2HIT=abs(rand)%10
'ダイス値1-6,サブダイス値1-6,コイン判定0or1,命中率0-9を乱数算出
if TURN=1then TURN=0 elseif TURN=0then TURN=1 endif
color(250,190,190)frect(2,12,121,25)color(190,190,250)frect(10,39,121,25)color(170,170,170)rect(6,68,120,70)frect(8,70,117,67)
color(0,0,0)text(ANAME,2,24)text(BNAME,10,51)text("防"+ADF,98,24)text("防"+BDF,106,51)text("HP"+AHP,2,36)text("MP"+AMP,38,36)text("力-"+APZ,68,36)text("HP"+BHP,10,63)text("MP"+BMP,46,63)text("力-"+BPZ,76,63)
if TURN=0then text(ANAME,AX,AY[0])text("のターンだ!",AX,AY[1])elseif TURN=1then text(BNAME,AX,AY[0])text("のターンだ!",AX,AY[1])endif
unlock(1)
clearinput()if input()and keysoft2 then exit endif color(170,170,170)frect(8,70,117,67)color(0,0,0)
if TURN=0then lock()goto"A"elseif TURN=1then lock()goto"B"endif
#init#
#A軍キャラ#
#B軍キャラ#
919非通知さん@アプリ起動中:2005/03/30(水) 09:28:29 ID:dd6kGnzZ
■「init」
label Aslp
if MNG=0and BSL=0then BSL=SLP endif
if BSL=1then text("敵は眠っている!",AX,AY[i])i=i+1endif return
label Admg
JDM=(DMG-BDF)-APZ if MNG=0and JDM>0then BHP=BHP-JDM text(JDM+"の打撃を与えた!",AY,AY[i])i=i+1elseif MNG=0and JDM<=0then text("敵の防御は鉄壁だ!",AX,AY[i])i=i+1 endif return
label Adfc
if MNG=0then ADF=ADF+DFC text("防御が一時"+DFC+"上昇!",AX,AY[i])i=i+1endif return
label Ammp
if AMP-MMP<0then text("MPが足りない…",AX,AY[i])i=i+1MNG=1elseif AMP-MMP>=0then MNG=0AMP=AMP-MMP endif return
label Amdm
if MNG=0then BHP=BHP-MDM text(MDM+"の魔術ダメージ!",AX,AY[i])i=i+1endif return
label Arcv
if MNG=0and AHP+RCV<=AMHP then AHP=AHP+RCV text("HPが"+RCV+"回復した!",AX,AY[i])i=i+1elseif MNG=0and AHP+RCV>AMHP then AHP=AMHP text("HPは最大だ!",AX,AY[i])i=i+1endif return
#2#
920非通知さん@アプリ起動中:2005/03/30(水) 09:29:43 ID:dd6kGnzZ
■「2」
label Apnc
JDM=(DMG-ADF)-APZ if JDM>0then AHP=AHP-JDM text(JDM+"の混乱ダメージ!?",AX,AY[i])i=i+1elseif JDM<=0then text(ANAME+"は",AX,AY[i])i=i+1text("我に返った!",AX,AY[i])i=i+1endif return
label Apzn
if MNG=0then BPZ=POI text(BNAME+"は",AX,AY[i])i=i+1text("脱力した!",AX,AY[i])i=i+1endif return
label Acpz
if MNG=0and APZ>0then APZ=0text(ANAME+"は",AX,AY[i])i=i+1text("脱力から回復!",AX,AY[i])i=i+1endif return

label Bslp
if MNG=0and ASL=0then ASL=SLP endif
if ASL=1then text("敵は眠っている!",AX,AY[i])i=i+1endif return
label Bdmg
JDM=(DMG-ADF)-BPZ if MNG=0and JDM>0then AHP=AHP-JDM text(JDM+"の打撃を与えた!",AY,AY[i])i=i+1elseif MNG=0and JDM<=0then text("敵の防御は鉄壁だ!",AX,AY[i])i=i+1 endif return
label Bdfc
if MNG=0then BDF=BDF+DFC text("防御が一時"+DFC+"上昇!",AX,AY[i])i=i+1endif return
label Bmmp
if BMP-MMP<0then text("MPが足りない…",AX,AY[i])i=i+1MNG=1elseif BMP-MMP>=0then MNG=0BMP=BMP-MMP endif return
#3#
9210.02:2005/03/30(水) 09:31:46 ID:dd6kGnzZ
■「3」
label Bmdm
if MNG=0then AHP=AHP-MDM text(MDM+"の魔術ダメージ!",AX,AY[i])i=i+1endif return
label Brcv
if MNG=0and BHP+RCV<=AMHP then BHP=BHP+RCV text("HPが"+RCV+"回復した!",AX,AY[i])i=i+1elseif MNG=0and BHP+RCV>BMHP then BHP=BMHP text("HPは最大だ!",AX,AY[i])i=i+1endif return
label Bpnc
JDM=(DMG-BDF)-BPZ if JDM>0then BHP=BHP-JDM text(JDM+"の混乱ダメージ!?",AX,AY[i])i=i+1elseif JDM<=0then text(BNAME+"は",AX,AY[i])i=i+1text("我に返った!",AX,AY[i])i=i+1endif return
label Bpzn
if MNG=0then APZ=POI text(ANAME+"は",AX,AY[i])i=i+1text("脱力した!",AX,AY[i])i=i+1endif return
label Bcpz
if MNG=0and BPZ>0then BPZ=0text(BNAME+"は",AX,AY[i])i=i+1text("脱力から回復!",AX,AY[i])i=i+1endif return
#4#
9220.02:2005/03/30(水) 09:33:11 ID:dd6kGnzZ
ソース「6」「7」いらないかも

■「4」
label jdg
color(0,0,0)if AHP<=0and BHP<=0then text("両者引き分けだ!",AX,AY[0])soft1("RESULT")unlock(1)clearinput()input()exit endif
if AHP<=0then text(BNAME+"の",AX,AY[0])text("圧倒的勝利だ!",AX,AY[1])soft1("RESULT")unlock(1)clearinput()input()exit endif
if BHP<=0then text(ANAME+"の",AX,AY[0])text("完全なる勝利!",AX,AY[1])soft1("RESULT")unlock(1)clearinput()input()exit endif
if AHP>0 and BHP>0then goto"MAIN"endif
#5#

■「5」
label disp
i=0gc()color(250,190,190)frect(2,12,121,25)color(190,190,250)frect(10,39,121,25)
color(0,0,0)text(ANAME,2,24)text(BNAME,10,51)text("防"+ADF,98,24)text("防"+BDF,106,51)text("HP"+AHP,2,36)text("MP"+AMP,38,36)text("力-"+APZ,68,36)text("HP"+BHP,10,63)text("MP"+BMP,46,63)text("力-"+BPZ,76,63)
unlock(1)clearinput()if input()and keysoft2then exit endif
color(170,170,170)frect(8,70,117,67)return
9230.02:2005/03/30(水) 09:35:11 ID:dd6kGnzZ
■「A軍キャラ」
label Afst
ANAME="ヒーロー"AMHP=100AHP=100AMP=10ADF=5
return

label A
ADF=5
if ASL=0and DICE=1then text("[1] アタック",AX,AY[i])i=i+1DMG=15gosub"Admg"
elseif ASL=0and DICE=2then text("[2] 防御",AX,AY[i])i=i+1DFC=5gosub"Adfc"
elseif HIT<=7and ASL=0and DICE=3then text("[3] 光の剣",AX,AY[i])i=i+1text("剣は鈍く光った",AX,AY[i])i=i+1gosub"Acpz"
elseif HIT>=8and ASL=0and DICE=3then text("[3] 光の剣",AX,AY[i])i=i+1text("オーラブレード!",AX,AY[i])i=i+1MDM=50gosub"Amdm"
elseif ASL=0and DICE=4then text("[4] 薬草",AX,AY[i])i=i+1RCV=5gosub"Arcv"
elseif ASL=0and DICE=5then text("[5] ヒーリング",AX,AY[i])i=i+1RCV=SUB+2MMP=1gosub "Ammp"gosub"Arcv"
elseif ASL=0and DICE=6then text("[6] ダブルアタック",AX,AY[i])i=i+1DMG=8gosub"Admg"text("てええぇいっ!",AX,AY[i])i=i+1gosub"Admg"
endif
'ここから下はいじらない
if ASL=1and COIN=1then ASL=0text(ANAME+"は",AX,AY[i])i=i+1text("眠りから覚めた!",AX,AY[i])i=i+1elseif ASL=1and COIN=0then text(ANAME+"は",AX,AY[i])i=i+1text("眠っている…",AX,AY[i])i=i+1endif

gosub"disp"
goto "jdg"
9240.02:2005/03/30(水) 09:36:51 ID:dd6kGnzZ
■「B軍キャラ」
label Bfst
BNAME="ドラゴン"BMHP=150BHP=150BMP=20BDF=2
return

label B
BDF=2
if BSL=0and DICE=1then text("[1] 雄叫び",AX,AY[i])i=i+1POI=3gosub"Bpzn"
elseif BSL=0and DICE=2then text("[2] 防御",AX,AY[i])i=i+1DFC=SUB gosub"Bdfc"
elseif BSL=0and DICE=3then text("[3] ブレス",AX,AY[i])i=i+1MDM=35MMP=12gosub "Bmmp"gosub"Bmdm"
elseif BSL=0and DICE=4then text("[4] テイルウィップ",AX,AY[i])i=i+1DMG=10gosub"Bdmg"
elseif BSL=0and DICE=5 then text("[5] 皮膚再生",AX,AY[i])i=i+1RCV=5gosub "Brcv"
elseif BSL=0and DICE=6 then text("[6] 眠り爪",AX,AY[i])i=i+1
DMG=9 gosub "Bdmg"text("グギャオォッ!",AX,AY[i])i=i+1SLP=COIN gosub"Bslp"
endif
if BSL=1and COIN=1then BSL=0text(BNAME+"は",AX,AY[i])i=i+1text("眠りから覚めた!",AX,AY[i])i=i+1 elseif BSL=1and COIN=0then text(BNAME+"は",AX,AY[i])i=i+1text("眠っている…",AX,AY[i])i=i+1endif
gosub "disp"
goto "jdg"



ゲームプログラムは以上です…連続投稿申し訳ない
9250.02:2005/03/30(水) 09:53:14 ID:dd6kGnzZ
*は所属軍の文字(AorB)という事で。

*MHP=最大HP値を設定 *HP=初期HP値。基本的に最大値と同じ値を設定
*MP=初期MP値。*DF=基本防御値。*NAME=名前。
そのキャラで必要な変数があればlabel *fst内に用意しておく
防御力は毎自ターン頭に初期値に戻るようにするためlabel *にlabel *fstと同じ*DF値を設定
ダイス目に設定する能力はif文中のダイス処理text("[1] アタック",AX,AY[i])i=i+1に続いて
戦闘変数→処理の順で記入。戦闘変数は以下の通り。
DMG=通常攻撃ダメージ値 DFC=防御力上昇値を指定
MDM=魔法ダメージ値を指定 MMP=必要MP値を指定
RCV=自己回復値を指定 POI=脱力値を指定
回復魔法などはRCV=5MMP=2gosub"*mmp"gosub"*rcv"とすれば
MP2消費してHP5回復する魔法などが出来ます。
その他にも色々組み合わせて使ってください
※戦闘変数はターン毎に初期化されます

gosub で飛べる命令群
*dmg=攻撃&耐性判定 *dfc=防御 *mmp=MPが足るか判定&MP減少
*mdm=魔法攻撃 *rcv=HP回復 *pzn=脱力状態にする
*cpz=脱力回復 *pnc=混乱(自分にダメージ) *slp=眠り
*pnc(混乱)処理以外は*mmp(MP量チェック)処理が使える
DMG=10MMP=1gosub"*mmp"gosub"*dmg"とすればMP消費の物理攻撃も設定可
gosub"*mmp"より先にgosub"*dmg"など行動処理を記入するとMP量が不足していても行動処理を行う
slpは SLP=COIN gosub"*slp"とすれば1/2の確率で眠らせ
SLP=1gosub"*slp"なら確実に眠らせる
textは必ず「text("文章・台詞等",AX,AY[i])i=i+1」として下さい
iは表示文字列行をカウントしており5以上になるとエラー
長文は途中でgosub"disp"必須
926非通知さん@アプリ起動中:2005/03/30(水) 21:07:50 ID:uuA6zu5H
そのうちタグが拡張されまくって、
RPGツクールが出来そうな悪寒
927非通知さん@アプリ起動中:2005/03/30(水) 21:48:10 ID:qiO4PDJ9
いっそのことそういうアプリを作った方がいいと思う。試しに何かアプリ化してあげようか?
9280.02:2005/03/30(水) 22:43:44 ID:tx0+fCcb
それを携帯BASICでやる事に意義がある。
結構エラーが出にくいように組めてるとは思う…どうだろ?

ということで今RPG戦闘を再現できるプログラム組んでます
ランダム実行ではなくてコマンド式の。とりあえず1vs1で。
敵はCOMが動かすって事で、あと属性攻撃とかを入れる予定…

まぁメール欄が本音なワケだが
実際そういうアプリをアプゲで公開したらすごい反響かと
プログラムを出力出来てメールで配信(これ重要)→(゚д゚)ウマー



そういや全然関係ないけど
A=0then …は0とthenをくっつけても問題ないが
scan=key0then …の場合「key0」という文字列として扱われるのでエラーになるっぽい
みんなにとっちゃ常識なのかも知れないけど(´・ω・`)
929826:2005/03/30(水) 22:46:18 ID:/VDtV4o1
>>926
RPGだったらテキスト表示じゃなくマップ画面をベースにした方が良い・・・のかな
(現状ではノベルゲーみたいのを前提にしてるからちょっと難しいかも

>>927
オレはPC環境無いので藻前に任せた
シナリオやデータ作る人にはアプリ化されてた方が楽でしょうね


ジレンマのプログラム1つ作ってみた(B側
「統計から判断」
if CNT=1 then b=0
else uragiritotal=uragiritotal+AS[CNT-1] if uragiritotal*100/(CNT-1)>32 then b=1 else b=0 endif
endif
過去の相手の行動の33%以上が裏切りだったら裏切る
930非通知さん@アプリ起動中:2005/03/30(水) 22:59:57 ID:FGc4aQ74
ツクールのiアプリ版は専用スレあったはず。
配信できるかどうかっていうのはでかいよね。携帯BASICは配信(共有)はできるけど手間が(;´Д`)

ジレンマでうちの大黒柱、TEDY
TAC=CNT-1 if TAC=0 then TAC=1 endif TA=TA+BS[CNT-1] TETA=TA*100/TAC a=abs(rand)%100 if a>=TETA then a=0 else a=1 endif
9310.02:2005/03/30(水) 23:12:52 ID:tx0+fCcb
考えてみたよ ノシ

「雄武返し(A)」forジレンマ
if b=0then a=0elseif b=1then a=1endif'前のBの行動を真似

「時計君(A)」forジレンマ
a=minute%2'偶数分は協調、奇数分は裏切り

「バイオリズム(A)」forジレンマ
a=0
if 25<CNT and CNT<76then a=1elseif
125<CNT and CNT<176then a=1endif
'CNTが26〜75,126〜175の時は裏切る

「チェンジ君(B)」forジレンマ
sanbun=abs(rand)%5
if CNT=1then b=0 endif
if sanbun=0and b=0then b=1
elseif sanbun=0and b=1then b=0 endif
'裏切りか協調かある程度連続するが5回に1回の確率で切り替わる


保管庫の人にはそろそろプログラム回収に来て欲しいな…
932非通知さん@アプリ起動中:2005/03/30(水) 23:36:16 ID:FGc4aQ74
せっかくだから総当たりやってみる
\;雄;時;バ;チ;T;統
雄;A1;A2;A3;A4;A5;A6
時;B1;B2;B3;B4;B5;B6
バ;C1;C2;C3;C4;C5;C6
チ;D1;D2;D3;D4;D5;D6
T;E1;E2;E3;E4;E5;E6
統;E1;E2;E3;E4;E5;E6
5回(計1000)で
チェンジ君、雄武君は直接bみてるからプログラム少しいじるね
SB[CNT-1]に
じゃないと下側(b)にきた時におかしくなるから
933☆彡 ◆/0IwdqVeUw :2005/03/30(水) 23:39:04 ID:uuA6zu5H
皆さん久しぶりです(@^^@)
といっても影薄かったので、私の事分からないかもしれませんが…
これからちょくちょく顔出すので宜しくお願いします
ところで皆さんダイスクエストってご存じですか?
934非通知さん@アプリ起動中:2005/03/31(木) 00:03:32 ID:FGc4aQ74
>933
ググったけどよくわかんなかった…

ところでそろそろ次スレ立てる時期が近くなってきたね。
あとソースの受け渡しにメルマガって使えないかな?とふと思いついたり
935非通知さん@アプリ起動中:2005/03/31(木) 08:09:00 ID:zU0g38Z5
メルマガか…いいかも
iらんどのメルマガ機能とかよく使ってたよ
登録者の情報が管理者に洩れない事と文字数制限が緩い事が重要かな

>932
結果に期待シマス

>933
http://www.sonicteam.com/cafe/top.html
の、「スゴローク」みたいなもん?
9360.02:2005/03/31(木) 13:36:39 ID:g4M6lqNj
>>932
修正ありがとん
結果が期になるぅ

>>934
次スレは>>980かなぁ?
ちょっとテンプレ考えてみるか

----
携帯BASICについて語るスレです。
質問やプログラムうpして盛り上がりましょう。
携帯BASICのDLはこちらから(パケット代のみでDL可)。
ttp://satoo.jp/
現在のVer. = 携帯BASIC1.0.5

荒らし・煽りは放置でお願いします。
プログラム作者は最低でも数字コテを付けるのが望ましいかも。
その他リンクなどは>>2-10
----

ちなみにまぐまぐ見てきたけど新規募集はメンテで停止中だた(´・ω・`)
ところでこのスレに何人いる?
1 } \(・∀・)
937非通知さん@アプリ起動中:2005/03/31(木) 16:26:27 ID:1p10Efn9
(・∀・){2

結果はExcelつかって近いうちにだします
プライバシーは捨てアドとるか管理人を信用するか登録しないか選択してもらうとして、あと文字数の長さとパケ代も問題になるかな。
938非通知さん@アプリ起動中:2005/03/31(木) 22:17:47 ID:pSo3HAoS
(・∀・)<参

ここってもう携帯Basic語る場所になったのか。スレタイこのままでいいのか…?
あとTabris氏とyasu氏のサイトも一応テンプレに入れといた方がいいと思うぞ。
939☆彡 ◆/0IwdqVeUw :2005/03/31(木) 22:34:34 ID:lnOMNEd5
☆彡{四であります!
皆さんDRRGの第一歩としてだいすくえすとライクを作りませんか?
だいすくえすとの利点としては、3Dではなく平面、正式にはプレイヤーが平面ダンジョンを描いてプレイできるということです。 どうですか?みなさん?
940☆彡 ◆/0IwdqVeUw :2005/03/31(木) 22:41:03 ID:lnOMNEd5
↑上の文章とてつもなく意味が分からない文章になってしまって、本当にすいませんでした。
941非通知さん@アプリ起動中:2005/03/31(木) 22:52:49 ID:1p10Efn9
>939
どんな画面になるのかを簡単にソースにしてルールをかいてくれるとイメージしやすいかな
9420.02:2005/03/31(木) 23:32:33 ID:FG1p6RCO
>>938
確かに。
> 携帯BASICについて語るスレです。
> i/ezBASICの話題もどうぞ。
…ってな感じかな。

ところでメール配信案だけど、セルフ配信できないかな
<a href='@ne.jp?Body=プログラム'>メールでお持ち帰り</a>
注釈文は使わないかremにすれば可能かも。
9430.02:2005/03/31(木) 23:35:42 ID:FG1p6RCO
すまん、<a href='[email protected]〜 だった
しかしここ数日のスレの伸びすごいね
944826:2005/03/31(木) 23:53:52 ID:6t1JywvH
( ゚д゚){5

次スレのタイトル候補
携帯用BASICを語るスレ Part1

(スレタイは一応iBASIC、ezBASIC、携帯BASIC総合ということで・・・
その上で携帯BASICメインで語るって事で良いんじゃないでしょうか?
キャリア依存が無いのは携帯BASICだけだし。
945☆彡 ◆/0IwdqVeUw :皇紀2665/04/01(金) 00:52:41 ID:idjMrQuZ
>>941さん
for a=1 to 21
line(0,a*12,240,a*12)
line(a*12,0,a*12,240)
next
input()
ここでモンスターダイス(ダイスとはさいころの事です)とマップダイスとアイテムダイス、
攻撃ダイスを振ります。
マップダイスを振り、
出た絵と同じ風にマップに書き込みます。
そしてモンスターダイス…とさいころの出た目で運命が決まるゲームです。
キャラクターは自分で設定出来ます。
キャラクターの設定はウィザードリィに似てるといって間違いないです。
946非通知さん@アプリ起動中:皇紀2665/04/01(金) 02:57:33 ID:JZ/o/Kia
lock()for C=1 to 5 rect(10,10*C,50,10) line(10+10*C,10,10+10*C,60) next for MAPx=1 to 5 for MAPy=1 to 5D=abs(rand)%2
if D=0 then text("■",MAPx*10,MAPy*10+14) else MAP[MAPx][MAPy]=0endif next next input()
壁だけだけどこんな感じになるのかな
マスごとにイベント{壁,アイテム,モンスター}を決めるってこと?
早い話がローグ?
947非通知さん@アプリ起動中:皇紀2665/04/01(金) 04:07:27 ID:idjMrQuZ
>>946さん
壁ではなく通路です、あとさいころで通路を作るところ以外はほぼローグですね。
9480.02:皇紀2665/04/01(金) 11:16:19 ID:lIgQrZmH
ついに時代は皇紀か…新たな年号記念に
<a href='mailto:youraccount@**.ne.jp?Body=プログラム'>
に訂正

>>947
要するに「百の世界の物語」?
原作知らないけど、面白そう

>>944
BASICアプリ総合【携帯BASIC/iBASIC/ezBASIC】
これなら検索にも引っかかる…けど文字数制限どうだろ
949非通知さん@アプリ起動中:2005/04/02(土) 18:08:48 ID:7JNhvyJV
AppliMakers活気があっていいなぁ…携帯BASICもああいう風にプログラム交換できたらよかったのに。やっぱ2chがメインの交流場てのはちょっとねぇ…
950非通知さん@アプリ起動中:2005/04/02(土) 19:04:47 ID:/iTyg39B
>949
できることは携帯ベーシックのほうが多そうだね。
データの送受信と知名度があるぶんAMが強いのかな
951非通知さん@アプリ起動中:2005/04/02(土) 22:49:45 ID:GGJtKOzO
ここに上がってるプログラム、
何一つとしてAMで再現できなさそうと思うのは俺だけだろうか
500行(命令)だととても…
家庭用RPGツクールとPCのそれくらいの差じゃない?

>>☆ミ氏
ちょっと楽しそう
基盤と大まかなルールできたらうpきぼん
952非通知さん@アプリ起動中:2005/04/02(土) 23:11:55 ID:/iTyg39B
PCのほうが難しい(ように見える)んだろうね。ツクールは分かりやすいインターフェイス(命令が日本語)だし。
ダイスクエストはサンプルの倉庫番をベースにすると少しは楽かもね
953☆彡 ◆/0IwdqVeUw :2005/04/02(土) 23:50:46 ID:WV4t6lEq
ここってリンク無断で張っていいのでしょうか?
954非通知さん@アプリ起動中:2005/04/03(日) 01:09:01 ID:F0d+rWC6
soft2("END")
R=(rand)%48+1 CHARx=R R=(rand)%50+1 CHARy=R LT=2 for j=1 to 50 step 49 for i=1 to 50 MAP[i][j]="*" MAP[j][i]="*" next next for i=2 to 49 for j=2 to 49 R=(rand)%5 if R<=0 then MAP[i][j]=" " else MAP[i][j]="*"
endif next next label 0 MAP[CHARx][CHARy]="@" lock()
color(0,0,0) frect(33/LT,33/LT,37*LT,37*LT)
for i=-LT to LT for j=-LT to LT color(250,250,250) text(MAP[CHARx+i][CHARy+j],50+12*i,60+12*j)
next next unlock(1)
MAP[CHARx][CHARy]=" " key=input() if key=keysoft2 then end elseif key=keyleft then CHARx=CHARx-1 elseif key=keyright then CHARx=CHARx+1 elseif key=keyup then CHARy=CHARy-1 elseif key=keydown then CHARy=CHARy+1 endif goto 0
955非通知さん@アプリ起動中:2005/04/03(日) 01:22:06 ID:F0d+rWC6
AMに負けたくないので簡単にrogue系の触りだけつくってみた。rogueは作る気ないけど*BAND系ならつくってみるかも
参加者希望age
ネックは読み込みの遅さとダンジョンのアルゴリズム。読み込みはどうなるかわからんけどアルゴリズムは変えるつもり
まだ踏んでない場所を?にして先を見えないようにしようかとか色々考え中
ジレンマでやったAIの経験を生かしてrogue_AIとか複数対戦みたいな疑似MMRなんかできたらよいなぁと妄想してみる。
956826:2005/04/03(日) 04:05:39 ID:VWwVwp6/
>>948
スレタイに「BASIC」が4つもあるのもどうかと・・・w
所で皆さんはこのスレ観るようになったきっかけは?
オレは・・・思い出せないorz


>>953
リンク先のページが「直リンク駄目」とかじゃないならOKだと思う


>>954-955
プログラム少し修正

R=(rand)%48+1 CHARx=R R=(rand)%50+1 CHARy=R

R=abs(rand)%48+1 CHARx=R R=abs(rand)%50+1 CHARy=R
(多分「R=(rand)%48+1」だと-46〜48のどれかになってしまう

frect(33/LT,33/LT,37*LT,37*LT)

frect(50-1-12*LT,60-14-12*LT,12*(1+LT*2)-5,12*(1+LT*2))

BAND系ってのがどうゆう物か解らない訳だが・・・
957非通知さん@アプリ起動中:2005/04/03(日) 04:27:59 ID:F0d+rWC6
>956
frectがおかしいのは知ってたけど調整するの面倒だったからそのままのせちゃった。randはその場でつけたからabsつける忘れ。
画面をrectで囲んで時間の概念つけて木を通れないようにはしたけどあまりの遅さにがっくり
gcってやつやれば少しは早くなんのかな?

BANDっても俺変愚蛮怒ってやつしかやったことないけど、rogueに店とか色々くっつけた感じのやつ。
店で買い物して好きなダンジョン行ってお金貯めてレベル上げて戻って買い物して…
だからrogueと一番違うのは"戻れる"ことかな。
一応変更版を
958非通知さん@アプリ起動中:2005/04/03(日) 04:31:19 ID:F0d+rWC6
soft2("END")CHARx=abs(rand)%47+2 CHARy=abs(rand)%47+2 LT=4 for j=1 to 50 step 49 for i=1 to 50 MAP[i][j]="#"
MAP[j][i]="#" next next for i=2 to 49 for j=2 to 49
R=(rand)%5 if R<=0 then MAP[i][j]=" " else MAP[i][j]="*" endif next next MAP[CHARx][CHARy]=" " rect(4,4,132,133)
label 0 MCHx=CHARx MCHy=CHARy lock()color(50*LT,50*LT,50*LT)frect(5,5,131,132)for i=-LT to LT for j=-LT to LT color(250-50*LT,250-50*LT,250-50*LT)
text(MAP[CHARx+i][CHARy+j],70+12*i,79+12*j) next next text("@",70,79) unlock(1)
key=input() if key=keysoft2 then end elseif key=keyleft then CHARx=CHARx-1 elseif key=keyright then CHARx=CHARx+1 elseif key=keyup then CHARy=CHARy-1 elseif key=keydown then CHARy=CHARy+1 endif if MAP[CHARx][CHARy]="*" or MAP[CHARx][CHARy]="#"
then CHARx=MCHx CHARy=MCHy else CNT=CNT+1 endif if CNT%20=19 then TIME=TIME+1 endif LT=5-TIME%6 goto 0
959826:2005/04/03(日) 09:33:43 ID:VWwVwp6/
>>957
MAP表示を1行ずつ纏めて行うようにして高速化成功しました
これなら遊べる速度だと思う
あと、それに関連して全角文字に(半角でも出来るけど少し面倒だったので
マップ関係総変更したんで消えちゃったけど、
MAP[i][j]="#"
MAP[j][i]="#"
ってやつは目から鱗ですた
gc()はスピード自体は大して変わらないと思う

>rogueに店とか色々くっつけた感じのやつ。
>店で買い物して好きなダンジョン行ってお金貯めてレベル上げて戻って買い物して…
>だからrogueと一番違うのは"戻れる"ことかな。

面白そうですねえ、ネタに困ってたんで是非参加させてください。
(でも作るのはrogueより難しいのではorz
960826:2005/04/03(日) 09:34:38 ID:VWwVwp6/
「TEST」

soft2("END")
LT=4 LTM=5 CHARx=LTM+abs(rand)%50+1 CHARy=LTM+abs(rand)%50+1

'マップ作成
SHARPS=""
for i=1 to 50+LTM*2 SHARPS=SHARPS+"#" next

for i=0 to LTM+50 step LTM+50
for j=1 to LTM
MAP[j+i]=SHARPS
next
next

SHARPS=substr(SHARPS,0,LTM)
for i=1+LTM to 50+LTM
MAP[i]=SHARPS
for j=1 to 50 R=(rand)%5
if R<=0 then MAP[i]=MAP[i]+" " else MAP[i]=MAP[i]+"*" endif
next
MAP[i]=MAP[i]+SHARPS
next

MAP[CHARy]=substr(MAP[CHARy],0,CHARx-1)+" "+substr(MAP[CHARy],CHARx,strlen(MAP[CHARy])-CHARx)

'枠書き込み
rect(4,4,132,133)

#TEST_2#
961826:2005/04/03(日) 09:35:49 ID:VWwVwp6/
「TEST_2」

'メイン
label 0
MCHx=CHARx MCHy=CHARy
yield()
lock()
color(50*LT,50*LT,50*LT)
frect(5,5,131,132)
color(250-50*LT,250-50*LT,250-50*LT)

for i=-LT to LT
text(substr(MAP[CHARy+i],CHARx-1-LT,1+LT*2),64-12*LT,79+12*i)
next

text("@",64,79)
unlock(1)
key=input()
if key=keysoft2 then end
elseif key=keyleft then CHARx=CHARx-1
elseif key=keyright then CHARx=CHARx+1
elseif key=keyup then CHARy=CHARy-1
elseif key=keydown then CHARy=CHARy+1
endif
if strat(MAP[CHARy],CHARx-1)="*" or strat(MAP[CHARy],CHARx-1)="#"
then CHARx=MCHx CHARy=MCHy
else CNT=CNT+1
endif
if CNT%20=19 then TIME=TIME+1 endif
LT=5-TIME%6
goto 0
962非通知さん@アプリ起動中:2005/04/03(日) 13:36:21 ID:AD76v+Pe
>>960-961
動かない…orz

そういや今気づいたんだけど1.0.4にあった倉庫作業が消えてる…
代わりに画像サンプルが入ったのかorz
前も誰か言ってたけど、サンプル&解説無し版欲しいな。
逆に、今までageられたプログラムを入れたサンプル集も。
963非通知さん@アプリ起動中:2005/04/03(日) 15:06:07 ID:F0d+rWC6
やっべ俺も右半分映らない。
でも目に見えて早くなってる。>826氏GJ
ソース読みながら勉強してくる。substrなんかまだ一度もつかったことないしorz

確かに普通のrogueよりは難しいとは思うけど、roguelikeってもう出てるからわざわざ作る気にならないんだよね。それに登り階段と店と地上を削ればrogueになっちゃうし

難しいっていっても分解して考えるとそんなに沢山でもないよ
一、ステータスをつくる(今は簡単にHPだけで)
二、動かない敵Mを三匹つくる(ステータスはENP[M番号][HP]で、空白におく)←これが一番難しいかも
三、label"判定"行き先が*なのか#なのかMなのか。Mなら攻撃
攻撃の判定、成功判定は後で調整すればいいから取りあえずrand%6<2なら成功、二回攻撃で死亡にする

ここまでなら余裕で今日中に終わっちゃうし、松明とか木に登って隠れるとか川を渡るとか、いろいろやりたいなぁとは考えてるけど少しづつやれば完成すると思うよ。
敵のうごきとマップのアルゴリズムはたぶん最後にやるか少しづつやろうかなと

もし手伝ってもらえるなら喜んで
ただ今から出かけるから俺の作業は夜になっちゃうけどf^^;
964非通知さん@アプリ起動中:2005/04/03(日) 18:12:32 ID:F0d+rWC6
>826氏に質問なんだけど
「TEST」
LTM

マップ作成
MAP[CHARy]=substr(MAP[CHARy],0,CHARx-1)+" "+substr(MAP[CHARy],CHARx,strlen(MAP[CHARy])-CHARx)

「TEST_2」
text(substr(MAP[CHARy+i],CHARx-1-LT,1+LT*2),64-12*LT,79+12*i)

この3つがよくわからないんだけど解説お願いしてよいかな?
考えてるみたけどGIVE UP orz
9650.02:2005/04/03(日) 18:31:49 ID:y1iIXk1J
便乗で講義お願いします。

MAP[0]=010
MAP[1]=001
MAP[2]=100
for Y=0 to 2 for X=0 to 9
YUKA=substr(MAP[Y],X,1)'床チェック、Y列X番目から1文字読む
if YUKA=0then text("□",X*12,Y*12+12)
elseif YUKA=1then text("■",X*12,Y*12+12)endif
'床チェック値が0なら□を、1なら■を描画
next next input()'3x3のマップ描画後入力待ち、入力後終了

こんな感じのプログラムで、MAP[0]=010 に格納されている010を
011とかに書き替えて記憶させるにはどうしたらいいのか教えてください…

substr(MAP[Y],X,1)=0 とかだとエラーになるし…
966非通知さん@アプリ起動中:2005/04/03(日) 20:07:46 ID:MAmFTa8Z
誰か新スレ立てて下さい。
自分がサボってたせいで、まとめサイト更新前にDAT落ちしてしまうorz
967非通知さん@アプリ起動中:2005/04/03(日) 20:16:15 ID:ZyP4Xdks
はいよ、新スレたててきます
968非通知さん@アプリ起動中:2005/04/03(日) 20:38:48 ID:ZyP4Xdks
新スレたてました

i/ez/携帯BASIC総合スレ ver.1
http://hobby7.2ch.net/test/read.cgi/appli/1112528299/
969まとめサイト”管理”人:2005/04/03(日) 20:43:50 ID:MAmFTa8Z
こちらは埋めずに、新スレへの移動をおねがいします。
970非通知さん@アプリ起動中:2005/04/06(水) 18:20:15 ID:CppWRR/S
そろそろ保守。
保管庫の中の人頑張れ。
971非通知さん@アプリ起動中:2005/04/09(土) 13:30:56 ID:byvtK9KU
保守あげ
972非通知さん@アプリ起動中
保守するぞー

初心者講座

関数を変数に保管する事はできない。
ダメな例)A=text("こんにちは",0,12)
素直に関数は直接書こう。
ただし、入力取得関数だけは変数保管可能。使い方は、
入力判定と同じラベル内に以下のように記述するだけ。
 A=scan
 if A=key1 then A=A+1 endif
「scan」だけでなく「input()」も保管できる。

プログラム末尾が「)」「"」または半角数字(0〜9)で終わる場合、
改行または半角スペースを入れる必要はない。
例1)for X=0 to 8 step 2 → for X=0to 8step 2
goto、gosubに使う「"ラベル名"」の直前のスペースは抜いて良い。
また、ラベル名が半角数字の時は「"」も省ける。(スペースは必要)
計算式を飛び先に指定もできる。
(""を付けると式ではなく文字列とみなされる)
例2)gosub "default" → gosub"default"
例3)gosub "123" → gosub 123
例4)A=3 gosub 1+A >結果> label 4 へジャンプ
ただし、数字の直前のスペースを抜いてしまったりするとエラー。
うっかり変数名の後ろを詰めてしまうミスにも要注意。
プログラム構築中は分かりやすさを優先して文字詰めせず、
完成してから不要スペースを抜く事をオススメ。
ただし、キー入力取得変数のkeysoft1,keysoft2,
key0〜key9は数字とは違うのでスペースが必要となる。
例4-1)if input() and key1then A=A+1 →エラー
例4-2)if input() and key1 then A=A+1 →OK