HSP - Hot Soup Processor Part 6
HSPってユーザがほとんど中学生なんじゃなかったっけ? しょうがないだろ。
次スレ、余計な自己主張はいらんて。そういう事書くと 他の言語マンセーな厨房が煽りに来て無駄に荒れる。 この展開はいい加減飽きた。一時の任意スレみたくマターリsageて逝こうぜ。
FAQを加筆して、もっと目立つようにすればいいのに。 もちろんその際に、 「HSPよくある質問 」を 「HSPよくある質問 (えいちえすぴい よくあるしつもん)」 に変更する。(w
なんかネタ不足で次スレの1の書き方の議論になってるのが笑える。 そんなこたぁどうだって良いじゃねえか。 お前等はこのスレが生きがいか? そんなことを議論していること自体が次スレも またネタスレにしかならんことを暗示していると思わんか? そんなにごちゃごちゃ言うなら自分でたてろ。 俺は何でもいいからさ、つかはっきりいって次スレ要らないけどね。
技術的な話題ないなら、プログラマ板に移動してくれ・・・ それか、消えてくれよ・・・
959 :
デフォルトの名無しさん :01/10/08 02:48
だめだ。
このスレはあっちにも立ったことがあるが、結局出戻ってきた。
961 :
デフォルトの名無しさん :01/10/08 02:54
だめだ。
>>962 マ板に立てても何故かまったくレスがつかず、
プログラム板にスレが立つと、何故か大盛況。
マ板のスレはますます廃れて沈む。
いつもこんな感じ。
また、俺の書いた
>>917 の記事みたいにソース出すのも脳無いかね…。
ていうか、俺の頭は厨房レヴェルだからソース貼るしか脳無いのヨ。
書いたとしても、今CGI書いてるからチト後になるが…。
ていうより、HSPのプログラム真面目に書く気力がない。
日本語が変だ…
HSP利用者割合 小学生 40% 中学生 30% 高校生 20% 大学生 5% 成人 4% その他 1%
ム板住人のプライドがHSPコードを書くのを否定しているとか。
HSPスレはだんだんちょっとづつだが、マシになってきてると思う。 part1〜4あたりはホントにひどかった。
970 :
これを追加 :01/10/08 03:15
>>917 color 0,0,0 : boxf 0,0,SCR_X,SCR_Y ; スクリーンの描画を黒バックに
color 0,0,255 : boxf 150,165,170,185
tate=0 : yoko=0 : stick key,15
if key&1:yoko=2
if key&4:yoko=-2
if key&2:tate=2
if key&8:tate=-1
repeat PSET_TIMES ; リピートの開始
if (spd.cnt!=0) {
x.cnt+=yoko
y.cnt+=tate
if x.cnt>317:x.cnt=0
if x.cnt<0:x.cnt=317
color clr.cnt , clr.cnt , clr.cnt ; 色を各粉雪毎に変更しています
これと
redraw 1 ; 描画更新を再開(ここで全ての描画が一度で更新される)
if hantei=1:pos 50,50:text 200:font "MSゴシック",13,1:mes "終わり":stop
repeat PSET_TIMES
if x.cnt>=150:if x.cnt<=170:if y.cnt>=165:if y.cnt<=185:hantei=1
loop
goto *@back
簡易さけげーを作った。
>>968 「BASIC系はギコBASICしか認めん」というプライド。
>>966 成人4%中の割合
会社員30%
公務員10%
自営業5%
引き籠もり20%
ちゃんころ25%
聖人1人
その他10%
スレタイトルがめちゃくちゃでした
>>970 これつかって、1ミリ秒プラス1点にすると面白いかも。
▼時間を取得するもじゅーる(いわばマクロ)
#module
#deffunc initwait
gettime d,3 : gettime h,4 : gettime m,5 : gettime s,6 : gettime ms,7
oldbeattime=(h*3600000)+(m*60000)+(s*1000)+ms
oldday=d
return
#deffunc getwait
mref rest,64
gettime h,4 : gettime m,5 : gettime s,6 : gettime ms,7
if oldday!=d : h+=24
setbeattime=(h*3600000)+(m*60000)+(s*1000)+ms
rest=setbeattime-oldbeattime
oldbeattime=setbeattime :
if oldday!=d : oldday=d : h-=24 : setbeattime=(h*3600000)+(m*60000)+(s*1000)+ms
return
#global
init_wait
(属性無し)
タイムテーブルを初期化します。
get_wait
init_waitもしくはget_waitからの命令の待ち時間取得。
返り値 stat に msec
注1)間違ってるかもしれない。
注2)相変わらず変な日本語解説でスマソ。
とりあえず、1000になるまで書き込むか…
改行多いぞゴラァと云われるんで、いくつかに分けて投稿。 とりあえず、サイズのある程度あるファイルなら何でも対戦できるファイルバトラーです。 ばとらーって時点で面白くならないよな。 ■定数解説 TITLE_BIN タイトルバーの名前 PLAYERS プレイヤー数 FILE_SIZE 最低限必要なファイルサイズ ■変数解説 lp - 体力の入った配列(0->1P , 1->2P) st - 体力の入った配列(0->1P , 1->2P) dp - 体力の入った配列(0->1P , 1->2P) sp - 体力の入った配列(0->1P , 1->2P) gp - 体力の入った配列(0->1P , 1->2P)
#define TITLE_BIN "File battler" #define PLAYERS 2 #define FILE_SIZE 65535 #define LIFE_FQ 100 #define STAT_FQ 1000 randomize alloc agt,FILE_SIZE : agt="" dim lp,PLAYERS : dim st,PLAYERS : dim dp,PLAYERS : dim sp,PLAYERS : dim gp,PLAYERS : sdim pdat,256,PLAYERS repeat PLAYERS : a=cnt+1 *@ title "Select a "+a+"player" dialog "*",16,"全てのファイル" if stat=0 : end exist refstr if strsize=-1 : dialog ""+a+"player data : ファイルが見つからない" : goto *@back if strsize<FILE_SIZE : dialog ""+a+"player data : ファイルは"+FILE_SIZE+"バイト以上必要" : goto *@back pdat.cnt=refstr k=strsize : if k>FILE_SIZE : k=FILE_SIZE+1 bload refstr,agt,k memory=0 : m=0 : max=0 : min=255 *@ peek x,agt,memory if m=0 : lp.cnt=lp.cnt+x ; ライフ値 if m=1 : st.cnt=st.cnt+x ; 攻撃力 if m=2 : dp.cnt=dp.cnt+x ; 守備力 if m=3 : sp.cnt=sp.cnt+x ; 敏捷性 if m=4 : gp.cnt=gp.cnt+x ; 潜在能力 m++ : memory++ if m>4 : m=0 if memory!=k : goto *@back lp.cnt=lp.cnt/LIFE_FQ : mlp.cnt=lp.cnt st.cnt=st.cnt-(st.cnt/STAT_FQ*STAT_FQ) dp.cnt=dp.cnt-(dp.cnt/STAT_FQ*STAT_FQ) sp.cnt=sp.cnt-(sp.cnt/STAT_FQ*STAT_FQ) gp.cnt=gp.cnt-(gp.cnt/STAT_FQ*STAT_FQ) loop title TITLE_BIN
*SEND_TO_MES gosub *PRINT_STAT ; 戦闘コードはここから stop ; 差部るーちん ----- *PRINT_STAT repeat 2 : a=cnt+1 : x=cnt*200 mgrp=lp.cnt*500/mlp.cnt : glp=lp.cnt/2 : gst=st.cnt/2 : gdp=dp.cnt/2 : gsp=sp.cnt/2 : ggp=gp.cnt/2 pos 10, 10+x : mes "Player"+a+" status" color 255, 0, 0 : boxf 10, 50+x,500,65+x : color 0,255,255 : boxf 10,50+x,100+mgrp,65+x color 0,255,255 : boxf 10, 70+x,10+gst, 85+x color 0,255,255 : boxf 10, 90+x,10+gdp,105+x color 0,255,255 : boxf 10,110+x,10+gsp,125+x color 0,255,255 : boxf 10,130+x,10+ggp,145+x color 0, 0, 0 pos 10, 30+x : mes "名前 : "+pdat.cnt pos 10, 50+x : mes "ライフ : "+lp.cnt+"/"+mlp.cnt pos 10, 70+x : mes "攻撃力 : "+st.cnt pos 10, 90+x : mes "守備力 : "+dp.cnt pos 10,110+x : mes "敏捷性 : "+sp.cnt pos 10,130+x : mes "潜在値 : "+gp.cnt loop return
981と982を組み合わせて勝手にやっておくれ。
誰が1000取るんだろうか?
みんなpart7逝きか…つまらんなぁ。
いるぞ。 いまソース見てツッコミどころをさがしてるトコだ。
>>986 お!いた。
かなりヘンテコだから、ある意味ツッコミ所は沢山あると思う。
結果楽しみにしてます。
とりあえずココは *@ peek x,agt,memory if m=0 : lp.cnt=lp.cnt+x ; ライフ値 if m=1 : st.cnt=st.cnt+x ; 攻撃力 if m=2 : dp.cnt=dp.cnt+x ; 守備力 if m=3 : sp.cnt=sp.cnt+x ; 敏捷性 if m=4 : gp.cnt=gp.cnt+x ; 潜在能力 m++ : memory++ if m>4 : m=0 if memory!=k : goto *@back こうしたほうがすっきりすると思うが。 repeat k peek x, agt, cnt lp.c+=m==0*x ; ライフ値 st.c+=m==1*x ; 攻撃力 dp.c+=m==2*x ; 守備力 sp.c+=m==3*x ; 敏捷性 gp.c+=m==4*x ; 潜在能力 m++ if m>4 : m=0 loop ただし、 repeat PLAYERS : a=cnt+1 のトコを repeat PLAYERS : a=cnt+1 : c=cnt にする。
>>988 レスついた(藁
確かにそこはループにすべきだ。頭が眠っていたとはいえ、やってはいけないミスだ。
ステータスがでるのはいいが、肝心のゲームができないのはアレかな(藁 でも、ステータス見るだけでも結構面白かったりする。 ってか、潜在能力ってなんだろ?自分で作っていて意味不明。
あとステータスがマイナスや0になる可能性もある。 ライフ値が0になったときはエラーでるぞ。
■0の対処 st.cnt=st.cnt-(st.cnt/STAT_FQ*STAT_FQ) dp.cnt=dp.cnt-(dp.cnt/STAT_FQ*STAT_FQ) sp.cnt=sp.cnt-(sp.cnt/STAT_FQ*STAT_FQ) gp.cnt=gp.cnt-(gp.cnt/STAT_FQ*STAT_FQ) ここで、数値に関係無く除算しているせいだなぁ。 単純にpeekで数値取得してるから、その時に1を足さないといけないか。 ■マイナスの対処 マイナスにならないように、絶対値を取得するようにしておこう。 あまり好ましくないコードかもしれないけど…。 if (st.cnt<0) : st.cnt=st.cnt*-1 if (dp.cnt<0) : st.cnt=st.cnt*-1 if (sp.cnt<0) : st.cnt=st.cnt*-1 if (gp.cnt<0) : st.cnt=st.cnt*-1 で対処かな。
if (st.cnt<0) : st.cnt=st.cnt*-1 if (dp.cnt<0) : dp.cnt=st.cnt*-1 if (sp.cnt<0) : sp.cnt=st.cnt*-1 if (gp.cnt<0) : gp.cnt=st.cnt*-1 の間違い。
スマン。勘違い。マイナスにはならん。
間違いは誰にでもありますヨ! 誰か面白い具合に、戦闘のルーチン作ってくれないだろうか。 やっぱり、俺が作るしかないのか…。
>>992 0にもまずならんが、一応対処したほうがいいぞ。
エラーでるのはそこじゃなくて、↓だ。
mgrp=lp.cnt*500/mlp.cnt
対策は、
lp.cnt=lp.cnt/LIFE_FQ : lp.cnt+=10 : mlp.cnt=lp.cnt
でいいだろ。
あと
st.cnt=st.cnt-(st.cnt/STAT_FQ*STAT_FQ)
は
st.cnt-=st.cnt/STAT_FQ*STAT_FQ
って書いた方がいい。
なるほど。 ■lp.cnt=lp.cnt/LIFE_FQ : lp.cnt+=10 : mlp.cnt=lp.cnt このコードに激しく納得。 ■st.cnt=st.cnt-(st.cnt/STAT_FQ*STAT_FQ) やってしまうんですよ。BASICライクな書き方…。 C言語でもたまにやってしまって鬱になる。
>やってしまうんですよ。BASICライクな書き方…。 なんで? まあ、どう書いても同じなら書きやすい方でいいんだが、 HSPは、 a = a + b より a+ = b の方が速いからな。 あと1000も譲るよ。
>なんで? N88-BASICを最近いぢったから。ただ、そんだけ。 1000は要らんわ。part7に逝くかもわからん。
1000 :
デフォルトの名無しさん :01/10/08 06:33
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。