1 名前:デフォルトの名無しさん [02/04/15 12:09] 7行×79文字なら言語は問いません。 過去作品は>>2-5 を参照。 ■前スレ pc.2ch.net/test/read.cgi/tech/984182993/
384 名前:382 [02/06/22 00:37] >>383 スマソ、そういうわけでまとめてみたら2行になった。 boxf 0,0,640,400:repeat:redraw 0:repeat 60:y=cnt*8:repeat 80:x=cnt*8:pos x,y rnd rx,640:rnd ry,480:gcopy 0,rx,ry,8,8:loop:loop:redraw 1:await 1:loop 砂嵐の濃度調整はboxf 0,0,640,400の部分で、画面を何割黒で塗りつぶすかで決まるから。
385 名前:デフォルトの名無しさん mailto:sage [02/06/22 00:46] お題:BlockSorting
386 名前:デフォルトの名無しさん mailto:sage [02/06/22 01:20] >>385 #include <stdlib.h> typedef unsigned char b;e(b*s,b*d,int c){unsigned*o,i=0,r;o=calloc(65536,4);c-- ;for(i;i<c;i++)o[s[i]<<8|s[i+1]]++;o[s[c]<<8|*s]++;for(i=1;i<65536;i++)o[i]+=o[ i-1];d[--o[s[c]<<8|*s]]=s[i=c-1];for(;i;i--)d[--o[s[i]<<8|s[i+1]]]=s[i-1];r=--o [*s<<8|s[1]];d[r]=s[c];free(o);return r;} 一応、限定ソートなり。
387 名前:デフォルトの名無しさん mailto:sage [02/06/22 01:44] こっちは復元 #include <stdlib.h> typedef unsigned char B;void d(B*s,B*d,int c,unsigned x){unsigned*o,i,a=0,t[256 ];memset(t,0,1024);for(i=--c;i;i--)t[s[i]]++;o=calloc(65536,4);for(;i<256;i++){ memset(d+a,i,t[i]);a+=t[i];}for(i=0;i<=c;i++)o[(s[i]<<8)+d[i]]++;for(i=1;i< 65536;i++)o[i]+=o[i-1];*d=d[x];d[c]=s[x];d[c-1]=s[--o[(d[c]<<8)+*d]];for(i=c;i> 2;i--)d[i-2]=s[--o[d[i-1]<<8|d[i]]];free(o);}
388 名前:385 mailto:sage [02/06/22 01:58] >386-387 (゚д゚)ハヤー で、自分でも作ってみた。動作未確認・ブロックサイズ256に固定。 #include <stdlib.h> enum{S=256};typedef unsigned char UC;int cmp(void*a,void*b){return memcmp(a,b,S );}UC*bs(UC*s,UC*d){UC*p,**t,i;p=malloc(S*2);t=malloc(S);for(i=0;i<S;i++)p[i]=p [i+S]=s[i],t[i]=p+i;qsort(t,S,S,cmp);for(i=0;i<size;i++)if(p== t[i])break;*d++= i;for(i=0;i<S;i++)d[i]=t[i][S-1];free(p);free(t);return --d;}
389 名前:385 mailto:sage [02/06/22 02:50] ぅぁー、>388バグりまくりだ。 出なおしてきます。
390 名前:デフォルトの名無しさん [02/06/24 00:47] ageじゃ!
391 名前:デフォルトの名無しさん mailto:sage [02/06/24 19:14] インチキだけど(includeとか含めなければ)7行 アナログ時計 #define NO_STRICT #include <windows.h> typedef void*v;typedef int i;typedef float f;f q=50,r=100;f R(f n){return(90.0\ -n)/57.3;}void L(v h,f r){MoveToEx(h,q,q,0);LineTo(h,q+q*cos(r),q-q*sin(r));}i\ WINAPI WinMain(v,v,char*,i){v h=CreateWindow("EDIT","n",(1<<28),0,0,1<<31,1<<\ 31,0,0,0,0);HideCaret(h);SetTimer(h,1,r,0);MSG m;while(GetMessage(&m,0,0,0)!=0\ ){if(m.message==275){v d=GetDC(h);Rectangle(d,0,0,r,r);SYSTEMTIME s;GetLocalTi\ me(&s);L(d,R(s.wSecond*6));L(d,R(s.wMinute*6));L(d,R(s.wHour*30));ReleaseDC(h,\ d);}if(m.message==513){break;}DispatchMessage(&m);}KillTimer(h,1);}
392 名前:デフォルトの名無しさん mailto:sage [02/06/28 14:31] 漏れの環境(VS6SP5)だと、 math.hをインクルードしないとエラーになったので、 一行減って、一行増えたから、減ってない・・・。 鬱だ。 #define NO_STRICT #include <windows.h> #include <math.h> typedef void*v;typedef float f;v d;f q=50;void L(f r){r=(15-r)/9.55;MoveToEx(d, q,q,0);LineTo(d,q+q*cos(r),q-q*sin(r));}int WINAPI WinMain(v,v,char*,int){v h=\ CreateWindow("EDIT","n",1<<28,0,0,1<<31,1<<31,0,0,0,0);HideCaret(h);SetTimer(h, 1,100,0);MSG m;while(GetMessage(&m,0,0,0)&&m.message!=513){if(m.message==275){ d=GetDC(h);Rectangle(d,0,0,100,100);SYSTEMTIME s;GetLocalTime(&s);L(s.wSecond); L(s.wMinute);L(s.wHour*5);ReleaseDC(h,d);}DispatchMessage(&m);}KillTimer(h,1);}
393 名前:デフォルトの名無しさん mailto:sage [02/06/28 15:00] 「 #include は数えないのはどうよ?」 って議論になったことがあった(はず)なのでキニスンナ!
394 名前:デフォルトの名無しさん [02/06/28 19:29] 新たなお題キボーン
395 名前:デフォルトの名無しさん mailto:sage [02/06/28 19:47] >>393 おいおい、ソリャだめだって話になったろ
396 名前:392 mailto:sage [02/06/28 21:22] >>395 オーケイ、分かった #include <windows.h> #include <math.h> HDC d;float q=50;L(float r){r=(15-r)/9.55;MoveToEx(d,q,q,0);LineTo(d,q+q*cos(r) ,q-q*sin(r));}WINAPI WinMain(HINSTANCE i,HINSTANCE,LPSTR,int){WNDCLASS w={67,D\ efWindowProc,0,0,i,0,0,0,0,"1"};RegisterClass(&w);HWND h=CreateWindow("1",0,51\ 3<<19,0,0,200,200,0,0,i,0);SetTimer(h,1,99,0);MSG m;d=GetDC(h);while(GetMessag\ e(&m,h,0,0)!=-1){if(m.message==275){Rectangle(d,0,0,100,100);SYSTEMTIME s;GetL\ ocalTime(&s);L(s.wSecond);L(s.wMinute);L(s.wHour*5);}DispatchMessage(&m);}} 先人の遺産(砂嵐)を参考にしてみた でも、漏れには限界・・・
397 名前:392 [02/06/28 22:55] 前スレの537を参考に・・・ #include <windows.h> typedef double b;b cos(b);b sin(b);HDC d;b q=30;L(b r){r=(15-r)/9.55;MoveToEx(d ,q,q,0);LineTo(d,q+q*cos(r),q-q*sin(r));}WINAPI WinMain(HINSTANCE i,HINSTANCE p ,LPSTR l,int q){MSG m;HWND h;SYSTEMTIME s;WNDCLASS w={67,DefWindowProc,0,0,i,0, 0,0,0,"1"};RegisterClass(&w);h=CreateWindow("1",0,513<<19,0,0,95,95,0,0,i,0);S\ etTimer(h,1,99,0);d=GetDC(h);while(GetMessage(&m,h,0,0)!=-1){if(m.message==275) {Rectangle(d,0,0,60,60);GetLocalTime(&s);L(s.wSecond);L(s.wMinute);L(s.wHour*5) ;}DispatchMessage(&m);}} あと、24字で七行達成かな? 一人でやってると鬱だからage 誰か、助けて
398 名前:392 mailto:sage [02/06/28 22:56] 書き忘れたけど、>>397 からは.cppじゃなくて.cでよろしく
399 名前:tara mailto:sage [02/06/29 04:50] VC++ .NETであれば、これでも動くはずです。 #include <windows.h> typedef double b;b cos(b),sin(b);HDC d;b q=30;L(b r){r=(15-r)/9.55;MoveToEx(d,q ,q,0);LineTo(d,q+q*cos(r),q-q*sin(r));}WinMain(i,p,l,q){MSG m;HWND h;SYSTEMTIME s;WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"1"};RegisterClass(&w);h= CreateWindow("1",0,513<<19,0,0,95,95,0,0,i,0);SetTimer(h,1,99,0);d=GetDC(h); while(GetMessage(&m,h,0,0)!=-1){if(m.message==275){GetLocalTime(&s);Rectangle( d,0,0,60,60);L(s.wSecond);L(s.wMinute);L(s.wHour*5);}DispatchMessage(&m);}}
400 名前:デフォルトの名無しさん mailto:sage [02/06/29 13:54] >>395 いや、「打つ」とかかいてあったんで。
401 名前:392 mailto:sage [02/06/29 16:48] >>399 お早う。本当だ、動いたヨ。 ずっと、VS6でやってたからなぁ。 何はともあれ、taraさんThx!
402 名前:392 mailto:sage [02/06/29 18:07] #include <windows.h> typedef double b;b sin(b),q=30;HDC d;HWND hL(b r){r=(15-r)/9.55;MoveToEx(d,q,q, 0);LineTo(d,q+q*sin(r+1.57),q-q*sin(r));}WINAPI WinMain(HINSTANCE i,HINSTANCE p ,LPSTR l,int q){MSG m;SYSTEMTIME s;WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0, "1"};RegisterClass(&w);h=CreateWindow("1",0,513<<19,0,0,95,95,0,0,i,0);SetTimer (h,1,99,0);d=GetDC(h);while(GetMessage(&m,h,0,0)!=-1){if(m.message==275){Recta\ ngle(d,0,0,60,60);GetLocalTime(&s);L(s.wSecond);L(s.wMinute);L(s.wHour*5);}Dis\ patchMessage(&m);}} taraさんを見習って宣言をまとめた。 あと、cosを使わないように変えた。 これで、5文字減らした。 VS6でも七行達成するのを目標に!
403 名前:392 mailto:sage [02/06/29 18:14] >>402 しまった。HWND hの後にセミコロンが抜けてる! でも、4行目の余白で吸収されるかな。
404 名前:デフォルトの名無しさん [02/06/29 23:34] 家にはVC++無いんで確認できないけど七行達成したよ。 誰か確認おながいします。 #include <windows.h> float sinf(float),q=30;HDC d;HWND h;MSG m;L(float r){MoveToEx(d,q,q,0);r/=9.55; LineTo(d,q+q*sinf(r),q-q*sinf(r+1.57));}WINAPI WinMain(HINSTANCE i,HINSTANCE p, LPSTR l,int q){SYSTEMTIME s;WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"1"};Re\ gisterClass(&w);Rectangle(d=GetDC(h=CreateWindow("1",0,513<<19,0,0,95,95,0,0,i, 0)),0,0,60,60);SetTimer(h,1,99,0);while(GetMessage(&m,h,0,0)>-1)m.message==275? GetLocalTime(&s),L(s.wSecond),L(s.wMinute),L(s.wHour*5):0;DispatchMessage(&m);}
405 名前:せめて mailto:sage [02/06/29 23:37] >>404 なにをするプログラムなのか、書け
406 名前:392 mailto:sage [02/06/29 23:41] #include <windows.h> typedef double b;b sin(b),q=30;HDC d;HWND h;L(b r){r=(15-r)/9.55;MoveToEx(d,q,q ,0);LineTo(d,q+q*sin(r+1.57),q-q*sin(r));}WINAPI WinMain(HINSTANCE i,HINSTANCE p,LPSTR l,int q){MSG m;WORD s[8];WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"1" };RegisterClass(&w);h=CreateWindow("1",0,513<<19,0,0,95,95,0,0,i,0);SetTimer(h, 1,99,0);d=GetDC(h);while(GetMessage(&m,h,0,0)!=-1){if(m.message==275){Rectangle (d,0,0,60,60);GetLocalTime((PSYSTEMTIME)s);L(s[6]);L(s[5]);L(s[4]*5);}Dispatch\ Message(&m);}} SYSTEMTIME構造体をWORDの配列に変更
407 名前:404 mailto:sage [02/06/29 23:53] >405 >>402 のを縮めてみますた。
408 名前:392 mailto:sage [02/06/29 23:53] >>404 ごめん、見てなかった 残念ながら、 error LNK2001: 外部シンボル "_sinf" は未解決です fatal error LNK1120: 外部参照 1 が未解決です。 と言われたよ。
409 名前:デフォルトの名無しさん mailto:sage [02/06/30 00:03] つーか>>399 のやつ、VC6.0でも動くが何が問題?
410 名前:392 mailto:sage [02/06/30 00:13] >>409 あ、VC.NETで動くのは見たけど、 VC6で動かないのは確かめなかった。 taraさん、>>404 さん、ごめんなさい #include <windows.h> double sin(double),q=30;HDC d;L(double r){r/=9.55;MoveToEx(d,q,q,0);LineTo(d,q+ q*sin(r),q-q*sin(r+1.57));}HWND h;WinMain(i,p,l,q){MSG m;WORD s[8];WNDCLASS w={ 67,DefWindowProc,0,0,i,0,0,0,0,"1"};RegisterClass(&w);h=CreateWindow("1",0,513\ <<19,0,0,95,95,0,0,i,0);SetTimer(h,1,99,0);d=GetDC(h);while(GetMessage(&m,h,0,0 )!=-1){m.message==275?Rectangle(d,0,0,60,60),GetLocalTime((PSYSTEMTIME)s),L(s[6] ),L(s[5]),L(s[4]*5):0;DispatchMessage(&m);}} これで最後。
411 名前:392 mailto:sage [02/06/30 00:27] >>409 教えてくれてありがとう。 おかげで助かった。
412 名前:tara mailto:sage [02/06/30 01:42] >409 お、VC++6.0でも動きましたか。 .NETの方しかインストールしてなかったもので、確認できなかったんです。 ありがとうございました。
413 名前:404 mailto:sage [02/06/30 01:48] >>408 sinfってman引いてあったから使ったんだけどVCには無いのか。鬱氏。 >>410 7行達成おめでとう♪
414 名前:392 mailto:sage [02/06/30 02:00] >>413 ありがとうございます sinの計算と、三項演算子は参考にさせて頂きました。 ところで、次のお題って誰かありませんか?
415 名前:tara mailto:sage [02/06/30 02:15] >414 遅ればせながら、おめでとうございます。 で、次ですか……。 POP3のクライアントってありましたっけ。
416 名前:392 mailto:sage [02/06/30 04:53] >>415 POP3クライアントは、 無かったと思いますよ。 SMTPは・・・、参加なさってたんですね(w とりあえず、Webアプリの経験ないんで、 猫で修行しに逝ってきます www.kumei.ne.jp/c_lang/sdk3/sdk_230.htm
417 名前:デフォルトの名無しさん mailto:sage [02/06/30 05:26] pop3は意味無いだろ メッセージ取ってきてもmimeとかでエンコーディングされてるし
418 名前:デフォルトの名無しさん [02/06/30 10:15] >>417 デコードすればいいじゃん。 できない? nkf32.dllを使いなさい。
419 名前:4k demo [02/06/30 12:42] 7行じゃないけど・・・これはすごいの?すごくないの?どぉなの? 4K+ポリゴン+音源+音楽 ftp://ftp.jp.scene.org/pub/scene/parties/2000/dialogos00/in4k/stoerfall_ost_final.zip
420 名前:おまえら! [02/06/30 12:44] includeしているのは何行あるんだ! 7行じゃなくてコンパイル後のサイズで勝敗つけろや!
421 名前:デフォルトの名無しさん mailto:sage [02/06/30 12:46] >>420 >includeしているのは何行あるんだ! その手があったか!w
422 名前:デフォルトの名無しさん [02/06/30 12:54] >>420 それでいいやろ(w
423 名前:デフォルトの名無しさん mailto:sage [02/06/30 14:07] >>420 静的リンクする上に、標準のライブラリもサイズに含めるということかな? でも、ライブラリなんて(サイズも含めて)システム依存だから、単純に比べられないよね アセンブラだったら、ソースコードの方がサイズが大きいってことか…
424 名前:デフォルトの名無しさん mailto:sage [02/06/30 14:08] >>420 Perl や JavaScript はどうすればいいんだ?
425 名前:おまえら! [02/06/30 16:57] PerlはともかくJavaはこんぱいるできるだろ。
426 名前:デフォルトの名無しさん mailto:sage [02/06/30 17:42] Java(以下略)
427 名前:デフォルトの名無しさん mailto:sage [02/06/30 18:19] >>425 Perl はコンパイルできますが、JavaScript は……
428 名前:デフォルトの名無しさん mailto:sage [02/06/30 19:16] >>425 議論をするのは構わないけど、ageないで。
429 名前:デフォルトの名無しさん mailto:sage [02/06/30 20:27] インタプリタは従来どおりでイイんじゃ?
430 名前:おまえら!part2 [02/06/30 21:20] >>423 あほか? ワシがいうてんのは、しらん人間の作ったソースを 組み込んでて、 「すごいねチミ!ハァハァ」 「おたくのやつのほうがスゴイッスよアニキィ!ハァハァ」 やってられん!
431 名前:デフォルトの名無しさん mailto:sage [02/06/30 22:17] >>430 それって GPL ?
432 名前:デフォルトの名無しさん mailto:sage [02/06/30 22:17] >>430 オブジェクトならいいのか ?
433 名前:おまえら!part2 [02/06/30 22:28] 俺はすごいぞ。 Cの標準関数なんぞ使ったこと無い。 人のライブラリなんぞ信用できるか! main以外は全部自作だ。
434 名前:デフォルトの名無しさん mailto:sage [02/06/30 22:54] mainを他人のプログラムから流用するのはスゴイ
435 名前:デフォルトの名無しさん mailto:sage [02/06/30 22:54] 4kデモはデモスレで語ってくれ。
436 名前:デフォルトの名無しさん mailto:sage [02/06/30 22:56] >>433 Windowsのプログラムをどう書いてるのか、興味が・・・
437 名前:デフォルトの名無しさん mailto:sage [02/06/30 23:37] >>433 もちろん Java でもそれを実行なさっている、と
438 名前:デフォルトの名無しさん mailto:sage [02/06/30 23:42] まぁ、漏れもJavaでCの標準関数は使わないな
439 名前:デフォルトの名無しさん mailto:sage [02/07/01 00:41] で、この議論は7行スレとどんな関係があるのですか?
440 名前:デフォルトの名無しさん mailto:sage [02/07/01 00:57] >>438 使っている漏れは、どうすればいいのでしょう
441 名前:デフォルトの名無しさん mailto:age [02/07/03 22:11] 保守
442 名前:デフォルトの名無しさん [02/07/03 23:31] うーん 7行でJPEG、かなり厳しいなぁ・・・
443 名前:デフォルトの名無しさん mailto:sage [02/07/04 01:11] >>442 7行で DCT あるいは DFT だけならいけるかもしれないよ。 つーか、普通に書いてもメインの部分はそれくらいか…
444 名前:デフォルトの名無しさん mailto:sage [02/07/04 01:18] >442 7行無圧縮PNGなら出来るかもな。 でも、CRCの計算がきついかもしれない。
445 名前:デフォルトの名無しさん mailto:sage [02/07/04 09:57] >>444 とりあえず CRC の部分から書き始めてみる? そこから、PNG のように大きな枠組みに持っていくのは大変かもしれないけど、 任意の CRC を計算するまでならできそうだし、それはそれで功有りかと。
446 名前:デフォルトの名無しさん mailto:sage [02/07/04 10:49] >>445 いいですねぇ。最終的に7行の*.cファイル群を幾つかリンクするとJPEGエンコーダ/ デコーダ等々になる、というのは面白いかも。
447 名前:445 [02/07/04 11:52] CRC32 を計算、入力は標準入力から。g++ 2.95.3 多分あってると思いますが、確認お願いします。 #include <fstream> unsigned C,t[256],i,j,v,a=256; main(){ for(i=0;i<a;t[i++]=v)for(v=i,j=0;j<8;j++)v=(v&1)?((v/2)^0xEDB88320):(v/2); for(C=~0;~(i=cin.get());)C=t[(C%a)^i]^(C/a); cout<<hex<<~C<<endl; }
448 名前:445 mailto:sage [02/07/04 12:08] ごめんなさい。1つ前のバージョンを送ってしまいました。 #include <fstream> unsigned C,t[256],i,j,a=256; main(){ for(;i<a;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1?0xEDB88320:0); for(C=~0;~(i=cin.get());C=t[(C%a)^i]^(C/a)); cout<<hex<<~C<<endl; }
449 名前:デフォルトの名無しさん [02/07/04 13:34] 参考資料 www01.u-page.so-net.ne.jp/xb3/y-koujin/png_fmt/jp/Tr/png.html
450 名前:445 mailto:sage [02/07/04 14:49] >>449 そうです。そこから縮めました。書いておけばよかったですね、はい。 ちなみに C=t[C%a^i]^C/a) でもう少し縮められます。
451 名前:1 mailto:age [02/07/04 18:54] #include <stdio.h> int main(void) { while(1) printf("\t\b\b"); }
452 名前:デフォルトの名無しさん mailto:sage [02/07/04 22:49] >>451 XPクラッシャーじゃん
453 名前:デフォルトの名無しさん mailto:sage [02/07/05 09:21] >>452 確か 2000 でも落ちるような。 9x, Me は大丈夫。
454 名前:デフォルトの名無しさん [02/07/05 21:47] >>453 NT系アウトの罠>>printf("\t\b\b");
455 名前:デフォルトの名無しさん [02/07/06 10:39] 七行プログラミングのスレにでてるコードをちゃんとインデントを入れた形に整形してくれる プログラムなんてガイシュツですか?
456 名前:デフォルトの名無しさん mailto:sage [02/07/06 10:41] >>455 作ればいいかと。{}付けがよっぽど変なバカのコード以外は簡単かと。
457 名前:デフォルトの名無しさん mailto:sage [02/07/06 10:45] >>455 プリティプリンタでぐぐればいっぱいあるよ。
458 名前:デフォルトの名無しさん mailto:sage [02/07/06 11:11] gnu-indent
459 名前:デフォルトの名無しさん mailto:dage [02/07/06 11:19] >>455 visual stadioでもできるよ(たぶん
460 名前:デフォルトの名無しさん mailto:sage [02/07/06 11:22] できない
461 名前:デフォルトの名無しさん mailto:sage [02/07/06 19:53] DCTまだですか?
462 名前:デフォルトの名無しさん [02/07/06 22:43] double c[8][8],is;void di(){int u,v;is=1./sqrt(2.);for(u=0;u<8;u++)for(v=0;x<8; x++)c[u][x]=cos((2.*x+1.)*u*M_PI/16.);}void dc(int *b){int v,u,x,y,w[64];double s,cu,cv;for(v=0;v<8;v++){cv=(v==0)?is:1.0;for(u=0;u<8;u++){cu=(u==0)?is:1.;s=0; for(y=0;y<8;y+)for(x=0;x<8;x++)s+=b[y*8+x]*c[u][x]*c[v][y];w[v*8+u]=(int)(s*cu* cv/4);}}}
463 名前:デフォルトの名無しさん mailto:sage [02/07/06 23:07] >>462 x と v を間違えたり、y+ になったり、ちょっとしょぼーん(´・ω・`) もっと短くできそうだ 次は、PNG と JPG のファイルフォーマット変換部分か…
464 名前:デフォルトの名無しさん mailto:sage [02/07/06 23:23] モジュールを集めればJPEGだって何だってできるのはあたりまえだから、 もう少し「寄せ集めること」の意義を考えてみないか? たとえばSUSIEみたいに、メインルーチンとローダー・変換部分をわけて、 それぞれが7行プログラムで作成されているというように。
465 名前:462 mailto:sage [02/07/06 23:25] >>463 叩き台なので勘弁してCRAY.
466 名前:デフォルトの名無しさん mailto:sage [02/07/06 23:54] Javaを使えば、JPEG入出力なんて始めからできているという罠
467 名前:デフォルトの名無しさん mailto:sage [02/07/07 00:28] double c[8][8],is,s;int x,y,u,w[64];di(){is=1/sqrt(2);for(u=0;u<64;u++)c[u/8][u %8]=cos((2*(u%8)+1)*(u/8)*M_PI/16);}dc(int*b){for(x=0;x<8;x++)for(u=0;u<8;w[x*8 +u]=s*(x?1:is)*(u++?1:is)/4)for(s=0,y=0;y<64;y++)s+=b[y]*c[u][y%8]*c[x][y/8];}
468 名前:463 mailto:sage [02/07/07 01:11] 先を越された… double c[8][8],s;int x,y,w[64];di(){for(x=64;x--;c[y=x/8][x%8]=cos((2*(x%8)+1)* y*M_PI/16));}dc(int*b){for(x=64;x--;w[x]=s*(x/8?1:1/sqrt(2))*(x%8?1:1/sqrt(2))/ 4)for(s=0,y=64;y--;)s+=b[y]*c[x%8][y%8]*c[x/8][y/8];}
469 名前:デフォルトの名無しさん mailto:sage [02/07/07 12:27] >>464 過去ログ読んでね。そう言うコンセプトでやってる。
470 名前:464 mailto:sage [02/07/07 18:19] >>469 ごめん。読んでいるけどわからんかった・・・ウツ
471 名前:デフォルトの名無しさん [02/07/08 02:27] (⌒Д⌒)あらやだわ奥さんハハハ
472 名前:みぃとぼぉる [02/07/08 15:09] 参戦?させていただきます。んで、Pascalにて迷路... Program Q;const B=$B800;var S,C,D,F:Word;A:Array[1..999]of Integer;begin For C :=81to 3840do begin MemW[B:C*2]:=4016;If(C mod 80)=77 then C:=C+3;end;S:=1;A[S] :=324;while(S>0)do begin C:=A[S];Mem[B:C]:=0;F:=0;while(F<15)do begin D:=( Port[65]+S)mod 4;F:=F OR(1SHL D);D:=(2-(D div 2)*4)*(1+(D mod 2)*79);If Mem[B:C +D*2]=176then begin Mem[B:C+D]:=0;A[S+1]:=C+D*2;S:=S+2;Break;end;end;S:=S-1;end ;Mem[B:164]:=0;Mem[B:7672]:=0;Readln;End. 80x50の英語モードDOS窓で CLS してから実行してちょ。 Borland Pascal 7.0 / WinXP で動作確認済み。難しい事は一切やっていないような。 ランタイムエラーが怖いのでCRTは未使用です。 尚、MS-DOSのメモリ依存。
473 名前:みぃとぼぉる [02/07/08 16:25] ちょっぴり修正。 Program Q;Uses crt;const B=$B800;var S,C,D,F:Word;A:Array[1..999]of Word;begin TextMode(259);Randomize;For C:=81to 3840do begin MemW[B:C*2]:=4059;If(C mod 80) =77 then C:=C+3;end;S:=1;A[S]:=324;while(S>0)do begin C:=A[S];Mem[B:C]:=0;F:=0; while(F<15)do begin D:=Random(4);F:=F OR(1SHL D);D:=(2-(D div 2)*4)*(1+(D mod 2 )*79);If Mem[B:C+D*2]=219then begin Mem[B:C+D]:=0;A[S+1]:=C+D*2;S:=S+2;Break; end;end;S:=S-1;end;Mem[B:164]:=0;Mem[B:7672]:=0;Readln;End. - ランダムナンバージェネレーターにポートを使わずに正規の命令を使用。 - 毎回生成するパターンも変更される。 - Borland / Turbo Pascal で実行時にエラーが出る場合は CRT と TextMode を削除 するか、バグ修正板のCRT RTLを使用すること。 でわ。
474 名前:775 mailto:sage [02/07/09 23:02] 激簡単なもんから・・・・。 元画像をppmに限定すれば読みこみはかなり削減できないかな。>コンバータ #include <stdio.h>/* usage:bmp2ppm src.bmp dest.ppm*/ main(int c, char*v[]){int i,x,y;FILE *f,*g;if(c<3)return;if((f=fopen(v[1], "rb"))==NULL||(g=fopen(v[2],"w"))==NULL)return;fseek(f,18,SEEK_SET);fread(&x,4 ,1,f);fread(&y,4,1,f);fprintf(g,"P6\n%d %d\n255\n",x,y);fseek(f,54,SEEK_SET); for(i=0;i<x*y*3;i++)fputc(fgetc(f),g);fclose(f);fclose(g);}
475 名前:392 mailto:sage [02/07/10 10:32] 遅くなったけど、popクライアント rcvmail サーバ名 ユーザ名 パスワード メール番号 #include <WinSock.h> char z[512];int s,r,S;M(){z[r=recv(s,z,512,0)]=0;printf("%s",z);}T(x,y){r=spri\ ntf(z,x,y);strcat(z,"\r\n");send(s,z,r+2,0);M();}main(int c,char** v){SOCKADDR\ _IN a={2,28160};WSAStartup(257,z);a.sin_addr=*((PIN_ADDR)*(gethostbyname(v[1])) ->h_addr_list);connect(s=socket(2,1,0),&a,16);M();T("USER %s",v[2]);T("PASS %s" ,v[3]);if(c>4&&(c=atoi(v[4]))>0){T("LIST %d",c);sscanf(z,"%s%d%d",z+r,&r,&S);T( "RETR %d",c);while((S-=r)>=0)M();}T("QUIT",0);closesocket(s);WSACleanup();}
476 名前:463 mailto:sage [02/07/10 18:19] >>474 上下反転はともかく、RGBも逆だといやんなので、直しました。 上下も直した方が良いでしょうかね? #include <stdio.h>/* usage:bmp2ppm src.bmp dest.ppm */ main(int c,char**v){int i,x,y,z[3];FILE*f,*g;if(c<3||(f=fopen(v[1],"rb"))==NULL ||(g=fopen(v[2],"w"))==NULL)return;fseek(f,18,c=SEEK_SET);fread(&x,4,1,f);fread (&y,4,1,f);fprintf(g,"P6\n%d %d\n255\n",x,y);fseek(f,54,c);for(i=x*y;--i;){for( c=0;c<3;)z[c++]=fgetc(f);for(;c--;)fputc(z[c],g);}fclose(f);fclose(g);}
477 名前:デフォルトの名無しさん [02/07/10 21:36] 保守
478 名前:デフォルトの名無しさん mailto:sage [02/07/10 21:41] >>477 早っ (゚Д゚)
479 名前:デフォルトの名無しさん [02/07/10 22:35] popクライアント キタ━━━(^∀゚)━━━!!
480 名前:デフォルトの名無しさん mailto:sage [02/07/11 18:47] 寄せ集めで作ってみた無圧縮PNG。10行デス CRCは>>448 のを使わせてもらいました #include <stdio.h> typedef unsigned U;U X=128,C,t[256],i,j,a=256,h[17]={73,72,68,82},d[1<<18]={73, 68,65,84,120,218,1},l,M=1,N;FILE*f;B(U b){fputc(b,f);}W(U n){B(n>>24 );B(n>>16 ); B(n>>8 );B(n);}S(U*b,U n){for(i=0;i<n;)B(b[i++]);for(i=0;i<a;t[i++]=C)for(C=i,j= 9;--j;)C=C/2^(C&1?0xedb88320:0);for(i=0,C=~0;i<n;)C=t[C%a^b[i++]&0xff]^C/a;W(~C );}main(){f=fopen("mona.png","wb");W(0x89504e47);W(0xd0a1a0a);l=X+X*X*3;h[7]=h[ 11]=X;h[12]=8;h[13]=2;W(13);S(h,17);d[7]=l;d[8]=l>>8 ;d[9]=~l;d[10]=~l>>8 ;l+=11; for(i=11;i<l;M=(M+d[i++])%65521,N=(N+M)%65521)d[i]=(i-11)%(X*3+1)?i%a:0;d[i++]= N>>8 ;d[i++]=N;d[i++]=M>>8 ;d[i++]=M;W(l);S(d,l+4);W(0);W(0x49454e44); W(0xae426082);}
481 名前:デフォルトの名無しさん mailto:sage [02/07/11 20:43] これは流石に7行は無理じゃなかろか?
482 名前:480 mailto:sage [02/07/12 14:08] 9行・・・これ以上は無理ぽ #include <stdio.h> typedef unsigned U;U X=128,C,t[256],i,j,a=256,h[17]={73,72,68,82},d[1<<18]={73, 68,65,84,120,218,1},l,M=1,N;FILE*f;B(U b){fputc(b,f);}W(U n){B(n>>24 );B(n>>16 ); B(n>>8 );B(n);}S(U*b,U n){for(i=0;i<a;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1? 0xedb88320:0);for(i=0,C=~0;i<n;C=t[C%a^b[i++]&0xff]^C/a)B(b[i]);W(~C);}main(){f =fopen("mona.png","wb");W(0x89504e47);W(0xd0a1a0a);l=X+X*X*3;h[7]=h[11]=X;h[12] =8;h[13]=2;W(13);S(h,17);d[7]=l;d[8]=l>>8 ;d[9]=~l;d[10]=~l>>8 ;l+=11;for(i=11;i< l;M=(M+d[i++])%65521,N=(N+M)%65521)d[i]=(i-11)%(X*3+1)?i%a:0;d[i++]=N>>8 ;d[i++] =N;d[i++]=M>>8 ;d[i]=M;W(l);S(d,l+4);W(0);W(0x49454e44);W(0xae426082);}
483 名前:448 mailto:sage [02/07/12 18:45] >>480 縮めてみました。 #include <stdio.h> typedef unsigned U;U*x,X=128,i,j,a=256,t[256],l,M=1,k;FILE*f;W(U n){for(i=4;i-- ;)fputc(n>>i*8,f);}S(U*b,U n){W(n-4);for(i=~0;n--;i=t[i%a^*b++%a]^i/a)fputc(*b, f);W(~i);}main(){U h[17]={73,72,68,82,0,0,0,X,0,0,0,X,8,2},d[1<<18]={73,68,65, 84,120,218,1,l=X+X*X*3,l/a,~l,~l/a};f=fopen("mona.png","wb");for(i=a;i--;k=l/X) for(k=i,j=9;--j;x=d+11)t[i]=k=k/2^(k&1?0xedb88320:0);W(0x89504e47);W(0xd0a1a0a) ;for(S(h,17);l;l--)j+=M+=*x++=l%k?l%a:0,M%=i=65521,j%=i;*x++=j/a;*x++=j;*x++=M/ a;*x++=M;S(d,x-d);W(0);fputs("IEND\256B`\202",f);}
484 名前:デフォルトの名無しさん mailto:sage [02/07/12 22:43] >>483 もうわからん煤i´Д`;)