- 1 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 23:00:49 .net]
- 7行×79文字なら言語は問いません。
過去作品は、もしかしたら>>2-10あたりに。 前スレ pc11.2ch.net/test/read.cgi/tech/1142467359/ part4 pc8.2ch.net/test/read.cgi/tech/1051703369/ part 3 pc2.2ch.net/tech/kako/1033/10331/1033143528.html part 2 pc3.2ch.net/tech/kako/1018/10188/1018840143.html part 1 pc.2ch.net/tech/kako/984/984182993.html
- 367 名前:デフォルトの名無しさん [2012/07/03(火) 15:12:34.44 .net]
- IPSパッチ充て、改良
* オフセット値が EOF と同値の時でも、動くように eof() で判定 * DOS版Perl4で 長い連長圧縮(RLE)でも正しく出力するように修正 #!/usr/bin/perl if($#ARGV!=2){print"Usage: $0 ORG IPS NEW\n";exit}($I,$P,$O)=@ARGV;open P; binmode P;read(P,$_,5);/^PATCH$/||die;open(I)||die;open(STDOUT,">$O")||die if$O ;binmode I;binmode STDOUT;$S=16384;sub C{if(($l-=tell I)>0){while($l>$S){read(I ,$_,$S);print;$l-=$S}read(I,$_,$l);print}}sub L{read(P,$_,2);$l=unpack(n,$_)} while(read(P,$_,3)&&!eof(P)){$l=unpack(N,"\0$_");&C;if(&L){read(P,$_,$l)}else{& L;$C=getc(P);$s=$l;while($s>$S){print$C x$S;$s-=$S}$_=$C x$s}seek(I,$l,1);print }if(!/^EOF$/){print STDERR"not EOF:$_\n"}$l=-s I;&C;close P;close I
- 368 名前:デフォルトの名無しさん mailto:sage [2012/07/09(月) 15:03:42.98 .net]
- perlばかりだな・・・
- 369 名前:デフォルトの名無しさん mailto:sage [2012/07/12(木) 20:50:52.13 .net]
- そもそもの発端がperlだったからねえ
- 370 名前:デフォルトの名無しさん mailto:sage [2012/07/12(木) 23:06:16.74 .net]
- perl 7行でDVDのデコード(?)だっけ。
- 371 名前:デフォルトの名無しさん [2012/07/16(月) 20:47:10.30 .net]
- 標準出力にWAVを吐くプログラム。
.wavファイルにリダイレクトしてお楽しみください。 #include <stdio.h> #define L (8000*8) #define F(i) ((i)*(((i)>>8|(i)>>16)&((i)>>1)&((i)<<2))) main(){int i=0;char*p,b[L];for(p=b;i<L;i++)*p++=F(i);printf("RIFF");for(i=0;i<4 ;)putchar((L-8)>>i++*8&255);fwrite("WAVEfmt \x10\0\0\0\1\0\1\0\x40\x1f\0\0" "\x40\x1f\0\0\1\0\x8\0data",32,1,stdout);for(i=0;i<4;)putchar(L>>i++*8&255); for(i=0;i<L;)putchar(b[i++]);}
- 372 名前:デフォルトの名無しさん [2012/07/27(金) 13:25:49.95 .net]
- IPS差分作成
#!/usr/bin/perl if($#ARGV<1){print"Usage: $0 OLD NEW >IPS\n";exit}($O,$N,$o)=@ARGV;open(O)&& open(N)||die;binmode O;binmode N;open(STDOUT,">$o")if$o;binmode STDOUT;print "PATCH";sub P{return if!($l=length);$c=substr($_,0,1);$l=pack('n',$l);$r=$c;$r =~s/^[.?+*(){}\[\]|\/\\^\$]/\\$&/;print substr(pack(N,$o),1),/^$r{4,}$/? "\0\0$l$c":"$l$_"}read(O,$a,-s O);read(N,$n,-s N);for($i=0;$i<-s N;++$i){if( substr($a,$i,1)ne($c=substr($n,$i,1))){$o=$i if!length;$_.=$c;if(($l=length)>= 0xffff){&P;$_=''}}else{&P;$_=''}}&P;print"EOF";close O;close N;close STDERR IPSファイル・ダンプ #!/usr/bin/perl open(STDIN,$_)if$_=pop@ARGV;binmode STDIN;sub G{$i=pop@_;$_='';while($i--){$_.= getc}$_}sub N{$n=unpack(n,&G(2))}&G(5);if(!/^PATCH$/){print"not IPS\n";exit} while(!eof(STDIN)){&G(3);last if/^EOF$/;print unpack('H*',$_).' ';if(!&N){&N; print unpack('H*',getc).' x '.$n.$/;next}print$n,' ',unpack('H*',&G($n)),$/}
- 373 名前:uy mailto:sage [2012/07/29(日) 01:34:56.02 .net]
- あんまし全体読む気はないけど
{print"not IPS\n";exit} とか {puts"not IPS";exit} でいいんじゃねえの あと >close O;close N;close STDERR closeしまくってるけど、ショートコーディングにcloseとか必要なの? あとやたらIF文使ってるけど、そんくらい演算子で書き換えろよ else使うとかまずありえねーわ >for($i=0;$i<-s N;++$i){if( とか $i=0 って本当にここで0初期化必要だったの? どこかの適当なメソッドで戻り値0返してる奴あるんじゃねえの? くだらねーソースあげんなカス あとさぁ最後に 0xffff は 4**8 だろボケが
- 374 名前:デフォルトの名無しさん [2012/07/31(火) 11:30:57.46 .net]
- .ips バイナリ差分ファイル作成 改良:
#!/usr/bin/perl if($#ARGV<1){print"Usage: $0 OLD NEW >IPS\n";exit}($O,$N,$o)=@ARGV;open(O)&& open(N)||die;binmode O;binmode N;open(STDOUT,">$o")if$o;binmode STDOUT;print "PATCH";sub P{return if!($l=length);$c=pack('n',$l);print substr(pack(N,$o),1), $r>3&&$r==$l?"\0\0$c$s":"$c$_";$r=0}read(O,$a,-s O);read(N,$n,-s N);while($i++< -s N){if(substr($a,$i,1)ne($c=substr($n,$i,1))){$o=$i,$s=$c if!length;$_.=$c;$r ++if$s eq$c;next if($l=length)<65535}&P;$_=''}&P;print"EOF" puts は C の関数かと。perlの標準には無いみたい。 4**8 = 65536 = 0x10000 なんですけど。。。
- 375 名前:デフォルトの名無しさん mailto:sage [2012/07/31(火) 22:05:03.16 .net]
- 綺麗に書きなおしたバージョンとかも見せてくれると未熟な俺も勉強になるんだが
- 376 名前:デフォルトの名無しさん mailto:sage [2012/08/02(木) 17:08:03.30 .net]
- つ Perl::Tidy
- 377 名前:デフォルトの名無しさん mailto:sage [2012/10/09(火) 01:30:03.88 .net]
- 初めて来たけどめっちゃ過疎ってるね。4年て
- 378 名前:デフォルトの名無しさん mailto:sage [2012/10/27(土) 11:35:02.14 .net]
- まあ、板自体というかにちゃん自体が過疎ってるからねぇ
- 379 名前:デフォルトの名無しさん mailto:sage [2012/10/27(土) 20:42:53.51 .net]
- みんなどこいってんの?
- 380 名前:デフォルトの名無しさん mailto:sage [2012/10/29(月) 17:56:09.31 .net]
- 見守られることも無く
- 381 名前:デフォルトの名無しさん mailto:sage [2012/12/19(水) 13:42:28.80 .net]
- 640×360(16:9)か480×360(4:3)
HDなら1280x720にするのが無難 元が1920x1080ならそのままでいいだろ 別に自分から解像度を下げてUPする必要はない 訂正、960x720ね
- 382 名前:デフォルトの名無しさん [2013/05/27(月) 17:27:36.47 .net]
- 保守
- 383 名前:デフォルトの名無しさん [2013/09/04(水) 10:12:02.57 .net]
- sudo halt
- 384 名前:デフォルトの名無しさん mailto:sage [2013/12/24(火) 12:40:09.01 .net]
- てst
- 385 名前:デフォルトの名無しさん mailto:sage [2014/03/22(土) 23:57:55.27 ID:ECpqv1dR.net]
- nCr表示、n,rの上限は999999
#include<stdio.h> #include<stdlib.h> int r,n,i,a[999999];int main(int c,char**v){if(c>2&&(n=atoi(v[1]))>=(r=atoi(v[2 ]))&&r>0)for(--*a;*a<n-r;puts("")){for(c=0>*a;i>0&&a[i]>=n-r+i;)c=i--;for(++a[i ];c&&i+1<r;i++)a[i+1]=a[i]+1;for(c=0;c<r;)printf("%d ",a[c++]);}return 0;}
- 386 名前:デフォルトの名無しさん mailto:sage [2014/03/27(木) 17:52:35.14 ID:t6dxZaMZ.net]
- SJIS/JIS/EUC/UTF8用の改行変換
exec src dst n nが0ならCR、2ならCR+LF、3ならLF #include<stdio.h> FILE*r,*w;int t,d;f(){d=d&&!fprintf(w,"\r\0\r\n"+t);}main(c,v)char**v;{if(c>3&& (r=fopen(v[1],"rb"))&&(w=fopen(v[2],"wb")))for(t=*v[3]-48;~(c=fgetc(r));)c-13&& c-10?f(),fputc(c,w):(d&c/6&&f(),d+=c/6);f();r&&fclose(r);return w&&fclose(w);}
- 387 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 10:07:30.44 ID:6uoLiniK.net]
- ごめん、何言っているのか分からない。
漢字コード(エンコーディング)と改行文字に何の関係があるんだ?
- 388 名前:デフォルトの名無しさん mailto:sage [2014/03/28(金) 13:50:38.65 ID:zzqObK8g.net]
- UTF-16
- 389 名前:デフォルトの名無しさん mailto:sage [2014/04/01(火) 21:01:00.03 ID:iTOHjXEl.net]
- >>386にUTF16対応追加(CPUとエンディアンが違うBOM無しUTF16は非対応)
exec src dst n uでUTF16、u省略なら386互換 #include<stdio.h> FILE*r,*w;short t,d,e,u,z,x;o(){u?fwrite(&z,1,2,w):fputc(z,w);}f(i){for(i=d?t:1 ;d="\r\0\r\n"[i++];o())z=d<<e*u*8;}main(c,v)char**v;{if(c>3&&(r=fopen(v[1],"rb" ))&&(w=fopen(v[2],"wb")))for(u=c>4,t=*v[3]-48;u?fread(&x,1,2,r):~(x=fgetc(r));c -13&&c-10?f(),o(z=x):(d&c/6&&f(),d+=c/6))c=u?e=e||~x==1,z=e?255&x>>8|x<<8:x:x;f ();r&&fclose(r);return w&&fclose(w);}
- 390 名前:デフォルトの名無しさん mailto:sage [2014/04/11(金) 01:41:07.69 ID:2dOC/21k.net]
- C/C++コメント抽出フィルタ
UTF-16だと動かないけど仕方ないよねw #include<stdio.h> char*p,b[999999];int t,s,d;FILE*r;main(c,v)char**v;{if(c>1?r=fopen(v[1],"r"):0) for(p=b;fgets(p,b-p+999999,r);){for(;c=*p;)*p++*=c-13&&c-10;if(!*b||*--p-92){ for(p=b;c=*p++;)if(t)c-42||*p-47||(puts("*/"),t=!p++),t&&putchar(c);else if(s)s *=c!=s,c-92||*p&&p++;else switch(c){case 47:if(*p==47)for(puts(p-1);*++p;);t=*p ==42?printf("/*",p++):0;break;case 39:case 34:s=c;}t&&puts(""),p=b;}}return 0;}
- 391 名前:デフォルトの名無しさん mailto:sage [2014/04/12(土) 23:06:57.08 ID:zLkUu0xk.net]
- >>390の修正版
#include<stdio.h> char*p,b[999999];int t,s,d;FILE*r;main(c,v)char**v;{if(c>1?r=fopen(v[1],"r"):0) for(p=b;fgets(p,b-p+999999,r);){for(;*p&&*p-13&&*p-10;)p++;*p=0;if(!*b||*--p-92 ){for(p=b;c=*p++;)if(t)c-42||*p-47||(puts("*/"),t=!p++),t&&putchar(c);else if(s )s*=c!=s,c-92||*p&&p++;else switch(c){case 47:if(*p==47)for(puts(p-1);*++p;);t= *p==42?printf("/*",p++):0;break;case 39:case 34:s=c;}t&&puts(""),p=b;}}return r &&fclose(r);} 削ってる途中でバグってたorz 直したら7行目に逝ったので省略してたfcloseを復活
- 392 名前:デフォルトの名無しさん mailto:sage [2014/05/30(金) 22:21:32.79 ID:W7NqZCBf.net]
- 消えろカス
- 393 名前:デフォルトの名無しさん [2014/11/21(金) 21:07:08.76 ID:cD0Ytuxe.net]
- オセロを作ったので投下。前にあったのより短い
#include <stdio.h> int b[82],x,X,Y,t,a,i,j,f,p,d[]={-9,-8,1,10,9,8,-1,-10};void C(){a=0;if(b[X]==3 )for(i=8;i--;){for(j=0,Y=X+d[i];b[Y%81]==!t;Y+=d[i])j++;if(j&&b[Y%81]==t)for(;j --+2;Y-=d[i],a++)f?b[Y]=t:0;}}void main(){ for(X=82;X--;p=b[X]=X%9&&X>8?X-40&& X-50?X-41&&X-49?3:0:1:2);for(;p;x=f=0){for(X=8;X++<81;printf(" %c","O@\n-"[b[X] ]))C(),a?x=X:0;x?Y=0,t?X=x:scanf("%d%d",&X,&Y),f=X+=Y*9,C(),t=a?p=2,t:!t:(puts( "PASS"),p--);t=!t;}} ターン表示ありバージョン #include <stdio.h> int b[83],x,X,Y,t,a,i,j,f,p,d[]={-9,-8,1,10,9,8,-1,-10};void C(){a=0;if(b[X]==3 )for(i=8;i--;){for(j=0,Y=X+d[i];b[Y%81]==!t;Y+=d[i])j++;if(j&&b[Y%81]==t)for(;j --+2;Y-=d[i],a++)f?b[Y]=t:0;}}void main(){for(X=82;X--;p=b[X]=X%9&&X>8?X-40&&X- 50?X-41&&X-49?3:0:1:2);for(;p;x=f=0){b[82]=t;for(X=7;X++<82;printf(" %c", "O@\n-"[b[X]]))C(),a?x=X:0;x?Y=0,t?X=x:scanf("%d%d",&X,&Y),f=X+=Y*9,C(),t=a?p=2 ,t:!t:(puts("PASS"),p--);t=!t;}}
- 394 名前:デフォルトの名無しさん mailto:sage [2014/11/21(金) 22:07:47.97 ID:jmV9AQ9b.net]
- なんて美しくないスレだ
- 395 名前:デフォルトの名無しさん mailto:sage [2014/11/23(日) 10:52:37.42 ID:U8weQpWK.net]
- ベーマガの昔から詰め込みプログラミングというのはそういうものだに
- 396 名前:デフォルトの名無しさん [2016/03/29(火) 09:39:42.11 ID:/c8bAcK4.net]
- サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足 サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題 春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残 コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題 マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了 校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント 高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート
- 397 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 07:51:04.99 ID:bZ012Smw.net]
- #include<stdio.h>
#include<stdint.h> uint8_t A=1,B=3,C=1,x,y,z,w=1,t;int r(){t=x^(x<<A);x=y;y=z;z=w;return w^=(w>>B) ^t^(t>>C);}int main(void){int32_t c=0;do r(),++c;while(x||y||z||1-w);printf( "%x,%u\n",c,c);return 0;} 8bit版のxorshift、mainで出力される通り周期は(2^^32)-1 x,y,z,wは全て0でないなら初期値に制限なし A,B,Cは(3,2,3),(3,2,5),(6,1,3),(7,1,6),(7,2,1)でも良い
- 398 名前:デフォルトの名無しさん [2018/05/23(水) 23:00:38.14 ID:Au5e7VGg.net]
- 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 X7XVQ
- 399 名前:デフォルトの名無しさん [2018/07/04(水) 23:07:49.71 ID:gFgZc5FG.net]
- A92
- 400 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 12:40:22.50 ID:uTPDH9XV.net]
- X7XVQ
- 401 名前:デフォルトの名無しさん [2019/01/12(土) 09:00:46.72 ID:IbEoEGmZ.net]
- またはあったのか
|

|