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

ソースを上げるスレッド

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

# 一種の隔離スレです。
0002名無しさん@お腹いっぱい。01/11/06 18:52ID:???
#include <stdio.h>
#define ver "read.cgi ver6.01 (01/11/15)"
int main(int)
{
printf("ヒロヒト。\n");
}
0003名無しさん@お腹いっぱい。01/11/06 18:54ID:???
>2
それじゃコンパイラ通らない。
つか、もっと役に立つか楽しいのうぷすれ。
0004名無しさん@お腹いっぱい。01/11/06 18:56ID:???
2chの最新read.cを書いたら頃されますか?
0005名無しさん@お腹いっぱい。01/11/06 18:56ID:???
ゲームじゃねぇし
0006名無しさん@お腹いっぱい。01/11/06 19:00ID:???
なんかあるかなぁ。
楽しそうなゲーム・・・
探そうかな。
0007名無しさん@お腹いっぱい。01/11/06 19:40ID:???
正規表現でゲームを作ろう
0008名無しさん@お腹いっぱい。01/11/06 21:22ID:???
#include <windows.h>
#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:???
void myinit(void)
{
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:???
void axis(GLfloat d, GLfloat s)
{

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:???
void myReshape(int w, int h) /* CALLBACK を消す。 w, h は int */
{
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 <stdio.h>
#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:???
このやろう言われても……。素直にatoi()使え。
0015名無しさん@お腹いっぱい。01/11/07 11:01ID:???
>>13
無駄が多くないか?
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:???
>17
なんのスクリプト? あと、つまんないよ、それ。
0019名無しさん@お腹いっぱい。01/11/08 00:08ID:FoZhzfZJ
MS-DOS コンソールベースのアクションゲームです!
名前: 「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
>17
オモシレぇー!!!
0022名無しさん@お腹いっぱい。01/11/14 15:22ID:???
>>21 (・∀・)
0023名無しさん@お腹いっぱい。01/11/15 02:28ID:???
>>20
参考にさせてもらいましたー
0024名無しさん@お腹いっぱい。01/11/15 14:59ID:FoQ9AS6c
//変数宣言
LPDIRECTDRAWSURFACE 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:???
>>20
プリプロセッサ処理はスクリの流れと関係無いよ。モジュール名は関係あるけど。
由恵にinit_flgは必要なし。
0026名無しさん@お腹いっぱい。01/11/17 05:18ID:Md+7FNp4
ソースじゃなくてエディタの色分けの設定ファイルなんだけど
UPしてもいい?
0027名無しさん@お腹いっぱい。01/11/17 08:16ID:???
なんでもいいからうぷすれ
0028Freuden01/11/17 11:36ID:pANvGZcK
とりあえず、どうよ。

typedef 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:???
どうよ、と言われても……。
00302601/11/17 13:06ID:???
お言葉に甘えて…YGS2K用の設定ファイル。K2Editor用(多分秀丸も)
予約語・標準命令は紺、拡張命令は青灰、文字列は小豆色、コメントは緑。
正規表現の事を分かっていないので、ホントはもっと縮められると思います。

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)
00312601/11/17 13:08ID:???
>>30 からの続き
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
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 じゃねーの?
■ このスレッドは過去ログ倉庫に格納されています