七行プログラミング part5
■ このスレッドは過去ログ倉庫に格納されています
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
0554デフォルトの名無しさん
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:49■ このスレッドは過去ログ倉庫に格納されています