ソースを上げるスレッド
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/06 18:18ID:TUTRHoJP何となくソースを上げたくなったときに公開するためのスレッド。
# 一種の隔離スレです。
0002名無しさん@お腹いっぱい。
01/11/06 18:52ID:???#define ver "read.cgi ver6.01 (01/11/15)"
int main(int)
{
printf("ヒロヒト。\n");
}
0003名無しさん@お腹いっぱい。
01/11/06 18:54ID:???それじゃコンパイラ通らない。
つか、もっと役に立つか楽しいのうぷすれ。
0004名無しさん@お腹いっぱい。
01/11/06 18:56ID:???0005名無しさん@お腹いっぱい。
01/11/06 18:56ID:???0006名無しさん@お腹いっぱい。
01/11/06 19:00ID:???楽しそうなゲーム・・・
探そうかな。
0007名無しさん@お腹いっぱい。
01/11/06 19:40ID:???0008名無しさん@お腹いっぱい。
01/11/06 21:22ID:???#pragma warning(disable : 4244)
#include <GL/glut.h> /* glaux を glut にする */
#include <stdlib.h>
#include <math.h>
void axis(GLfloat d, GLfloat s);
void subaxis(GLfloat d, GLfloat s);
char TitleString[] = "双曲放物面";
GLfloat eye[]={ 40.0, 10.0, 20.0 };
GLfloat v[40][40][3], n[40][40][3];
GLfloat light_ambient[] = { 0.2, 0.2, 0.2, 1.0};
GLfloat light_diffuse[] = { 0.5, 0.5, 0.5, 1.0};
GLfloat light_specular[] = { 0.5, 0.5, 0.5, 1.0};
GLfloat mat_ambient1[] = { 0.7, 0.7, 0.7, 1.0 },
mat_diffuse1[] = { 1.0, 1.0, 1.0, 1.0 },
mat_specular1[] = { 1.0, 1.0, 1.0, 1.0 },
mat_shininess1[] = { 100.0 };
GLfloat mat_ambient[] = { 0.5, 0.5, 0.7, 0.85 },
mat_diffuse[] = { 0.1, 0.5, 0.8, 0.85 },
mat_specular[] = { 1.0, 1.0, 1.0, 0.85 },
mat_shininess[] = { 100.0 };
void compute(void)
{
float x,y,z,r;
int i,j;
for(i=0; i<40; i++){
for(j=0; j<40; j++){
z = (float)i/10.0 - 2.0;
x = (float)j/10.0 - 2.0;
y = z*z - x*x;
r = sqrt((2.0*x)*(2.0*x) + 1.0 + (2.0*z)*(2.0*z));
v[i][j][0] = (GLfloat)x;
v[i][j][1] = (GLfloat)y;
v[i][j][2] = (GLfloat)z;
n[i][j][0] = (GLfloat)((2.0*x)/r);
n[i][j][1] = (GLfloat)(1.0/r);
n[i][j][2] = (GLfloat)(-(2.0*z)/r);
}
}
}
0009名無しさん@お腹いっぱい。
01/11/06 21:23ID:???{
GLfloat light0[] = { 100.0, 0.0, 0.0, 1.0 },
light1[] = { 0.0, 100.0, 0.0, 1.0 };
glLightfv(GL_LIGHT0, GL_POSITION, light0);
glLightfv(GL_LIGHT1, GL_POSITION, light1);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
glEnable(GL_LIGHTING);
glEnable(GL_DEPTH_TEST);
}
void display(void) /* CALLBACK を消す */
{
GLfloat d = 0.05, s = 2.0;
int i,j;
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(eye[0], eye[1], eye[2], 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR,light_specular);
glLightfv(GL_LIGHT1, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT1, GL_SPECULAR,light_specular);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ZERO);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient1);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse1);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular1);
glMaterialfv(GL_FRONT, GL_SHININESS,mat_shininess1);
axis(d,s);
glDepthMask(FALSE);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS,mat_shininess);
0010名無しさん@お腹いっぱい。
01/11/06 21:24ID:???for(i=0; i<39; i++){
glBegin(GL_TRIANGLE_STRIP);
for(j=0; j<40; j++){
glNormal3f(n[i][j][0], n[i][j][1], n[i][j][2]);
glVertex3f(v[i][j][0], v[i][j][1], v[i][j][2]);
glNormal3f(n[i+1][j][0],n[i+1][j][1],n[i+1][j][2]);
glVertex3f(v[i+1][j][0],v[i+1][j][1],v[i+1][j][2]);
}
glEnd();
}
glDepthMask(TRUE);
glDisable(GL_BLEND);
glFlush ();
}
0011名無しさん@お腹いっぱい。
01/11/06 21:25ID:???{
glPushMatrix();
subaxis(d, s);
glPopMatrix();
glPushMatrix();
glRotatef(90.0, 1.0, 0.0, 0.0);
subaxis(d, s);
glPopMatrix();
glPushMatrix();
glRotatef(-90.0, 0.0, 0.0, 1.0);
subaxis(d, s);
glPopMatrix();
}
void subaxis(GLfloat d, GLfloat s)
{
int i;
double pi = 3.14, t;
glBegin(GL_QUAD_STRIP);
for(i = 0; i<=6; i++){
t = i*2*pi/6;
glNormal3f( (GLfloat)cos(t), 0.0, (GLfloat)sin(t));
glVertex3f( (GLfloat) (d * cos(t)), -s, (GLfloat)(d * sin(t)));
glVertex3f( (GLfloat) (d * cos(t)), s, (GLfloat)(d * sin(t)));
}
glEnd();
glTranslatef(0.0, s, 0.0);
glRotatef(-90.0, 1.0, 0.0, 0.0);
glutSolidCone(2.0*d, 4.0*d, 5, 5);
}
0012おしまい。
01/11/06 21:26ID:???{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(10.0, (GLfloat)w/(GLfloat)h, 1.0, 100.0);
glMatrixMode(GL_MODELVIEW);
}
void main(void)
{
compute();
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH); /* 変更 */
glutInitWindowPosition(0,0); /* 窓の左上の座標 (ドット) */
glutInitWindowSize(500, 500); /* 窓のサイズ */
glutCreateWindow(TitleString);
myinit();
glutReshapeFunc(myReshape);
glutDisplayFunc(display);
glutMainLoop( );
}
0013ちょちんちゃ
01/11/07 05:43ID:???#include<string.h>
int a2i(char *meta);
void main()
{
int i,aa;
char meta[256];
gets(meta);
i=a2i(meta);
printf("%d\n",i);
}
int a2i(char *meta)
{
int cnt,keta=0,ans=0,f=1;
for(cnt=0;meta[cnt]!=0;cnt++)
{
if((meta[cnt]-48)<0||(meta[cnt]-48)>9)
{
break;
}
keta++;
f*=10;
}
f/=10;
for(cnt=0;keta!=0;keta--)
{
ans+=(meta[cnt]-48)*f;
f/=10;
cnt++;
}
return ans;
}
どうだコノヤロウ
0014名無しさん@お腹いっぱい。
01/11/07 07:05ID:???0015名無しさん@お腹いっぱい。
01/11/07 11:01ID:???無駄が多くないか?
int a2i(char *meta)
{
int ans = 0;
while (*meta >= '0' && *meta <= '9') {
ans *= 10;
ans += *meta - '0';
meta++;
}
return ans;
}
0016名無しさん@お腹いっぱい。
01/11/07 18:15ID:???0017名無しさん@お腹いっぱい。
01/11/07 18:55ID:???*define
game
;実行ブロック
*start
end
0018名無しさん@お腹いっぱい。
01/11/07 19:07ID:???なんのスクリプト? あと、つまんないよ、それ。
0019名無しさん@お腹いっぱい。
01/11/08 00:08ID:FoZhzfZJ名前: 「5000ゲッター!」
実行すると、1から順に数字が流れていきますので、タイミングよく、5000で、CTRL + C で止めてください。
#include <stdio.h>
main()
{
int i;
for(i=1;i<=10000;i++){
printf("%5d\n",i);
}
}
0020hpiでいいのが色々出てるから今さらだが
01/11/08 00:14ID:???;要なかむらさん作JoyPad.dll
;HSPのstick命令と似たような使い方すれー
;返値は
;左 = 1
;右 = 2
;上 = 4
;下 = 8
;ボタン1(決定)= 16
;ボタン2(キャンセル)= 32
;ジョイスティックとキーボードの論理和の値が返ってくる
;テンキー8426とX,Zキーもサポート
#module "joystick"
#deffunc joykey val,int,int
mref ret,16
mref trg,1
mref wnd,2
;初回の起動時のみジョイスティックを初期化
if init_flg = 0{
#uselib "joypad.dll"
#func joypad joypad 1
init_flg = 1
}
;第2パラが1でHSP以外のウインドウがアクティブな場合は入力されていないとみなす
ginfo 1
if (wnd = 1) & (prmx = -1) : ret = 0 : return
;*****キーボードの処理*****
;左
getkey i,37 : key = i : getkey i,100 : key = key or i
;上
getkey i,38 : key = key or (i* 2) : getkey i,104 : key = key or (i*2)
;右
getkey i,39 : key = key or (i* 4) : getkey i,102 : key = key or (i*4)
;下
getkey i,40 : key = key or (i* 8) : getkey i, 98 : key = key or (i*8)
;決定
getkey i,88 : key = key or (i*16) : getkey i, 13 : key = key or (i*16)
;キャンセル
getkey i,90 : key = key or (i*32) : getkey i, 32 : key = key or (i*32)
i = key
;trgの処理をまとめて
key = oldkey ^ key & key | (trg & key)
;*****ジョイスティックの処理*****
joypad joy,trg,0
if joy < 0 : joy = 0
;*****結果をorして返せ*****
ret = key or joy
;今回のキーボード値を保存
oldkey = i
return
#global
0021名無しさん@お腹いっぱい。
01/11/09 07:22ID:wli4jLXPオモシレぇー!!!
0022名無しさん@お腹いっぱい。
01/11/14 15:22ID:???0023名無しさん@お腹いっぱい。
01/11/15 02:28ID:???参考にさせてもらいましたー
0024名無しさん@お腹いっぱい。
01/11/15 14:59ID:FoQ9AS6cLPDIRECTDRAWSURFACE lpPrimary; //基本サーフェス(画面表示と同じもの)
LPDIRECTDRAWSURFACE lpBackbuffer; //バックバッファサーフェス(描画対象と同じもの)
LPDIRECTDRAWSURFACE lpScreen;
DDCOLORKEY ddck;
LPDIRECTDRAWSURFACE lpChar;
LPDIRECTDRAW lpDDraw;
PALETTEENTRY pe2[256];
POINT ptBase; // スクロール基準点
void DrawFrame(void) //メインルーチン
{
//変数宣言
static int i;
static int j; //アニメーションフラグ
static int x,y; //座標の設定
static int size=32; //拡大縮小用変数
static int sc,sc2;
RECT Scrrc={0,0,640,480}; //画面のサイズ
RECT Charrc[]={{0,0,64,64}, //BMPの座標を指定する
{64,0,128,64},
{128,0,192,64}};
// 左エリア
if( ptBase.x > 0){
// 左上
if( ptBase.y > 0){
SetRect( &Scrrc, 0, 0, ptBase.x, ptBase.y);
lpBackbuffer->BltFast(ptBase.x,ptBase.y,lpScreen,&Scrrc,DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT);
}
// 左下
if( ptBase.y <= 640){
SetRect( &Scrrc, 0, ptBase.y, ptBase.x, 480);
lpBackbuffer->BltFast(ptBase.x,ptBase.y,lpScreen,&Scrrc,DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT);
}
}
// 右エリア
if( ptBase.x <= 640){
// 右上
if( ptBase.y > 0){
SetRect( &Scrrc, ptBase.x, 0, 640, ptBase.y);
lpBackbuffer->BltFast(ptBase.x,ptBase.y,lpScreen,&Scrrc,DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT);
}
// 右下
if( ptBase.y <= 480){
SetRect( &Scrrc, 0, ptBase.y, ptBase.x, 480);
lpBackbuffer->BltFast(ptBase.x,ptBase.y,lpScreen,&Scrrc,DDBLTFAST_NOCOLORKEY|DDBLTFAST_WAIT);
}
}
//ウェイト処理
static DWORD Nowtime,Prevtime;
Nowtime=timeGetTime();
if((Nowtime-Prevtime)<WAIT)return;
Prevtime=Nowtime;
lpPrimary->Flip(NULL,DDFLIP_WAIT);
}
斜めスクロールが出来ないぞゴルァ!
0025名無しさん@お腹いっぱい。
01/11/15 17:57ID:???プリプロセッサ処理はスクリの流れと関係無いよ。モジュール名は関係あるけど。
由恵にinit_flgは必要なし。
0026名無しさん@お腹いっぱい。
01/11/17 05:18ID:Md+7FNp4UPしてもいい?
0027名無しさん@お腹いっぱい。
01/11/17 08:16ID:???0028Freuden
01/11/17 11:36ID:pANvGZcKtypedef struct{...} Object; // ここでキャラの情報を格納した構造体を新しく定義する
void puyo01Act01(Object *enemyPtr); // ステージ1の"ぷよ"と言う名の敵の動きの1つ目
void puyo01Act02(Object *enemyPtr); // ステージ1の"ぷよ"と言う名の敵の動きの2つ目
void puyo01Act03(Object *enemyPtr); // ステージ1の"ぷよ"と言う名の敵の動きの3つ目
void puyo01Act04(Object *enemyPtr); // ステージ1の"ぷよ"と言う名の敵の動きの4つ目
void puyo01Act05(Object *enemyPtr); // ステージ1の"ぷよ"と言う名の敵の動きの5つ目
// ステージ1の"ぷよ"と言う名の敵の動きに関する関数へのポインタ配列
void (*puyo01ActBox[])(Object *) = {puyo01Act01, puyo01Act02, puyo01Act03, puyo01Act04, puyo01Act05};
// 実際に関数を発動させる
puyo01ActBox[enemyPtr->actStepIns](enemyPtr); // "ぷよ"と言う名の敵自身に自分の行動の番号を保存させ制御する
0029名無しさん@お腹いっぱい。
01/11/17 11:43ID:???003026
01/11/17 13:06ID:???予約語・標準命令は紺、拡張命令は青灰、文字列は小豆色、コメントは緑。
正規表現の事を分かっていないので、ホントはもっと縮められると思います。
33,void
33,main
33,long
33,int
33,str
33,return
33,if
33,else
33,alt
33,case
33,default
33,loop
33,break
33,goto
33,for
33,while
33,do
33,jump
33,include
33,new
33,delete
33,import
49,(Load|Stop|Pause|Replay|IsPlay)Wave
49,PlayWave(|2)
49,ReleaseWave(|All)
49,Get(Pos|Frequency)Wave
49,Set(Frequency|LoopMode)Wave
49,SetVolumeWave(|All)
49,SetWaveFormat
49,(Open|Close|Stop|Pause|Replay|IsPlay|GetSongMax|Eject|SetLoopMode)CD
49,Song(Length|Start)CD
33,GetCurrentPosCD
49,PlayCD(|FromStart|FromTo|Pos)
49,Get(Bpp|PlaneSize)
49,LoadBitmap(|W)
49,(Release|Save)Bitmap
49,SetColorKey(RGB|Pos)
33,SystemMemoryPlane
49,(|Clip)Blt(|Fast|Rect|FastRect)(|R)
49,(|Clip)BlendBlt(|Rect)
003126
01/11/17 13:08ID:???33,EnableBlendColorKey
49,ClearSecondary(|Rect)
49,SetFillColor(|RGB)
49,Set(Brightness|SystemMemoryUse|SecondaryOffset)
49,(Realize|Flush)Palette
49,(Flush|Mosaic)Blt
49,(Enable|Disable|BltFrom|SnapTo|Save)BackupPlane
33,SwapToSecondary
33,CreateSurface
49,(Set|Get|GetReal)FPS
49,(Get|Reset)Time
49,(Pause|Restart)Time(|All)
49,Text(Out|Move|Blend|Blt|GetSize)
49,Text(Size|Height|Color|Font)
49,(FPS|Mouse|Text)Layer(On|Off)
49,TextBackColor(|Disable)
49,str(cpy|ncpy|cat)
33,sprintf
33,KeyInput
49,Is(Push|Press)(|Up|Down|Left|Right)Key
49,Is(Push|Press)(Return|Space|Esc|Joy|MIDI)Key
33,SetJoyButtonMax
33,GetVelocityMIDIKey
49,(Set|Get)MouseInfo
49,(Load|Play|Stop|Pause|Replay|Release|IsPlay|SetLoopMode)MIDI
49,(Load|Save|Reset)GameFlag(|2)
49,(Load|Save)File
49,(Jump|Call)Script
33,SetErrorRestrain
33,Quit
33,Rand
49,OpenSenario(|2)
49,Read(Senario|LineToString|SenarioToString)
49,(Set|Change)DisplayMode
49,(Get|Set)CurrentDirectory
49,(Set|Get)ConstParam
33,halt
49,Set(Window|DebugMode)
49,InnerLog(|Mes)
177,(Left|Right|Mid)Str
003226
01/11/17 13:09ID:???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:cgyXC09v00342時間くらいかかってます
01/12/26 17:18ID:QaCPTDIUゲームはちゃんとできるが、あんまり短くしようとしてないのでプログラムは適当。
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 <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>" ","[-]","[@]","[!]","[*]","[#]", "///"};...
↑ここの" "は、スペース3つだ。そのままこぴぺすると画面が崩れるぞ。
あと、操作は、','と'.'で左右、スペースで回転だ。
0037名前は開発中のものです。
01/12/26 17:39ID:???おおスゴイね。curses ってところが何とも渋い。
0038名前は開発中のものです。
01/12/26 17:40ID:???0039名前は開発中のものです。
01/12/26 17:46ID:QaCPTDIU0040名前は開発中のものです。
01/12/26 17:53ID:???0041名前は開発中のものです。
01/12/26 18:05ID:???すげぇ(w
004234~36
01/12/26 21:22ID:???http://pc.2ch.net/test/read.cgi/tech/984182993/
ぷよぷよはちょっと7行じゃ無理そうだなぁ。
#defineまでで5行あるし。
0043暇なのでもう一つ作った
01/12/29 00:29ID:???#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:???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:???#define hajime {
#define owari }
#define mona int
mona main()
hajime
mona giko;
cin >> giko;
return 0;
owari
0048名前は開発中のものです。
02/01/14 00:22ID:wg4iGUmB0049名前は開発中のものです。
02/01/15 16:29ID:FPR5mgZK0050名前は開発中のものです。
02/01/15 16:38ID:???alert("GAME OVER");
close();
</script>
0051名前は開発中のものです。
02/01/15 17:08ID:trPF2jYBWSADATA 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:CNhUTHCRdouble 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+awXMzdconvert.pl--
# ソースコードを2chへの書き込み用に変換するPerlスクリプト
# perl convert.pl hoge.cとかやるとhoge.c.txtができる。
$tab = ' ' x 4; # タブ幅4
open(IN, $ARGV[0]) or die;
open(OUT, "> $ARGV[0].txt") or die;
while (<IN>) {
s/&/&/g;
s/</</g;
s/>/>/g;
s/"/"/g;
s/ / /g;
s/\t/$tab/g;
print OUT;
}
close(OUT);
close(IN);
005453
02/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;
}
}
005553
02/01/18 18:19ID:???0056名前は開発中のものです。
02/01/18 18:22ID:2cgx27pc惜しい!。
s/&/&/g;
この部分は間違っていると思われ。
005753
02/01/18 18:24ID:???0058名前は開発中のものです。
02/01/18 19:40ID:???HSPプラグ員に死ぬほどあるよな。それ。
0059名前は開発中のものです。
02/01/18 21:42ID:???ま、クライアント側の問題なんだけど
0060名前は開発中のものです。
02/01/18 21:53ID:???ログからプログラムを切り出す機能とかほしいね。
0061名前は開発中のものです。
02/01/19 08:25ID:3R2CY6rZ0062名前は開発中のものです。
02/01/19 12:01ID:???0063名前は開発中のものです。
02/01/19 15:55ID:???逆だろ
0064名前は開発中のものです。
02/01/22 01:12ID:???って覚えたけど、正確には違うんだろーな
0065名前は開発中のものです。
02/01/22 04:37ID:???0066名前は開発中のものです。1/3
02/01/26 23:59ID:/Un10yYP'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/3
02/01/27 00:00ID:5zOjGYzxYou_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/3
02/01/27 00:00ID:5zOjGYzxE_died:
MsgBox "ハァハァ(´Д`;)を倒した!この世に平和が訪れた。" & _
vbCrLf & "" & vbCrLf & "HAPPY END"
End
'自分が倒されたときの処理
You_died:
MsgBox "あなたのスレは終了しました。(゚д゚)マズー"
End
End Sub
0069名前は開発中のものです。
02/01/27 01:19ID:???0070名前は開発中のものです。1/2
02/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/2
02/01/27 23:59ID:S3QJWc68ENEMY_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
■ このスレッドは過去ログ倉庫に格納されています