七行プログラミング part6

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:2008/07/06(日) 23:12:00
>>1
3デフォルトの名無しさん:2008/07/06(日) 23:20:55
>>1
4デフォルトの名無しさん:2008/07/06(日) 23:26:19
5デフォルトの名無しさん:2008/07/07(月) 13:42:19
↓7行で乙
6デフォルトの名無しさん:2008/07/07(月) 19:05:55
print'''■■■■■■■__
_____■___
___■■____
_■■______
■_______■
■_______■
_■■■■■■■_'''
7デフォルトの名無しさん:2008/07/07(月) 19:51:21
g=:(],],.])^:[(' '(<2 1)}]\4$' *')"_

シェルピンスキーのギャスケット in J
8デフォルトの名無しさん:2008/07/07(月) 19:59:15
alert('\u003e\u003e\u0031\u000a\u4E59')
9デフォルトの名無しさん:2008/07/07(月) 21:10:27
<body id=D onkeydown=K=event.keyCode-38 onload="Z=X=[B=A=12];function Y(){for(C
=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?h
+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=[
[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=
k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S=P;i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228)
?'':'Q')i%A||(S+='\n');D.innerText=S;Z[5]||setTimeout(Y,i-P)}Y(h=K=t=P=0)">
10デフォルトの名無しさん:2008/07/07(月) 21:37:11
B=:'0123456789+/',~a.{~,(a.i.'Aa')+/i.26
enc=:3 :'(B{~#._6[\,(8#2)#:a.i.y),(0 2 1 i.3|#y)#''='''
dec=:3 :'(a.{~#._8[\,(6#2)#:B i.y)}.~_2>.(i.&''=''-#)y'

BASE64エンコード&デコード in J
11デフォルトの名無しさん:2008/07/07(月) 22:06:01
>>9
なにこれ
12デフォルトの名無しさん:2008/07/07(月) 22:09:14
前スレで7行ASMってネタ出てたけど、実際どこまで出来るものかな?
13デフォルトの名無しさん:2008/07/07(月) 22:33:45
org 100h
mov ah,9
mov dx,msg
int 21h
mov ax,4c00h
int 21h
msg db "Hello, world!$"

7行でHello, world!
14デフォルトの名無しさん:2008/07/07(月) 22:39:18
アセンブリはCPUやコンパイラやOSによってかなり依存するからなぁ
>>13はx86/DOS/NASMか
15:2008/07/07(月) 23:00:18
http://codepad.org/LN7ZIsBO

↑こういうコードがかけるらしい。qsortの第4引数が

int strcmp(const char**a, const char**b) {
while(**a == **b) {
if(**a == '\0')
return 0;
(*a)++; (*b)++;
}
return **a - **b;
}

をコンパイルしたコードだとか。C言語で無名関数を渡す方法は他にもあるのかな?
こういうのもゴルフのテクニックのひとつ?
16デフォルトの名無しさん:2008/07/08(火) 00:03:40
>>15
partIあたりに、

int main=0xc3;

ってのがあったぜ。

>15にしろ上のコードにしろ、実行環境依存するから美しくはないが
面白い発想ではあるな
17デフォルトの名無しさん:2008/07/08(火) 01:09:18
もう機械語でいいじゃん
18デフォルトの名無しさん:2008/07/08(火) 01:17:39
短くならなくね?
19デフォルトの名無しさん:2008/07/08(火) 02:31:19
diffとpatchコマンドをそれぞれWin32用に7行でってのは既出ネタかな。
もしまだだったら面白そうだからやってみようと思ってたり。

暇な人用仕様を念のため。

・Cベースのパッチ作成&適用ツール
・差分ファイルのフォーマットは自由。7行diffで書き出した差分ファイルで7行patchが正常に動けばOK。
・テキスト関連の機能はなし。あくまでも差分書き出しと差分適用に限定。
・ディレクトリ差分、複数ファイルの差分をひとつの差分ファイルにまとめる機能も省略。

差分作成:diff.exe old.exe new.exe update.diff
差分適用:patch.exe old.exe update.diff

このネタのミソは、いかに差分を小さくする工夫があるか(同一パターンの発見精度の高さ)だよなぁ
20デフォルトの名無しさん:2008/07/08(火) 03:50:25
ん?

/*diff.c*/
#include<windows.h>
main(int c,char**v){CopyFile(v[2],v[3],1);}

/*patch.c*/
#include<windows.h>
main(int c,char**v){CopyFile(v[2],v[1],0);}
21デフォルトの名無しさん:2008/07/08(火) 03:56:57
それは無関係なファイルも上書きしてしまうからパッチになってない。
22:2008/07/08(火) 04:16:16
http://codepad.org/xZjkIm7R
asmも使えることを確認した。実行環境依存のものだけはここで通るように条件つけたら?
23デフォルトの名無しさん:2008/07/08(火) 04:37:10
なんで特定のOSや特定のCPUに限定する必要があるのか理解できん
24:2008/07/08(火) 04:38:34
25:2008/07/08(火) 04:42:13
>>23
前スレで#include <windows.h> を連発されてウザかったから。
26デフォルトの名無しさん:2008/07/08(火) 04:43:33
unix板でも篭ってれば見なくて済むよ。
27:2008/07/08(火) 04:45:55
>>26
提案しただけで命令したわけではないし、>>26にUNIX板の使用を強制されるいわれもない。
28デフォルトの名無しさん:2008/07/08(火) 04:46:35
アドバイスしただけ
29:2008/07/08(火) 04:48:59
とてもそういう風には読めないね。
30デフォルトの名無しさん:2008/07/08(火) 04:56:32
文章力がないだけだな
31:2008/07/08(火) 05:04:10
>>30























氏ね
32デフォルトの名無しさん:2008/07/08(火) 05:32:50
反論できなくなったら「氏ね」か。
頭のほどが知れるわ
33:2008/07/08(火) 05:51:27
       / \  /\  キリッ
.     / (ー)  (ー)\ "反論できなくなったら「氏ね」か。"
    /   ⌒(__人__)⌒ \ "頭のほどが知れるわ "
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ だっておー!!!
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
34デフォルトの名無しさん:2008/07/08(火) 09:25:15
言っとくけど俺をあまりナメないほうがいいよ
vipでコテハンやってるしこのスレ潰すくらいの影響力は持ってるから
くだらないことで刺激して後悔しないようにね
35デフォルトの名無しさん:2008/07/08(火) 10:17:01
>>9は正しくはこうだな
<body id=D onkeydown=K=event.keyCode-38 onload="Z=X=[B=A=12];function Y(){for(C
=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?h
+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=[
[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=
k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S=P;i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228)
?'■':'_')i%A||(S+='\n');D.innerText=S;Z[5]||setTimeout(Y,i-P)}Y(h=K=t=P=0)">
36デフォルトの名無しさん:2008/07/08(火) 10:40:37
>>34
無関係の人間まで巻き込まないでね
37デフォルトの名無しさん:2008/07/08(火) 10:42:37
       / \  /\  キリッ
.     / (ー)  (ー)\ "vipでコテハンやってるし"
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ だっておー!!!
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
38デフォルトの名無しさん:2008/07/08(火) 11:19:34
専ブラ用あぼ〜ん条件を正規表現で79*7バイトで書いたら、
そこそこ強力なフィルタが書けそうだな
39デフォルトの名無しさん:2008/07/08(火) 11:19:53
たしかにwindows.hが続いてたとき
環境依存うぜーって話はなかったのに、
それ以外の時は出るんだよな。
winユーザーが多いのは認めるが、それでも環境依存って
ことには代わりはないとは思うがね
40デフォルトの名無しさん:2008/07/08(火) 11:42:55
>>39
俺は環境依存はそんなに気にならないかな。

特定の環境でしか動かないソースってのは「ハードルを下げたら
ここまでジャンプして越えることが出来たよ」って言ってるようなもんだから、
依存しようとしてなかろうと作者の工夫次第と思ってる。
# 別にwindows.hを使うのが幼稚だと言ってるワケじゃないからあしからず ;-)

環境依存は少ないほうが好みだけど、ライン引きが難しいから
「標準出力がゲーム機で動かないじゃないか」というツッコミまで許すことになりそうで怖い。
41デフォルトの名無しさん:2008/07/08(火) 11:47:02
>>40
s/標準出力が/標準出力がない/
42デフォルトの名無しさん:2008/07/08(火) 13:42:14
FirefoxでBase64エンデコード

<p id=B></p><textarea cols=64 rows=8 onblur=B.innerHTML=/[^+/-9A-Z]/i.test(v=value)?btoa(unescape(encodeURI(v))):decodeURIComponent(escape(atob(v)))>
43デフォルトの名無しさん:2008/07/08(火) 16:47:53
>>39
標準Cにない機能を使うための止むを得ない環境依存と、
字数を減らすためだけの"馴れ馴れしい"環境依存の違いだと思うよ(後者が悪いとは言わない)。

音を鳴らすという課題なら、windows.hなりXlib.hなり#includeしないわけには行かないだろう。
もちろん79x7の範囲でクロスプラットフォームにできれば言うことはないw
44デフォルトの名無しさん:2008/07/08(火) 17:44:28
少なくとも前スレのwindows.hのやつはstdio.h使わずにprintfしてたと思うがね
なぜそこに突っ込まないのか…‥ もしかしてwindows.hにprintfがあるのか?
45デフォルトの名無しさん:2008/07/08(火) 17:47:53
それはwindows.hうんぬんの話ではなくて、コンパイラ依存になるってのが論点になるよ・・・
46デフォルトの名無しさん:2008/07/08(火) 17:59:35
なんでもありでいいじゃない
(面白|凄)ければ評価されるだろうし、逆も然り。
納得できないコードだったら自分で直して投下すればいい
コードで語ろうぜ
47デフォルトの名無しさん:2008/07/08(火) 18:02:45
>>44
そんなんあったっけ。気づかんかった
48デフォルトの名無しさん:2008/07/08(火) 18:04:39
printfだけなら、stdio.hつかわないでもプロトタイプ宣言してやればいい。
49デフォルトの名無しさん:2008/07/08(火) 18:55:06
っていうかインクルードファイル内でprintf使ってれば当然宣言済みなんじゃないのか?
前スレで7行ライブラリの話が出てたのを皆忘れてしまったのだろうか?
50デフォルトの名無しさん:2008/07/08(火) 19:03:24
どのインクルードファイルがprintf使ってるんだ。
51デフォルトの名無しさん:2008/07/08(火) 19:44:12
調べといてよ。
とりあえず、インクルード内でstdio.h含めインクルードしてるのはよくあるんじゃないか?
よく移植の時に重複定義で悩ませられるような。
52デフォルトの名無しさん:2008/07/08(火) 20:17:33
重複定義で悩ませられるってなんだよそれ。
標準ライブラリのヘッダがインクルードガードしてないわけがないじゃん。
53デフォルトの名無しさん:2008/07/08(火) 21:21:15
>>52
なぜかすっぽ抜けてたりしてわけがわからない時に悩むんだっての。

とりあえずまあガードしてるってことはどちらでも問題ないってことじゃないのか?
54デフォルトの名無しさん:2008/07/08(火) 21:28:36
言ってることが分からん。

多いのは問題ないが、足りないのは問題だろ。
55デフォルトの名無しさん:2008/07/08(火) 21:49:46
多くたって問題だからガードするんだろ?
問題だったら省略されるわけないんだから、多少忘れたって足りない問題は起きない。
56デフォルトの名無しさん:2008/07/08(火) 21:51:03
標準ライブラリでガードされてないなんて、どこの標準非準拠処理系だよ
57デフォルトの名無しさん:2008/07/08(火) 21:57:55
だから、ガードを前提にそこら中でインクルードしまくられてるんだから
どっかでインクルードされてりゃ問題ないだろって話。
58デフォルトの名無しさん:2008/07/08(火) 21:59:13
どっかってどこだよ。
59デフォルトの名無しさん:2008/07/08(火) 22:04:44
そもそも他でインクルードされてなきゃ、ガードなんて無駄なだけじゃないか。
60デフォルトの名無しさん:2008/07/08(火) 22:08:26
>>39-59
7行でおk
61デフォルトの名無しさん:2008/07/08(火) 22:11:38
全く話がかみ合ってないからもうやめろよ
62デフォルトの名無しさん:2008/07/09(水) 00:12:38
#include<stdio.h>/*第一引数のファイル名を検索*/
#include<dirent.h>/*bcc限定かも……*/
char*f,r[4]="B:";void _(char*v){DIR*d;struct dirent*e;int c=0,i;char b[512];A:
if(!(d=opendir(strcmp(v,"C:")?v:"\\")))return;if(c)for(i=0;i<c;i++)readdir(d);B
:while(c++,e=readdir(d)){if(*e->d_name=='.')goto B;sprintf(b,"%s\\%s",v,e->
d_name);if(fclose(fopen(b,"r"))?closedir(d),_(b),1:strcmp(f,e->d_name)?0:puts(v
))goto A;}}main(int c,char**v){if(c==2){f=v[1];for(;r[0]++-75;)_(r);}return 0;}
63デフォルトの名無しさん:2008/07/09(水) 18:16:44
っ 七行クロンダイク
64デフォルトの名無しさん:2008/07/09(水) 20:29:09
#include<stdio.h>
*s,*d;main(int c,char**v){long W,H,*t,x,y=0,a;unsigned char h[54],f[3];s=fopen(
v[1],"rb");d=fopen(v[2],"wb");fread(h,1,54,s);W=*(t=(long*)&h[18]);H=*(t+1);a=4
-W*3%4;fwrite(h,1,54,d);for(;y++<H;){for(x=0;x++<W;)fread(h,1,3,s),f[0]=f[1]=f[
2]=77*h[2]+150*h[1]+29*h[0]>>8,fwrite(f,1,3,d);a-4?fread(h,1,a,s):0;}}

