HSP - Hot Soup Processor Part 6

このエントリーをはてなブックマークに追加
952917@雪の季節…鬱だ:01/10/08 01:19
>>950
すまない。逝ってくる。
HSPってユーザがほとんど中学生なんじゃなかったっけ?
しょうがないだろ。
>>953
消防だよ
次スレ、余計な自己主張はいらんて。そういう事書くと
他の言語マンセーな厨房が煽りに来て無駄に荒れる。
この展開はいい加減飽きた。一時の任意スレみたくマターリsageて逝こうぜ。
FAQを加筆して、もっと目立つようにすればいいのに。
もちろんその際に、
「HSPよくある質問 」を
「HSPよくある質問 (えいちえすぴい よくあるしつもん)」
に変更する。(w
なんかネタ不足で次スレの1の書き方の議論になってるのが笑える。
そんなこたぁどうだって良いじゃねえか。
お前等はこのスレが生きがいか?
そんなことを議論していること自体が次スレも
またネタスレにしかならんことを暗示していると思わんか?
そんなにごちゃごちゃ言うなら自分でたてろ。
俺は何でもいいからさ、つかはっきりいって次スレ要らないけどね。
技術的な話題ないなら、プログラマ板に移動してくれ・・・
それか、消えてくれよ・・・
959デフォルトの名無しさん:01/10/08 02:48
だめだ。
このスレはあっちにも立ったことがあるが、結局出戻ってきた。
961デフォルトの名無しさん:01/10/08 02:54
だめだ。
962958:01/10/08 02:54
>>960
そうなの?
なんじゃそりゃ・・・
>>962
マ板に立てても何故かまったくレスがつかず、
プログラム板にスレが立つと、何故か大盛況。
マ板のスレはますます廃れて沈む。

いつもこんな感じ。
964917@雪の季節…鬱だ:01/10/08 03:01
また、俺の書いた>>917の記事みたいにソース出すのも脳無いかね…。
ていうか、俺の頭は厨房レヴェルだからソース貼るしか脳無いのヨ。

書いたとしても、今CGI書いてるからチト後になるが…。
ていうより、HSPのプログラム真面目に書く気力がない。
965917@雪の季節…鬱だ:01/10/08 03:02
日本語が変だ…
HSP利用者割合

小学生 40%
中学生 30%
高校生 20%
大学生 5%
成人   4%
その他 1%
ム板住人のプライドがHSPコードを書くのを否定しているとか。
>>967
なんのプライドだよ(w
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%
932 が寝ちまったようなんで新スレ建てたぞ。

HSP - Hot Spup Processsor Part 7

http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1002478838
>>972
聖人って誰よ?
975973:01/10/08 03:26
スレタイトルがめちゃくちゃでした
976917@雪の季節…鬱だ:01/10/08 03:27
>>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)相変わらず変な日本語解説でスマソ。
977オサレ:01/10/08 03:30

HSP - Hot Spup Processsor Part 7
        ~        ~
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1002478838
978ズレタ:01/10/08 03:31

HSP - Hot Spup Processsor Part 7
        ~       ~
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1002478838
979917@雪の季節…鬱だ:01/10/08 04:01
とりあえず、1000になるまで書き込むか…
980917@雪の季節…鬱だ:01/10/08 04:20
改行多いぞゴラァと云われるんで、いくつかに分けて投稿。
とりあえず、サイズのある程度あるファイルなら何でも対戦できるファイルバトラーです。
ばとらーって時点で面白くならないよな。



■定数解説
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)
981917@雪の季節…鬱だ:01/10/08 04:20
#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
982917@雪の季節…鬱だ:01/10/08 04:21
*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
983917@雪の季節…鬱だ:01/10/08 04:24
981と982を組み合わせて勝手にやっておくれ。
984917@雪の季節…鬱だ:01/10/08 04:25
誰が1000取るんだろうか?
985917@雪の季節…鬱だ:01/10/08 04:29
みんなpart7逝きか…つまらんなぁ。
いるぞ。
いまソース見てツッコミどころをさがしてるトコだ。
987917@雪の季節…鬱だ:01/10/08 04:37
>>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
にする。
989917@雪の季節…鬱だ:01/10/08 05:00
>>988
レスついた(藁
確かにそこはループにすべきだ。頭が眠っていたとはいえ、やってはいけないミスだ。
990917@雪の季節…鬱だ:01/10/08 05:05
ステータスがでるのはいいが、肝心のゲームができないのはアレかな(藁
でも、ステータス見るだけでも結構面白かったりする。
ってか、潜在能力ってなんだろ?自分で作っていて意味不明。
991988:01/10/08 05:13
あとステータスがマイナスや0になる可能性もある。
ライフ値が0になったときはエラーでるぞ。
992917@雪の季節…鬱だ:01/10/08 05:27
■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
で対処かな。
993917@雪の季節…鬱だ:01/10/08 05:34
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
の間違い。
994988:01/10/08 05:41
スマン。勘違い。マイナスにはならん。
995917@雪の季節…鬱だ:01/10/08 05:47
間違いは誰にでもありますヨ!
誰か面白い具合に、戦闘のルーチン作ってくれないだろうか。
やっぱり、俺が作るしかないのか…。
996988:01/10/08 05:54
>>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
って書いた方がいい。
997917@雪の季節…鬱だ:01/10/08 06:03
なるほど。

■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言語でもたまにやってしまって鬱になる。
998988:01/10/08 06:13
>やってしまうんですよ。BASICライクな書き方…。
なんで?

まあ、どう書いても同じなら書きやすい方でいいんだが、
HSPは、
a = a + b
より
a+ = b
の方が速いからな。

あと1000も譲るよ。
999917@雪の季節…鬱だ:01/10/08 06:17
>なんで?
N88-BASICを最近いぢったから。ただ、そんだけ。

1000は要らんわ。part7に逝くかもわからん。
1000デフォルトの名無しさん:01/10/08 06:33
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。