七行プログラミング part5
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/03/16(木) 09:02:39過去作品は、もしかしたら>>2-20あたりに。
前スレ
http://pc8.2ch.net/test/read.cgi/tech/1051703369/
part 3
http://pc2.2ch.net/tech/kako/1033/10331/1033143528.html
part 2
http://pc3.2ch.net/tech/kako/1018/10188/1018840143.html
part 1
http://pc.2ch.net/tech/kako/984/984182993.html
0951デフォルトの名無しさん
2008/06/29(日) 15:09:020952デフォルトの名無しさん
2008/06/29(日) 15:17:02>>328
たぶん俺が書いたんだったと思う…
もうずいぶん前だな…
0953デフォルトの名無しさん
2008/06/29(日) 15:25:530954デフォルトの名無しさん
2008/06/29(日) 15:30:390955デフォルトの名無しさん
2008/06/29(日) 15:32:220956デフォルトの名無しさん
2008/06/29(日) 15:33:050957デフォルトの名無しさん
2008/06/29(日) 16:46:17条件がひっくり返ってしまうから必ずしもそうとは限らないんだなあ。
A?B:C のうち、Bの箇所には?:よりも優先順位の低い演算子が使えるんだけど、
それをCに持っていくと括弧で括らなきゃならない。そうすると1文字増える。
0958デフォルトの名無しさん
2008/06/29(日) 16:59:02のとき、b を省略すると a が真のとき、a が返る。
っていうのもあったけど、規格に合致しているんだっけ?
0959デフォルトの名無しさん
2008/06/29(日) 17:02:33そりはgcc拡張
0960952
2008/06/29(日) 17:57:29#include <windows.h>
int r,c,d,n,j,a,o=4,l=4,t=120,f[84],A='A';w(a){ungetc(a,stdin);}y(int*p){return
*p=getchar();}q(int*p){for(r=0;'0'<=y(&d)&&d<='9';)r=r*10+d-'0';w(d);r?*p=r:0;}
main(){float s=27.5;for(;j<84;s*=1.0595)f[j++]=s;while(y(&c)-EOF)c+=c<'a'||'z'<
c?0:A-'a',A<=c&&c<'H'||c=='R'?c-'R'?a="ACDFHIK"[c-A]-A+12*o, y(&d)=='+'||d=='#'
?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=12e4*(y(&d)-'.'?w(d),2:3)/t/n,c=='R'
?Sleep(j),0:Beep(f[a],j):c=='L'?q(&l):c=='O'?q(&o),o=o>7?7:o:c=='T'?q(&t):c=='\
>'?o+=o!=7:c=='<'?o-=!!o:0;}
14字削った。
* 同じ文字リテラルが4回以上出てくるときは、変数においたほうが得。
* お尻に3個以上の0が続く整数リテラルは指数表記を使ったほうが得。
ということに気づいた。
0961デフォルトの名無しさん
2008/06/29(日) 18:52:330962デフォルトの名無しさん
2008/06/30(月) 04:09:13空気を読まずにもう一つだけ投下。
#include <windows.h>
char*D="9a3adfTh9d3dfh@i<<hf5d7fXd9d3dfh@l<9o3hiheHh<f9h3hijHh/'<f9h3hihPdbdhj\
llln4/M@fhijhddc@fh`d@q5d3fPjjihi<<lPdj/ jij@ig4dgTfH/ om4kj<i<g4f4g4iPPq@@i@h\
hi@57lDhhi@57l<po5n7o\\jjih<i<@fPh/7bd5f;df5h;i<n<lh<h<fhXd@q5b3d<i<hiP/Fii5h;\
io5p;o<n<lh<h<fhPdHqh<i<hd@d<f`d",*E="!/$*'%/'3 5*9&=#@*I&N#R*X$^ c'p$";int A,B
,C;main(){while(*D){if(*D-47)A=*D>96?8:*D++-48,B=*D<97?18:(*D++-97)*2,Beep(B-32
?E[B]*8+E[B+1]:32767,A*35);else D+=C++?C>2?C=0,D[1]-16:-D[1]+2:2;}return 0;}
0963デフォルトの名無しさん
2008/06/30(月) 13:22:050964デフォルトの名無しさん
2008/06/30(月) 13:30:380965デフォルトの名無しさん
2008/06/30(月) 17:16:470966デフォルトの名無しさん
2008/07/01(火) 23:49:430967デフォルトの名無しさん
2008/07/02(水) 01:24:370968デフォルトの名無しさん
2008/07/02(水) 09:20:500969デフォルトの名無しさん
2008/07/06(日) 12:24:42Winの人は"w"を"wb"にしてね
#include <stdio.h>
FILE*i,*o;int l,p,t[]={0,192,224,240},r=65536;void P(int p){putc(p>>8,o);putc(p
%256,o);}int main(int c,char**v){if(c<3||(i=fopen(v[1],"r"))?((o=fopen(v[2],"w"
))?0:(fclose(i),1)):1)return fputs(c<3?"usage: ./u8tou16 in out\n":"fairu ga h\
irakemasen! itteyoshi!!\n",stderr),1;for(fputs("\xfe\xff",o);(c=getc(i))-EOF;(p
-=r)>=0?P(p/1024+55296),P(p%1024+56320):P(p+r))for(p=c-t[l=(c&224)-192?(c&240)-
224?(c&248)-240?0:3:2:1];l--;)p=p<<6|getc(i)%128;fclose(i);fclose(o);return 0;}
// なんとか7行達成w
0970デフォルトの名無しさん
2008/07/06(日) 12:35:59main(int c,char**v){if(c<3||(i=fopen(v[1],"r"))?((o=fopen(v[2],"w"))?0:(fclose(
i),1)):1)return fputs(c<3?"usage: ./u8tou16 in out\n":"fairu ga hirakemasen! i\
tteyoshi!!\n"),1;for(fputs("\xfe\xff",o);(c=getc(i))+1;(p-=r)>=0?P(p/1024+55296
),P(p%1024+56320):P(p+r))for(p=c-t[l=(c&224)-192?(c&240)-224?(c&248)-240?0:3:2:
1];l--;)p=p<<6|getc(i)%128;fclose(i);fclose(o);}
//なんども出てきた技だしこれぐらいはしとこうや
0971デフォルトの名無しさん
2008/07/06(日) 12:37:20c,char**v){if(c<3||(i=fopen(v[1],"r"))?((o=fopen(v[2],"w"))?0:(fclose(i),1)):1)
return fputs(c<3?"usage: ./u8tou16 in out\n":"fairu ga hirakemasen! itteyoshi!"
),1;for(fputs("\xfe\xff",o);(c=getc(i))+1;(p-=r)>=0?P(p/1024+55296),P(p%1024+
56320):P(p+r))for(p=c-t[l=(c&224)-192?(c&240)-224?(c&248)-240?0:3:2:1];l--;)p=p
<<6|getc(i)%128;fclose(i);fclose(o);}
0972デフォルトの名無しさん
2008/07/06(日) 12:55:460973デフォルトの名無しさん
2008/07/06(日) 13:12:540974デフォルトの名無しさん
2008/07/06(日) 15:06:12まさか今更このスレで型安全性なんて下らない寝言は言わないよな
0975デフォルトの名無しさん
2008/07/06(日) 15:40:30なんというかそれでは意味がない気がするんだよなあ。
入出力機能を使うときに#include<stdio.h>を書かなければ、
一行まるまる浮くわけだが、そういう縮め方に価値を見出せない。
俺は、最低限、型の整合性とプロトタイプの整合性だけは守りたいと思う。
0976デフォルトの名無しさん
2008/07/06(日) 15:51:010977デフォルトの名無しさん
2008/07/06(日) 15:52:28特定の環境に目一杯依存してコードを縮めるのも一つの楽しみ
「標準に準拠するC言語」と
「特定の処理系で動けばよいC言語」を
二つの独立した言語として扱えばいいと思う
自分が関心ないからって別言語のコードに文句付ける必要はないって意味で
0978デフォルトの名無しさん
2008/07/06(日) 17:20:020979デフォルトの名無しさん
2008/07/06(日) 17:46:33「標準に準拠するC言語」>「特定の処理系で動けばよいC言語」
この前提がある以上、「特定の処理系で動けばよいC言語」はランクが下がる
0980デフォルトの名無しさん
2008/07/06(日) 20:42:490981デフォルトの名無しさん
2008/07/06(日) 21:03:350982デフォルトの名無しさん
2008/07/06(日) 22:41:43というわけでむちゃくちゃ適当にまとめてみました
よくわからなかったものは□にしてますごめんなさい。だれか補足お願いします
>7 AA(.com)
>42 Win32用簡易メトロノーム(C/Win32)
>43,46,49 数独(C)
>53,54 アイコンエディタ(JavaScript)
>75,77 1行掲示板(PHP)
>80,649,650 シェルピンスキーのギャスケット(C)
>81 弾避け(JavaScript)
>99,100 正規表現(C) ※9行
>121 Java難読化(Java) ※9行
>167,175 オセロ(C) ※12行
>185,187 サーバー(なでしこ)
>191 メール送信(なでしこ)
>193 Windows送るメニューカスタマイズ(なでしこ)
>221 メール送信フォーム(なでしこ)
>226,230 □(.com)
>244,245 ブロックソート/ソート解除(C#)
>284 ノイズ(C/cygwin)
>300,302,304,305,311,312,313,350 音(C/Win32)
>316 □(C#)
>317 音(Ruby/Win32)
>321,322 Beepエミュ(C/Win32)
>327,328,960 MML再生(C/Win32) ※9行
>343 け言語(Ruby)
>402,404,405 音(C/Win32)
続く
0983デフォルトの名無しさん
2008/07/06(日) 22:42:28>407 TerminateProcessフック(C/Win32) ※11行
>409,412 ハフマン法圧縮(C)
>415 ZwCloseフック(C/Win32) ※3文字オーバー
>414,421,457,458 ランレングス解凍(C)
>459 C/C++コメント除去(C)
>466,467,469,470,476,479,482,483,484,488,492 2進数のビット反転 関数のみ(C)
>477,478 誤爆(C)
>487 brainfuck(C)
>498,499 画像ぼかし(C#)
>509,511,512 ニュートン法(C)
>513 標準出力にBrainfuckと読める絵を出力(Brainfuck)
>520,529,534 ローマ字半角カナ変換(なでしこ) ※11行
>533 ローマ字半角カナ変換(JavaScript) ※13行
>540 ∩( ・ω・)∩ ばんざーい (なでしこ)←データが外部
>555,557,559 WEOF→EOF(C)
>558 素因数分解(JavaScript)
>564 echoサーバ(BASIC)
>565 echo(Brainfuck) 4文字
>577,590 スロット(JavaScript)
>626,631,632,636,637,640 迷路(JavaScript)
>651,657,658,661,663 Base64エンコード(JavaScript)
>669 テニス(JavaScript)
>670,671,672,675 計算機(JavaScript)←evalしてるだけ
>677 □(Befunge?)
>679 Base64エンコーダ、デコーダ(Perl)
>683 Base64エンコーダ(Lua)
>685 Base64エンコーダ(Ruby)←Base64モジュール使ってるだけ
>687,698 自己展開Base64(.com)
続く
0984デフォルトの名無しさん
2008/07/06(日) 22:43:47>700 メッセージボックス(C/Win32)
>701 テトリス(東方何とか)←18行
>705,706 じゃんけん(JavaScript)
>713 RSSリーダ(JavaScript)
>714,717,718,741,745 メモ帳(JavaScript)
>721 テンキー練習(JavaScript)
>743 WYSIWYGなHTML作成支援エディタモドキ(JavaScript)←innerHTMLに代入してるだけ
>755,757,758,760,762 逆localtime(Perl)
>763 626のマウス版(JavaScript)
>765,772,775 ⊂( ^ω^)⊃耐久走 (JavaScript)
>776,777,781 ベートーベン(C/Win32)
>804 数独(C)
>865,867 crypt(C)
>870,875,878,879,919,923 life(C)
>907,912 printf(C)←vprintfに丸投げ
>920 printf(C)
>924 暇つぶし(JavaScript)
>931 シャットダウン(C/Win32)
>940,945,949,962 音(C/Win32)
>969,970,971 UTF-8→UTF-16(C)
誰か次スレお願いします
0985デフォルトの名無しさん
2008/07/06(日) 22:56:220986デフォルトの名無しさん
2008/07/06(日) 23:03:59http://pc11.2ch.net/test/read.cgi/tech/1215352849/
0987デフォルトの名無しさん
2008/07/06(日) 23:13:28需要が無いならオレが書く
0988デフォルトの名無しさん
2008/07/06(日) 23:20:300989デフォルトの名無しさん
2008/07/06(日) 23:22:310990デフォルトの名無しさん
2008/07/06(日) 23:27:08じゃあ俺はJSで参戦
0991デフォルトの名無しさん
2008/07/07(月) 01:27:39$_=[$_].pack("m*")
>>685
0993992
2008/07/07(月) 06:45:170994デフォルトの名無しさん
2008/07/07(月) 07:24:38専ブラ使え
0996デフォルトの名無しさん
2008/07/07(月) 09:49:120997デフォルトの名無しさん
2008/07/07(月) 10:42:590998デフォルトの名無しさん
2008/07/07(月) 13:44:13あるあるww
0999デフォルトの名無しさん
2008/07/07(月) 14:32:45db/dw/dq で終りじゃね?
1000ヽ・´∀`・,,)っ━━━━━━━┓
2008/07/07(月) 14:48:2610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。