bmp形式の画像(24bit限定)をグレイスケールに変換
一応4ビット境界にも対応させてある
6564:2008/07/09(水) 21:48:21
訂正
×4ビット境界
○4バイト境界
66デフォルトの名無しさん:2008/07/09(水) 22:09:25
こんなに可読性の低いコード書いてて恥ずかしくないの?
67デフォルトの名無しさん:2008/07/09(水) 22:22:25
すげー誤読してた
>>64に「こんなに可読性の高いコード書いてて恥ずかしくないの?」
って言ってるんだと思って普通に読み流してた
68デフォルトの名無しさん:2008/07/09(水) 22:31:37
>>64
* main(c,v)char**v{って書くのが一番短いよ。
* yはグローバル変数にすれば初期化は不要だよ。
* H=*++t;とすればちょっと得するよ。
* (ANSI C) *s,*d;のように型無しで変数を定義するのは認められてないよ。
69デフォルトの名無しさん:2008/07/09(水) 22:40:53
#include<stdio.h>
int*s,*d,y;main(c,v)char**v;{long W,H,*t,x,a;unsigned char h[54],f[3];s=fopen(v
[1],"rb");d=fopen(v[2],"wb");fread(h,1,54,s);W=*(t=(long*)&h[18]);H=*++t;a=4-W*
3%4;fwrite(h,1,54,d);for(;y++<H;){for(x=0;x++<W;)fread(h,1,3,s),f[0]=f[1]=f[2]=
77*h[2]+150*h[1]+29*h[0]>>8,fwrite(f,1,3,d);a-4?fread(h,1,a,s):0;}}

こんな感じかな
70デフォルトの名無しさん:2008/07/09(水) 22:54:44
for(;y++<H;)は{ }がいらないと思う
あとその次のforは第3項をうまく使えば , が一つ消せそうな

freadが3つあるのが気になるけどCだから関数を文字でおく
とかはできないんだよな
71デフォルトの名無しさん:2008/07/09(水) 23:09:46
こんなもんか

#include<stdio.h>
int*s,*d,y;main(c,v)char**v;{long W,H,*t,a;unsigned char h[54],f[3];fread(h,1,
54,s=fopen(v[1],"rb"));W=*(t=(long*)&h[18]);a=4-W*3%4;fwrite(h,1,54,d=fopen(v[2
],"wb"));++t;for(;y++<*t;a-4&&fread(h,1,a,s))for(c=W;c--;fwrite(f,1,3,d))fread(
h,1,3,s),f[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
72デフォルトの名無しさん:2008/07/09(水) 23:11:07
#include<stdio.h>
int*s,*d,y;main(c,v)char**v;{long W,H,*t,x,a;unsigned char h[54],f[3];s=fopen(v
[1],"rb");d=fopen(v[2],"wb");fread(h,1,54,s);W=*(t=(long*)&h[18]);H=*++t;a=4-W*
3%4;fwrite(h,1,54,d);for(;y++<H;){for(x=0;x++<W;)fread(h,1,3,s),f[0]=f[1]=f[2]=
77*h[2]+150*h[1]+29*h[0]>>8,fwrite(f,1,3,d);a-4?fread(h,1,a,s):0;}}
7372:2008/07/09(水) 23:12:24
誤爆した上に負けてる…

#include<stdio.h>
int*s,*d,y;main(c,v)char**v{long W,H,*t,x,a;unsigned char h[54],f[3];s=fopen(v[
1],"rb");d=fopen(v[2],"wb");for(fread(h,1,54,s),W=*(t=(long*)&h[18]),H=*++t,a=4
-W*3%4,fwrite(h,1,54,d);y++<H;a-4?fread(h,1,a,s):0)for(x=0;x++<W;fwrite(f,1,3,d
))fread(h,1,3,s),f[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
7471:2008/07/09(水) 23:13:40
こんなもんかと思ったけどWはlongだったんだな
7572:2008/07/09(水) 23:17:19
あーそうかCでも&&は左から評価なのか
勉強になった
76デフォルトの名無しさん:2008/07/09(水) 23:17:48
>>70
size_t(*r)()=fread;
とはできるが、もう少し使用回数が多くないと得にはならないな。
7771:2008/07/09(水) 23:20:19
#include<stdio.h>
int*s,*d,y;main(c,v)char**v;{long W,*t,x,a;unsigned char h[54],f[3];fread(h,1,
54,s=fopen(v[1],"rb"));W=*(t=(long*)&h[18]);a=4-W*3%4;fwrite(h,1,54,d=fopen(v[2
],"wb"));++t;for(;y++<*t;a-4&&fread(h,1,a,s))for(x=W;x--;fwrite(f,1,3,d))fread(
h,1,3,s),f[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}

これならいいか
78デフォルトの名無しさん:2008/07/09(水) 23:21:05
yもいつのまにかintにされてるんだが。
79デフォルトの名無しさん:2008/07/09(水) 23:29:28
>>77>>78
じゃあyもlongにして、あとtも消せる?

#include<stdio.h>
int*s,*d;main(c,v)char**v;{long W,x,y,a;unsigned char h[54],f[3];for(fread(h,1,
54,s=fopen(v[1],"rb")),W=*(long*)&h[18],fwrite(h,1,54,d=fopen(v[2],"wb")),a=4-W
*3%4;y++<*++&W;a-4&&fread(h,1,a,s))for(x=W;x--;fwrite(f,1,3,d))fread(h,1,3,s),f
[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
8079:2008/07/09(水) 23:30:33
すまんなんでもない
81デフォルトの名無しさん:2008/07/09(水) 23:32:05
>>79
お前ちゃんと走らせてるのか?
出力が同じになることぐらい確認しとけよ。
8279:2008/07/09(水) 23:32:56
実は今出先なのでCのコンパイラがなかった
すます
8371:2008/07/09(水) 23:43:43
面倒だからみんなlongで

#include<stdio.h>
long*s,*d,y;main(c,v)char**v;{unsigned char h[54],f[3];long *t=&h[18],x,a;fread
(h,1,54,s=fopen(v[1],"rb"));a=4-*t*3%4;fwrite(h,1,54,d=fopen(v[2],"wb"));for(;y
++<t[1];a-4&&fread(h,1,a,s))for(x=*t;x--;fwrite(f,1,3,d))fread(h,1,3,s),f[0]=f[
1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}
8471:2008/07/10(木) 00:13:01
#include<stdio.h>
unsigned char h[54],f[3];long*s,*d,y,*t=h+18,x,a;main(c,v)char**v;{fwrite(h,1,
fread(h,1,54,s=fopen(v[1],"rb")),d=fopen(v[2],"wb"));for(a=4-*t*3%4;y++<t[1];a-
4&&fread(h,1,a,s))for(x=*t;x--;fwrite(f,1,3,d))fread(h,1,3,s),*f=f[1]=f[2]=77*h
[2]+150*h[1]+29**h>>8;}
85デフォルトの名無しさん:2008/07/10(木) 00:49:30
いい流れだ
86デフォルトの名無しさん:2008/07/10(木) 09:14:57
おまえらそんな可読性の高いコード書いてて恥ずかしくないの?
87デフォルトの名無しさん:2008/07/10(木) 11:00:43
>>86 恥なんかあったら、コードは掛けんよ(笑
88デフォルトの名無しさん:2008/07/13(日) 16:10:20
JavascriptでBase64エンデコード
<script>S=String.fromCharCode;c='0123456789+/=';for(i=122;64<i;i-=i-97?1:7)c=S(
i)+c;document.write(eval('l=v.length;for(i=p=0;i<l;){for(n=0,j='+(/[^+/-9=A-Z]/
i.test(v=unescape(encodeURI(prompt(r=''))))?'3;j--;l<i&&p--)n=n<<8|v.charCodeAt
(i++);for(j=4;j--;)r+=c.charAt(n>>6*j&63)}p?r.slice(0,p)+(p+1?"==":"="):r':'4;j
--;t-64||p--)n=n<<6|(t=c.indexOf(v.charAt(i++)))&63;for(j=3;j--;)r+=S(n>>8*j&25
5)}decodeURIComponent(escape(r.slice(0,p)||r))')))</script>

ほぼ限界だと思うんだが、どうなんだろう
pやcharAtが冗長な気もするけど・・・
89デフォルトの名無しさん:2008/07/13(日) 16:18:39
お、79文字に収まった

<script>S=String.fromCharCode;c='0123456789+/=';for(i=123;65<i;)c=S(i-=i-97?1:7
)+c;document.write(eval('l=v.length;for(i=p=0;i<l;){for(n=0,j='+(/[^+/-9=A-Z]/i
.test(v=unescape(encodeURI(prompt(r=''))))?'3;j--;l<i&&p--)n=n<<8|v.charCodeAt\
(i++);for(j=4;j--;)r+=c.charAt(n>>6*j&63)}p?r.slice(0,p)+(p+1?"==":"="):r':'4;\
j--;t-64||p--)n=n<<6|(t=c.indexOf(v.charAt(i++)))&63;for(j=3;j--;)r+=S(n>>8*j&\
255)}decodeURIComponent(escape(r.slice(0,p)||r))')))</script>
90デフォルトの名無しさん:2008/07/14(月) 19:05:50
<body id=D onKeyDown=K=event.keyCode-38 onload='Z=X=[B=A=12];(Y=function(){for(
C=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?
h+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=
[[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=
k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S="";i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228
)?i%A?"■":"■<br>":"_");D.innerHTML=S+P;Z[5]||setTimeout(Y,i-P)})(h=K=t=P=0)'
91デフォルトの名無しさん:2008/07/14(月) 21:04:11
>>35の方が少し短い
92デフォルトの名無しさん:2008/07/14(月) 21:17:17
innerHTMLのほうがいい罠
93デフォルトの名無しさん:2008/07/14(月) 21:34:04
innerTextとかIEだけじゃん 環境依(Ry
94デフォルトの名無しさん:2008/07/14(月) 21:58:39
Firefoxで動くから問題ない
95デフォルトの名無しさん:2008/07/15(火) 15:44:19
Firefoxじゃ動かんだろ
96デフォルトの名無しさん:2008/07/15(火) 16:18:26
うごくよ
97デフォルトの名無しさん:2008/07/15(火) 16:54:21
どちらもIEとFirefoxで動いたが、
OperaとSafariではどちらも動かなかった。
98デフォルトの名無しさん:2008/07/15(火) 17:18:11
Mozilla Firefox 2.0.0.6,
Mozilla Firefox-3.0 3.0a8,

どっちでも動かないんだが・・・
99デフォルトの名無しさん:2008/07/15(火) 18:49:10
Firefox では動かないよ
まあそんなことはどうでもいいけど、<br> を \n にするだけのために innerText を使うのはいただけない
100デフォルトの名無しさん:2008/07/15(火) 20:43:48
htaで動けばおk
101デフォルトの名無しさん:2008/07/16(水) 00:26:40
W3C DOMで採択されていないinnerTextを使うなんて…なぜ標準厨が湧かないんだ!!
102デフォルトの名無しさん:2008/07/16(水) 01:08:18
JScript標準ですがなにか
103デフォルトの名無しさん:2008/07/16(水) 01:37:02
>>101
マジレスするとinnerHTMLもW3C DOM非準拠。
HTML5待ちだよ。
104デフォルトの名無しさん:2008/07/16(水) 15:16:14
まさかJScriptなんて言葉が出てくるとはな
105デフォルトの名無しさん:2008/07/16(水) 18:33:10
出てきても何も問題は無い
106デフォルトの名無しさん:2008/07/19(土) 15:01:55
C++で正規表現エンジン?らしきものをやってみました
10行ですが、これ以上は厳しい・・・

#include <iostream>
struct a{a*b;char*c,*d;int e,f,g;};struct{int h(a*i,char*j,char*&k){a l={i,k,0,
99,99,1};return(*k-')'&&*k-'|'?(m(0,0,k),*k=='*'||*k=='+'&&++l.f||(l.f=1,*k==
'?')?(l.g=*++k-'?')||++k:(l.e=0),l.d=k,i=&l,0):!(j&&(k=i->c,i->b)))||n(i,j,k);}
int n(a*i,char*j,char*&k){a l=*i,o=l;return j?l.e<l.f--?m(&l,j,o.c):l.f<0?h(l.b
,j,o.d):l.g&&m(&l,j,o.c)||h(l.b,j,o.d)||!l.g&&m(&l,j,o.c):h(0,0,k);}int m(a*i,
char*j,char*&k){int p=*k++;if(p=='('||(p=j&&(p=='$'?!*j:((p-'.'?p==*j:*j)&&++j)
)&&n(i,j,k),0))while(!((p=h(i,j,k))&&j||*k++-'|'));return p;}}q;int main(int r,
char**s){return 2<r&&q.h(0,s[2],s[1]=(char*)(std::string("(.*?")+s[1]+")").
c_str())&&std::cerr<<"ktkr.\n";}

コマンドラインの引数に”正規表現”と”マッチ対象の文字列”をこの順番で与えて実行すると
マッチした場合だけ”ktkr”と出力します。使えるメタ文字: . $ ? ?? * *? + +? ( | )
^はグローバル変数を使わないと実装出来なそうだったので却下しました・・・
107デフォルトの名無しさん:2008/07/19(土) 15:04:50
あとCのソースを七行×79文字の形式に変換してくれるスクリプトを書きました
もし役に立てるのでしたら幸いです
http://xxx.s97.xrea.com/x/7amigos/7amigos.cgi
108デフォルトの名無しさん:2008/07/19(土) 15:39:36
>>106
#include <iostream>
typedef char*x;struct a{a*b;x c,d;int e,f,g;};struct{int h(a*i,x j,x&k){a l={i,
k,0,99,99,1};return(*k-')'&&*k-'|'?(m(0,0,k),*k=='*'||*k=='+'&&++l.f||(l.f=1,*k
=='?')?(l.g=*++k-'?')||++k:(l.e=0),l.d=k,i=&l,0):!(j&&(k=i->c,i->b)))||n(i,j,k)
;}int n(a*i,x j,x&k){a l=*i,o=l;return j?l.e<l.f--?m(&l,j,o.c):l.f<0?h(l.b,j,o.
d):l.g&&m(&l,j,o.c)||h(l.b,j,o.d)||!l.g&&m(&l,j,o.c):h(0,0,k);}int m(a*i,x j,x&
k){int p=*k++;if(p=='('||(p=j&&(p-'$'?(p-'.'?p==*j:*j)&&++j:!*j)&&n(i,j,k),0))\
while(!((p=h(i,j,k))&&j||*k++-'|'));return p;}}q;int main(int r,x*s){return 2<r
&&q.h(0,s[2],s[1]=(x)(std::string("(.*?")+s[1]+")").c_str())&&std::cerr<<"ktkr\
.\n";}
109デフォルトの名無しさん:2008/07/19(土) 15:40:49
>>107
二文字の演算子が分解される…
110デフォルトの名無しさん:2008/07/19(土) 23:17:04
9行目にバグがありました、、、
#include <iostream>
typedef char*x;struct a{a*b;x c,d;int e,f,g;};struct{int h(a*i,x j,x&k){a l={i,
k,0,99,99,1};return(*k-')'&&*k-'|'?(m(0,0,k),*k=='*'||*k=='+'&&++l.f||(l.f=1,*k
=='?')?(l.g=*++k-'?')||++k:(l.e=0),l.d=k,i=&l,0):!(j&&(k=i->c,i->b)))||n(i,j,k)
;}int n(a*i,x j,x&k){a l=*i,o=l;return j?l.e<l.f--?m(&l,j,o.c):l.f<0?h(l.b,j,o.
d):l.g&&m(&l,j,o.c)||h(l.b,j,o.d)||!l.g&&m(&l,j,o.c):h(0,0,k);}int m(a*i,x j,x&
k){int p=*k++;if(p=='('||(p=j&&(p-'$'?(p-'.'?p==*j:*j)&&++j:!*j)&&n(i,j,k),0))\
while(!((p=h(i,j,k))&&j||*k++-'|'));return p;}}q;int main(int r,x*s){return 2<r
&&q.h(0,s[2],s[1]=(x)(std::string("(.*?(")+s[1]+"))").c_str())&&std::cerr<<"ktkr\
.\n";}

>>108
なるほど。char*が多いのは気になってたのですが、typedefとは。不覚でした

>>109
根本的ではないっぽいですが、とりあえず直してみました
111デフォルトの名無しさん:2008/07/20(日) 10:28:38
Part5で9行正規表現はあったね。メタ文字は少なかったけど。
112デフォルトの名無しさん:2008/07/21(月) 08:34:58
バグとSTL取ったら伸びてしまいました・・・。
その代わりVC++でもコンパイルできる様になりました。これ以上はもう無理そうなので最後にします。

#include <stdio.h>
typedef char*a;struct b{b*c;a d,e;int f,g,h;}i={0,0,0,0,1,1};struct{int j(a&k,
a l=0,b*m=0){b n={m,k,0,99,99,1};return(*k&&*k-')'&&*k-'|'?(o(k,0,0),*k=='*'||*
k=='+'&&++n.g||(n.g=1,*k=='?')?(n.h=*++k-'?')||++k:(n.f=0),n.e=k,m=&n,0):!(l&&(
k=m->d,m->c)))||p(k,l,m);}int p(a&k,a l,b*m){b n=*m,q=n;return l?n.f<n.g--?o(q.
d,l,&n):n.g<0?j(q.e,l,n.c):n.h&&o(q.d,l,&n)||j(q.e,l,n.c)||!n.h&&o(q.d,l,&n):j(
k);}int o(a&k,a l,b*m){int r=*k++;if(r=='('||(r=l&&(r=='$'?!*l:((r-'.'?r==*l:*l
)&&++l))&&p(k,l,m),0))while(!((r=j(k,l,m))&&l||(j(k),*k++-'|')));return r;}}s;
int main(int t,a*u){for(char v[99]="(",*w=v;*w?(*++w=*u[1]++,1):s.o(*u=v,u[2]++
,&i)?(puts("ktkr."),0):*u[2];);return 0;}

>>111
あれがなければこの挑戦もなかったですね、、、
そこまで縮められるなんて夢にも思わなかったと思うので(日本語でおk)
113前すれ969:2008/07/26(土) 22:53:38
UTF-16BEのテキストファイルをUTF-8に変換
Winの人は(ry
#include <stdio.h>
FILE*i,*o;int a,b;int F(int c){return putc(128|c%64,o);}int main(int c,char**v)
{if(c>2&&(i=fopen(v[1],"r"))&&(o=fopen(v[2],"w")))for(;a=getc(i),a-EOF;((a=a<<8
|getc(i))>>11!=27)?a<128?putc(a,o):a<2048?(putc(192|a>>6,o),F(a)):(putc(224|a>>
12,o),F(a>>6),F(a)):(b=getc(i)%4,c=getc(i),a=64+a%1024,putc(240|a>>8,o),F(a/4),
F(a<<4|b*4|c>>6),F(c)));return i&&fclose(i),o&&fclose(o),o?0:!!fprintf(stderr,c
<3?"usage: %s input output\n":"fairu wo hirakenaijanaika! itteyoshi!!\n",*v);}
エンディアンを自動判定するのは難しそうだな…

それから、前スレ969のプログラム(UTF-8→UTF-16)を4文字ほど短縮した
#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>2&&(i=fopen(v[1],"r"))&&(o=fopen(v[2],"w"
)))for(fputs("\xfe\xff",o);(c=getc(i))-EOF;(p-=r)>=0?P(p/1024+55296),P(56320+p%
1024):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);return i&&fclose(i),o&&fclose(o),o?0:!!fprintf(stderr,c<3?"usag\
e: %s input output\n":"fairu wo hirakenurupoaijanaika! itteyoshi!!\n",*v);}

あと、俺以外の人が変数の型を省いて短縮するのはいいけど、
stderrを省いて実行時に落ちるようになるのはやめてくれ
むしろ、落ちるくらいなら無駄なメッセージ出力を無くしてしまった方がいい
114デフォルトの名無しさん:2008/07/28(月) 18:44:02
正直、セキュリティやデバッグ目的で冗長なコードを実装するのは
七行プログラミングとしてどうかと思うがな。

短縮よりも機能や安定性を優先しようと思えば、いくらでも出来るわけで。
七行未満になったなら、糞メッセージを表示するより不正なEOF判定でも入れておけ。
115デフォルトの名無しさん:2008/07/28(月) 19:40:05
「〜はやめたほうがいい」
「〜はどうかと思う」
なんかは、自分のコードに反映させればいい。
規律と可能性は背反するものだし、正解はないだろう。
116デフォルトの名無しさん:2008/07/28(月) 20:13:02
他人のオナニーに注文つけるのは無粋ってもんだ
117デフォルトの名無しさん:2008/07/29(火) 19:40:42
今いいこと言った
118デフォルトの名無しさん:2008/07/29(火) 21:42:56
すげーオナニーを見せてくれるとうれしい!?
119デフォルトの名無しさん:2008/07/29(火) 22:46:10
要は称えあってれば満足なんですね
mixiとかオススメ
120デフォルトの名無しさん:2008/07/29(火) 22:53:57
卑屈なのが文面から滲み出てくるなあ
一種の言語調教なんだから楽しくやろうぜ?
121デフォルトの名無しさん:2008/07/29(火) 23:14:10
他人にオナニー見せてるわけだからAV女優並にある程度注文つけられても仕方ないだろ。
122デフォルトの名無しさん:2008/07/31(木) 00:41:23
え?あいつらタダであんなことやってんの?
それtも>>121が金払ってくれるって話か?
123デフォルトの名無しさん:2008/07/31(木) 05:10:32
はいはい釣り釣り
124デフォルトの名無しさん:2008/08/01(金) 01:40:38
カッコの付け方やスペースの入れ方の違いで一生罵り合える人種に
注文付けるななんて中東を平和にするより無茶
125デフォルトの名無しさん:2008/08/01(金) 16:31:11
#include <windows.h>
void _(long*A,HWND B,int C,int D,int E){if(GetWindowRect(B,(RECT*)A),A[2]-=A[0
]+=26,A[3]-=A[1]+=99,SetForegroundWindow(B)){}while(E>2?Sleep(E),keybd_event((
char)(C>2?E-C:C?88+C:160),0,3-2*D,0),!~(C-=D=!D)?E=0,1:1:(E-->0?SendMessage(B,
513+!E,E,((47+D*16)<<16)+20+C*16),1:++C-A[2]/16?SetCursorPos(A[0]+C*16,A[1]+D*
16),GetPixel(GetDC(0),0,0)==0xFFFFFF?E=2:1:++D-A[3]/16?C=-1:0)){}}void main(){
if(_((long*)malloc(16),FindWindow("マインスイーパ",0),5,1,93),exit(0),0){}}
126デフォルトの名無しさん:2008/08/01(金) 16:58:54
>>113
nurupo
127デフォルトの名無しさん:2008/08/01(金) 17:05:54
少しだけ残るのね
128デフォルトの名無しさん:2008/08/14(木) 08:48:24
NOP
NOP
NOP
NOP
NOP
NOP
NOP
129デフォルトの名無しさん:2008/08/14(木) 21:33:07
HLT
130デフォルトの名無しさん:2008/08/26(火) 10:45:58
RDTSC
MOV ECX,EAX
STI
HLT
RDTSC
SUB EAX,ECX
RET
131デフォルトの名無しさん:2008/08/26(火) 13:16:23
>>130
無意味な事を無駄なく実行するそのコードの有様に感動したw
132デフォルトの名無しさん:2008/08/26(火) 14:41:07
STIとHLT間のクロック数の計測?
何がすごいのかわからない(たぶん俺の知識がなくて)
133デフォルトの名無しさん:2008/08/26(火) 15:33:55
>>132
STIの後にHLTすると、割り込み許可状態で待機する。まぁOS作ってないと分からんわな。
つまりあれだ、アクセラレータか何かの設定をしたあとSleep(-1);して、
叩き起こされたところでその間に何クロック分の時間が経ったかを計算してるようなもん
(しかし2GHzのマシンでさえ2秒強でオーバーフローする!)
134デフォルトの名無しさん:2008/08/26(火) 22:27:39
インラインアセンブラとかじゃ動かない?
135デフォルトの名無しさん:2008/08/27(水) 00:10:56
>>133
解説してくれたのにわるいが、それくらいはわかるんだ。
結局何がすごいの?
136デフォルトの名無しさん:2008/08/27(水) 00:32:51
>>135
あとは感性の問題だからあまり気にするな
すごいと思う人がいれば、何も思わない人がいる。それだけだ
137デフォルトの名無しさん:2008/08/27(水) 00:42:12
自作自演だったんだろ
突っ込んでやるなよ
138デフォルトの名無しさん:2008/08/27(水) 02:42:01
オーバーヘッドが少ないとか、そういう事じゃないの?
>>131の話からすると。
139デフォルトの名無しさん:2008/08/27(水) 02:58:57
>>134
インラインアセンブラだとHLTもSTIも無いだろうな。RDTSCもあるかどうか

あなたがどんな特殊な/一般的な環境を持っているかは知らないけど。

>>135
明らかに無意味な事を無駄なく7行で表現するにはセンスが必要だと思うが
凄いとは思わんな
140デフォルトの名無しさん:2008/08/27(水) 10:35:16
>>139
> インラインアセンブラだとHLTもSTIも無いだろうな。RDTSCもあるかどうか

それはない
141デフォルトの名無しさん:2008/08/27(水) 11:59:07
なかったらgasでコンパイルできない
142デフォルトの名無しさん:2008/08/27(水) 12:31:25
MSCのインラインアセンブラはDBとかの疑似命令に対応してなかったけどな
143デフォルトの名無しさん:2008/08/27(水) 17:06:22
アセンブラとインラインアセンブラの区別がつかない人が居るスレはここですか?
144デフォルトの名無しさん:2008/08/27(水) 17:07:36
インラインアセンブラにそれがなかったらgasでコンパイルできないのか、そうか

gasでコンパイルできないのか。
145デフォルトの名無しさん:2008/08/28(木) 04:27:37
っていうかインラインの命令って下請けのアセンブラに丸投げなんじゃないの?
146デフォルトの名無しさん:2008/08/28(木) 10:25:21
コンパイラによる。
GCCは丸投げするからなんでも通る。MSCは自前。
147デフォルトの名無しさん:2008/09/07(日) 19:22:42
逆ポーランド記法な有理数電卓
入力は99文字まで、スタックの大きさは10まで
もういじりたくないorz
#include <stdio.h>
typedef int I;abs(I);G(a,b){for(;b&&(a%=b)&&(b%=a););return abs(a+b);}I s[20],*
p=s+20,*q=s+18,g;char f[100],*i=f;long strtol(I*,I**,I);main(){for(fgets(f,100,
stdin);*i;++i)47<*i&&*i<58?*--p=1,*--p=strtol(i,&i,0),--i:*i-32&&*i-10?*i-47?*i
-42?*i-45?*i-43?0:(p[2]=p[2]*p[1]+p[3]**p,p[3]*=p[1]):(p[2]=p[2]*p[1]-p[3]**p,p
[3]*=p[1]):(p[2]*=*p,p[3]*=p[1]):(p[2]*=p[1],p[3]*=*p),(p+=2,g=G(*p,p[1]),p[1]<
0?g=-g:0,*p/=g,p[1]/=g):0;for(;p-q-2;q-=2)printf("%d/%d\t",*q,q[1]);puts("");}
148デフォルトの名無しさん:2008/09/10(水) 11:09:57
#include<stdio.h>
#include<stdlib.h>
G(a,b){for(;b?a%=b:0;)b%=a;return a+b;}int*v,*u,*r,s[20],*p=s+20,*q=s+18,g,f[25]
;char*i=f;main(c){for(fgets(f,100,stdin);c=*i;++i)47<c&&c<58?*--p=1,*--p=strtol(
i,&i,0),--i:(v=p+1,r=p+2,u=p+3,c%=6)-2&&c-4?c-5?c?c-3?c-1||(*r=*r**v+*u**p,*u*=*
v):(*r=*r**v-*u**p,*u*=*v):(p[2]*=*p,*u*=*v):(*r*=*v,*u*=*p),(p+=2,g=G(*p,*u),g*
*u<0?g=-g:0,*p/=g,*u/=g):0;for(;p-q-2;q-=2)printf("%d/%d\t",*q,q[1]);puts("");}

↑適当に縮めてみました。gccで通るコードでよければ3・4行くらいで書けそうですね。
149デフォルトの名無しさん:2008/09/12(金) 02:01:15
7行では無い、2行コードですが7行スレへ行けと言われたので・・・
C/C++の宿題スレに書いたものをそのまま転載します。
[1] 授業単元:C/C++(.c/.cpp最小ファイルサイズを目指せ!!)
[2] 問題文(含コード):
int型のsin,cosテーブルを"sincos.cpp"というファイル名で出力
警告の有無は問わず。
コード:main.c<とりあえずココまで短くなりました> :以下コード

f;i;main(){for(f=fopen("sincos.cpp","w");i<450;i++)fprintf(f,"%c%6d,%s",i%10?
32:9,(int)(sin(i*3.141592653589793/180)*65536),i%10<9?"": "\n");fclose(f);}

これより短くせよ。但し、出力結果は同じになるように。
[3] 環境
 [3.1] Windows
 [3.2] VisualStudio2005
 [3.3] C/C++どちらでも可
ちなみにReleaseで.exeに出力しています。
150デフォルトの名無しさん:2008/09/12(金) 04:41:15
ちょうてけとー
f;i;main(x){for(f=fopen("sincos.cpp","w");i<450;i++)fprintf(f,"%c%6d,%s",i%10
?32:9,x=sin(i*atan(1)/45)*65536,"\n"+(i%10<9));fclose(f);}

あと、
もともとプロトタイプ宣言とか省いて
超コンパイラ依存なコードになってるんだから、
もうぶっちゃけfcloseも省いてよくね?
151デフォルトの名無しさん:2008/09/12(金) 08:38:26
>>150
宿題の相手までしてやる必要はないよ。
調子に乗った教えて君が増えたら困る。
152デフォルトの名無しさん:2008/09/12(金) 09:06:53
流れブッタ切りですまんが、、、
#include<math.h> して M_PI 使ったほうが短いし、解り易いと思うんだ。
153デフォルトの名無しさん:2008/09/12(金) 11:38:16
#include<math.h>+M_PI
3.141592653589793
atan(1)*4
どうみてもincludeは長いです.
154デフォルトの名無しさん:2008/09/12(金) 11:53:11
本当なら
#include<math.h>+atan(1)*4
なんじゃないの
155デフォルトの名無しさん:2008/09/12(金) 12:36:42
603 :デフォルトの名無しさん [↓] :2008/09/11(木) 19:55:20
>>595
う〜ん、直値は見なかったことにしよう
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7710.c
156デフォルトの名無しさん:2008/09/12(金) 15:00:40
__FILE__
157デフォルトの名無しさん:2008/09/12(金) 15:26:38
M_PIはプリプロセッサだから無理だけど
atanはリンカで無理やり打ち込める
158デフォルトの名無しさん:2008/09/12(金) 18:44:32
M_PIもプリプロセッサのオプションで…
159デフォルトの名無しさん:2008/09/12(金) 22:20:52
atan(1)*4は気づかなかったw
ちなみにM_PIは
#define _USE_MATH_DEFINES
#include<math.h>
M_PI
ってなるから長い・・・

160デフォルトの名無しさん:2008/09/13(土) 01:21:22
そんなオプションが要るのか…w
Cは言語仕様と関係ない部分で挙動が変わりすぎて困るね。
C++なら普通におこられるだけだけど。
161デフォルトの名無しさん:2008/09/22(月) 21:59:32
オプションで、とか言い出したら /Dm=main() つけて、とかそういうことになっちゃう
162デフォルトの名無しさん:2008/09/22(月) 22:34:06
有名どころでは
  #include "/dev/tty"
とか
163デフォルトの名無しさん:2008/09/22(月) 23:14:16
>>162
目からウロコを射出した

昔の人は天才的なバカだな
164デフォルトの名無しさん:2008/09/22(月) 23:42:30
なるほどなー

「標準入力をコンパイルしたい時は /dev/tty を include しよう」
http://alohakun.blog7.fc2.com/blog-entry-460.html
165デフォルトの名無しさん:2008/09/23(火) 20:45:02
__FILE__ をうまく使ってファイル名でプログラム書くって技もあったような。
166デフォルトの名無しさん:2008/09/23(火) 22:26:36
画期的すぎる
167デフォルトの名無しさん:2008/09/24(水) 01:45:02
みつけた。これだ。

http://www.ioccc.org/1993/lmfjyh.c

> char*_=__FILE__;

で、これのファイル名を(ダブルクォートも含めて)次のようにする。

";main(){puts("Hello World!");}char*C=".c

そうすると、

> char*_="";main(){puts("Hello World!");}char*C=".c";

とかになるわけだ。
168デフォルトの名無しさん:2008/09/24(水) 03:31:23
ファイル名に*が使えないOSでは[]とかか
169デフォルトの名無しさん:2008/11/08(土) 06:15:54
test
170デフォルトの名無しさん:2008/11/08(土) 17:46:09
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define N 100
int main(int c,char**v){uintmax_t m=1,n=1,o=1,i,p;for(c=c>1?atoi(v[1]):10;c;--c
,o=n+=m+=n,putchar('\n'))for(putchar('0'+(p=o/m)),putchar('.'),i=1;i<N;++i)put\
char('0'+(p=(o=(o-p*m)*10)/m));return 0;}
171デフォルトの名無しさん:2008/11/18(火) 05:59:01
メインとは
    「人生オワタ\(^o^)/」で 重大エラー
172デフォルトの名無しさん:2008/11/18(火) 09:22:00
>>170 何の結果を出しているのか解説キボンヌ
173デフォルトの名無しさん:2008/11/18(火) 15:48:06
174デフォルトの名無しさん:2008/11/18(火) 20:14:42
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define N 100
uintmax_t m=1,n=1,o=1,i;int main(int c,char**v){for(c=c>1?atoi(v[1]):10;c--;o=n
+=m+=n)for(printf("\n%d.",o/m),i=1;i++<N;)o=(o-o/m*m)*10,printf("%d",o/m);retu\
rn 0;}

あんまり変えずに縮めてみた。
175174:2008/11/18(火) 20:16:54
n+=m+=n;
この文の繰り返しでフィボナッチ数が生成されるのに感動をおぼえた。
176デフォルトの名無しさん:2008/11/19(水) 10:13:24
10行分超過

<body id=d onKeydown=k(event.keyCode-38)><div id=I height=100 width=280 valign=
bottom><div id=r>○<div id=t>大</div></div></div><p id=g><script>a=-4;b=10;X=3*
(Y=90);D=document;s=setInterval;S=parseInt;H="innerHTML";A="style";p="position"
;O="absolute";g[A][p]=I[A][p]=O;r[A][p]="relative";l(o=B=r.v=J=n=0);Q(B,r);P(20
,r);q=15;E=[0,0,0,0,0,0,0,0];L=E.length;s(G,150);M=s(h,150);w=-20;function Q(z,
e){e.y=Y-S(e[A].paddingTop=Y-z+"px");}function l(z){g[H]=z;}function G(){r.v;r.
K=r.y;r.v+=a;if(B<(F=r.v+r.y)&&F<Y){Q(F,r);}else{r.v=0;Q(B,r);if(!o){t[H]="大";
}}}function h(){if(Math.random()<0.11+n/50000){for(j=0;j<L;j++){if(!E[j]){E[j]=
1;break;}}if(j<L){T=D.createElement("div");T.id="e"+j;T[H]=(j==4)?"砲":(j%3==1)
?"棘":j%2==0?"亀":"栗";d.appendChild(T);P(X-b,T);T[A][p]=O;Q(w+((j==4)?40:0),T)
;}}for(i=0;i<L;i++){if(E[i]>0){c=D.getElementById("e"+i);R((-b)*((i==5)?2:1),c)
;if(c.x<20){E[i]=0;d.removeChild(c);}if(r.x>c.x-q*0.1&&r.x<c.x+q*1.3&&r.y>(C=c.
y-w)-q*1.5&&r.y<C+q*1.5){if(i%3!=1&&r.K>0){E[i]=0;k(0);J=1;d.removeChild(c);c[H
]="";l(n+=100);}else{r.v+=b*3;t[H]="出";clearInterval(M);k=function(){};o=1;}}}
}}function P(z,e){e.x=S(e[A].paddingLeft=z+"px");}function R(z,e){if(0<(f=z+e.x
)&&f<X){P(f,e);}else{e.V=0;}}function k(z){R(b*z,r);if(!z&&(r.y==B||J)){r.v+=b*
1.7;t[H]="方";J=0;}}</script>
177デフォルトの名無しさん:2008/11/19(水) 21:59:43
今までの短縮技がまったく生かされてないような

過去の作品を見てみよう!
178デフォルトの名無しさん:2008/11/21(金) 00:39:49
>>176
どうやってもキラーに太刀打ちできなかったww
179デフォルトの名無しさん:2008/11/21(金) 00:48:42
7行でライツアウト
180デフォルトの名無しさん:2008/11/22(土) 00:26:48
変な動きする

#!/usr/bin/perl # THIS INTERPRETER RUNS UNSTABLY, CANNOT EXECUTE NEST SYNTAXES.
if($#ARGV){print"7Lines BF interpreter\nUsage: ./7bfi File [Files..]";exit(-1);}
@m=(0)x256;@c=split(//,`cat "@ARGV"`);for($i=$p=0;$i<=$#c;$i++){if($c[$i]eq'['&&
!$m[$p]){for($j=$i;$j<=$#c;$j++){$i=$c[$j]eq']'?$j+1:$i;}}if($c[$i]eq']'&&$m[$p]
){for($j=$i-1;$j>=0;$j--){$i=$c[$j]eq'['?$j:$i;}}if($c[$i]eq'>'){$p++;}if($c[$i]
eq'<'){$p--;}if($c[$i]eq'+'){($m[$p]%=0xFF)++;}if($c[$i]eq'-'){($m[$p]%=255)--;}
if($c[$i]eq'.'){print chr($m[$p]);}if($c[$i]eq','){$m[$p]=unpack('c2',getc);}};
181デフォルトの名無しさん:2008/12/08(月) 21:21:05
>>179
これがサイズ可変
<body id=B><script>w=5;x=w+1;function f(n,_,g){f[n]^=1;f[n+1]^=1;f[n-1]^=1;f[n+
x]^=1;f[n-x]^=1;for(j=w*x;j;)_+=j--%x?'<a href=javascript:f('+j+',++c)>'+(f[j]?
g='●':'○'):'<br>';B.innerHTML=g?_:'Great!!'}for(i=w*x;i;)i--%x&&Math.random(c
=0)<.5&&f(i)</script>

これが 5 x 5 固定
<body id=B><script>a=f=function(n,_,g){a^=(1<<n)*67.515625;for(j=30;j;)_+=j--%6
?'<a href=javascript:f('+j+',++c)>'+(a>>j&1?g='●':'○'):'<br>';B.innerHTML=g?_
:'Great!!'};for(i=30;i;)i--%6&&Math.random(c=0)<.5&&f(i)</script>
182デフォルトの名無しさん:2008/12/08(月) 22:01:50
>>179
俺も作ってみた

<title>LO</title><body onload="S='',A=[U='<button id=',V=' onclick="U(',W=
')">・</button>'];B=[b=0];Q=['#cab','#f08',x='#867'];for(i=0;++i<42;A[i]=B
[i]=0)S+=i>6&i<36?i%6?U+i+V+i+W:'<br>':'';document.getElementById(0).innerHTML=
S;U=function(i){B[i]^=b,V(i-6),V(i-1),V(i),V(i+1),V(i+6);for(m=j=0;j++<36;m|=A[
j]);m?0:alert('You got it!')};for(i=7,V=function(i){if(i%6&&i>6&i<36)I=document
.getElementById(i).style,I.backgroundColor=y=Q[A[i]^=1],I.color=B[i]?x:y};i<36;
i++)i%6?Math.random()<.5?U(i):V(i)+V(i):0;b=1"><pre style="line-height:1" id=0>
183デフォルトの名無しさん:2008/12/08(月) 22:07:53
>>181
うはあこれは凄い
184デフォルトの名無しさん:2008/12/13(土) 03:25:47
>>182
unterminated stringと出たのだが(FF3)
185デフォルトの名無しさん:2008/12/13(土) 13:10:49
>>184
&quot; が " になってるんだと思う
あと、無理矢理改行されてるから1行にしないとだめ
なんだかなぁ
186デフォルトの名無しさん:2008/12/16(火) 04:02:52
using System.Drawing;using System.Drawing.Drawing2D;using f=System.Single;
class P{static void Main(string[]a){using(Bitmap i=new Bitmap(a[0])){M(i,1
,f.Parse(a[1]),f.Parse(a[2]),f.Parse(a[3]));i.Save(a[0]+"-d.bmp");}}static
Bitmap M(Bitmap i,f s,f z,f w,f h){if(s>.0001){using(Bitmap t=M((Bitmap)i.
Clone(),s*z,z,w,h))using(Graphics g=Graphics.FromImage(i))using(Matrix m=
new Matrix()){m.Translate(w,h);m.Scale(s,s);m.Translate(-w,-h);g.Transform
=m;g.DrawImage(t,new Point());}}return i;}}

usage filename z(<1.0), w, h


悪魔は出てきません。
187デフォルトの名無しさん:2008/12/16(火) 04:22:48
どういうプログラムか書いてくれると、まとめる時に助かります。
188デフォルトの名無しさん:2008/12/16(火) 20:43:48
>>187
合わせ鏡みたいな何かです。

文字数に余裕があったので回転も加えてみた

using System.Drawing;using System.Drawing.Drawing2D;using f=System.Single;
class P{static void Main(string[]a){using(Bitmap i=new Bitmap(a[0])){M(i,1,f.
Parse(a[1]),f.Parse(a[2]),f.Parse(a[3]),f.Parse(a[4]));i.Save(a[0]+"-d.bmp");}
}static Bitmap M(Bitmap i,f s,f z,f r,f w,f h){if(s>.0001){using(Bitmap t=M((
Bitmap)i.Clone(),s*z,z,r,w,h))using(Graphics g=Graphics.FromImage(i))using(
Matrix m=new Matrix()){m.Translate(w,h);m.Scale(s,s);m.Rotate(r);m.Translate(
-w,-h);g.Transform=m;g.DrawImage(t,new Point());}}return i;}}

usage: filename z(<1.0) r w h

なんか逆に汚くなったような… orz
189デフォルトの名無しさん:2008/12/16(火) 23:39:50
#include <stdio.h>
main(){
int i=0;
i=(i++?i-1:i+1);
printf(%d, i);
}

悪魔が出るかも?
190デフォルトの名無しさん:2008/12/17(水) 01:35:23
>>189
2重引用符忘れてるじゃん。
191デフォルトの名無しさん:2008/12/17(水) 02:20:06
普通にエラーだったな
192デフォルトの名無しさん:2008/12/17(水) 10:49:29
悪魔=コンパイルエラー
193デフォルトの名無しさん:2008/12/17(水) 11:31:40
コンパイル通る環境あるのか?
194デフォルトの名無しさん:2008/12/18(木) 01:43:12
printfの所はともかく、?は副作用完了点なので悪魔は出ない
195デフォルトの名無しさん:2008/12/18(木) 02:20:44
ネタくれ
196デフォルトの名無しさん:2008/12/18(木) 13:13:22
鼻から悪魔がでればそれで十分
197デフォルトの名無しさん:2009/01/10(土) 03:52:43
おら、ネタもってきたぞ

空から女の子が降ってくる - ぼくはまちちゃん!(Hatena)
http://d.hatena.ne.jp/Hamachiya2/20090109/fallingirl

> 文字数が多くて IE6 だと動かないようになっちゃったのが残念です…!
> だれかもっと縮めて!
> (500文字くらいに!)

javascript:(function(){scroll(0,0);H='http://hamachiya.com/';D=document;F=Math.floor;
R=Math.random;Q=new Image;Q.src=H+'g1.gif';L=function(){var X=F(R()*vw);var Y=0;
var r=F(R()*9)+3;var V=Z(X,Y);D.body.appendChild(V);var f=function(){if(Y+r<vh){V.style.top
=(Y+=r)+'px'}else{V.style.top=vh+'px';V.src=H+'g2.gif';setTimeout(function(){V.src=H+'g3.gif'},550);
clearInterval(t);}};var t=setInterval(f,40)};Z=function(x){var e=D.createElement('img');e.src=Q.src;
var s=e.style;s.position='absolute';s.left=x+'px';s.top=0;return e;};var vw,vh;Q.onload=function(){
vw=(self.innerWidth||D.documentElement.clientWidth||D.body.clientWidth)-Q.width;vh=(
self.innerHeight||D.documentElement.clientHeight||D.body.clientHeight)-Q.height;setInterval(
L,800);Q.onload={}}})()

ブックマークレットなんで1行にしてアドレスバーに突っ込むタイプの奴な
198デフォルトの名無しさん:2009/01/10(土) 03:57:14
age忘れた
199デフォルトの名無しさん:2009/01/10(土) 14:18:43
512バイトプログラミングか
とりあえずお行儀よいコード
javascript:(function(H,G,D,R,c,a,T){scroll(T=D.title,0);setInterval(function(o,
i){if(R()<.05)a.push(D.body.appendChild(o=new Image)),o.src=H+1+G,i=o.style,i.
position='absolute',i.right=R(o.s=R(o.b=99)*3+1)*90+'%';for(i=0;o=a[i++];)with(
o)b-=s,b<0&&setTimeout(function(){src=H+3+G;onclick=function(){D.title=[T,++c];
D.body.removeChild(this)}},550,src=H+2+G,a.splice(--i,b=1)),style.bottom=b+'%'}
,40)})('http://hamachiya.com/g','.gif',document,Math.random,0,[])
200デフォルトの名無しさん:2009/01/10(土) 14:36:19
行儀無視 420 bytes
javascript:scroll(H='//hamachiya.com/g',G='.gif',D=document,R=Math.random,a=[],
D.title=0,setInterval(function(){if(R(B=D.body)<.05)a.push(B.appendChild(o=
new Image)),o.src=H+1+G,i=o.style,i.position='absolute',i.left=R(o.s=R(o.b=99)*
3+1)*90+'%';for(i=0;o=a[i++];)with(o)b-=s,b<0&&setTimeout(function(){src=H+3+G;
onclick=function(){D.title++;B.removeChild(this)}},550,src=H+2+G,a.splice(--i,b
=1)),style.bottom=b+'%'},40))

まともなカウンター 499 bytes
javascript:scroll(H='//hamachiya.com/g',D=document,B=D.body,R=Math.random,a=[],
S=B.appendChild(C=D.createElement('b')).style,S[P='position']=A='absolute',S.
top=0,S.fontSize='9em',setInterval(function(){if(R(G='.gif')<.05)a.push(B.
appendChild(o=new Image)),o.src=H+1+G,S=o.style,S[P]=A,S.left=R(o.s=R(o.b=99)*3
+1)*90+'%';for(i=0;o=a[i++];)with(o)b-=s,b<0&&setTimeout(function(){src=H+3+G;
onclick=function(){C.innerHTML++;B.removeChild(this)}},550,src=H+2+G,a.splice(
--i,b=1)),style.bottom=b+'%'},40))
201デフォルトの名無しさん:2009/02/19(木) 07:12:24
age
202デフォルトの名無しさん:2009/02/26(木) 16:04:55
AgI
203デフォルトの名無しさん:2009/03/13(金) 22:38:23
sage
204デフォルトの名無しさん:2009/03/14(土) 05:41:45
ネタくれ
205デフォルトの名無しさん:2009/03/14(土) 22:57:03
万華鏡
206デフォルトの名無しさん:2009/03/22(日) 02:05:29
無理だろwww
207デフォルトの名無しさん:2009/03/31(火) 21:12:53
C/C++で、

int*a;

みたいなスペースが入らない記述があるけど、
これって環境依存?依存しない?
遠い昔こういう書き方をしたらエラーになった気がするけど。
208デフォルトの名無しさん:2009/03/31(火) 21:36:57
聞く場所間違っているよ。
【初心者歓迎】C/C++室 Ver.64【環境依存OK】
http://pc12.2ch.net/test/read.cgi/tech/1234193151/
こちらへどうぞ。

最長トークンで分けられるので、int, *, a, ;に分けられる。
ゆえに、スペース(大抵スペースといえば、半角のスペースだろうけど)が、入らなくても問題はない。

エラーになった原因はおそらく
C89までは、ブロックの先頭でしか変数を宣言できなかったから。
すでに、aという識別子が宣言または定義されていたから。
int*a;より前でなんらかの構文エラーをそのまま引きずって、int*a;が構文エラーと見なされたから。
などなどか。
209デフォルトの名無しさん:2009/03/31(火) 21:37:18
仕様書読めよ
210デフォルトの名無しさん:2009/03/31(火) 21:43:59
>>208
thx!
211デフォルトの名無しさん:2009/04/05(日) 21:54:51
http://www.youtube.com/watch?v=y9uYEM2osYQ
これを作ってみた。テキスト化はやる気が足りなかった。
ESCで終了

:?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
:Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
:?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN:~
:~J_%!f?&3t39w_!!TPgMvBW!K"^_wwM/wCK"#`wwP%d1W!j<PdMOoC<>L@l#l-&@>@Hl#l&0lbjuN
:l,?Mrt2L#Ytg7t&h8=PLbtq@l<Pbteq@"c1.#PfRPi^%&3kf&:Mv7!/I"aw6w9Mw_d!L"O9pR33bf
:)P\j3bfr)5hIH#nB:'Isf,%`V!9hMn#"3i_!&Lf&pk"!!!!"777!"!!!!"777!"!!!!"!!!!*
212デフォルトの名無しさん:2009/04/08(水) 14:54:17
base64のデコードの方だけだけど、jsで2行でできたw
<input onkeyup='event.keyCode-13||window.open("data:text/html;base64,"+
this.value,"","width=400,height=300")' >
213デフォルトの名無しさん:2009/04/09(木) 07:59:50
location でいいし
214デフォルトの名無しさん:2009/04/11(土) 11:39:52
タブをきれいにスペースに置き換えるスクリプトがほしいです。
215デフォルトの名無しさん:2009/04/11(土) 12:50:48
216デフォルトの名無しさん:2009/04/13(月) 22:32:27
http://pc11.2ch.net/test/read.cgi/hard/1235225061/940

<body id=B bgcolor=gray onload="a='fff,ff0,0ff,0f0,f0f,f00,00f,000'.split(',');
b='background:#';c=';color:#';d='<tr height=';e='<td align=center style='+b;s=[
'<table width=640 cellspacing=0>','文字が滲んで見えないか','カラーバーの中の四\
角が見えるか'+d+'200>','階調が見えるか'+d+'80>',d+'80>'];for(i in a){s[1]+=d+
'30>';for(j in a)s[1]+=e+a[j]+c+a[i]+'>液晶TV';s[2]+=e+a[i].replace(/f/g,'eb').
replace(/0/g,10)+'><div style=width:40;height:40;'+b+a[i]+'>';s[3]+=e+(x=(256+4
*i).toString(16).slice(1))+x+x+c+'fff>'+4*i;s[4]+=e+(x=(y=255-4*i).toString(16)
)+x+x+'>'+y}B.innerHTML=s.join('<tr><th colspan=8>')">
217デフォルトの名無しさん:2009/04/14(火) 01:30:34
<body id=B bgcolor=gray onload="a='fff,ff0,0ff,0f0,f0f,f00,00f,000'.split(',');
b='background:#';c=';color:#';d='<tr height=';e='<td align=center style='+b;s=[
'<table width=640 cellspacing=0>','文字が滲んで見えないか','カラーバーの中の四\
角が見えるか'+d+'200>','階調が見えるか'+(f=d+'80>'),f];for(i in a){g=a[i];h=4*i
;s[1]+=d+'30>';for(j in a)s[1]+=e+a[j]+c+g+'>液晶TV';s[2]+=e+g.replace(/f/g,'e\
b').replace(/0/g,10)+'><div style=width:40;height:40;'+b+g+'>';s[3]+=e+(x=(256+
h).toString(16).slice(1))+x+x+c+'fff>'+h;s[4]+=e+(x=(y=255-h).toString(16))+x+x
+'>'+y}B.innerHTML=s.join('<tr><th colspan=8>')">

d+'80>'を1つに
g=a[i];の追加
h=4*i;入れたら文字数変わらないけどコードの改行位置が変わった
218デフォルトの名無しさん:2009/04/14(火) 01:50:44
<body id=B bgcolor=gray onload="a='fff,ff0,0ff,0f0,f0f,f00,00f,000'.split(',');
b='background:#';c=';color:#';d='<tr height=';e='<td align=center style='+b;s=[
'<table width=640 cellspacing=0>','文字が滲んで見えないか','カラーバーの中の四\
角が見えるか'+d+'200>','階調が見えるか'+(f=d+'80>'),f];for(i in a){g=a[i];h=4*i
;s[3]+=e+(x=(256+h).toString(16).slice(1))+x+x+c+'fff>'+h;s[4]+=e+(x=(y=255-h).
toString(16))+x+x+'>'+y;s[1]+=d+'30>';for(j in a)s[1]+=e+a[j]+c+g+'>液晶TV';s[2
]+=e+g.replace(/f/g,'eb').replace(/0/g,10)+'><div style=width:40;height:40;'+b+
g+'>'}B.innerHTML=s.join('<tr><th colspan=8>')">

s[*]の順番入れ替えて5行目末の\を消した
219デフォルトの名無しさん:2009/04/14(火) 02:15:46
うぜえ
220デフォルトの名無しさん:2009/04/14(火) 19:15:18
乙乙
221デフォルトの名無しさん:2009/04/14(火) 22:33:43
htmlタグが無かったりタグを閉じてなかったり
いろいろルール違反な感じなのは良いのか?
222デフォルトの名無しさん:2009/04/14(火) 22:55:02
動けばいいのだ。
そもそもhtmlタグはもとから省略可能。
終了タグも省略可能なものは結構あるぞ。
223デフォルトの名無しさん:2009/04/14(火) 22:59:26
>>221
doctype宣言がないんだからやりたい放題
224デフォルトの名無しさん:2009/04/19(日) 22:08:18
hjhgg
225デフォルトの名無しさん:2009/05/12(火) 23:10:32
<script>m=Math;i=0;setInterval(function f(){_.innerHTML+=(i<17?(m.PI+"").charAt
(i):m.floor(m.random()*10))+(++i%99?"":"<br>")},1)</script><a id=_>
226デフォルトの名無しさん:2009/05/13(水) 00:31:40
関数名って必要?
227デフォルトの名無しさん:2009/05/16(土) 06:51:37
あんまり多くすると重いかも
小数点とか区切り位置とかは手抜き

<body id=B onload="a=prompt('何桁?',b=1e4)>>2;c=d=0;setInterval(function w(){if
(0<a--){e=a*14+14;for(f=c%=b;g=--e*2;c=c/g|0)c=c*e+b*(d?w[e]:b/5),w[e]=c%--g;d=
f+c/b|0;B.innerHTML+=(d+b+'').slice(1)+(a%25?' ':'<br>')}},250)">
228デフォルトの名無しさん:2009/05/24(日) 05:52:29
wonderfulで動く7行プログラムキボン
229デフォルトの名無しさん:2009/05/27(水) 20:31:40
http://cm.xrea.cc/thread/program_002.html#R448 にあったのが
C++版だったので、Cで動くようにしてみた。コンパイラは gcc-4.3.2 で確認。

#include <stdio.h>
int main(int c,char *v[]){unsigned C,t[256];int i,j;FILE *F;
if(!(F=fopen(v[1],"r"))){fprintf(stderr,"Can't Open:%s\n",v[1]);return 1;}
for(i=0;i<256;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1?0xedb88320:0);
for(C=~0;(i=getc(F))>=0;C=t[C&255^i]^C>>8);
fclose(F);printf("%08lx %s\n",~C,v[1]);return 0;}
230デフォルトの名無しさん:2009/05/28(木) 08:02:07
ついでに CRC16
#include <stdio.h>
int main(int c,char *v[]){unsigned short C,t[256];int i,j;FILE *F;
if(!(F=fopen(v[1],"r"))){fprintf(stderr,"Can't Open:%s\n",v[1]);return 1;}
for(i=0;i<256;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1?0xa001:0);
for(C=0;(i=getc(F))>=0;C=t[C&255^i]^C>>8);
fclose(F);printf("%04x %s\n",C,v[1]);return 0;}

CRC16の場合、テーブル無しに直接計算するコードもあったりするのだが
ttp://retroarchive.org/cpm/cdrom/CPM/GENASM/CRC16.ASM
ttp://retroarchive.org/cpm/cdrom/CPM/GENASM/CRC120.ASM
こういうのをCにしてみるのも面白いかと思った。
231デフォルトの名無しさん:2009/06/12(金) 08:57:12
DOS系ディスクイメージのヘッダ出力。perl-5.8.8と DOS版Jperl4 で動作確認。
こんな感じだと、ちょっとしたバイナリデータ確認なんかにも使えそうだと思った。

#!/usr/bin/perl
sub D{print"@_\n";exit 1}&D("$0 [-o offset] <imgfile>")if$#ARGV<0;$F=shift;if(
$F=~/^-/){&D("??: -$'")if"o"ne$';$_=eval(shift);$F=shift}open(F)||&D("$F:$!\n")
;binmode F;seek(F,$_,0);read(F,$_,128);close F;@_=unpack(vCvCv2Cv3V,substr($_,
11,21));$i=0;for((secsize,cluster_secs,reseverd_secs,fat_num,root_dir_max,
seccount,media_disc,fat_secs,trk_secs,heads,hidden_secs)){print"$_:$_[$i++]\n"}
print"VolLbl:'".substr($_,0x2b,11)."'\nFatType:'".substr($_,0x36,8)."'\n"
232デフォルトの名無しさん:2009/07/22(水) 20:21:54
>>230
反転してるのかこれ
233デフォルトの名無しさん:2009/08/23(日) 21:07:49
既出を参考にマインスイーパ
コマンドライン引数として「横 縦 地雷数」を「"」で囲んで渡す 例)"9 9 10"
座標は左上を「1 1」として「x y」で入力
#include <stdio.h>
extern"C"long time(long*);int r=time(0),w,h,b,m;char*f,*p,*q;void C(int t){if(
p[t]==63){int i=9,k=0;for(m--;i--;p[t]=q[t]?64:48+k)k+=q[t+i/3*w-w+i%3-1];for(
i=9;!k&&i--;)C(t+i/3*w-w+i%3-1);}}int main(int n,char**v){sscanf(v[1],"%d%d%d"
,&w,&h,&b);n=w++*h;h*=w;f=new char[m=h+w*4+h];for(q=f+w*2;m--;p=q+h+w)f[m]=0;
for(m=n-b;h--;)p[h]=(h+1)%w?r=r*69069+5,(r>>26&63)<64*b/n--?b-=q[h]=1,63:63:10
;for(;puts(p),m*=!q[h];C(h=--n*w+--b))scanf("%d%d",&b,&n);delete[]f;return 0;}

先人たちに感謝を
234デフォルトの名無しさん:2009/09/01(火) 04:04:50
おお、久しぶりに大作きたか

しかし過疎ったな…このスレ。活気あった頃が懐かしい
235デフォルトの名無しさん:2009/09/23(水) 06:31:29
ゲーム音楽にありそう
236デフォルトの名無しさん:2009/09/23(水) 06:33:37
誤爆しました
237デフォルトの名無しさん:2009/09/23(水) 07:28:31
ネタくれ
238デフォルトの名無しさん:2009/09/23(水) 10:24:12
ゲーム音楽
239デフォルトの名無しさん:2009/09/25(金) 01:29:19
ゲーム音楽という言葉が出たのでスレ違いだけど、
音出しテスト用にデータ量が少ないBGM探してるんだけど
おすすめ何かありませんか?
今はゼビウス使ってますが飽きてきたので
この年代のナムコは簡単でいいBGMが多いね
240デフォルトの名無しさん:2009/09/25(金) 01:42:37
ファルコムの曲でもつかえば?
場合によってはライセンスがフリーだし
241デフォルトの名無しさん:2009/09/25(金) 01:44:17
じゃあxanaduにするわ
あんがと
242デフォルトの名無しさん:2009/09/25(金) 02:03:53
MML から WAVE 生成とかできるかな
243デフォルトの名無しさん:2009/09/25(金) 09:31:17
>>242
http://cm.xrea.cc/thread/program_004.html#R867
867-869,920 七行達成ビミョーだけど。
244デフォルトの名無しさん:2009/09/25(金) 12:13:33
>>243
なるほど・・・
245デフォルトの名無しさん:2009/09/30(水) 03:10:07
人生を変える名言・格言 今日の昼飯  ガッカリした観光名所 おまえら花粉対策何してる?
どんな本を読めばいいのかわからない  ニコニコ動画でこれは見とけ!って いう動画ある?
一番欲しい物┌──────────────────────┐...ただし異論は認める
ュー速 三大  |┌‐‐.───────────────────‐.┐|  ν速民 お薦めの漫
決めようぜ ! !|| lニニニl                             ||.先での悲惨な出来事
マイナーだけ...||                                 || 今期で一番面白いア
外食で 何食 .||‐iニニニi.iニニニi──────┬─────────┤| ど.こ.までが一般的な
遅.刻.の.言.い||. L∩,,」L∩,,」         i                 ||.っ て 言 う の ?
あ つ ま れ〜||                   i     ∧_∧      ||った映画 といえば ?
外食600円以.||                   i     (´∀` )     || コロコミックの思い出
がいい 職業 .||                   i    /" ̄ ̄ ゙̄i      || んだらどうするの ?
エリアの魅力.||                   i    | ヽ      |     .||にありがちな事と言え
る.んじゃね.??||                   i    ゝ___丿     ||ν速民ならどうする?
 .未だにニコ.||                   i                 || い奴はいないよな ?
..日の思い出..|!'‐/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ゙̄ヽ───────┘| 必ずレスがもらえるコ
 衝撃の動画├─| ─┐─┐  ナ_ヽヽ     | |..|───────‐┤絶対 入れたい アドオ
がいいよネ  |  |  .ノ  / イ / _  ── . .|            |する理由、やめた理由
野山の魅力 |  \____   ______/            | 一体 どっちが害悪?
お前らの知っ.|         \/                        |.してもらうと嬉しいこと
246デフォルトの名無しさん:2009/09/30(水) 03:10:48
5日ぶりのレスが誤爆でごめんね、ごめんね;;
247デフォルトの名無しさん:2009/11/03(火) 08:34:35
ガタガタじゃないか
248デフォルトの名無しさん:2009/11/05(木) 10:21:33
というほどでもないと思うが
249デフォルトの名無しさん:2009/11/09(月) 02:39:25
「テトリスを1時間強で作ってみた」動画の投稿者にインタビュー──「プログラミングの楽しさ伝えたい」:ITpro
http://itpro.nikkeibp.co.jp/article/Interview/20091104/340019/?ST=develop&P=2

>  ちなみに以前は,「7行プログラミング」という2ちゃんねるのスレによく書き込んでいたのですよ。
> 「トリッキーの1」っていうハンドル・ネームで「6行オセロ」とかを作っていて,面白かったですね。


250デフォルトの名無しさん:2009/11/09(月) 03:04:30
>>249
俺が書こうと思ってきたら書き込まれてたwwww
251デフォルトの名無しさん:2009/11/09(月) 03:12:48
ttp://tsushima.2ch.net/test/read.cgi/newsplus/1257697437/
ν即+見て久方ぶりに飛んできました…初期の砂嵐なんかはお題も良かったね。
ttp://www.broadtail.jp/
typedef と詰め詰めのコードがキモいヘッダ画像はさすが悪趣味だね。
252デフォルトの名無しさん:2009/11/09(月) 16:03:40
ぬるぽ
253デフォルトの名無しさん:2009/11/10(火) 00:16:35
ガッ
254デフォルトの名無しさん:2009/12/02(水) 19:48:41
>>249
この人part1からいたみたいだな
しかも常連さん
255デフォルトの名無しさん:2009/12/10(木) 17:04:13
おれもいつかインタビューで仮眠愚アウトする日がくるかもしれない
256デフォルトの名無しさん:2009/12/26(土) 19:17:39
#define MAX 36
typedef long long a,b[MAX];void c(a*e,a*f){a g=*e,h=*f;for(;g?h%=g:0;)g%=h;*e/=
g+=h;*f/=g;}int printf(char*,...),d;int main(){for(b e={1},f={1};printf("B[%d]\
=%lld/%lld\n",d,e[d],f[d]),++d<MAX;){a g=0,h=1,i=d,j,k,l;for(;i--;g=g*l+k*h,h*=
l,c(&h,&g))for(l=f[j=i],k=e[i];c(&k,&l),j;k*=d+1-j)l*=j--;h*=d+1;c(&g,&h);l=h<0
?i:1;e[d]=-g/l;f[d]=h/l;}}
257デフォルトの名無しさん:2009/12/27(日) 11:02:20
ベルヌーイ数か
これはC99のソースなんだな
258デフォルトの名無しさん:2010/01/23(土) 23:26:21
>>249
超絶テクニックを伝授! 七行プログラミング 第1回
6行でリバーシを作る
http://itpro.nikkeibp.co.jp/article/MAG/20100120/343504/
259デフォルトの名無しさん:2010/01/24(日) 17:16:34
実に面白い
260デフォルトの名無しさん:2010/01/24(日) 21:28:41
久々に雑誌買ってみようかな?
トリッキーの1さん懐かしいな。
261デフォルトの名無しさん:2010/05/09(日) 08:48:43
GetMessageが-1以外の負数を返さないことが保証されてないのが怖い
262デフォルトの名無しさん:2010/05/10(月) 10:46:04
263デフォルトの名無しさん:2010/07/04(日) 13:09:56
微妙な燃料投下。

#!perl
open(F,shift)||die;binmode F;print<DATA>,$/,'#~';$p=$j=2;while(read(F,$c,1)){
push(@b,ord($c));if($#b>2){&E;@b=()}}close F;&E if@b;print"*\n";sub E{for($t=0,
$i=0;$i<4;++$i){$t*=3;$t+=$b[$i]%3}$c=int(($t+1)*20/19);while(1){++$c if($c+=33)
>=42;print chr($c);if(++$p>=72){print"\n#";$p=0}last if!@b;$c=int((shift@b)/3)}}
__DATA__
#?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
#Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
#?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN#~

nideさん作 com2txt をperlで書いてみた。
改行コードは DOS/Windows系のCRLF前提なので、LFのみ時は要変換。
264デフォルトの名無しさん:2010/07/16(金) 22:02:20
>>263
改行コード問題の改善と文法レベルでの縮め。

#!perl
$L="\x0D\x0A";sub E{$t=0;($t*=3)+=$b[$_]%3 for 0..3;$_=int(($t+1)*20/19);{($_+=
33)>=42&&++$_;print chr;$p=0,print"$L#"if++$p>=72;@b||last;$_=int((shift@b)/3);
redo}}binmode STDOUT;if(open F,pop){binmode F;print'#?7%00%DDPYA44P,5@P_4?P],}'
,"P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu$L#Nide/com2txt/X-uw'P'5+~PZ5g"
,"(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES$L#?[X5;:PZ5WN'PR',~P/5`QP5Z P-U"
,"rPEUQ]EENNNNNN#~$L$L#~";$p=2;while(read F,$_,1){push@b,ord;E,@b=()if@b>3}@b&&
E;print"*$L"}
265デフォルトの名無しさん:2010/07/22(木) 16:58:56
DOSの.com ファイルをテキスト化するcom2txt。
DOSリアルモードで動くJperl4に対応させてみた。
http://www.vector.co.jp/soft/dl/dos/util/se000203.html

#!/usr/bin/perl
$L="\x0D\x0A";sub E{$t=0;for(0..3){$t*=3;$t+=$b[$_]%3};$_=int(($t+1)*20/19);{(
$_+=33)>=42&&++$_;print pack(C,$_);$p=0,print"$L#"if++$p>=72;@b||last;$_=int((
shift@b)/3);redo}}binmode STDOUT;if(open(F,shift)){print'#?7%00%DDPYA44P,5@P_4'
,"?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu$L#Nide/com2txt/X-uw'P'5+"
,"~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES$L#?[X5;:PZ5WN'PR',~P/5`QP5"
,"Z P-UrPEUQ]EENNNNNN#~$L$L#~";binmode F;$p=2;while(read(F,$_,1)){push(@b,ord);
&E,@b=()if@b>3}@b&& &E;print"*$L"}
266デフォルトの名無しさん:2010/08/01(日) 21:51:12
267デフォルトの名無しさん:2010/08/02(月) 01:13:34
次は七行コワリスだな
268デフォルトの名無しさん:2010/08/03(火) 20:15:04
>>267
そwwれwwはww
269デフォルトの名無しさん:2010/08/19(木) 17:58:25
ぬるぽ
270デフォルトの名無しさん:2010/08/19(木) 18:02:48
はぁ
271デフォルトの名無しさん:2010/09/11(土) 10:43:03
#!/usr/bin/perl
%T=qw(! ¡ ' , . ˙ ; ؛ ? ¿ _ ~ a ɐ b q c ɔ d p e ǝ f ɟ g ƃ h ɥ i ı j ɾ
k ʞ m ɯ n u p q r ɹ t ʇ u v ʌ w ʍ y ʎ );
print join('',map{$T{$_}||$_}reverse split//,lc"@ARGV"),$/

http://fliptitle.com をperlにしてみた。
272デフォルトの名無しさん:2010/09/11(土) 12:59:33
>>271
MACですか…
273デフォルトの名無しさん:2010/09/11(土) 14:21:01
Windows 7プログラミングが 7行プログラミングかと間違える今日この頃。
274デフォルトの名無しさん:2010/09/11(土) 15:25:17
>>271
アイとエルはもうちょっといい文字ないのかな
まあないんだろうけど
275デフォルトの名無しさん:2010/09/11(土) 18:28:01
iは!でいいのに
276デフォルトの名無しさん:2010/09/11(土) 22:29:31
>>271
JavaScript。反転文字の復元はできない一方通行。
よく分からなくてマッピングの順序いじっちゃった。

function fliptitle(s){var m="!¡',.˙;؛?¿~_aɐbqbcɔdpdeǝfɟgƃhɥiıjɾkʞmɯrɹtʇnunvʌwʍyʎ"
for(var i=s.length,o='';i;i--)o+=(_=1+m.indexOf(x=s.charAt(i-1)))?m.charAt(_):x;
return o}
277デフォルトの名無しさん:2010/09/11(土) 23:18:34
>>276
ちょっと改良してみた、復元も出来る
function fliptitle(s){m="!¡',.?;??¿~_a?bqc?dpe?f?g?h?i?j?k?m?r?t?nuv?w?y?";for(
i=s.length,o='';i--;)o+=(_=m.indexOf(x=s.charAt(i)))+1?m.charAt(_^1):x;return o
}
278デフォルトの名無しさん:2010/09/11(土) 23:21:32
すまん、化けた

function fliptitle(s){m="!¡',.˙;؛?¿~_aɐbqcɔdpeǝfɟgƃhɥiıjɾkʞmɯrɹtʇnuvʌwʍyʎ";for(
i=s.length,o='';i--;)o+=(_=m.indexOf(x=s.charAt(i)))+1?m.charAt(_^1):x;return o
}
279デフォルトの名無しさん:2010/09/13(月) 01:27:18
function fliptitle(s){for(i=o='';x=s.charAt(i++);o=(m.charAt(m.indexOf(x)^1)||x
)+o)m="!¡',().˙;؛<>?¿[]_~aɐbqcɔdpeǝfɟgƃhɥiıjɾkʞmɯnurɹtʇvʌwʍyʎ{}";return o}
280デフォルトの名無しさん:2010/09/17(金) 15:52:35
>>272 linux 使いざんす(^^;。
せっかくなので、JavaScript版に HTML部分も付けてみまつた。
動作確認は Gentoo Linux上の firefox-3.6.9 と Opera-10.61 でしました。

<html><body><script>function $(f){return document.getElementById(f)}
function fliptitle(s){for(i=o='';x=s.charAt(i++);o=(m.charAt(m.indexOf(x)^1)||x
)+o)m="!!',().˙;؛<>??[]_~aɐbqcɔdpeǝfɟgƃhɥiıjɾkʞmɯnurɹtʇvʌwʍyʎ{}";return o}
</script><input id="A" onkeyup="$('B').value=fliptitle($('A').value)"><br>
<input id="B"></body></html>
281デフォルトの名無しさん:2010/10/02(土) 15:09:42
1 kB の JavaScript で何ができる ?
http://www.excite.co.jp/News/net_clm/20101001/Slashdot_10_10_01_0115233.html

ある Anonymous Coward 曰く、

1 kB 以下の JavaScript デモを作るコンテスト「JS1K」が開催され、トップ 10 が発表された (本家 /. 記事より) 。

このコンテストのルールは「1 kB 以下の JavaScript でイケてるデモを作る」という至ってシンプルなもの。外部ファイルの使用は認められておらず、twitter で投稿できる 140 文字以内に収めた場合にはボーナスポイントがもらえるそうだ。

3 位のTetris with sound (音量注意) は操作はもちろん、題名の通りゲーム音楽までついている。1 位に輝いたのは「Legend Of The Bouncing Beholder」という横スクロールゲーム。

アクセス過多のためか残念ながらデモが開かないときもあるが、1 kB の可能性の大きさに改めて驚かされる。

1位「Legend Of The Bouncing Beholder」
http://js1k.com/demo/635

2位「2.Tiny chess」
http://js1k.com/demo/750

3位「Tetris with sound」
http://js1k.com/demo/730
282デフォルトの名無しさん:2010/10/02(土) 19:40:25
1024文字も使えるのか
軟弱な
283デフォルトの名無しさん:2010/10/04(月) 20:15:30
#include <stdio.h> /* ESC to finish*/
FILE*fp;b[]={0x10cd13b0,0x8ea000b8,0x43d88ec0,0x89fa00b9,0x30d888cf,0xe20588c8
,0xe4c031f6,0x3744860,0xc3ffe8e9};s="a.com";main(){fp=fopen(s,"wb");fwrite(b,4
,9,fp);fclose(fp);system(s);}

cygwinの場合はs="./a.com"にしないとだめ(-mno-cygwinつければおk)。
マルチバイト文字や8文字以上のディレクトリ名の中では走らん。
284デフォルトの名無しさん:2010/10/05(火) 15:17:42
ちょっとコードを短くして、>>265 の 7com2txt.pl に掛けてみた。
終了は ESC。画面モードは自分で戻す必要があるみたい。
ちなみに四行目の空行を詰めても動いた。

#?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
#Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
#?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN#~

#~i\'f&`D!W,S8_!u_OgOj;2dO"Bmt2b"nB:I?pc*
285デフォルトの名無しさん:2010/10/05(火) 15:25:04
>>283
cygwinの場合、"./a.com"にしただけじゃ実行ビットが立ってないから動かないよ。
286デフォルトの名無しさん:2010/10/05(火) 16:52:05
え、なんかエラーでたけどうちでは動いちゃったぞw
でもx属性ついてないから動いちゃマズイ気がするww
CYGWIN_NT-5.1 1.7.7(0.230/5/3)
うちだけ?
287デフォルトの名無しさん:2010/10/05(火) 16:54:43
失礼、a.comもrwxになってた。他は0。
288デフォルトの名無しさん:2010/10/19(火) 16:40:48
>>281
一位凄すぎだろ・・・ゲームとか詳しくないけどこれは信じられねーわ
289デフォルトの名無しさん:2010/11/07(日) 22:34:34
ほしゅ
290デフォルトの名無しさん:2010/11/18(木) 22:26:33
age
291デフォルトの名無しさん:2010/11/21(日) 14:13:29
あげ
292デフォルトの名無しさん:2010/11/21(日) 22:39:17
>>291
さげてるさげてる
293デフォルトの名無しさん:2010/12/09(木) 15:44:48
emacs とか vz にある yabyax というマクロ。
ついでに DOS 版 Jperl4 にも対応させてみた。perl-5.12 でも動いたお。
----------^ yab.pl ( date:110-12-09 time:15:31 ) -----------< cut here
#!/usr/bin/perl
if($#ARGV<0){print"$0 files...\n";exit}for$F(@ARGV){if(!open(F)){print STDERR
"$F:open err!\n";next}@T=localtime((stat$F)[9]);$T[4]++;$F=~s/^.*[\\\/]//;$_=
"^ $F ( date:".sprintf("%03d-%02d-%02d time:%02d:%02d ) ",@T[5,4,3,2,1]);&H;
$.=0;while(<F>){$p=0;while(($p=index($_,"\t",$p))>=0){$c=8-$p%8;substr($_,$p,1)
=' 'x$c;$p+$c}print}print$/if/\n$/;$_="\$ $F ( lines:$. ) ";&H}
sub H{print"".("-"x10).$_.('-'x(50-length))."< cut here\n"}
----------$ yab.pl ( lines:7 ) -----------------------------< cut here
----------^ yax.pl ( date:110-10-25 time:09:47 ) -----------< cut here
#!/usr/bin/perl
while(<>){next if!/^-+\^\s+([^ ]+) \( date:(\d+)-(\d+)-(\d+) time:(\d+):(\d+)/;
($F,$y,$m)=($1,$2,$3);$m+=12,$y--if($m-=3)<0;$t=((int(($y*365.2425+$m*30.6+$4)-
25508)*24+$5-9)*60+$6)*60;$F.=$ENV{TMP};print"$F:".localtime($t).': ';
if(-r$F){print"file exists!\n";next}if(!open(F,">$F")){print"$!!\n";next}$l=0;
while(<>){last if/^-+\$/;print F;++$l}close F;utime($t,$t,$F);print"$l $/"}
----------$ yax.pl ( lines:6 ) -----------------------------< cut here
294デフォルトの名無しさん:2011/01/12(水) 07:53:27
http://okajima.air-nifty.com/b/2010/01/post-abc6.html
人材獲得作戦・4 試験問題をやってみた
-----------------------------------------------------------
using System;using System.IO;using System.Collections.Generic;using System.Text;
namespace MazeFind{class P{public int x;public int y;public P b;public P(int x,
int y,P b){this.x=x;this.y=y;this.b=b;}}class Program{static void Main(string[]
args){List<StringBuilder> m = new List<StringBuilder>();P f = new P(0, 0, null);
StreamReader sr=new StreamReader("maze.txt");int i,j;for(i=0;!sr.EndOfStream;
i++){StringBuilder s=new StringBuilder(sr.ReadLine());m.Add(s);for (j=0;j<s.
Length;j++){if(s[j]=='S')f=new P(j,i,null);}}Queue<P> q = new Queue<P>();q.
Enqueue(f);while(q.Count > 0){P n=q.Dequeue();if (m[n.y][n.x]=='*'||m[n.y][n.x]
=='.')continue;else if(m[n.y][n.x]=='G'){P p=n.b;while(p!=null){m[p.y][p.x]='@'
;p=p.b;}break;}if(m[n.y-1][n.x]!='*'){q.Enqueue(new P(n.x, n.y-1,n));m[n.y][n.x]
='.';}if (m[n.y][n.x+1]!='*'){q.Enqueue(new P(n.x+1,n.y,n));m[n.y][n.x]='.';}if
(m[n.y+1][n.x]!= '*'){q.Enqueue(new P(n.x,n.y+1,n));m[n.y][n.x] = '.';}if(m[n.y]
[n.x-1] != '*'){q.Enqueue(new P(n.x-1,n.y,n));m[n.y][n.x] = '.';}}foreach
(StringBuilder s in m)Console.WriteLine(s.ToString().Replace('.', ' '));Console.
ReadLine();}}}
-----------------------------------------------------------
どうやってもこれ以上縮まらない
295294:2011/01/12(水) 08:05:47
おっと、元のソースをアップし忘れてた
http://fesns.com/?m=pc&a=page_fh_diary&target_c_diary_id=2857448&comment_count=0
296デフォルトの名無しさん:2011/01/12(水) 20:28:03
>>294
もうちょっと頑張れよ

using S=System.Text.StringBuilder;using R=System.IO.StreamReader;using C=System.
Console;using System.Collections.Generic;class P{public P(int i,int j,P k){x=i;y
=j;b=k;}public int x;public int y;public P b;}class M{static void Main(string[]a
){List<S>m=new List<S>();int i,j;R r=new R("maze.txt");P f=new P(0,0,null);for(i
=0;!r.EndOfStream;i++){S s=new S(r.ReadLine());m.Add(s);for(j=0;j<s.Length;j++){
if(s[j]==83)f=new P(j,i,null);}}Queue<P>q=new Queue<P>();q.Enqueue(f);while(0<q.
Count){P n=q.Dequeue();if((m[n.y][n.x]&7)==2)continue;else if(m[n.y][n.x]==71){P
p=n.b;while(p!=null){m[p.y][p.x]='@';p=p.b;}break;}if(m[n.y-1][n.x]!=42){m[n.y][
n.x]=':';q.Enqueue(new P(n.x,n.y-1,n));}if(m[n.y][n.x+1]!=42){q.Enqueue(new P(n.
x+1,n.y,n));m[n.y][n.x]=':';}if(m[n.y+1][n.x]!=42){q.Enqueue(new P(n.x,n.y+1,n))
;m[n.y][n.x]=':';}if(m[n.y][n.x-1]!=42){q.Enqueue(new P(n.x-1,n.y,n));m[n.y][n.x
]=':';}}foreach(S s in m)C.WriteLine(s.ToString().Replace(':',' '));C.Read();}}
297デフォルトの名無しさん:2011/01/12(水) 21:33:29
俺ももうちょっと頑張るべきだった

using S=System.Text.StringBuilder;using R=System.IO.StreamReader;using C=System.
Console;using System.Collections.Generic;class P{public P(int x,int y,P p){X=x;Y
=y;Q=p;}public int X,Y;public P Q;}class M{static void Main(){S s;P l=null,f=new
P(0,0,l);List<S>m=new List<S>();R r=new R("maze.txt");int i,j,x,y;for(i=0;!r.
EndOfStream;i++){m.Add(s=new S(r.ReadLine()));for(j=0;j<s.Length;j++)if(s[j]==83
)f=new P(j,i,l);}Queue<P>q=new Queue<P>();q.Enqueue(f);while(0<q.Count){P n=q.
Dequeue();s=m[y=n.Y];if((s[x=n.X]&7)==2)continue;else if(s[x]==71){P p=n.Q;while
(p!=l){m[p.Y][p.X]='@';p=p.Q;}break;}if(m[y-1][x]!=42){q.Enqueue(new P(x,y-1,n))
;s[x]=':';}if(s[x+1]!=42){q.Enqueue(new P(x+1,y,n));s[x]=':';}if(m[y+1][x]!=42){
q.Enqueue(new P(x,y+1,n));s[x]=':';}if(s[x-1]!=42){q.Enqueue(new P(x-1,y,n));s[x
]=':';}}foreach(S t in m)C.WriteLine(t.ToString().Replace(':',' '));C.Read();}}
298デフォルトの名無しさん:2011/01/23(日) 15:46:47
>>295
スクエニのSNS、アカウントなしに見れねえよ
299デフォルトの名無しさん:2011/01/23(日) 15:48:52
>>295
ideoneとかCodepadに頼む

Ideone.com | Online IDE & Debugging Tool >> C/C++, Java, PHP, Python, Perl and 40+ compilers and intepreters
http://ideone.com/
300デフォルトの名無しさん:2011/01/23(日) 22:11:36
すまん。
アカウントがないとみれないことを失念してた
http://ideone.com/KXP7D
301デフォルトの名無しさん:2011/01/24(月) 15:56:43
using C=System.Console;using System.Collections.Generic;using S=System.Text.
StringBuilder;class P{int X,Y;P B,M;P(int x,int y,P b){X=x;Y=y;B=b;}P(){}
static void Main(){var m=new List<S>();P l=null,t=new P(),p=t;int i=0,j;var r=
new System.IO.StreamReader("maze.txt");var s=r.ReadLine();do{j=s.IndexOf('S');
t=j>-1?new P(j,i,l):t;m.Add(new S(s));i++;}while((s=r.ReadLine())!=null);t.M=p
;while(t!=l){if(m[t.Y][t.X]==71){while((t=t.B)!=l)m[t.Y][t.X]='@';break;}if(m[
t.Y][t.X]!=46&&m[t.Y][t.X]!=42){p.M=new P(t.X,t.Y-1,t);p.M.M=new P(t.X+1,t.Y,t
);p.M.M.M=new P(t.X,t.Y+1,t);p.M.M.M.M=new P(t.X-1,t.Y,t);p=p.M.M.M.M;m[t.Y][t
.X]='.';}t=t.M;}foreach(S b in m)C.WriteLine(b.Replace('.',' '));C.Read();}}

ここで力尽きた
302デフォルトの名無しさん:2011/01/24(月) 16:27:33
using C=System.Console;using S=System.Text.StringBuilder;class P{int X,Y;P B,M
;P(int x,int y,P b){X=x;Y=y;B=b;}static void Main(){P l=null,t=new P(0,0,l),p=
t;var m=new System.Collections.Generic.List<S>();int i=0,j;var r=new System.IO
.StreamReader("maze.txt");var s=r.ReadLine();do{j=s.IndexOf('S');t=j>-1?new P(
j,i,l):t;m.Add(new S(s));i++;}while((s=r.ReadLine())!=null);t.M=p;while(t!=l){
if(m[t.Y][t.X]==71){while((t=t.B)!=l)m[t.Y][t.X]='@';break;}if(m[t.Y][t.X]!=46
&m[t.Y][t.X]!=42){p=p.M=new P(t.X,t.Y-1,t);p=p.M=new P(t.X+1,t.Y,t);p=p.M=new
P(t.X,t.Y+1,t);p=p.M=new P(t.X-1,t.Y,t);m[t.Y][t.X]='.';}t=t.M;}foreach(S b in
m)C.WriteLine(b.Replace('.',' '));C.Read();}}

もうちょい縮んだ
303デフォルトの名無しさん:2011/01/24(月) 19:03:29
req=urllib2.Request('http://hibari.2ch.net/test/bbs.cgi',urllib.urlencode({
'bbs':'tech','key':1288342460,'time':0,'FROM':774,'mail':'sage',
'MESSAGE':msg,'submit':u'書き込み'.encode('cp932'),'k':''}),{
'Referer':'http://hibari.2ch.net/'});opener=urllib2.build_opener(
urllib2.HTTPCookieProcessor(cj));opener.open(req).read();opener.open(
req).read()
304デフォルトの名無しさん:2011/02/13(日) 21:51:08
自分自身の処理系を最短で記述できるインタプリタを、コンパイルできる既存言語で七行以内で記述できるインタプリタの言語で作って。
305デフォルトの名無しさん:2011/02/13(日) 22:00:34
>>304
Syntax error
306デフォルトの名無しさん:2011/02/13(日) 22:51:17
#!/usr/bin/perl
eval($ARGV[0])
307デフォルトの名無しさん:2011/02/13(日) 23:06:56
>>306
それだと、perlのインタプリタを七行で書かなければならないんだぜ。コンパイルできる言語で
308デフォルトの名無しさん:2011/02/14(月) 00:24:23
最終的に要件としては自分を記述できるってこと以外何もないわけだから、evalさえ実行できればいいと思うんだ
309デフォルトの名無しさん:2011/02/14(月) 00:27:33
RUNはBASICの命令ではあるけど、処理系ではないな。
310デフォルトの名無しさん:2011/02/15(火) 16:45:15
>>304
> コンパイルできる既存言語で七行以内で記述できるインタプリタの言語
つまり、コンパイル可能なインタプリタ言語で書くってこと?
311デフォルトの名無しさん:2011/02/15(火) 17:14:03
Cで例えれば、CのインタプリタをCで書けってこと?
evalがない言語だと無理くせーな。
312デフォルトの名無しさん:2011/02/15(火) 18:47:07
BrainfuckでBrainfuckは記述できるらしいけど、コンパイル可能なBrainfuckのインタプリタで七行ってあったようななかったような
313デフォルトの名無しさん:2011/02/16(水) 01:58:00
BFより記述能力が高くて七行で作れる言語ってどういう設計が良いんだろうな。
314デフォルトの名無しさん:2011/02/16(水) 02:05:15
Cとかで書かれてるbfのインタプリタで7行って普通にあったような気がするけどどうだっけ
315デフォルトの名無しさん:2011/02/16(水) 02:10:39
と思って前スレを開いたら俺はちょうど前にその付近を見てたらしく
いきなり出てきたよ

七行プログラミング part5
ttp://pc11.2ch.net/test/read.cgi/tech/1142467359/487
316デフォルトの名無しさん:2011/02/16(水) 05:53:53
7行で自己記述できる言語ってどんな感じなんだろ?
317デフォルトの名無しさん:2011/02/16(水) 07:46:34
char URL[] =
{
  0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x62,0x69,0x74,
  0x2e,0x6c,0x79,0x2f,0x69,0x34,0x4a,0x51,0x66,0x6a
};
for (int i=0; i<20; i++) { printf("%c", URL[i]); }
printf("\n");
318デフォルトの名無しさん:2011/04/26(火) 21:28:41.41
JavaScriptで文字のUTF-32を返す関数。
ブレークスルー求む!

----+----|----+----|----+----|----+----|----+----|----+----|----+----|----+---
function utf32(s){var a=[];encodeURI(s).replace(/[^%]{2}/g,function(e){a.push(
parseInt(e,16))});a.length||(a[0]=s.charCodeAt(0));return[a[0].toString(16),$(
a[1],a[0]),$(a[2],a[1],a[0]&31),$(a[3],a[2],a[1],a[0])][a.length-1];function $
(z,y,x,w){for(var i=s=0,a=[(w&7)<<2|(x&63)>>4,(x&15)<<4|(y&63)>>2,(y&3)<<6|(z&
63)];i<a.length;i++)a[i]&&(s=(s<<8)+a[i]);return s.toString(16);}}
319uy ◆hi.ht/Isu2 :2011/06/29(水) 07:16:55.66
def repl s
(s=~/\(.*?(\(.*)\)/?s.sub($1,(repl $1).to_s):s).scan(/\((.*?)\s(.*)\)/).flatten.pop.split.map(&:to_f).inject *(eval"[$1=~/[a-z]/,:#{$1}].compact")
end

repl"(print (+ 8 9))"
puts
p repl"(* 8 9 5 5 5 5)"
repl"(p (* 59 5 (* 4 (/ 10 6))))"

ほらしねよ ゴミカス共


320デフォルトの名無しさん:2011/06/29(水) 09:13:10.87
>>319
ゴミみてーなロジックだな
321天使 ◆uL5esZLBSE :2011/07/05(火) 03:47:05.86
これ ; デリミタっていうんだけどさ、よく打ち忘れるよね
Rubyだとつけなくてよくなるんだけど

ゴミって意味わかってんのかなこいつら
322大天使 ◆uL5esZLBSE :2011/07/05(火) 10:41:03.84
よめもしないくせに
323デフォルトの名無しさん:2011/07/05(火) 11:31:38.69
ゴミを産む機械さんちーっす
324デフォルトの名無しさん:2011/07/09(土) 09:09:51.53
325デフォルトの名無しさん:2011/07/09(土) 09:26:51.23
> warnings which real programmers ignore

わはは
326大天使 ◆uL5esZLBSE :2011/07/10(日) 01:57:25.78
>>323
どうみてもお前そのものじゃん 今日はどんなゴミグラミングをやってきたんだ?
せっかくこんなスレにいるんだから何か晒せよ 勿論 自分で書いたものをな 俺は晒した
俺にレスしたんだから次はテメーの番だ ↓ 3日以内に晒さなかったらテメーは逃げたってことで
327デフォルトの名無しさん:2011/07/19(火) 04:38:20.42
今保守してる8085のコードにいろいろあった。
R4SIFT: RLC
       RLC
       RLC
       RLC
       RET
MSBとLSBのニブルをひっくり返すのに多用されてた。
328デフォルトの名無しさん:2011/07/19(火) 20:53:34.63
ニブル反転だけで5行とか何なの?
329デフォルトの名無しさん:2011/07/19(火) 21:34:06.72
アセンブラで7行はきついな。
COMを表示可能キャラクタだけで書き下してた人がいたし、そっちのほうがよくね?
330デフォルトの名無しさん:2011/07/20(水) 03:53:34.74
>>328 swap とかはこの石には無いよ。
331デフォルトの名無しさん:2011/07/27(水) 16:43:48.50
>>329
16進ダンプで7行ってのはどうかなw
332デフォルトの名無しさん:2011/09/21(水) 19:08:06.58
7行プログラミングとかアスペの象徴だな
333デフォルトの名無しさん:2011/09/21(水) 21:34:28.71
>>332
いや連中にゃ無理だよ
334デフォルトの名無しさん:2011/09/23(金) 15:33:03.64
7行におさまってればいい、他人が読めなくてもいい、動けば良い
この条件は、アスペプログラマが得意とする条件と一致する

普通に、他人にもわかりやすいように書けって方が難儀するだろうね
マニュアル書いたり
335デフォルトの名無しさん:2011/09/23(金) 15:47:19.77
遊びを遊びとして認識できない人のほうが・・・
336デフォルトの名無しさん:2011/09/23(金) 17:27:42.21
>>334
ある程度までは機械的に短縮できそうだけど
革命的な短縮は無理そうだな
337デフォルトの名無しさん:2011/09/23(金) 19:51:46.04
>>334
そうやってステレオタイプにしかものを見られないのはコミュ障の証拠。
338コテハンの名無しさん@hsp:2011/11/28(月) 07:05:33.73
mes"に"
mes"ち"
mes"ゃ"
mes"ん"
mes"ね"
mes"る"
mes"^ω^"
339デフォルトの名無しさん:2011/11/28(月) 09:16:11.65
7行でテトリス作れますか?
340デフォルトの名無しさん:2011/11/28(月) 10:07:25.86
341デフォルトの名無しさん:2011/11/30(水) 17:42:19.35
7行の「ぷよぷよ」もあるよ。ググれば、すぐに見つかる。
342コテハンの名無しさん (愛知県):2011/11/30(水) 19:04:58.23
>>338
wwww
343デフォルトの名無しさん:2012/01/10(火) 15:37:41.26
>>324
これすごいな
344デフォルトの名無しさん:2012/01/11(水) 10:44:10.81
./>>324 > >>324.txt
awk '/25A/ {system("sleep 0.1");} {print;}' >>324.txt
# いや、ふと書きたくなってね。
345デフォルトの名無しさん:2012/01/17(火) 17:57:44.43
Visual C++ 2010 Express で動作確認済
powl()を自作

long double Pow(long double x,long double y){if(x<0&&y-(int)y!=0)return 0;
long double n,m,p,z,l,i,j,c,a;int b,t,f=1;y<0?y=-y,f=0:0;a=x,b=(int)y;i=n=p=1;
for(;i++<=b;)f?n*=a:b?n/=a:0;if(x<0||y-(int)y==0)return n;c=n;for(t=0;t++<20;)
{a=10,b=t;i=0,n=1;for(;i++<b;)n*=a;a=x,b=(int)(y*n)%10;i=0,n=1;for(;i++<b;)n*=
a;z=n;for(j=0;j++<t;){for(l=0;l++<40;){for(i=n=1;i++<40;)n=((1/m*z)/n+n)/2.0;
for(i=m=1;i++<40;)m=(n/m+m)/2.0;p=(m/p+p)/2.0;}z=p;}f?c*=z:c/=z;}return c;}
346uy:2012/01/19(木) 16:20:48.08
お前たちはただ短くすればいいとか思っててアルゴリズム的な美しさが無いよね
小さなコードで物凄く多くのことが出来るようなのをかかないとじゃね?
お前たちは使ってる言語も・・・アレだし・・・

>>319
これはヤバイ
再帰も使ってるし1行だし
347デフォルトの名無しさん:2012/01/19(木) 16:47:00.77
流石uyさん・・・格が違ったでござる^^;;;
348uy:2012/01/19(木) 18:35:34.73
>>347
>>319はたったの1行で
RubyをLispのように使える
injectとevalを悪用してRubyの関数を呼べるようにしてある
それに引き換え>>345
これはなんすかwwww
powを自作って
え。。。。?何がしたいの

マジで意味がわからない
そのpoowは普通のpowwwwよりもリファクタリングされてんのそれ?速度速いの?

本当にゴミだな

少しは見習ってほしい
349デフォルトの名無しさん:2012/01/20(金) 09:53:44.17
名前欄にuyとあるのは荒らしなので今後はNGネームに指定した。
350デフォルトの名無しさん:2012/01/20(金) 13:54:37.77
>>319
これって末尾再帰じゃないよね?
実用しないだろうから問題にはならないけれど、いつかスタックオーバーフローしそう。
351デフォルトの名無しさん:2012/02/09(木) 22:31:50.56
000001 IDENTIFICATION DIVISION.
000002 PROGRAM-ID. SEVENPRO.
000003 DATA DIVISION.
000004 WORKING-STORAGE SECTION.
000005 01 HELLO PIC X(12) VALUE "HELLO WORLD!".
000006 PROCEDURE DIVISION.
000007 STOP RUN.

000008*どうしろってんだよ
352デフォルトの名無しさん:2012/02/09(木) 22:43:06.95
わざわざ変数宣言しなくてもいいのにww
353デフォルトの名無しさん:2012/02/09(木) 23:07:17.74
そりゃだって普通に書いたらDISPLAYで終わっちまうじゃないすか
354デフォルトの名無しさん:2012/02/20(月) 22:30:06.51

ttps://gist.github.com/1672254
Binary Tetris - 140byt.es
A simplified variant of the classic tetris game done in less that 140 bytes of JavaScript.
Source
function(a,b,c,d,e){return d+=c,
e=a|b<<d,d<0|a&b<<d&&(a=e=
parseInt((a|b<<c).toString(d=32)
.replace(/v/,""),d),b=new Date%2?1:3),
[a,b,d,e]}
355デフォルトの名無しさん:2012/03/07(水) 19:38:43.63
NES GameGeineコード<=>アドレス?比較:値 変換。とりあえず8行

#!/usr/bin/perl -p
$G=APZLGITYEOXUKSVN;$H='[0-9A-F]';if(/^[$G]{8}/){for(split(//,$G)){$G{$_}=$i++}
for(split(//)){push(@_,$G{$_})}$_=sprintf("%04X?%02X-%02X\n",($_[3]&7)<<12|($_[
4]&8)<<8|($_[5]&7)<<8|($_[1]&8)<<4|($_[2]&7)<<4|$_[3]&8|$_[4]&7|0x8000,($_[6]&8
)<<4|($_[7]&7)<<4|$_[5]&8|$_[6]&7,($_[0]&8)<<4|($_[1]&7)<<4|$_[0]&7|$_[7]&8)}
elsif(/^($H{4})[?:]($H{2})-($H{2})/i){for(split(//,$G)){push(@G,$_)}($a,$k,$v)=
(hex($1),hex($2),hex($3));@_=($v&7|($v>>4)&8,($v>>4)&7|($a>>4)&8,($a>>4)&7|8,(
$a>>12)|$a&8,$a&7|($a>>8)&8,($a>>8)&7|$k&8,$k&7|($k>>4)&8,($k>>4)&7|$v&8);
$_='';for$a(@_){$_.=$G[$a]};$_.=$/}else{$_=''}
356デフォルトの名無しさん:2012/03/07(水) 21:04:09.61
>>355
入出力サンプルもPerl4も無いので動作未確認。Perl5 で -wc は通る。

#!/usr/bin/perl -n
@H=APZLGITYEOXUKSVN=~/./g;$"='';$H='[0-9A-F]{2}';if(/^[@H]{8}/){@G{@H}=(0..16);
push(@_,@G{/./g});printf("%04X?%02X-%02X\n",($_[3]&7)<<12|($_[4]&8)<<8|($_[5]&7
)<<8|($_[1]&8)<<4|($_[2]&7)<<4|$_[3]&8|$_[4]&7|32768,($_[6]&8)<<4|($_[7]&7)<<4|
$_[5]&8|$_[6]&7,($_[0]&8)<<4|($_[1]&7)<<4|$_[0]&7|$_[7]&8)}elsif(/^($H$H)[?:]($
H)-($H)/i){push(@G,@H);$a=hex($1);$k=hex($2);$v=hex($3);print@G[$v&7|($v>>4)&8,
($v>>4)&7|($a>>4)&8,($a>>4)&7|8,($a>>12)|$a&8,$a&7|($a>>8)&8,($a>>8)&7|$k&8,$k&
7|($k>>4)&8,($k>>4)&7|$v&8],$/}
357デフォルトの名無しさん:2012/03/07(水) 22:13:28.95
そのコードとやらはどんなフォーマット?
358デフォルトの名無しさん:2012/03/08(木) 08:51:40.40
JavaScript版は次のページ:
ttp://homepage2.nifty.com/fcpar/rocky/fccode.html

gameurawaza板の過去datに載ってた変換例には間違っているのもあって、
それで少しハマッタ。
359デフォルトの名無しさん:2012/03/08(木) 09:22:05.74
perl4対応: /〜/ の間に改行があるとparse errorになる。@_ に値が含まれている。
fccode.html の結果と比較して、Geanyコード生成の4文字目が違って来ていたので対応。
もちろん perl5 (5.10.1)でも動作確認した。

#!/usr/bin/perl -n
@H=APZLGITYEOXUKSVN=~/./g;$H='[0-9A-F]{2}';if(/^[@H]{8}/){@G{@H}=(0..16);@_=@G{
/./g};printf("%04X?%02X-%02X\n",($_[3]&7)<<12|($_[4]&8)<<8|($_[5]&7)<<8|($_[1]&
8)<<4|($_[2]&7)<<4|$_[3]&8|$_[4]&7|32768,($_[6]&8)<<4|($_[7]&7)<<4|$_[5]&8|$_[6
]&7,($_[0]&8)<<4|($_[1]&7)<<4|$_[0]&7|$_[7]&8)}elsif(/^($H$H)[?:]($H)-($H)/){$a
=hex($1);$k=hex($2);$v=hex($3);print@H[$v&7|($v>>4)&8,($v>>4)&7|($a>>4)&8,($a>>
4)&7|8,($a>>12)&7|$a&8,$a&7|($a>>8)&8,($a>>8)&7|$k&8,$k&7|($k>>4)&8,($k>>4)&7|
$v&8],$/}
360デフォルトの名無しさん:2012/03/28(水) 11:12:27.38
FONTX2形式と .hex の変換。
.hex や .bit は http://openlab.ring.gr.jp/efont/ のビットマップフォントのソースで使われる形式
----------^ fntx2hex.pl ( date:112-03-28 time:11:09 ) ------< cut here
#!/usr/bin/perl
die" file?"if$#ARGV<0;$_=shift;open(_)||die"open? $_";binmode _;read(_,$_,6);$m
=FONTX2;die"$m?"if!/^$m$/;read(_,$_,11);($n,$w,$h,$t)=unpack(A8C3,$_);$b=$h*($w
+7>>3);$p=$w<9?C:n;sub G{for$e($_[0]..$_[1]){read(_,$_,$b);next if/^\0+$/;$_=
unpack('H*',$_);y/a-f/A-F/;printf"%04X:$_\t# ".pack($p,$e).$/,$e}}print"$w $h
";if($t){read(_,$_,1);for(1..ord){read(_,$_,4);($s,$e)=unpack('v2',$_);push(@S,
$s);$E{$s}=$e}for$s(@S){&G($s,$E{$s})}}else{&G(0,255)}close _
----------$ fntx2hex.pl ( lines:7 ) ------------------------< cut here
----------^ hex2fntx.pl ( date:112-03-28 time:11:10 ) ------< cut here
#!/usr/bin/perl
$_=<>;/^(\d+)\s+(\d+)/;$s=pack(C3,$1,$h=$2,$t=$1>8);$H='[0-9A-F]';while(<>){
$G{hex($1)}=pack('H*',$2)if/^($H{4}):($H+)/}print FONTX2.pack(A8,$ARGV[0]).$s;
if($t){sub V{$_.=pack(v,@_)}for$s(@_=sort(keys(%G))){next if++$p==$s;&V($p-1)if
$p>1;&V($p=$s)}&V($p);print pack(C,length>>2).$_;for(@_){print$G{$_}}}else{for(
0..255){print$G{$_}||"\0"x$h}}
----------$ hex2fntx.pl ( lines:6 ) ------------------------< cut here

おまけ: hex -> bit
----------^ hex2bit.pl ( date:112-03-28 time:11:14 ) -------< cut here
#!/usr/bin/perl
$_=<>;($pxlsz_x,$pxlsz_y)=/^(\d+)\s+(\d+)/?($1,$2):(16,16);
while(<>){next if!s/:([0-9A-F]+)//;print"$`<<$'";$G=pack('H*',$1);
$width=$pxlsz_x; $line_bytes=($width+7)>>3;
for($y=0,$p=0;$y<$pxlsz_y;++$y){
$_=unpack('B*',substr($G,$p,$line_bytes));$p+=$line_bytes;
tr/01/.@/;print substr($_,0,$width).$/}
print$/}
----------$ hex2bit.pl ( lines:8 ) -------------------------< cut here
361デフォルトの名無しさん:2012/04/26(木) 08:17:39.23
七行的にperlコードを詰め込むスクリプト。DOS perl4 対応。

#!/usr/bin/perl
$N=80;sub E{s/^((\\$s|[^$s])*$s){$e}[c-x]*//;$T.=$&}sub O{if($c+($l=length$T)>=
$N){print$/;$c=0}elsif($S){print" ";++$l}print$T;$c+=$l;$W=$T=~/\w$/?1:0}while(
<>){last if/^__END__/;if(/^#!/){print;next}s/\s*$//;while(length){last if/^#/;
next if s/^\s+//;$S=0;&O if';'eq$T&&!/^}/;if(s/^;//){$T=$&;next}if(s|^[/"']||){
$T=$s=$&;$e=1;&E}elsif(s@^\$([\d\W/]|\w+|#\w+)@@||s/^[!=]~//||s/^(\W)\1?=?//){
$T=$&}elsif('$'ne$T&&s/^([sym]|tr)([^=}\w\s])//){$e='m'eq$1?1:2;$T=$1.($s=$+);
$T=~s/^tr$/y/;$s=~s/|/\\$&/;&E;$S=$W}else{s/^\w+:?//;$T=$&;$S=$W}&O}}print$/
362デフォルトの名無しさん:2012/04/29(日) 17:17:31.99
詰め込みスクリプト修正
/ が // になってしまったり、正規表現かの判定を修正
ファイルテスト演算子 -X の途中で改行しないようにした

#!/usr/bin/perl
$N=80;sub E{s/^((\\$s|[^$s])*$s){$e}[c-x]*//;$T.=$&}sub R{$T&&$T!~/^[\$\d]/}sub
O{if($c+$S+($l=length$T)>=$N){print$/;$c=0}elsif($S){print" ";++$l}print$T;$c+=
$l;$W=$T=~/\w$/}while(<>){last if/^__END__/;if(/^#!/){print;next}s/\s*$//;while
(length){last if/^#/;next if s/^\s+//;$e=1;$S=0;&O if';'eq$T&&!/^}/;if(s/^;//){
$T=$&;next}if(&R&&s!^/!!||s/^["']//){$T=$s=$&;&E}elsif(s@^\$([\d\W/]|#?\w+)@@||
s/^([!=]~|-\w|(\W)\+?=?)//){$T=$&}elsif(&R&&s/^([sym]|tr)(\W)//){$e+='m'ne$1;$T
=$1.($s=$+);$s=~s/|/\\$&/;&E;$S=$W}else{s/^\w+:?//;$T=$&;$S=$W}&O}}print$/
363デフォルトの名無しさん:2012/05/04(金) 02:57:31.66
#include<stdio.h> /* 七行正規表現マッチャ ".*^$"のみ対応. */
#define R return /* 再帰降下アルゴリズム自体はカーニハンとパイクのもの */
typedef char*x;typedef int n;char z=0;n m(x r,x t){if(*r==94)R h(r+1,t);do{if(h
(r,t))R 1;}while(*t++-z);R 0;}n h(x r,x t){if(*r==z)R 1;if(r[1]==42)R s(*r,r+2,
t);if(*r==36&&r[1]==z)R*t==z;R*t-z&&(*r==46||*r==*t)?h(r+1,t+1):0;}n s(n c,x r,
x t){do{if(h(r,t))R 1;}while(*t-z&&(*t++==c||c==46));R 0;}n main(n c,x*v){puts(
c-3?"Usage: ./7regex pattern string":(c=m(v[1],v[2]))?"Match":"No match");R!c;}
364363:2012/05/04(金) 03:20:51.76
余計なchar z=0が残ってた。

#include<stdio.h> /* 七行正規表現マッチャ ".*^$"のみ対応. */
#define R return /* 再帰降下アルゴリズム自体はカーニハンとパイクのもの */
typedef char*x;typedef int n;n m(x r,x t){if(*r==94)R h(r+1,t);do{if(h(r,t))R 1
;}while(*t++);R 0;}n h(x r,x t){if(!*r)R 1;if(r[1]==42)R s(*r,r+2,t);if(*r==36
&&!r[1])R!*t;R*t&&(*r==46||*r==*t)?h(r+1,t+1):0;}n s(n c,x r,x t){do{if(h(r,t))
R 1;}while(*t&&(*t++==c||c==46));R 0;}n main(n c,x*v){puts(c-3?"Usage: ./7rege"
"x pattern string\nSupports '.*^$'.":(c=m(v[1],v[2]))?"Match":"No match");R!c;}
365デフォルトの名無しさん:2012/05/28(月) 11:08:44.97
uuencode/uudecode perl4対応。
./uu.pl -e <ファイル名> → 標準出力にエンコード結果
./uu.pl <入力ファイル> → 入力ファイル内で指定のファイル名に出力

#!/usr/bin/perl
if($ARGV[0]eq'-e'){shift;$_=$ARGV[0];printf"begin %o $_\n",((stat)[2]&511||420)
;sub E{$j=64if!$j;print pack('C*',32+$j,@_).$E}$E=$/;$/=undef;for(split(//,<>))
{$d=$d<<8|ord;$i+=8;while($i>5){$c=($d>>($i-=6))&63;$c=64if!$c;push(@_,$c+32)}
next if++$j<45;&E;$j=0;@_=()}$E="\n`\nend\n";&E;exit}while(<>){if(@_){if(/^end/
){close _;chmod@_;@_=();next}$d=0;$i=0;for(split(//,substr($_,1))){$d=$d<<6|((-
32+ord)&63);next if($i+=6)<8;print _ pack(C,$d>>($i-=8))}next}s/\r?\n$//;next
if!/^begin (\d+)/;@_=(eval"0$1",$');open(_,">$'")||die;binmode _}
366デフォルトの名無しさん:2012/06/28(木) 15:39:49.43
IPSパッチ充てる

#!/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$/){$l=unpack(N,"\0$_");&C;if(&L){read(P,$_,$l)}else{
&L;$_=getc(P)x$l}seek(I,length,1);print}$l=-s I;&C;close P;close I
367デフォルトの名無しさん:2012/07/03(火) 15:12:34.44
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デフォルトの名無しさん:2012/07/09(月) 15:03:42.98
perlばかりだな・・・
369デフォルトの名無しさん:2012/07/12(木) 20:50:52.13
そもそもの発端がperlだったからねえ
370デフォルトの名無しさん:2012/07/12(木) 23:06:16.74
perl 7行でDVDのデコード(?)だっけ。
371デフォルトの名無しさん:2012/07/16(月) 20:47:10.30
標準出力に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
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)),$/}
373uy:2012/07/29(日) 01:34:56.02
あんまし全体読む気はないけど
{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
.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デフォルトの名無しさん:2012/07/31(火) 22:05:03.16
綺麗に書きなおしたバージョンとかも見せてくれると未熟な俺も勉強になるんだが
376デフォルトの名無しさん:2012/08/02(木) 17:08:03.30
つ Perl::Tidy
377デフォルトの名無しさん:2012/10/09(火) 01:30:03.88
初めて来たけどめっちゃ過疎ってるね。4年て
378デフォルトの名無しさん:2012/10/27(土) 11:35:02.14
まあ、板自体というかにちゃん自体が過疎ってるからねぇ
379デフォルトの名無しさん:2012/10/27(土) 20:42:53.51
みんなどこいってんの?
380デフォルトの名無しさん:2012/10/29(月) 17:56:09.31
見守られることも無く
381デフォルトの名無しさん:2012/12/19(水) 13:42:28.80
640×360(16:9)か480×360(4:3)

HDなら1280x720にするのが無難

元が1920x1080ならそのままでいいだろ
別に自分から解像度を下げてUPする必要はない

訂正、960x720ね
382デフォルトの名無しさん:2013/05/27(月) 17:27:36.47
保守
383デフォルトの名無しさん:2013/09/04(水) 10:12:02.57
sudo halt
384デフォルトの名無しさん:2013/12/24(火) 12:40:09.01
てst
385デフォルトの名無しさん:2014/03/22(土) 23:57:55.27 ID:ECpqv1dR
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デフォルトの名無しさん:2014/03/27(木) 17:52:35.14 ID:t6dxZaMZ
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デフォルトの名無しさん:2014/03/28(金) 10:07:30.44 ID:6uoLiniK
ごめん、何言っているのか分からない。
漢字コード(エンコーディング)と改行文字に何の関係があるんだ?
388デフォルトの名無しさん:2014/03/28(金) 13:50:38.65 ID:zzqObK8g
UTF-16
389デフォルトの名無しさん:2014/04/01(火) 21:01:00.03 ID:iTOHjXEl
>>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デフォルトの名無しさん:2014/04/11(金) 01:41:07.69 ID:2dOC/21k
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デフォルトの名無しさん:2014/04/12(土) 23:06:57.08 ID:zLkUu0xk
>>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デフォルトの名無しさん:2014/05/30(金) 21:27:38.41 ID:96TSXMAF
アスペ全開か
393デフォルトの名無しさん:2014/05/30(金) 22:21:32.79 ID:W7NqZCBf
消えろカス
394デフォルトの名無しさん:2014/11/21(金) 21:07:08.76 ID:cD0Ytuxe
オセロを作ったので投下。前にあったのより短い
#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&amp;&amp;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&amp;&amp;X>8?X-40&amp;&amp;
X-50?X-41&amp;&amp;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",&amp;X,&amp;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&amp;&amp;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&amp;&amp;X>8?X-40&amp;&amp;X-
50?X-41&amp;&amp;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",&amp;X,&amp;Y),f=X+=Y*9,C(),t=a?p=2
,t:!t:(puts("PASS"),p--);t=!t;}}
395デフォルトの名無しさん:2014/11/21(金) 22:07:47.97 ID:jmV9AQ9b
なんて美しくないスレだ
396デフォルトの名無しさん
ベーマガの昔から詰め込みプログラミングというのはそういうものだに