トップページgamedev
1001コメント227KB

ソースを上げるスレッド

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/06 18:18ID:TUTRHoJP
特に特定のスレに当てはまるわけじゃないけど
何となくソースを上げたくなったときに公開するためのスレッド。

# 一種の隔離スレです。
00322601/11/17 13:09ID:???
>>31 からの続き
161,CharAt
177,Str(Len|Cmp|Cpy|Cat)
161,IsKanji
177,To(Upper|Lower)Str
161,FindChar
177,Val(Long|Float|Float2|Num)
177,(Copy|Fill)Memory
161,QSort
177,Cast(From|To)(Float|Double)
177,(Open|Close)File
177,Get(FileSize|FileMemory|ParentDir)
177,(Read|Write)(Data|Line|Byte|Word|DWord)
161,BltTrans
177,(|a)sin
177,(|a)cos
177,(|a)tan
169,atan2
169,pow
177,SetFind(File|Path)
177,Enable(Subdir|PackFile|DirListup)
177,Find(|All)File
177,Is(Match|Dir)
169,CheckDrive
169,GetFoundFile
177,SpriteBlt(|XY|Offset)
177,SpriteDraw(|Offset)
177,Sprite(Move|Copy|Visible)
177,SetSprite(|Rect|Offset|Rate|Animation(|2)|AniPat)
169,SpriteEnableColorKey
169,GetDateAndTime
177,(Get|Release)HDC
177,(Get|Set)Pixel
169,DrawLine
169,ChangeBright
169,IsPatMatch
177,(Create|Destroy)JoyStick
169,GetJoyStickCount
177,JoyStick(Init|SetMax|SelectDevice|Input|)
177,JoyStickIsKey(Push|Press)
Quotation="
Canceler=\
Commenter=//
CommenterFirstToken=0
BracketCount=1
BracketLeft=/*
BracketRight=*/
BracketColorIndex=5

以上。誰かの役に立ったら嬉しいです。
0033名前は開発中のものです。01/12/25 23:52ID:cgyXC09v
age
00342時間くらいかかってます01/12/26 17:18ID:QaCPTDIU
curses使ったテキストぷよぷよ。
ゲームはちゃんとできるが、あんまり短くしようとしてないのでプログラムは適当。
Windowsの人はhttp://www.cygwin.com/からsetup.exe落としてきて、
devel→gccにチェック入れてインストールして、
$ gcc puyo.c -lncurses
$ ./a.exe
として実行。
UNIX系の人はよしなに。
0035puyo.cと保存せよ!01/12/26 17:19ID:QaCPTDIU
#include <curses.h>
#include <sys/time.h>
#include <time.h>
#define check(p,d) ((field[(p)]+field[(p)+dird[(d)]])==0)
#define set(c) do{field[pos]=puyo[0]*c;field[pos+dird[dir]]=puyo[1]*c;}while(0)
char delf[7*14],field[7*14],puyo[2],nxt[2],dird[]={-7,-1,7,1};char *puyoc[]={
" ","[-]","[@]","[!]","[*]","[#]", "///"};int pos,dir;void view(){int i,j;
for(i=1;i<14;i++)for(j=0;j<7;j++){move(i-1, j*3);printw("%s", puyoc[field[i
*7+j]]);}}int fall(){int i,j,r=0;for(i=0;i<6;i++){for(j=12;field[i+j*7]&&j>0;j
--);for(;j>0;j--)if((field[i+j*7]=field[i+j*7-7])!=0)r=1;field[i]=0;}return r;}
int delp(int p,int d){int i,j,r=1;delf[p]=d+1;for(i=0;i<4;i++){j=p+dird[i];if(j
>=0&&delf[j]<d+1&&field[p]==field[j])r+=delp(j, d);}if(d)field[p]=0;return r;}
int delpuyo(){int i,r=0;bzero(delf, 7*14);for(i=0;i<7*13;i++)if(field[i]&&field
[i]<6&&delp(i,0)>3){delp(i,1);r=1;}return r;}void main(){int i,cnt,w,f=fileno(
stdin),c;fd_set fdset,rfdset;struct timeval tv;srand(time(NULL));bzero(field,7*
14);for(i=0;i<14;i++)field[i*7+6]=6;for(i=0;i<6;i++)field[13*7+i]=6;FD_ZERO(&
fdset);FD_SET(f,&fdset);tv.tv_sec=0;tv.tv_usec=100000;initscr();noecho();cbreak
();erase();nxt[0]=((rand()/10)%5)+1;nxt[1]=((rand()/10)%5)+1;while(1){dir=0;pos
=7+3;w=10;puyo[0]=nxt[0];puyo[1]=nxt[1];nxt[0]=((rand()/10)%5)+1;move(4,24);
printw("%s",puyoc[nxt[0]]);nxt[1]=((rand()/10)%5)+1;move(3,24);printw("%s",
puyoc[nxt[1]]);while(1){rfdset=fdset;if(select(f+1,&rfdset,NULL,NULL,&tv)>0){c=
getch();if(w<10)w+=2;if(c==' '&&check(pos,(dir+1)%4))dir=(dir+1)%4;if(c=='q'&&
check(pos+7,dir))exit(0);if(c==','&&check(pos-1,dir))pos--;if(c=='.'&&check(pos
+1,dir))pos++;}else cnt++;if(check(pos+7,dir)){if(++cnt>10){pos+=7;cnt=0;}}else
{if(--w<0){set(1);break;}}set(1);view();refresh();set(0);}while(1){while(fall()
){view();refresh();usleep(100000);}usleep(300000);if(!delpuyo())break;view();
refresh();usleep(300000);}}}

ていうか俺も暇人だな。
0036補足01/12/26 17:26ID:QaCPTDIU
>    ...char *puyoc[]={
>" ","[-]","[@]","[!]","[*]","[#]", "///"};...
 ↑ここの" "は、スペース3つだ。そのままこぴぺすると画面が崩れるぞ。
あと、操作は、','と'.'で左右、スペースで回転だ。
0037名前は開発中のものです。01/12/26 17:39ID:???
>>35
おおスゴイね。curses ってところが何とも渋い。
0038名前は開発中のものです。01/12/26 17:40ID:???
なにげに7行プログラミングスレのかほりが……。
0039名前は開発中のものです。01/12/26 17:46ID:QaCPTDIU
7行スレのオセロには感動した。
0040名前は開発中のものです。01/12/26 17:53ID:???
>>35 動いたよ〜ん。いいねいいね。
0041名前は開発中のものです。01/12/26 18:05ID:???
>>35
すげぇ(w
004234~3601/12/26 21:22ID:???
7行スレまだあったんだね。
http://pc.2ch.net/test/read.cgi/tech/984182993/
ぷよぷよはちょっと7行じゃ無理そうだなぁ。
#defineまでで5行あるし。
0043暇なのでもう一つ作った01/12/29 00:29ID:???
#include <curses.h>
#include <sys/time.h>
#include <time.h>
char *e="zzzqASAVANoAVASANoAarANuANoANuANrAaoANrANuANoANuANrANoASAPARAPARAPASA"
"NoANrANoANznANoANrANoASANoARANoARANoASANvANuBoBuANuGnANoMEoANoFuANoBsBsBoANuI"
"NDnLnENHuANoBznBoANuGnANoMEoANnGuANoBznBoANvASAPARANoAVASANoANrANuANoANuANrAN"
"oAaNANoAPARANCRAPANoAOAarANoANoANznANoBoANrAOAPANoARANoARANoASANoANzoANoANzoA"
"NoAZPAPAZPANzzzq",f[42*22+1],fk[42*22],*p[]={"(V","(D","(<","(=","h)","l)",
">)","=)"},*m[]={"%%","%%","@@","><"},t[]={' ','.','*','#'},d[]={-42,1,42,-1},
em[4],ed[4];int kn=0,k[99],kk[9999],kl[9999],kr[9999],ps=16*42+20,dr=1,ct=0,dt=
0,dd[]={'k','l','j','h'},v=0,ts=0,ep[]={10*42+20,10*42+20,10*42+20,10*42+20};
int nn(int c){return c==' '||c=='.'||c=='*';}int nw(int z){return nn(f[z])&&nn(
f[z+1]);}int ck(int p){int a=f[p],b=f[p+1];if(a=='#'||b=='#')return 3;if(a=='*'
||b=='*')return 2;if(a=='.'||b=='.')return 1;return 0;}int kc(int a, int b){int
d=(a/42==b/42)?((a%42)>(b%42))*2-1:(a>b)*84-42;for(;b!=a;b+=d)if(!nw(b))return
0;return 1;}void emv(int e){int i,j,z;if((i=fk[ep[e]])!=0){i--;switch(em[e]){
case 1:j=ep[e];if(e==3||(e==2&&abs((j%42)-(ps%42))+abs(j/42-ps/42)>30))goto ky;
if(j/42==ps/42&&kc(j,ps))ed[e]=((j%42)>(ps%42))?3:1;else if(j%42==ps%42&&kc(j,
ps))ed[e]=((j/42)>(ps/42))?0:2;else{j=d[(e&1)?(dr+2)%4:dr];for(z=ps;!fk[z];z+=j
);j=fk[z]-1;if (j>=0)ed[e]=kk[i*kn+j];}break;case 0:ky:j=ed[e];do{ed[e]=(rand()
/10)%4;}while(ed[e]==j||ck(ep[e]+d[ed[e]])>2);j=ep[e];if(j%42==ps%42||j/42==ps/
42)em[e]=1;break;case 2:j=d[(dr+2)%4];for(z=ps;!fk[z];z+=j);j=fk[z]-1;if (j>=0)
j=kk[i*kn+j];for(i=0;i<3;i++)if(ck(ep[e]+d[(i+j+1)%4])<3)break;ed[e]=(i+j+1)%4;
break;case 3:ed[e]=kk[i*kn+fk[10*42+20]-1];if(ep[e]==10*42+20)em[e]=0;break;}if
(em[e]<2&&((rand()/10)%20)==0)em[e]^=1;}i=ct;if(em[e]==2){if(i&1)return;else i
/=2;}if(em[e]==3)i=1;if(ed[e]&1||i&1){if(ck(ep[e]+d[ed[e]])<3)ep[e]+=d[ed[e]];
else ed[e]=(ed[e]+2)%4;}}void ev(int e){move(ep[e]/42,ep[e]%42);printw("%s",m[
em[e]]);}void kb(){int i=0;for(;i<22*44;i++)if (nw(i)&&nw(i-2)+nw(i+2)&&nw(i+42
)+nw(i-42)){k[kn++]=i;fk[i]=kn;}}int kd(){int i=0,j;for(;i<kn;i++)for(j=0;j<kn;
j++){if(k[i]/42==k[j]/42&&kc(k[i],k[j])){kl[i*kn+j]=abs((k[i]%42)-(k[j]%42));kk
[i*kn+j]=((k[i]%42)>(k[j]%42))?3:1;}if(k[i]%42==k[j]%42&&kc(k[i],k[j])){kl[i*kn
+j]=abs((k[i]-k[j])/42)*2;kk[i*kn+j]=((k[i]/42)>(k[j]/42))?0:2;}}}void wf(){int
i,x,y;for(i=0;i<kn*kn;i++)kr[i]=i/kn;for(y=0;y<kn;y++)for(x=0;x<kn;x++)if(kl[x*
kn+y])for(i=0;i<kn;i++)if(kl[y*kn+i])if(!kl[x*kn+i]||(kl[x*kn+y]+kl[y*kn+i])<kl
[x*kn+i]){kl[x*kn+i]=kl[x*kn+y]+kl[y*kn+i];kr[x*kn+i]=kr[y*kn+i];}for(y=0;y<kn;
y++)for(x=0;x<kn;x++){int n=kr[y*kn+x],m=x;for(;n!=y;n=kr[y*kn+n])m=n;kk[y*kn+x
]=kk[y*kn+m];}}void de(){int j=0;while(*e){int i,a=(*e<'a')?*e-'A':*e-'a'+26;i=
a%13;a/=13;for(i++;i;i--){f[j++]=t[a];if(a==1)ts++;}e++;}}void vw(){move(0,0);
printw("%s",f);}void st(int z){f[ps]=z?p[dr*2+(ct&1)][0]:' ';f[ps+1]=z?p[dr*2+(
ct&1)][1]:' ';}
0044つづき01/12/29 00:29ID:???
void main(){int i,w,f=fileno(stdin),c,k=0;fd_set fdset,rfdset;
struct timeval tv;srand(time(NULL));FD_ZERO(&fdset);FD_SET(f,&fdset);tv.tv_sec=
0;tv.tv_usec=200000;initscr();stdscr=newwin(22,42,0,0);noecho();cbreak();de();
kb();kd();wf();while(1){ct++;rfdset=fdset;if(select(f+1,&rfdset,NULL,NULL,&tv)>
0){k=getch();if(k=='q')exit(0);}for(i=0;i<4;i++)if(k==dd[i]&&ck(ps+d[i])<3)dr=i
;c=ck(ps+d[dr]);if(dt>=ts){move(10,16);printw("GAME CLEAR");refresh();exit(0);}
if(c<3&&(dr&1||ct&1)){ps+=d[dr];if(c==1)dt++;if(c==2){for(i=0;i<4;i++)if(em[i]
!=3){ed[i]=(ed[i]+2)%4;em[i]=2;}v=60;}}if(v&&--v==1){for(i=0;i<4;i++)if(em[i]<3
)em[i]=0;v=0;}if(ps==10*42+40)ps=10*42;else if(ps==10*42)ps=10*42+40;for(i=0;i<
4;i++)if(abs(ps-ep[i])<2){if(em[i]==2)em[i]=3;if(em[i]<2){move(10,16);printw(
"GAME OVER");refresh();exit(0);}}emv(0);emv(1);emv(2);emv(3);st(1);vw();ev(0);
ev(1);ev(2);ev(3);move(0,0);refresh();st(0);}}
0045いろいろ足りないけどもう限界01/12/29 00:30ID:???
今度はパックマン。
コンパイルの方法は>>34と同じ。Windowsでは試してないけどぷよぷよ同様いけると思う。
操作方法はviキーバインド('h'〜'l'で操作)。

一応各モンスターには性格付けしてる。
ドット全部食べてもクリアにならないことがあるけど許すように。

ふぅ。
0046名前は開発中のものです。01/12/29 00:56ID:???
もう無理矢理ですな。
0047名前は開発中のものです。01/12/30 13:33ID:???
#include <iostream.h>
#define hajime {
#define owari }
#define mona int

mona main()
hajime
mona giko;
cin >> giko;
return 0;
owari
0048名前は開発中のものです。02/01/14 00:22ID:wg4iGUmB
age
0049名前は開発中のものです。02/01/15 16:29ID:FPR5mgZK
age
0050名前は開発中のものです。02/01/15 16:38ID:???
<script>
alert("GAME OVER");
close();
</script>
0051名前は開発中のものです。02/01/15 17:08ID:trPF2jYB
WORD wver=MAKEWORD(2,2);
WSADATA wsa;
if(WSAStartup(wver,&wsa)!=0)error("winsock iniz fails");
if(atexit((void(*)(void))(WSACleanup))){
error("atecit(WSACleanup)fails");
exit(-1);

}
sockaddr_in saddr;
SOCKET sok=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
memset((char*)&saddr,0,sizeof(saddr));
saddr.sin_family=AF_INET;
saddr.sin_port=htons(2580);
bind(sok,(sockaddr*)&saddr,sizeof(saddr));
if(listen(sok,1)){
error("other server using this proctol");
exit(-1);

}
::AfxBeginThread(waiting,(void*)sok);
0052名前は開発中のものです。02/01/18 15:44ID:CNhUTHCR
補間関数。高速化しすぎて役立たず。

double getNeville(double t, double v0, double v1, double v2)
{
v0 = v1 + (v1 - v0) * (t - 1);
v1 = v2 + (v2 - v1) * (t - 2);
return v1 + (v1 - v0) * (t - 2) * 0.5;
}
0053名前は開発中のものです。02/01/18 18:14ID:B+awXMzd
意外に誰も作らないんでサクッと。

convert.pl--
# ソースコードを2chへの書き込み用に変換するPerlスクリプト
# perl convert.pl hoge.cとかやるとhoge.c.txtができる。

$tab = '&nbsp;' x 4;        # タブ幅4
open(IN, $ARGV[0]) or die;
open(OUT, "> $ARGV[0].txt") or die;
while (<IN>) {
    s/&/&amp;/g;
    s/</&lt;/g;
    s/>/&gt;/g;
    s/"/&quot;/g;
    s/ /&nbsp;/g;
    s/\t/$tab/g;
    print OUT;
}
close(OUT);
close(IN);
00545302/01/18 18:17ID:???
上手く行ったみたいやな。もういっちょテスト。

static uint8 *angle_t;
#define PRS 256

/* atanテーブルを作るらしい */
int angle_init(void) {
    angle_t = malloc(sizeof(uint8) * (PRS * 2 + 1));
    if (angle_t == NULL) return -1;
    angle_t += PRS;
    
    for (int i = -PRS; i <= PRS; i++) {
        double a = atan2(i, PRS);
        if (a > 0) a += PI2 / 256 / 2;
        else a -= PI2 / 256 / 2;
        angle_t[i] = a * 256 / P12;
    }
    return 0;
}

/* 0〜255で角度を返すらしい */
uint8 angle(int16 x, int16 y) {
    if (x == 0 && y == 0)
        return 0;
    if (y < x) {
        if (y > -x) {
            return angle_t[(int32) y * 256 / x];
        }
        return angle_t[(int32) -x * 256 / y] + 192;
    } else {
        if (y > -x) {
            return angle_t[(int32) -x * 256 / y] + 64;
        }
        return angle_t[(int32) y * 256 / x] + 128;
    }
}
00555302/01/18 18:19ID:???
というわけで、インデントつきで書き込めてコピペすればそのまま動く。
0056名前は開発中のものです。02/01/18 18:22ID:2cgx27pc
>>53
惜しい!。
s/&/&/g;
この部分は間違っていると思われ。
00575302/01/18 18:24ID:???
そうなん? もう寝るのでデバッグ頼む(おい
0058名前は開発中のものです。02/01/18 19:40ID:???
>>54
HSPプラグ員に死ぬほどあるよな。それ。
0059名前は開発中のものです。02/01/18 21:42ID:???
かちゅしゃの引用で見るとすごいことに(w
ま、クライアント側の問題なんだけど
0060名前は開発中のものです。02/01/18 21:53ID:???
行数制限を考慮して分割カキコする機能とか、
ログからプログラムを切り出す機能とかほしいね。
0061名前は開発中のものです。02/01/19 08:25ID:3R2CY6rZ
atoi()ってなんですか?
0062名前は開発中のものです。02/01/19 12:01ID:???
整数を文字列に変換する
0063名前は開発中のものです。02/01/19 15:55ID:???
>>62
逆だろ
0064名前は開発中のものです。02/01/22 01:12ID:???
atoi=alphabet to int
って覚えたけど、正確には違うんだろーな
0065名前は開発中のものです。02/01/22 04:37ID:???
atoi = ascii to int じゃねーの?
0066名前は開発中のものです。1/302/01/26 23:59ID:/Un10yYP
Private Sub Form_Load()
'Microsoft Visual Basic 6.0(SP5)
'FormのVisibleプロパティはFalse
'タイトルMsgBox格納変数
Dim slime As Integer
'最大HP格納変数
Dim slimebess As Integer
'ダメージ値格納変数
Dim dameji As Integer
'残りHP格納変数
Dim nokori As Integer
'敵の最大HP格納変数
Dim Drakey As Integer
'敵に与えたダメージ値格納変数
Dim E_dameji As Integer
'敵の残りHP格納変数
Dim E_nokori As Integer
'HPの初期値設定
nokori = 10
'敵のHPの初期値設定
E_nokori = 10

slime = MsgBox("ちょこっと戦う", , "スタート画面")

slime = MsgBox("ハァハァ(´Д`;)" & vbCrLf & "" & vbCrLf & _
"が、あらわれた!!" & vbCrLf & "あなたのHP・・・" & _
nokori & vbCrLf & "" & vbCrLf & "敵のHP・・・" & E_nokori, _
vbExclamation)
0067名前は開発中のものです。2/302/01/27 00:00ID:5zOjGYzx
'自分が生きているときの処理
You_living:

MsgBox "あなたの攻撃!!「クソスレたてんなやヴォケ」"
'乱数の初期化
Randomize
'敵に与えたダメージ
E_dameji = Int(Rnd * 3) + 1
'敵の状態
E_nokori = E_nokori - E_dameji

slime = MsgBox("ハァハァ(´Д`;)" & vbCrLf & "" & vbCrLf & _
"に" & E_dameji & "のダメージを与えた!" & vbCrLf & "" & _
vbCrLf & "ハァハァ(´Д`;)の 残HP " & E_nokori, , "戦闘中")
'敵の生死の判定
If E_nokori > 0 Then

GoTo E_living

Else

GoTo E_died

End If
'敵が生きていたときの処理
E_living:

MsgBox "ハァハァ(´Д`;)の攻撃!!" & vbCrLf & "" & vbCrLf & _
"「マルチたん・・・ハァハァ」"
'乱数の初期化
Randomize
'自分が受けたダメージ
dameji = Int(Rnd * 3) + 1
'自分の状態
nokori = nokori - dameji

slime = MsgBox("あなた" & vbCrLf & "" & vbCrLf & "は" & _
dameji & "のダメージを受けた!" & vbCrLf & "" & vbCrLf & _
"あなたの 残HP " & nokori, , "戦闘中")
'自分の生死の判定
If nokori > 0 Then

GoTo You_living

Else

GoTo You_died
End

End If
0068名前は開発中のものです。3/302/01/27 00:00ID:5zOjGYzx
'敵を倒したときの処理
E_died:

MsgBox "ハァハァ(´Д`;)を倒した!この世に平和が訪れた。" & _
vbCrLf & "" & vbCrLf & "HAPPY END"

End
'自分が倒されたときの処理
You_died:

MsgBox "あなたのスレは終了しました。(゚д゚)マズー"

End
End Sub
0069名前は開発中のものです。02/01/27 01:19ID:???
10 end
0070名前は開発中のものです。1/202/01/27 23:59ID:S3QJWc68
'ギコ追加
'レス68 3/3 の続き
'Ver2
'Microsoft VisualBasic6.0(SP5)
'敵を倒したときの処理
E_died:

MsgBox "ハァハァ(´Д`;)を倒した!"
nokori = 20
MsgBox "あなたのLVが上がった!" & vbCrLf & "" & vbCrLf & "HPがすべて回復した!" & _
vbCrLf & "HPの最大値が" & nokori & "になった!" & vbCrLf & "" & vbCrLf & "攻撃力が1あがった!!"

MsgBox "ROUND2 FIGHT!!"

'敵のHPの初期値設定
E_nokori = 20

slime = MsgBox("∧∧" & vbCrLf & "(゚Д゚)" & vbCrLf & "" & vbCrLf & _
"ギコが、あらわれた!!" & vbCrLf & "あなたのHP・・・" & _
nokori & vbCrLf & "" & vbCrLf & "敵のHP・・・" & E_nokori, _
vbExclamation)

You_livingAct2:

MsgBox "あなたの攻撃!!「ただスレ立ててみたかっただけだろう?」"
'乱数の初期化
Randomize
'敵に与えたダメージ
E_dameji = Int(Rnd * 4) + 1
'敵の状態
E_nokori = E_nokori - E_dameji

slime = MsgBox("∧∧" & vbCrLf & "(゚Д゚)" & vbCrLf & "" & vbCrLf & _
"に" & E_dameji & "のダメージを与えた!" & vbCrLf & "" & _
vbCrLf & "∧∧" & vbCrLf & "(゚Д゚)の 残HP " & E_nokori, , "戦闘中")

'敵の体力の判定
If E_nokori > 9 Then

GoTo ENEMY_living

Else
If E_nokori <= 9 And E_nokori > 0 Then

GoTo ENEMY_HONKI

Else

MsgBox "ギコたおした!"

End
End If
End If
' If E_nokori <= 0 Then
'
' End
'
' End If
' GoTo ENEMY_died
0071名前は開発中のものです。2/202/01/27 23:59ID:S3QJWc68
'敵が生きていたときの処理
ENEMY_living:

MsgBox "∧∧" & vbCrLf & "(゚Д゚)の攻撃!!" & vbCrLf & "" & vbCrLf & _
"「イッテヨシ!!」"
'乱数の初期化
Randomize
'自分が受けたダメージ
dameji = Int(Rnd * 1) + 1
'自分の状態
nokori = nokori - dameji

slime = MsgBox("あなた" & vbCrLf & "" & vbCrLf & "は" & _
dameji & "のダメージを受けた!" & vbCrLf & "" & vbCrLf & _
"あなたの 残HP " & nokori, , "戦闘中")

'自分の生死の判定
If nokori > 0 Then

GoTo You_livingAct2

Else

GoTo You_died
End

End If

ENEMY_HONKI:

MsgBox "  ∧∧" & vbCrLf & "∩(゚Д゚)ノの攻撃!!" & vbCrLf & "" & vbCrLf & _
"「ホンキデイクゾ ゴルア!!!!!」"
'乱数の初期化
Randomize
'自分が受けたダメージ
dameji = Int(Rnd * 5) + 3
'自分の状態
nokori = nokori - dameji

slime = MsgBox("あなた" & vbCrLf & "" & vbCrLf & "は" & _
dameji & "のダメージを受けた!" & vbCrLf & "" & vbCrLf & _
"あなたの 残HP " & nokori, , "戦闘中")

'自分の生死の判定
If nokori > 0 Then

GoTo You_livingAct2

Else

GoTo You_died
End

End If

End
0072名前は開発中のものです。02/01/28 02:30ID:mPt8rtel
>>66-71
いくらBASICだからって、VBでGOTO使わなくても…
0073名前は開発中のものです。02/01/28 02:39ID:Gl770+eW
たああああああああああああああああああああああのしいと思っているのですか?
アフォですかあなたは。
早く家に帰りなさい。

0074名前は開発中のものです。02/01/28 02:54ID:???
こういう長いのをうpする時には、途中はsage進行で
最後にageた方がいいぞ。
あがりっぱなしだとウザがられる事もあるからな。
0075名前は開発中のものです。1/202/01/29 00:02ID:???
'Microsoft Visual Basic 6.0(SP5)
'おにぎり追加
'Ver3
''レス71 2/2 の続き
'仲間を呼ぶ確率(1から6までの数値を取る)
Dim magisyan As Integer

'ギコを倒したときの処理
ENEMY_died:

MsgBox "ギコをやっつけた!"

nokori = 35

MsgBox "あなたのLVが上がった!" & vbCrLf & "" & vbCrLf & _
"HPがすべて回復した!" & vbCrLf & "HPの最大値が" & nokori & "になった!" _
& vbCrLf & "" & vbCrLf & "攻撃力が2あがった!!"
MsgBox "ROUND3 FIGHT!!"
'敵のHPの初期値設定
E_nokori = 30
slime = MsgBox("/■\" & vbCrLf & "(´∀` ∩" & vbCrLf & "" & vbCrLf & _
"おにぎりが、あらわれた!!" & vbCrLf & "あなたのHP・・・" & _
nokori & vbCrLf & "" & vbCrLf & "敵のHP・・・" & E_nokori, _
vbExclamation)
'自分の攻撃
You_livingAct3:
MsgBox "あなたの攻撃!!「誰か真剣に削除依頼だしてくれよ。」" & vbCrLf & "" _
& vbCrLf & "■■■■■■■■■■■ 終了 ■■■■■■■■■■■"
'乱数の初期化
Randomize
'敵に与えたダメージ
E_dameji = Int(Rnd * 3) + 4
'敵の状態
E_nokori = E_nokori - E_dameji

slime = MsgBox("/■\" & vbCrLf & "(´∀` ∩" & vbCrLf & "" & vbCrLf & _
"に" & E_dameji & "のダメージを与えた!" & vbCrLf & "" & _
vbCrLf & "/■\" & vbCrLf & "(´∀` ∩の 残HP " & E_nokori, , "戦闘中")
'敵の体力の判定
If E_nokori > 15 Then
GoTo Onigiri_living
Else
'おにぎりの残りHPが15以下のとき
If E_nokori <= 15 And E_nokori > 0 Then
GoTo Onigiri_Help
Else
GoTo Onigiri_died
End If
End If
'おにぎりのHPが16以上のとき
0076名前は開発中のものです。2/202/01/29 00:05ID:iGXUdj+v
Onigiri_living:

MsgBox "/■\" & vbCrLf & "(´∀` ∩の攻撃!!" & vbCrLf & "" & vbCrLf & _
"「おにぎりワッショイ!!」"
'乱数の初期化
Randomize
'自分が受けたダメージ
dameji = Int(Rnd * 3) + 3
'自分の状態
nokori = nokori - dameji

slime = MsgBox("あなた" & vbCrLf & "" & vbCrLf & "は" & _
dameji & "のダメージを受けた!" & vbCrLf & "" & vbCrLf & _
"あなたの 残HP " & nokori, , "戦闘中")
'自分の生死の判定
If nokori > 0 Then
GoTo You_livingAct3
Else
GoTo You_died
End If
'おにぎりのHPが15以下のとき
Onigiri_Help:
MsgBox "/■\" & vbCrLf & "(´Д` ∩は仲間を呼んだ!!" & vbCrLf & "" & vbCrLf & _
"「タスケテー!!!!!」"
'乱数の初期化
Randomize
'1から6までの数値を取る
magisyan = Int(Rnd * 6) + 1
'50%の確率で仲間がくる
'数値が3より大きいとき
If magisyan > 3 Then
'焼きおにぎりの攻撃処理
MsgBox " __" & vbCrLf & "/:∵:\" & vbCrLf & "(∵´∀`∩焼きおにぎりがやってきた!!" _
& vbCrLf & "" & vbCrLf & _
"「オニギリワショーイ!!!!!」"
'乱数の初期化
Randomize
'自分が受けたダメージ
dameji = 13
'自分の状態
nokori = nokori - dameji
slime = MsgBox("あなた" & vbCrLf & "" & vbCrLf & "は" & _
dameji & "のダメージを受けた!" & vbCrLf & "" & vbCrLf & _
"あなたの 残HP " & nokori, , "戦闘中")
'自分の生死の判定
If nokori > 0 Then
'自分のHPが1以上のとき
GoTo You_livingAct3
Else
GoTo You_died
End If
Else
'取り出した数値が3以下のとき。
MsgBox "しかし!助けは、こなかった・・・"
'ダメージを受けずに、自分のターンに行く
GoTo You_livingAct3
End If
Onigiri_died:
MsgBox "おにぎりをやっつけた!"
End
0077名前は開発中のものです。1/302/01/30 00:14ID:???
'Microsoft Visual Basic 6.0(SP5)
'モラ殿の追加
'Ver4
'自分が倒されたときのMsgBox処理変更
'連続攻撃のループ回数を格納する変数
Dim Renzoku As Integer


MsgBox "おにぎりをやっつけた!"

nokori = 50

MsgBox "あなたのLVが上がった!" & vbCrLf & "" & vbCrLf & "HPがすべて回復した!" _
& vbCrLf & "HPの最大値が" & nokori & "になった!" & vbCrLf & "" & vbCrLf & _
"攻撃力が2あがった!!"

MsgBox "FINALBATTLE FIGHT!!"
' 敵のHPの初期値設定
E_nokori = 45

slime = MsgBox("  ● " & vbCrLf & "∧((∧" & vbCrLf & "( ・∀・)" _
& vbCrLf & _
"モラ殿が、あらわれた!!" & vbCrLf & "あなたのHP・・・" & _
nokori & vbCrLf & "" & vbCrLf & "敵のHP・・・" & E_nokori, _
vbExclamation)

You_livingAct4:

MsgBox "あなたの攻撃!!「どんな良スレもいずれ終りが来る」"
'
'乱数の初期化
Randomize
'敵に与えたダメージ
E_dameji = Int(Rnd * 3) + 6
'敵の状態
E_nokori = E_nokori - E_dameji

slime = MsgBox("  ● " & vbCrLf & "∧((∧" & vbCrLf & "( ・∀・)" _
& vbCrLf & "" & vbCrLf & _
"モラ殿に" & E_dameji & "のダメージを与えた!" & vbCrLf & "" & _
vbCrLf & "  ● " & vbCrLf & "∧((∧" & vbCrLf & "( ・∀・)モラ殿の 残HP " _
& E_nokori, , "戦闘中")
0078名前は開発中のものです。1/302/01/30 00:17ID:???
'敵の生死の判定
If E_nokori > 0 Then

GoTo Tono_living

Else

GoTo Tono_died

End If

Tono_living:

'乱数の初期化
Randomize
'1から10までの数を取り出す
ghost = Int(Rnd * 10) + 1
'10を引いたとき(確率は10%)
If ghost > 9 Then

MsgBox "  ● " & vbCrLf & "∧((∧" & vbCrLf & _
"( ・∀・)モラ殿は用心棒を呼びつけた!!" & vbCrLf & "" & vbCrLf & _
"「一刀斎!そちの出番じゃ!」"
'ニギリ一刀斎の出現
MsgBox "\" & vbCrLf & "  \" & vbCrLf & "   X" & vbCrLf & "    ヾヽ" _
& vbCrLf & "     ヾ ヽ /■ヽ" & vbCrLf & "      \ (´∀` .)、" _
& vbCrLf & "       \ y ゞ ヽ" & vbCrLf & "         =∞=ゝゝ" _
& vbCrLf & "          丿ヽ  \" & vbCrLf & "          ヽ____ソ______ゝ" _
& vbCrLf & "          (Y_)   (Y_)" & "ニギリ一刀斎の攻撃!!" & vbCrLf & "" & vbCrLf & _
"「そこのお前、もう少し気配を消す修練を積んだほうがいい。」"

'自分が受けたダメージ
dameji = 9999
'自分の状態
nokori = nokori - dameji

slime = MsgBox("あなた" & vbCrLf & "" & vbCrLf & "は" & _
dameji & "のダメージを受けた!" & vbCrLf & "" & vbCrLf & _
"あなたの 残HP " & nokori, , "戦闘中")
0079名前は開発中のものです。3/302/01/30 00:18ID:yEwA5EvG
Else
'1-9を取り出すと、モラ殿の攻撃
MsgBox "  ● " & vbCrLf & "∧((∧" & vbCrLf & _
"( ・∀・)モラ殿の連続攻撃だ!!" & vbCrLf & "" & vbCrLf & _
"「うん、せいぜい頑張ってね。」"
'連続攻撃のループ処理
For Renzoku = 1 To 2
'乱数の初期化
Randomize
'自分が受けたダメージ
dameji = Int(Rnd * 3) + 3
'自分の状態
nokori = nokori - dameji

slime = MsgBox("あなた" & vbCrLf & "" & vbCrLf & "は" & _
dameji & "のダメージを受けた!" & vbCrLf & "" & vbCrLf & _
"あなたの 残HP " & nokori, , "戦闘中")

Next Renzoku

End If
'自分の生死の判定
If nokori > 0 Then

GoTo You_livingAct4

Else

GoTo You_died

End If


Tono_died:
'エンディング
MsgBox "HAPPY END"

End
'自分が倒されたときの処理
You_died:

slime = MsgBox("あなたのスレは終了しました。(゚д゚)マズー", vbCritical, "GAMEOVER")

End
End Sub
0080名前は開発中のものです。02/01/30 00:23ID:yEwA5EvG
>>77
'追加
'モラ殿の攻撃を決める乱数値格納変数
Dim ghost As Integer
0081社長02/01/30 00:24ID:???
次はマップ移動処理ですな。
0082名前は開発中のものです。02/01/30 01:29ID:???
終わったら、これのバイナリもアップしてくれな。
0083名前は開発中のものです。02/01/30 06:57ID:???
ついでにクロスプラットフォームで
0084名前は開発中のものです。02/01/30 09:40ID:???
あぷろだは?
0085名前は開発中のものです。1/202/01/31 01:00ID:???
'Microsoft Visual Basic 6.0(SP5)
'戦闘にすばやさの要素を加える
'Ver5
'テストバトルモード

Private Sub Form_Load()
'自分のすばやさの数値を格納する変数
Dim Oosasori As Integer
'敵のすばやさの数値を格納する変数
Dim Gaikotsu As Integer
'攻撃を仕掛けるのはどちらか、判定値を格納する変数
Dim Madoushi As Integer

'すばやさの判定処理
'自分が敵よりすばやさが上の場合と
'敵が自分よりすばやさが上の場合
'自分はすばやさを 10 とする
'敵のすばやさは 5 とする

Oosasori = 65

Gaikotsu = 90

'すばやさを比較する

If Oosasori > Gaikotsu Then
'自分のすばやさが上だったときの処理へ
GoTo W_Subayasa

Else
'自分と敵のすばやさが同じだったときの処理
If Oosasori = Gaikotsu Then
'乱数の初期化
Randomize
Madoushi = Int(Rnd * 100) + 1
'50%の確率で自分が攻撃できる
If Madoushi > 50 Then

MsgBox "あなたの攻撃!"
'敵の攻撃処理へ
Else

MsgBox "敵の攻撃!"
'自分の攻撃処理へ
End If

End If

'ここのEndはテスト用
End

'敵のすばやさが上だったときの処理へ
GoTo L_Subayasa

End If
0086名前は開発中のものです。2/202/01/31 01:02ID:bylwudl/
W_Subayasa:
'乱数値が6-100を取り出したとき、あなたの攻撃が優先される
'確率は95%
'乱数の初期化
Randomize
Madoushi = Int(Rnd * 100) + 1

If Madoushi > 5 Then

MsgBox "あなたの攻撃!"

Else
'すばやさが上でも、残り5%の確率で敵が攻撃してくる
MsgBox "敵の攻撃!"

End If
'敵の攻撃の処理をなんか書く
End
L_Subayasa:

'乱数値が6-100を取り出したとき、敵の攻撃が優先される
'確率は95%
'乱数の初期化
Randomize
Madoushi = Int(Rnd * 100) + 1

If Madoushi > 5 Then

MsgBox "敵の攻撃!"

Else
'すばやさが上でも、残り5%の確率であなたが攻撃できる
MsgBox "あなたの攻撃!"

End If
'自分の攻撃の処理をなんか書く
End

End Sub
0087名前は開発中のものです。02/01/31 01:06ID:???
'訂正
'敵の素早さが自分より上の時は、
Oosasori = 5

Gaikotsu = 10
'自分の素早さが上の時は
Oosasori = 10

Gaikotsu = 5
'この数値は2ケタに設定したいとき
Oosasori = 65

Gaikotsu = 90
0088名前は開発中のものです。1/302/02/01 00:28ID:???
Private Sub Form_Load()
'Microsoft Visual Basic 6.0(SP5)
'Ver7
'武器、防具を手に入れることにより、戦闘の
'勝敗の確率をある程度ユーザーが操作できるようにする。
'この要素をとりいれることで、戦闘の有利、不利を
'意図的に楽しめることが可能となる。
'Ver6/テストバトルモード
'今回は、敵の防御力が自分の攻撃力を上回ることはないものとする。

'MsgBox格納変数
Dim Meda As Integer
'武器を手に入れたときの攻撃値を格納する変数
Dim Rikanto As Integer
'防具を手に入れたときの防御値を格納する変数
Dim Shiryou As Integer
'武器の初期値
Rikanto = 0
'防具の初期値
Shiryou = 0
'ダメージ値格納変数
Dim dameji As Integer
'残りHP格納変数
Dim nokori As Integer
'敵に与えたダメージ値格納変数
Dim E_dameji As Integer
'敵の残りHP格納変数
Dim E_nokori As Integer
'敵に与えたダメージに武器の攻撃値を加えた値を格納する変数
Dim M_dameji As Integer
'敵から受けたダメージから、防御力を引いた値を格納する変数
Dim G_dameji As Integer
'HPの初期値設定
nokori = 20
'敵のHPの初期値設定
E_nokori = 20
MsgBox "Let's スタート!"
MsgBox "あなたは、モナーの街にたどり着きました。"
Meda = MsgBox("武器を買うときは「はい」を、防具を買うときは「いいえ」を押してください。", vbYesNo, "モナーの街")
If Meda = vbYes Then
MsgBox "モナーの剣を買った!攻撃力が 3 上がった!"
Rikanto = Rikanto + 3
Else
MsgBox "モナーの鎧を買った!防御力が 3 上がった!"
Shiryou = Shiryou + 3
End If
Meda = MsgBox("ハァハァ(´Д`;)" & vbCrLf & "" & vbCrLf & _
"が、あらわれた!!" & vbCrLf & "あなたのHP・・・" & _
nokori & vbCrLf & "" & vbCrLf & "敵のHP・・・" & E_nokori, _
vbExclamation)
'自分が生きているときの処理
0089名前は開発中のものです。2/302/02/01 00:30ID:???
You_living:

MsgBox "あなたの攻撃!!「クソスレばっかり上がってるだろ?」"

'乱数の初期化
Randomize
'敵に与えた素のダメージ
E_dameji = Int(Rnd * 6) + 1
'さらに武器を加えた総合ダメージ
M_dameji = E_dameji + Rikanto
'敵の状態
E_nokori = E_nokori - M_dameji

slime = MsgBox("ハァハァ(´Д`;)" & vbCrLf & "" & vbCrLf & _
"に" & M_dameji & "のダメージを与えた!" & vbCrLf & "" & _
vbCrLf & "ハァハァ(´Д`;)の 残HP " & E_nokori, , "戦闘中")
'敵の生死の判定
If E_nokori > 0 Then

GoTo E_living

Else

GoTo E_died

End If
'敵が生きていたときの処理
E_living:

MsgBox "ハァハァ(´Д`;)の攻撃!!" & vbCrLf & "" & vbCrLf & _
"「あかりたん・・・ハァハァ」"
'乱数の初期化
Randomize
'自分が受けたダメージ
dameji = Int(Rnd * 4) + 1
'自分が受けたダメージから、防御力の値を引く
G_dameji = dameji - Shiryou
'総合ダメージが 0 より下のとき(マイナスのとき)
If G_dameji <= 0 Then
'受けるダメージは 0 になる(ダメージを受けない)
G_dameji = 0

Else
'防御力の値を引いた残りの値(実際に受けるダメージ)
G_dameji = G_dameji

End If

0090名前は開発中のものです。3/302/02/01 00:31ID:???
'自分の状態
nokori = nokori - G_dameji

slime = MsgBox("あなた" & vbCrLf & "" & vbCrLf & "は" & _
G_dameji & "のダメージを受けた!" & vbCrLf & "" & vbCrLf & _
"あなたの 残HP " & nokori, , "戦闘中")
'自分の生死の判定
If nokori > 0 Then

GoTo You_living

Else

GoTo You_died
End

End If



'敵を倒したときの処理
E_died:

MsgBox "ハァハァ(´Д`;)を倒した!この世に平和が訪れた。" & _
vbCrLf & "" & vbCrLf & "HAPPY END"

End
'自分が倒されたときの処理
You_died:

MsgBox "あなたのスレは終了しました。(゚д゚)マズー"

End

End Sub
0091名前は開発中のものです。1/302/02/01 00:32ID:???
Private Sub Form_KeyPress(keyascii As Integer)

'Microsoft VisualBasic6.0(SP5)
'Ver8
'移動処理テスト
'Formに、ラベルを1つはる
'Formの大きさは、4785*1800
'そのラベルがテンキーの方向に移動する
'ラベルのオブジェクトは Label1 とする
'ラベルの大きさは、 495*375
'敵がランダムで出現する処理をテストで入れた
'右に動くと、ランダムで敵の出現
'移動に関して、テンキーの押しっぱなしも可能

'敵の出現条件格納変数
Dim A_Sasori As Integer
'座標の数を格納する変数
Dim hosuu As Integer
hosuu = 0


'Form_KeyPresssの、第一引数に代入する
Select Case keyascii
'第一引数に入れる値が、vbKey2 のとき
Case vbKey2

hosuu = Label1.Top

If hosuu >= 960 Then
'値が足されないから進まない
'つまり、キャラの動きを止める
Label1.Top = Label1.Top + 0


Else
Label1.Top = Label1.Top + 100
'100 加えて、Y座標を移動する

End If
'第一引数に入れる値が、vbKey6 のとき
Case vbKey6

'6 が押されたとき
'X座標の値を変数に入れる
hosuu = Label1.Left
'X座標が 4080 以上だったときの処理
If hosuu >= 4080 Then
'値が足されないから進まない
'つまり、キャラの動きを止める
Label1.Left = Label1.Left + 0
0092名前は開発中のものです。2/302/02/01 00:33ID:???
Else
'100 加えて、X座標を移動する
Label1.Left = Label1.Left + 100
'キャラ移動中に乱数の初期化
Randomize
'1-100の乱数値を取り出す
A_Sasori = Int(Rnd * 100) + 1
'10%の確率で敵を出現させる
If A_Sasori > 90 Then

MsgBox "荒らしがあらわれた!"

Else

End If
End If
'第一引数に入れる値が、vbKey4 のとき
Case vbKey4

hosuu = Label1.Left
'0 より低い座標のとき
If hosuu <= 0 Then
'引く値はないので、戻らない
Label1.Left = Label1.Left - 0

Else
'X座標から常に100 引く
Label1.Left = Label1.Left - 100

End If
'第一引数に入れる値が、vbKey8 のとき
Case vbKey8

hosuu = Label1.Top
'0 より低い座標のとき
If hosuu <= 0 Then
'引く値はないので、戻らない
Label1.Top = Label1.Top - 0

Else
'100 引いて、Y座標を移動する
Label1.Top = Label1.Top - 100

End If
End Select

End Sub
0093名前は開発中のものです。3/302/02/01 00:34ID:am0ZkQGt
Private Sub Form_Load()

'キャラクターをはじめに表示する座標
Label1.Left = 0
Label1.Top = 0


End Sub
0094名前は開発中のものです。02/02/01 01:45ID:Zv95eDhl
ぷよぷよやぱっくまん、確かに良くできているが、残念な点がいくつか。
・冗長な処理がいくつかある
・コンパイラ警告が頻発@gcc
・ANSI-Cに従っていない

7行スレの名物コテハンのトリッキーの1は、
そういうスキの一切ないプログラムを書くから恐ろしい。
最終的に6行にしたオセロや、7行マインスイーパを参考に、
是非是非書き直して、あの感動をもう一度味わせてください(笑)

トリッキーの1、このスレに来ないかなぁ。
0095馬糞ウニげろげろ02/02/01 01:58ID:???
!!VP1.0
# c[ 0- 3]
# c[ 4- 7]
# c[ 8-11]
# c[32].x
# c[33].xyz
# c[33].w
DP4 R0.x,c[ 0],v[OPOS];
DP4 R0.y,c[ 1],v[OPOS];
DP4 R0.z,c[ 2],v[OPOS];
DP4 R0.w,c[ 3],v[OPOS];
ADD R2.xyz,c[33],-R0;
DP3 R2.w,R2,R2;
RCP R2.w,R2.w;
MUL R2,R2,R2.w;
MUL R2,R2,c[34].x;
ADD R0.xyz,R0,R2;
DP4 o[HPOS].x,c[ 4],R0;
DP4 o[HPOS].y,c[ 5],R0;
DP4 o[HPOS].z,c[ 6],R0;
DP4 o[HPOS].w,c[ 7],R0;
DP3 R1.x,c[ 8],v[NRML];
DP3 R1.y,c[ 9],v[NRML];
DP3 R1.z,c[10],v[NRML];
DP3 R1.w,R1,R1;
RSQ R1.w,R1.w;
MUL R1.xyz,R1,R1.w;
MOV R2.xy,R1.z;
MOV R2.w,c[32].x;
LIT R2,R2;
MOV o[COL0].xyz,R2.y;
MOV o[COL1].xyz,R2.z;
DP3 R0.w,R0,R0;
RSQ R0.w,R0.w;
MUL R0,R0,R0.w;
DP3 R2.w,R0,R1;
ADD R2.w,R2.w,R2.w;
MAD R2.xyz,R1,-R2.w,R2;
MOV o[TEX0].xy,R2;
END
0096馬糞ウニげろげろ02/02/01 01:59ID:???
!!VSP1.0
# v[ 0].xyz
# v[ 0].w
# c[ 0- 3]
# c[33].xyz
# c[33].w
MOV R0.xyz,v[0];
SGE R0.w,R0.w,R0.w;
DP4 R1.x,c[ 0],R0;
DP4 R1.y,c[ 1],R0;
DP4 R1.z,c[ 2],R0;
MOV R1.w,v[0].w;
MOV c[33],R1;
END
0097名前は開発中のものです。02/02/01 04:55ID:???
おい、そこの「馬糞ウニげろげろ」。
ちょっとこっち来いや。もっとうまいアセンブラコードがこっちにあるぜ。
http://www.ugtop.com/spill.shtml

0098名前は開発中のものです。02/02/02 06:31ID:???
▼゚Д。▼カフッ▼゚Д。▼カフッ
0099名前は開発中のものです。02/02/02 10:20ID:???
#include <stdlib.h>
#include <time.h>
#include <curses.h>
char b[36];int p[16],t;WINDOW *w;
disp_board(int t){int i;for(i=0;i<16;i++){if(p[i]==15)sprintf(b," ");else sprintf(b,"%2d",p[i]+1);
mvwaddstr(w,2*(i/4)+2,3*(i%4)+4,b);}sprintf(b,"%d Step",t); mvwaddstr(w,3,44,b);}
getspc(){int i;for(i=0;i<16;i++)if(p[i]==15)return i;return -1;}
init_game(){int i,x;initscr();noecho();cbreak();w=newwin(LINES,COLS-1,0,0);srand(time(NULL));
for(i=0;i<4;i++){mvwaddstr(w,i*2+1,3,"+--+--+--+--+");
mvwaddstr(w,i*2+2,3,"| | | | |");}mvwaddstr(w,9,3,"+--+--+--+--+");for(i=0;i<16;i++)p[i]=i;t=0;
while(t<160){x=getspc();switch(rand()%4){case 0:if(x/4)move_panel(x,x-4);break;
case 1:if((x/4)!=3)move_panel(x,x+4);break;case 2:if((x%4)!=3)move_panel(x,x+1);break;
case 3:if(x%4)move_panel(x,x-1);break;}}t=0;disp_board(t);}
move_panel(int d, int s){int i;p[d]=p[s];p[s]=15;t++;
if(s==15){for(i=0;i<16;i++)if(p[i]!=i)return 0;return 1;}return 0;}
int main(void){char r;int i,c,e=0,f=0;init_game();wrefresh(w);t=0;
while(!e){c=getspc();r=wgetch(w);f=0;switch(r){case 'x':case 'j':case '2':
if(c/4)f=move_panel(c,c-4);break;case 'e':case 'k':case '8':if((c/4)!=3)f=move_panel(c,c+4);break;
case 's':case 'h':case '4':if((c%4)!=3)f=move_panel(c,c+1);break;case 'd':case 'l':case '6':
if(c%4)f=move_panel(c,c-1);break;case 'q':case 0x1b:e=1;sleep(5);break;}disp_board(t);wrefresh(w);
if(f){mvwaddstr(w,14,43,"Cleared !!");wrefresh(w);sleep(10);break;}}wclear(w);wrefresh(w);endwin();return 0;}
01009902/02/02 10:25ID:GSAKw8sm
このソースは15パズルです。
テンキー、vi、wordstar のいずれでも操作できます。
35, 43の作者とは別人ですが、
自分もcurses環境(ちなみにcygwin)で作りました。

ちなみに自動的に解法を表示するとかいう機能はありません。
(今月号のCマガによるとかなり面倒らしい)

ついでに100ゲットズサー。
0101名前は開発中のものです。02/02/02 13:23ID:???
//あるマスの移動コストの計算
void CalculateMoveCostASquare(int type, int move, int sx, int sy)
{
int lp, xx, yy, min, cost;

//範囲外
if(sx < 0 || sx >= MAP_X || sy < 0 || sy >= MAP_Y)
return;

//進入不可能
cost = m_movecost[type][m_mapchipatb[m_mapchipset * MAPCHIPMAX + m_map_geo[sy][sx] ].atb];
if(cost == -1
|| m_map_magic[sy][sx].kind == GM_SANCTUARY)
return;

//一番少なく進入出来るところをチェック
xx = sx + 1; yy = sy;
min = 999999;
for(lp = 0; lp < 4; lp ++) {
if(xx >= 0 && xx < MAP_X && yy >= 0 && yy < MAP_Y) {
if(mgm_move_cost[yy][xx] != -1 && mgm_move_cost[yy][xx] < min)
min = mgm_move_cost[yy][xx];
}
xx += cpu_dx[lp];
yy += cpu_dy[lp];
}
//ここには進入できない
if(min == 999999 || cost + min > move)
return;

if((mgm_move_cost[sy][sx] == -1 || cost + min < mgm_move_cost[sy][sx])
&& (m_map_unit[sy][sx] == UNITMAX
|| (CheckBelong(m_unit[m_map_unit[sy][sx]].belong, m_unit[mgm_unit].belong) == TRUE
|| (type == MT_FLYING && m_unit[m_map_unit[sy][sx]].movetype != MT_FLYING))))
mgm_move_cost[sy][sx] = cost + min;
else
return;

if(m_map_unit[sy][sx] == UNITMAX)
m_map_chk[sy][sx] = 0;

CalculateMoveCostASquare(type, move, sx + 1, sy);
CalculateMoveCostASquare(type, move, sx - 1, sy);
CalculateMoveCostASquare(type, move, sx, sy + 1);
CalculateMoveCostASquare(type, move, sx, sy - 1);

return;
}
010210102/02/02 13:25ID:???
捻りの無い駄目ソースをウプ
0103名前は開発中のものです。02/02/11 12:28ID:???
0104名前は開発中のものです。02/02/12 11:26ID:???
ブロックの無いブロック崩しなんだけど
もうちょっとソース絞れませんか?
http://isweb38.infoseek.co.jp/computer/honten1/dat/omega0028.lzh
0105名前は開発中のものです。02/02/12 14:06ID:???
>>104
403になるぞ
ファイルもう無いのか?
0106名前は開発中のものです。02/02/12 14:25ID:???
これならどーだ
http://isweb34.infoseek.co.jp/computer/leftwall/pingpong2.lzh
0107名前は開発中のものです。02/02/12 14:48ID:???
>>106
またもや403
iswebってファイルの直リンできるのか?
0108名前は開発中のものです。02/02/12 16:11ID:???
今度はこれで
http://isweb34.infoseek.co.jp/computer/leftwall/index.html
0109名前は開発中のものです。1/302/02/17 01:08ID:???
'Microsoft Visual Basic 6.0(SP5)
'Formに、ラベルとコマンドボタンとタイマーを設置する
'ラベルのオブジェクトは、label1とする
'コマンドボタンのオブジェクトは、Command1とする
'タイマーのオブジェクトは、Timer1とする
Option Explicit
'全ての文字を表示したか判定するフラグ
Public Stoneman As Boolean

Private Sub Command1_Click()
'タイマーイベント発動
Timer1.Enabled = True
'200間隔
Timer1.Interval = 200
'タイマーイベントプロシージャの呼び出し
Call Timer1_Timer

End Sub

Private Sub Form_Load()
'フラグ初期値は偽に設定する
Stoneman = False

End Sub
'タイマーイベントでどんなことをさせるのか?の処理
Private Sub Timer1_Timer()
'文章の型を決める変数
Static golem(4) As String
'配列に、格納する文章数を格納する変数
Static D_Andy As Integer
'取り出していない残りの文字数を格納する変数
Static t As Integer
'Mid関数で取り出した文字を保持しておく変数
Static D_Madou As String
'Len関数にて、取り出した全体の文字数を格納する変数
Dim Dragon As Integer
0110名前は開発中のものです。2/302/02/17 01:10ID:???
golem(0) = "レッド「本当は何を知りたい?俺が後悔しているかどうか、か?」"
golem(1) = "レッド「・・・後悔しなかった日は一日とてないよ。こうなった事をじゃない。当時の自分を振り返って言うんだ」"
golem(2) = "レッド「・・・ヤツに言ってやりたい。バカをするなと言ってやりたい。世の中の事を教えたい・・・でも、出来ない」"
golem(3) = "レッド「ガキの頃の俺は遠くに去り、残ったのは老いぼれの自分だ」"
golem(4) = "レッド「時間は戻らない」"
'Len関数で、全体の文字数を取得
Dragon = Len(golem(D_Andy))
'1文字ずつ取るから、1ずつ値を増やす
t = t + 1
'Mid関数で、どの文字を取得するか設定する
D_Madou = D_Madou + Mid(golem(D_Andy), Dragon - (Dragon - t), 1)
'取り出した文字を保持しつつ、表示する
Label1.Caption = D_Madou
'増減値が、全体の文字数を超えたとき
If Dragon < t Then
'増減値をゼロにもどす
t = 0
'保持している文字をクリアする
D_Madou = ""
'全ての文字を表示したので、フラグを真に
Stoneman = True
'一つの配列の文が終わるたび、配列の値を1増やす
D_Andy = D_Andy + 1
'配列の数が設定した値を超えたときのエラ−防止処理
If D_Andy > 4 Then
'初めの配列の値に戻す
D_Andy = 0

End If
'タイマーイベントを止めるかどうかの
'判定プロシージャへ行く
Call Hantei

End If

End Sub
0111名前は開発中のものです。3/302/02/17 01:11ID:???
'タイマーイベントを止めるかどうかの判定処理
Private Sub Hantei()
'フラグが真の時
If Stoneman = True Then
'タイマーイベント終了
Timer1.Enabled = False

End If

End Sub
0112名前は開発中のものです。02/02/17 01:16ID:kh4ENDqz
'「ファミコン探偵倶楽部」みたいな、一文字ずつ表示するプログラムです。
'ユーザに、一文字ずつ目で追わせることで、より文章を読ませるような効果があると
'思います。
'APIとか使えば、もっとすごいと思いますが、ボクは知りません。
'だから、今までクソの役にも立たんと思っていた、Mid関数やLen関数を使いました。
'それをタイマーイベントと組み合わせると、こんなことができるとは思いませんでした。
'仕事中に関係ないことしてて、職場のみなさんごめんなさい。
'そして、文字列処理系関数、今までナメてました。ごめんなさい・・・そして、ありがとう。
0113名前は開発中のものです。02/04/12 14:58ID:???
0114名前は開発中のものです。02/04/19 00:21ID:Xvr/0hME
>>8-12 のソースハケーン
http://www.nara-edu.ac.jp/~asait/open_gl/opengl.htm
0115名前は開発中のものです。02/04/28 10:29ID:???
sage
0116名前は開発中のものです。02/06/27 03:59ID:???
ageというか。
0117名前は開発中のものです。02/06/27 04:02ID:???
>>116 この後、どうするつもり?
0118名前は開発中のものです。02/06/27 06:27ID:???
http://www.otafuku.co.jp/skatei/IMG/100113.JPG
意味も無くソースを上げてみる。
0119名前は開発中のものです。02/06/27 06:41ID:4.aWgtjA
 ⌒ \/ | | -t- |   十_” | | 十  十
 ─ ∠_   ノ  し   〜′ | ー  し |  O  十
                             | \
                  、、、, ,、,
                 /二二二\
                  /_____ヽ
                 /_______ヽ
               /___/____|
               | <∩>ハ<∩>|
       >(°)    |二二二二二二二 |
         (⌒/   |/WWWWWWヽ|
          〃    \MMMMMM/
        / ̄ ̄ヽ_/\_____/ \_/ ̄\
0120xxx.h no.102/07/28 15:24ID:???
#if !defined (__PDT10APIHDR_H__)
#include <windows.h>
struct PictureInfo {
long left,top; //画像を展開する位置
long width; //画像の幅(pixel)
long height; //画像の高さ(pixel)
WORD x_density; //画素の水平方向密度
WORD y_density; //画素の垂直方向密度
short colorDepth; //1画素当たりのbit数
HLOCAL hInfo; //画像内のテキスト情報
};
struct PDT10 {
char type[8];
DWORD size;
int width;
int height;
int pos_w;
int pos_h;
int more_comp_adrs;
};
typedef PDT10 PDT,* PPDT;
#if defined _DEBUG
void DbgDump(int x)
{
char buf[32];

wsprintf(buf, "%x", x);

MessageBox(NULL, buf, "debug", MB_OK);
}
0121xxx.h no.202/07/28 15:25ID:???
void DbgDump(char* dump_string)
{
char str[64];

memcpy(str, dump_string, 63);
str[63] = '\0';

MessageBox(NULL, str, "debug", MB_OK);
}

inline void CHECK()
{
MessageBox(NULL, "check", "check", MB_OK);
}

#else
0122xxx.h no.302/07/28 15:26ID:???
#define DbgDump(x) ;
#define CHECK() ;

#endif //_DEBUG

extern "C" int __stdcall GetPluginInfo(int infono, LPSTR buf, int buflen);

extern "C" int __stdcall IsSupported(char* filename, DWORD dw);

extern "C" int __stdcall GetPictureInfo(LPSTR buf, long len, unsigned int flag, PictureInfo *lpInfo);

extern "C" int __stdcall GetPicture(LPSTR buf, long len,unsigned flag, HANDLE* pHBInfo, HANDLE* pHBm,
FARPROC lpPrgressCallback(int, int, long), long lData);

extern "C" int __stdcall GetPreview(LPSTR buf, long len, unsigned int flag,
HANDLE* pHBInfo, HANDLE* pHBm,
FARPROC lpPrgressCallback(int, int, long), long lData);
0123xxx.h no.402/07/28 15:26ID:???
class CFile {
HANDLE file;

public:

CFile() : file(NULL)
{
}

~CFile()
{
close();
}
0124xxx.h no.502/07/28 15:27ID:???
BOOL open(char* name)
{
close();

if(name) {
file = CreateFile(name, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL |
FILE_FLAG_SEQUENTIAL_SCAN, NULL);

if(file != INVALID_HANDLE_VALUE) {
return (TRUE);
}
}

file = NULL;
return (FALSE);
}
0125xxx.h no.602/07/28 15:27ID:???

void close()
{
if(file) {
CloseHandle(file);
file = NULL;
}
}

BOOL read(void* buf, DWORD read_bytes, DWORD* read)
{
if(buf && read_bytes && read && file) {
if(ReadFile(file, buf, read_bytes, read, NULL)) {
if(*read == read_bytes) {
return (TRUE);
}
}
}

return (FALSE);
}
0126xxx.h no.702/07/28 15:28ID:???
void seek(long pos, int start_pos = FILE_BEGIN)
{
if(file) SetFilePointer(file, pos, NULL, start_pos);
}
};
class memory {
DWORD* m;
public:
memory() : m( NULL )
{
}
0127申し訳ありません…02/07/28 15:30ID:???
ここまで書いておいてアク禁が怖くなりました…
別の所にファイルをうpします…
0128上げますた02/07/28 15:39ID:???
Susieプラグイン用のVisualArtsの画像読み出しプラグインソースです。
ttp://kari.to/upload/source/d/2249.rar
0129おもしろいものが02/08/12 16:53ID:???
見たいのでage第二段。
0130名前は開発中のものです。02/08/12 17:28ID:???
見たい見たいと騒ぐだけで何も作らないクレクレ厨が発生したので sage。 
0131名前は開発中のものです。02/09/25 00:34ID:???
保守さげ
■ このスレッドは過去ログ倉庫に格納されています