トップページ⇒tech
1001コメント392KB

七行プログラミング part4

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
7行×79文字なら言語は問いません。
過去作品は、もしかしたら>>2-20あたりに。

■前スレ
http://pc2.2ch.net/test/read.cgi/tech/1033143528/
part 2
http://pc3.2ch.net/tech/kako/1018/10188/1018840143.html
part 1
http://pc.2ch.net/tech/kako/984/984182993.html
0002デフォルトの名無しさんNGNG
惰性で2ゲッツ
0003デフォルトの名無しさんNGNG
議論は入れないで、ソースで語ろうね!
0004デフォルトの名無しさんNGNG
作品集
http://pc2.2ch.net/test/read.cgi/tech/1033143528/5-15
http://pc2.2ch.net/test/read.cgi/tech/1033143528/25

Pt.2スレの作品一覧
http://pc3.2ch.net/test/read.cgi/tech/1018840143/900-906n
0005デフォルトの名無しさんNGNG
==========  終  了  ==========
0006デフォルトの名無しさんNGNG
サイズ・形式限定のBMPモザイクフィルター(little endian用)

>mosaic src.bmp dst.bmp

#include<stdio.h>
char B[1<<24];int*P=B+20,x,y,X,C,D,s,t,u;A(a,b){return(a&b)+(0x7f7f7f7f&(a^b)>>
1);}G(o,n){return(n/=2)?A(A(G(o,n),G(o+n,n)),A(G(X*n+o,n),G(X*n+o+n,n))):P[o];}
main(Y,v)char**v;{FILE*f=fopen(v[1],"rb");for(fread(B+2,1,54,f),X=*P,Y=P[1],P+=
9,D=C=X*Y;C--;)fread(P+C,1,3,f);for(;y<Y;y+=16)for(x=-X/2;x<X/2;x+=16)if(x*x+(y
-Y/2)*(y-Y/2)<65536)for(C=G(u=y*X+x+X/2,t=16);t--;)for(s=16;s--;)P[u+s+t*X]=C;
fwrite(B+2,1,54,f=fopen(v[2],"wb"));for(;D--;)fwrite(P+D,1,3,f);}
0007デフォルトの名無しさんNGNG
==========  終了  ==========
0008デフォルトの名無しさんNGNG
0009動画直リンNGNG
http://homepage.mac.com/hitomi18/
0010箱入り娘NGNG
ピース(A〜J)と方向(2,4,6,8)をペアで入力すると動きます
見辛いし遊び辛いので誰か改良してくらはい

#include<stdio.h>
char*m="XXXXXX\nXABBCX\nXABBCX\nXDEEFX\nXDGHFX\nXI  JX\nXXXXXX\n",b[49],c;main(
i,j){for(;m[30]-66||m[38]-66;){puts(m);gets(b);sscanf(b,"%c%d",&c,&i);i="07/1)"
[i/2]-48;for(j=49;j--;)b[j]=m[j]==c?m[j]=32,c:0;for(j=49;j--&&!(b[j]&&m[j+i]&c)
;);for(i=~j?0:i,j=49;j--;)b[j]?m[j+i]=c:0;}printf("%s\nおめ\n",m);}
0011デフォルトの名無しさんNGNG
age
0012デフォルトの名無しさんNGNG
#include<stdio.h>
main()
{
int a;
int b=1;
long c=0;

printf("1000ikanosuujiwonyuuryousitekudasai:");
scanf("%d",&a);
while(a<1001)
{
while(b<=a)
{
c=c+b;
b=b+2;
}
a=1001;
}
printf("%ld",c);
}
0013デフォルトの名無しさんNGNG
>>12
#include<stdio.h>
main(){long a;scanf("%ld",&a);a<1001&&((a=(a-1)/2+1),printf("%ld",a*a*(a>0)));}
0014デフォルトの名無しさんNGNG
sub main()
do
msgbox "ふ〜ん、それで?"
loop
end sub

これをVBで実行せよ。最強の5行プログラム
0015デフォルトの名無しさんNGNG
10 PRINT "はぁ〜...":GO TO 10
0016デフォルトの名無しさんNGNG
>>12
他のスレ見ても気になってたんだけど、printf で出す
メッセージって最後に \n が無くても出るの?
普通 stdout はバッファリングするので出ない気がするんだけど
0017デフォルトの名無しさんNGNG
C++ の endl は改行+フラッシュという仕様だけど、
printf には何かそういう仕様はあったっけ?
0018デフォルトの名無しさんNGNG
ShellがRawでなくCookedだと改行入るまで表示されないかと.
0019デフォルトの名無しさんNGNG
>>16
man stty
0020デフォルトの名無しさんNGNG
>>12
ところで、この while や for を if 代わりに使うコードって、
何かの本にでも書いてるの?
別のスレでも見たんだけど。

もしそうなら、その本破り捨てて
トイレットペーパーにでもした方がいいね!
0021デフォルトの名無しさんNGNG
>>20
whileをifの代わりに使っていませんが。
0022デフォルトの名無しさんNGNG
while(a<1001){
…
a=1001;
}

実質 if(a<1001)
0023デフォルトの名無しさんNGNG
>>22
sokoka.
0024デフォルトの名無しさんNGNG
age
0025デフォルトの名無しさんNGNG
>>16
行バッファリングだからscanfによってバッファはフラッシュされる。
JIS X 3010の7.9.3参照。(C99だと章番号が違うかもしれないが)
Cマガの連載に詳しい解説が載ってたんだが単行本化してくれない…
0026デフォルトの名無しさんNGNG
typedef struct{double x,y,z}vec;vec U,black,amb={.02,.02,.02};struct sphere{
vec cen,color;double rad,kd,ks,kt,kl,ir}*s,*best,sph[]={0.,6.,.5,1.,1.,1.,.9,
.05,.2,.85,0.,1.7,-1.,8.,-.5,1.,.5,.2,1.,.7,.3,0.,.05,1.2,1.,8.,-.5,.1,.8,.8,
1.,.3,.7,0.,0.,1.2,3.,-6.,15.,1.,.8,1.,7.,0.,0.,0.,.6,1.5,-3.,-3.,12.,.8,1.,
1.,5.,0.,0.,0.,.5,1.5,};yx;double u,b,tmin,sqrt(),tan();double vdot(A,B)vec A
,B;{return A.x*B.x+A.y*B.y+A.z*B.z;}vec vcomb(a,A,B)double a;vec A,B;{B.x+=a*
A.x;B.y+=a*A.y;B.z+=a*A.z;return B;}vec vunit(A)vec A;{return vcomb(1./sqrt(
vdot(A,A)),A,black);}struct sphere*intersect(P,D)vec P,D;{best=0;tmin=1e30;s=
sph+5;while(s-->sph)b=vdot(D,U=vcomb(-1.,P,s->cen)),u=b*b-vdot(U,U)+s->rad*s
->rad,u=u>0?sqrt(u):1e31,u=b-u>1e-7?b-u:b+u,tmin=u>=1e-7&&u<tmin?best=s,u:
tmin;return best;}vec trace(level,P,D)vec P,D;{double d,eta,e;vec N,color;
struct sphere*s,*l;if(!level--)return black;if(s=intersect(P,D));else return
amb;color=amb;eta=s->ir;d= -vdot(D,N=vunit(vcomb(-1.,P=vcomb(tmin,D,P),s->cen
)));if(d<0)N=vcomb(-1.,N,black),eta=1/eta,d= -d;l=sph+5;while(l-->sph)if((e=l
->kl*vdot(N,U=vunit(vcomb(-1.,P,l->cen))))>0&&intersect(P,U)==l)color=vcomb(e
,l->color,color);U=s->color;color.x*=U.x;color.y*=U.y;color.z*=U.z;e=1-eta*
eta*(1-d*d);return vcomb(s->kt,e>0?trace(level,P,vcomb(eta,D,vcomb(eta*d-sqrt
(e),N,black))):black,vcomb(s->ks,trace(level,P,vcomb(2*d,N,D)),vcomb(s->kd,
color,vcomb(s->kl,U,black))));}main(){printf("%d %d\n",32,32);while(yx<32*32)
U.x=yx%32-32/2,U.z=32/2-yx++/32,U.y=32/2/tan(25/114.5915590261),U=vcomb(255.,
trace(3,black,vunit(U)),black),printf("%.0f %.0f %.0f\n",U);}/*minray!*/

0027デフォルトの名無しさんNGNG
>>26
転載いやソ ... せめてコンパイルが通るくらいの修正をしてから ...
0028デフォルトの名無しさんNGNG
まだあったのか…。
もうそろそろいらないよ、このスレ。
0029デフォルトの名無しさんNGNG
       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
      |>>28 君さぁ スルーすりゃいいのに        |
Λ_Λ  | わざわざいらないとかクソレスしてるから     |
( ´∀`)< 厨房って言われちゃうんだよ             |
( ΛΛ つ >―――――――――――――――――――‐<
 ( ゚Д゚) < おまえのことを必要としてる奴なんて         |
 /つつ  | いないんだからさっさと回線切って首吊れ     |
       \____________________/
0030デフォルトの名無しさんNGNG
このAA久々にみたな
003128NGNG
やった〜!ようやく厨房になれた!
0032デフォルトの名無しさんNGNG
age
0033デフォルトの名無しさんNGNG
誰かがワンクリックするだけで10円の報酬が自分に入るよ!!
アクセス数の多い掲示板等に貼り付けるだけでかなり稼げます。
下のURLをコピペして(※直リン禁止なのでクリックでは入れません)GO!
そして、左のメニューに「リンクスタッフ詳細」があるのでクリック。
メールアドレスと、好きなパスワード入れるだけで登録完了。もちろん無料。
しかも今なら、登録したら自動的に1000円貰えます♪
フリーメールでも大丈夫です。
メルレよりずっと楽だし、ちゃんと報酬を貰えます。

ttp://accessplus.jp/staff/in.cgi?id=11258
0034犬NGNG
以前の書き込みにあったperlの倉庫番に刺激されて、
rubyで倉庫番を書いてみました。
sttyでrawモードに切替えてあるのでunix系のみの限定です。

$ ruby s.rb マップデータ

で実行してください。
マップデータはperlで書かれていたものと共通です。

m=$<.read;w=m.index(/\n/);m.delete!"\n";h=m.size/w;p=m.index'P';g=[];(0..w*h).
each{|i|g<<i if m[i]==?$};u=[];(0..w*h).each{|i|u<<i if m[i]==?_};o={?j,w,?h,
-1,?l,1,?k,-w,?\C-c,0};m[p]='.';g.each{|i|m[i]='.'};begin;loop{t=m.dup;g.
each{|i|t[i]='$'};t[p]='P';system"clear";(0..h).each{|i|puts t.slice(i*w,w)};
break if u==g.sort;`stty raw -echo`;v=o[$<.getc];`stty -raw echo`;next if v.
nil?;break if v==0;d=p+v;if m[d].chr!='#';if i=g.index(d);if t[d+v].
chr[/[\$#]/];next;else;g[i]=d+v;end;end;p=d;end};ensure;`stty -raw echo`;end
0035犬NGNG
念のために追記しておきます。
上のコマンドラインのまま実行するにはスクリプトの
ファイル名をs.txtとして保存して下さい。
0036デフォルトの名無しさんNGNG
>>20
じゃ、やけにfor文を使う参考書は?
実際、あるよ。
0037犬NGNG
すみません。
まだ、書き忘れていたことがありました。
スクリプトを読めば解かることなんですが
移動はviと同じhjklです.
0038ばけNGNG
24bit画像のグレースケール 
#include<stdio.h>
main(int c,char*v[]){FILE*R,*S;int i=0,h,s,Y,X,t;char RC,G,B;R=fopen
(v[1],"rb");S=fopen(v[2],"wb");while(i<54){fputc(fgetc(R),S);i++;}
fseek(R,18,SEEK_SET);fread(&s,4,1,R);fread(&h,4,1,R);fseek(R,54,SEEK_SET);
fseek(S,54,SEEK_SET);i=s;while(i>=4)i-=4;for(Y=0;Y<h;Y++){for (X=0;X<s;X++)
{B=fgetc(R);G=fgetc(R);RC=fgetc(R);B=RC+G+B/3;fputc(B,S);fputc(B,S);fputc(B,S);}t=0;
while(t<i){fputc(0x00,S);t++;}fseek(R,i,SEEK_CUR);}fputc(0x00,S);fclose(R);fclose(S);}

やけに永遠ループがでた。。。製作1時間
0039ばけNGNG
↑の使い方。
コマンドから、実行ファイル名 元のBMP名 保存するBMP名
もし、保存するBMPを書かなかったら、エラーです。
(けど、だれも使わないか)一応書いたけど。
0040デフォルトの名無しさんNGNG
>>38-39 を勝手に修正。

#include<stdio.h>
FILE*R,*S;int i=0,h,s,Y,X,t,p[3];void I(){for(i=t=0;i<4;t|=fgetc(R)<<(i++*8))
;}main(int c,char*v[]){R=fopen(v[1],"rb");S=fopen(v[2],"wb");for(;i<54;fputc(
fgetc(R),S),i++) ;fseek(R,18,0);I();s=t;I();h=t;fseek(R,54,0);fseek(S,54,0);
i=s;while(i>=4)i-=4;for(Y=0;Y<h;Y++){for(X=0;X<s;X++){for(c=0;c<3;c++)p[c]
=fgetc(R);t=(p[2]*77+p[1]*28+*p*151)>>8;for(c=0;c<3;c++)fputc(t,S);}t=0;while
(t<i){fputc(0,S);t++;}fseek(R,i,1);}fputc(0,S);fclose(R);fclose(S);return 0;}
0041ソース変更された人NGNG
>>40
よく、がんばった。
けど、何が気になった?
なんで変えたの?
0042デフォルトの名無しさんNGNG
>>41
diffを取ってみたら?

と発言しかけたが無意味だったな
0043デフォルトの名無しさんNGNG
>>41
動機?
マカーだからエンディアンが気になった

>>42
そういやbdiffなんてあったな
0044デフォルトの名無しさんNGNG
>>36
if の代わりに for 使うの?
それはトイレットペーパー並の価値、
いや、それ以下だね!
0045デフォルトの名無しさんNGNG
>>41
色々変わってるけど,一番大きな違いは輝度値の計算だね.
ぱっと見た感じ,今までのではまともに動かなかったはず…….
明らかに色の重みがおかしかったから.

24bitBMPをグレースケールにして,24bitBMPで保存するのは無駄すぎ.
8bitにてテーブルカラーで保存されー.
(自分でやれ?時間があれば……)
0046デフォルトの名無しさんNGNG
#include<stdio.h>
FILE*R,*S;int i=0,h,s,Y,X,t,p,q,r,(*g)(FILE*)=fgetc;void I(){for(h=0;h++<4;t=
unsigned(t)>>8|g(R)<<24);}main(int c,char**v){R=fopen(v[1],"rb");S=fopen(v[2],
"wb");while(i++<54)fputc(g(R),S);fseek(R,18,0);I();i=(s=t)%4;I();h=t;fseek(R,54,
0);for(Y=h;Y--;){for(X=s;X--;){p=g(R);q=g(R);r=g(R);t=(r*77+q*28+p*151)>>8;for(c
=0;c++<3;)fputc(t,S);}for(t=0;t<i;t++)fputc(g(R),S);}fputc(0,S);fclose(R);fclose
(S);return 0;}

8bitインデックスカラーへの布石.
思ったより縮んでないけど,まだまだ行けるはず!
0047デフォルトの名無しさんNGNG
>>45
輝度値の計算のことはありがとう。気づかなかった。
そんで、8bitでの保存は、とても
1行+6行*79文字では表せそうにないことがわかったので、
断念した。やけに、コードが増えてしまう・・・
そんで、24bit→24bitグレースケールになっていた理由は、
Game上で24bitのドットデータを変換するのに使う関数を改造したから。
いい、アドバイスありがとう。けど、無理だ。
0048デフォルトの名無しさんNGNG
#include<stdio.h>
FILE*R,*S;int i=0,h,s,t,p,q,r,(*g)(FILE*)=fgetc;void I(){for(i=0;i++<4;t=
unsigned(t)>>8|g(R)<<24);}main(int c,char**v){R=fopen(v[1],"rb");S=fopen(v[2],
"wb");while(i++<54)fputc(g(R),S);fseek(R,18,0);I();s=t;I();h=t*s;fseek(R,54,0);
while(h--){for(p=g(R),q=g(R),r=g(R),c=3;c--;)fputc((r*77+q*28+p*151)>>8,S);for(
t=s%4;t--;)h%s?fputc(g(R),S):0;}fputc(0,S);fclose(R);fclose(S);return 0;}

>>47
8bit@7行が見えてきたと思わないか?
テーブル出力はまだしもファイルサイズ書き込みが入るかな?
fseekとリトルエンディアンが問題だ
fputcの3重ループが削れるから……(ぶつぶつ
004948NGNG
>>48
?〜:0;ではなく,?0:〜;でした...
005047NGNG
>>48
すげー。今、「どんだけやっても、
paintとプレビューで表示してくれん。」
とか、思って来てみたら、できてる人がいる。
そのソース見て勉強させてもらうよ。今から。
005147NGNG
>>48
情報:
さっき、ソース解体して調べたら、実は
fclose()前のfputc(0,S);がいらないことが判明。
消しても大丈夫。ただのゴミだから。
005247NGNG
//24bit→8bitグレースケール
//85文字ほどオーバーしたが一応載せておく
#include<stdio.h>
FILE*R,*S;int i,h,s,Y,X,t,T,G,B;main(int c,char**v){R=fopen(v[1],"rb");S=fopen(
v[2],"wb");while(i<54){fputc(fgetc(R),S);i++;}fseek(R,18,0);fread(&s,4,1,R);
fread(&h,4,1,R);fseek(S,2,0);i=s;while(i>=4)i-=4;X=1078+s*h+h*(4-i);fwrite(&X,4,
1,S);fseek(S,10,0);Y=1078;fwrite(&Y,4,1,S);fseek(S,28,0);X=8;fwrite(&X,2,1,S);
fseek(S,54,0);fseek(R,54,0);while(B<256){putc(B,S);putc(B,S);putc(B,S);putc(0,S)
;B++;}for(Y=0;Y<h;Y++){for(X=0;X<s;X++){B=fgetc(R);G=fgetc(R);T=fgetc(R);B=(T+B+
G)/3;fputc(B,S);}t=0;while(t<(4-i)){fputc(0x00,S);t++;}fseek(R,i,1);}fclose(R);
fclose(S);}
//79*7に入ったら、もう一回載せる。輝度は修正しました
0053デフォルトの名無しさんNGNG
>>52
fgetc,fputs はすべて getc,putc にしてもよいと思うが。
fclose もその場でプログラム終了するからいらないね。
while もすべて for にしる。
main(int c,char**v) を main(c,v)char**v; にしる。
0x00 を 0 にしる。
i>=4 を i>3 にしる。
005447NGNG
↑のやつは(<<52)LoadImageで読み込めない
BITMAPを作っちゃいます。
すいません。これ、おかしかったです。
使わないで。
0055デフォルトの名無しさんNGNG
>>54
ループを
for(X=s*h;X--;putc((T+B+G)/3,S))B=getc(R),G=getc(R),T=getc(R);
に変更すれば大丈夫でない?
005647NGNG
>>53
ごめん。まさか、書き込みが来るとおもわなかった(↑とか書いたし。
けど、まずは、LoadImageで読み込める、
フォーマットどおりのBitmap作るようにするよ。
0057bloomNGNG
http://homepage.mac.com/ayaya16/
0058デフォルトの名無しさんNGNG
ちゃんと変換されていると思うけど、どうよ?

#include<stdio.h>
FILE*R,*S;int i=54,h,s,Y,X,t,T,G,B;main(c,v)char**v;{R=fopen(v[1],"rb");S=fopen
(v[2],"wb");for(;i--;)putc(getc(R),S);fseek(R,18,0);fread(&s,4,1,R);fread(&h,4,
1,R);fseek(S,2,0);i=s%4;X=1078+s*h+h*(4-i);fwrite(&X,4,1,S);fseek(S,10,0);Y=
1078;fwrite(&Y,4,1,S);fseek(S,28,0);X=8;fwrite(&X,2,1,S);fseek(S,54,0);fseek(R,
54,0);for(;B<256;B++)putc(B,S),putc(B,S),putc(B,S),putc(0,S);for(X=s*h;X--;putc
((T+B+G)/3,S))B=getc(R),G=getc(R),T=getc(R);for(t=0;t<4-i;t++)fputc(0,S);fseek(
R,i,1);}
0059デフォルトの名無しさんNGNG
>>58
最後の fseek(R,i,1); って、うちではなくても大丈夫そうだった。
そしたら7行だね...はやぁ
0060デフォルトの名無しさんNGNG
bmp ってリトルエンディアン固定なんでしたっけ?
0061デフォルトの名無しさんNGNG
順列を辞書順に出力(Java)

public class A{private static int N,b[];private static void p(int i){int j,k,t;
if (i<N){for(j=i;j<N+1;j++){t=b[j];for(k=j;k>i;k--)b[k]=b[k-1];
b[i]=t;p(i+1);for(k=i;k<j;k++)b[k]=b[k+1];b[j]=t;}}else{
for(j=1;j<N+1;j++)System.out.print(b[j]+" ");System.out.println();}}
public static void main(String[] a){
try{N=Integer.parseInt(a[0]);}catch(Exception e){System.exit(1);}
b=new int[N+1];for(int i=0;i<N+1;i++)b[i]=i;p(1);}}
0062デフォルトの名無しさんNGNG
>>47
RGB平均≠輝度ってのは覚えておくといいかも。詳しくはYUVとか検索。
で、今更だが>>40の輝度、GとBの係数が逆だったのに気づいた。
77,151,28が正解なんだが5,9,2 >>4でも結果に大した違いがなかった罠。

>>60
固定だと思う。RIFFでも見たことないし
8bitだと7行でエンディアン依存無しは無理か・・・
006347NGNG
>>59
fseekは必要です。
横のデータは4の倍数バイトに決まってるので、
その修正用です。横のサイズが4の倍数以外の
BMPだと狂うはずです。
あと、#includeは七行に入らないの?
006447NGNG
//みんなの力借りてなんとかできました。7*79ギリギリですが。
//LoadImageで読み込めませんがPaintで読み込めます。(なぜか)
#include<stdio.h>
FILE*R,*S;int i=54,h,s,Y,X,t;main(c,v)char**v;{R=fopen(v[1],"rb");S=fopen(v[2],
"wb");for(;i--;)putc(getc(R),S);fseek(R,18,0);fread(&s,4,1,R);fread(&h,4,1,R);
fseek(S,2,0);i=s%4;X=1078+s*h+h*i;fwrite(&X,4,1,S);fseek(S,4,1);Y=1078;fwrite(&
Y,4,1,S);fseek(S,28,0);X=8;fwrite(&X,2,1,S);fseek(S,54,0);fseek(R,54,0);for(;t<
256;t++)putc(t,S),putc(t,S),putc(t,S),putc(0,S);for(Y=h;Y--;){for(X=s;X--;putc(
getc(R)*151+getc(R)*77+getc(R)*28>>8,S));for(t=i;t--;putc(0,S));fseek(R,i,1);}}
//協力有難うございます。
0065デフォルトの名無しさんNGNG
>>59
fseek(R,i,1);はlong境界にあわせるために必要.
横サイズが4の倍数でないファイル読ませると破綻します.
私はfseek使わずに読み込むことで進めさせましたが.
006665NGNG
>>63
あぁ,かぶり負け
0067デフォルトの名無しさんNGNG
さて、じゃあエンディアン依存なしバージョンに朝鮮だな。
006858NGNG
>>63 >>65
ほんとだ。ペイントだと見られるけど、すしえさんではだめだった。
お詫びに >>67 のお題に挑戦させてください。
0069デフォルトの名無しさんNGNG
基本は>64のままだが、エンディアンは関係なくなった鴨
#include<stdio.h>
FILE*R,*S;int i=54,h,s,X,t,(*g)()=getc,(*k)()=fseek;p(c){putc(c,S);}I(n){for(;n
--;h=g(R)<<24|h>>8);}O(n){for(X=4;X--;n>>=8)p(n);}main(c,v)char**v;{R=fopen(v[1
],"rb");for(S=fopen(v[2],"wb");i--;)p(g(R));k(R,18,0);I(4);s=h;I(4);k(S,2,0);i=
s%4;O(1078+s*h+h*i);k(S,4,1);O(1078);k(S,28,0);p(8),p(0);k(S,54,0);k(R,54,0);
for(;t<256;p(0))p(t),p(t),p(t++);for(;h--;){for(X=s;X--;p(c>>8))c=g(R)*28,c+=g(
R)*151,c+=g(R)*77;for(t=i;t--;p(0));k(R,i,1);}}
0070デフォルトの名無しさんNGNG
>>64
おれっちのところだと、横が4の倍数でないとずれまくるのだが何か変?
画像は 187x298x24
007147NGNG
>>70
すいません。奇数でのテストを欠いてました。今度は大丈夫です。
他、LoadImageに対応した(フォーマット通りを作る)完成版です。
#include<stdio.h>
(*p)(FILE*,long,int)=fseek;FILE*R,*S;int i=54,h,s,Y,X,t,j,z=1078,d;main(c,v)char*
*v;{R=fopen(v[1],"rb");S=fopen(v[2],"wb");for(;i--;)putc(getc(R),S);p(R,18,0);
fread(&s,4,1,R);fread(&h,4,1,R);p(S,2,0);i=s%4;i>0?d=4-i:0;X=z+(j=h*s+h*d);fwrite
(&X,4,1,S);p(S,4,1);Y=z;fwrite(&Y,4,1,S);p(S,28,0);X=8;fwrite(&X,2,1,S);p(S,4,1);
fwrite(&j,4,1,S);p(S,54,0);p(R,54,0);for(;t<256;t++)putc(t,S),putc(t,S),putc(t,S)
,putc(0,S);for(Y=h;Y--;){for(X=s;X--;putc(getc(R)*151+getc(R)*77+getc(R)*28>>8,S));
for(t=d;t--;putc(0,S));p(R,i,1);}}
ですが、7*79に収まってません。なんかアイデアありませんか?
0072デフォルトの名無しさんNGNG
>>71
今まで fopen やめて stdin/stdout を使うようにしてたけど
そうすれば十分収まったりしない?
漏れ的にも引数にファイル名とるよりfilterのような動作のほうが
何かと便利だったりすることのほうが多い。
007358NGNG
できました。今、調整中です。ちょっとお待ちを。
0074デフォルトの名無しさんNGNG
>>71

#include<stdio.h>
(*p)()=fseek;(*q)()=fputc;FILE*R,*S;int i=54,h,s,Y,X,t,j,z=1078,d;main(c,v)char*
*v;{R=fopen(v[1],"rb");S=fopen(v[2],"wb");for(;i--;)q(getc(R),S);p(R,18,0);fread
(&s,4,1,R);fread(&h,4,1,R);p(S,2,0);i=s%4;i>0?d=4-i:0;X=z+(j=h*s+h*d);fwrite(&X,
4,1,S);p(S,4,1);Y=z;fwrite(&Y,4,1,S);p(S,28,0);putw(X=8,S);p(S,4,1);fwrite(&j,4,
1,S);p(S,54,0);p(R,54,0);for(;t<256;t++)q(t,S),q(t,S),q(t,S),q(0,S);for(Y=h;Y--;
){for(X=s;X--;q(getc(R)*151+getc(R)*77+getc(R)*28>>8,S));for(t=d;t--;q(0,S));p(R
,i,1);}}

適当にやってみただけでテストしてない罠
007558NGNG
x86 と SPARC でできたのでたぶん大丈夫かと思います。

#include<stdio.h>
FILE*R,*S;int(*f)()=fseek,i=54,h,s,Y,X=1078,t,j,d;g(v,i,k){for(i=k=0;i<v;)k|=
getc(R)<<i++*8;return k;}p(k,v,i){for(i=0;i<v;)putc(k>>i++*8,S);}main(c,v)char
**v;{R=fopen(v[1],"rb");S=fopen(v[2],"wb");for(;i--;)p(g(1),1);f(R,18,0);s=g(4)
;h=g(4);f(S,2,0);i=s%4;i?d=4-i:0;p(X+(j=h*s+h*d),4);f(S,4,1);p(X,4);f(S,28,0);p
(8,2);f(S,4,1);p(j,4);f(S,54,0);f(R,54,0);for(;t<256;t++)p(t<<16|t<<8|t,4);for(
Y=h;Y--;g(i)){for(X=s;X--;p(t+g(1)*28>>8,1))t=g(1)*151,t+=g(1)*77;p(0,d);}}
0076デフォルトの名無しさんNGNG
#include<stdio.h>
FILE*R,*S;int i=54,h,s,t,p,(*k)(FILE*,long,int)=fseek;g(){return getc(R);}u(int
c){return putc(c,S);}void I(){for(i=4;i--;t=(unsigned)t>>8|g()<<24);}void O(int
v,int n=4){for(;n--;v>>=8)u(v);}main(int c,char**v){for(R=fopen(v[1],"rb"),S=
fopen(v[2],"wb");i--;u(g()));for(;i++<256;O(i<<16|i<<8|i));k(R,18,0);I();s=t;I(
);h=t*s;c=(s+3)/4*4*t;for(k(R,54,0);h--;h%s?0:(O(0,s%4?4-s%4:0),k(R,s%4,1)))p=g
()*28,p+=g()*151,p+=g()*77,u(p>>8);k(S,34,0);O(c);k(S,2,0);O(c+1078);k(S,5,1);u
(4);k(S,28,0);u(8);}

C++コンパイラを通そうとすると私にはこれが限界です.
なんか昼間からずっとやってる気がする……
0077デフォルトの名無しさんNGNG
きみらのやってる事はスキルアップに直接繋がると思うよ。
短く書く方法参考になった。
0078デフォルトの名無しさんNGNG
>>76
C++使うんだったら、fstream 使ったほうが便利でよろしいかと。
0079デフォルトの名無しさんNGNG
#include<stdio.h>
FILE*R,*S;int i=54,h,s,t,p,(*k)(FILE*,long,int)=fseek;O(int v,int n=4){for(;n--
;v>>=8)putc(v,S);}I(){for(t=i=0;i<4;t+=getc(R)<<i++*8);}main(int c,char**v){for
(R=fopen(v[1],"rb"),S=fopen(v[2],"wb");i--;putc(getc(R),S));for(;i++<256;O(i<<
16|i<<8|i));k(R,18,0);I();s=t;I();h=t*s;c=(s+3)/4*4*t;for(k(R,54,0);h--;h%s?0:(
O(0,s%4?4-s%4:0),k(R,s%4,1)))p=getc(R)*28,p+=getc(R)*151,p+=getc(R)*77,putc(p>>
8,S);k(S,34,0);O(c);k(S,2,0);O(c+1078);k(S,5,1);putc(4,S);k(S,28,0);putc(8,S);}

C++で何とか7行達成.
関数の戻り値の型省略してるんで厳密にはC++になりきれてませんが,コンパイラの
デフォルト警告Levelだとwarningで許してくれたのでご容赦の程…….
(BCC32,VC.NET共にwarningですた.)
fcloseやmainのreturn省略の辺りはとても残念です.
0080デフォルトの名無しさんNGNG
>>78
引数の型の省略がなんかずるい気がしてイヤだったんで,なんとか付けたままで出来ないかと頑張ってたんですよ.
短くしていく過程でデフォルト引数使ってしまったんで,C++と宣ってるだけでして.
結局私も妥協してしまったわけですが……

連続すいませぬ.
0081デフォルトの名無しさんNGNG
>>79-80
gcc(g++) と Sun Workshop CC では、
関数 O, I の返値でエラーが出てコンパイルできないです。
何とかがんばってみてください。
0082デフォルトの名無しさんNGNG
age
0083デフォルトの名無しさんNGNG
ねた切れ?
0084デフォルトの名無しさんNGNG
>>83
ここに挙がってるネタでやってないものならいくつもあるが
008583NGNG
即興で作ってみた
TelnetClientモドキ

import java.net.*;import java.io.*;public class T extends Thread{InputStream i;
OutputStream o;public T(InputStream I,OutputStream O){i=I;o=O;}public void run(
){try{int c;while(-1!=(c=i.read()))o.write(c);o.close();System.exit(0);}catch(
Exception e){}}public static void main(String[] a){try{Socket s=new Socket(a[0]
,Integer.parseInt(a[1]));new T(s.getInputStream(),System.out).start();new T(
System.in,s.getOutputStream()).start();}catch(Exception e){System.out.println(
"Usage: java T HOST PORT\r\nヽ(`Д´)ノ もがしゃっ!");}}}
0086デフォルトでない名無しさんNGNG
#include<winsock.h>
char a[9999],b[9999],z[512];int o,p=1,r,s=1;H(char*c){strcat(c,"\r\n");send(o,c,
strlen(c),0);}I(){while(p){gets(a);H(a);}_endthread();}main(c,v)char**v;{SOCKAD\
DR_IN q={2,htons(atoi(v[2]))};WSAStartup(257,z);q.sin_addr=*((PIN_ADDR)*(gethos\
tbyname(v[1]))->h_addr_list);if(connect(o=socket(2,1,0),&q,sizeof(q)))return;pr\
intf("ok\n");_beginthread(I, 0, NULL);for(;s;){memset(b,9999,0);s=recv(o,b,9999,
0);if(s>0)printf("%s\n",b);}p=0;closesocket(o);WSACleanup();}

83氏のを見て急に作りたくなってきた。
Telnetもどき

telnet [ホスト名] [ポート]
0087デフォルトでない名無しさんNGNG
動作がおかしかったのでちょっと修正

#include<winsock.h>
char a[999],b[999],z[512];int o,p=1,r,s=1;H(char*c){strcat(c,"\r\n");send(o,c,s\
trlen(c),0);}I(){while(p){gets(a);H(a);}_endthread();}main(c,v)char**v;{SOCKADD\
R_IN q={2,htons(atoi(v[2]))};WSAStartup(257,z);q.sin_addr=*((PIN_ADDR)*(gethost\
byname(v[1]))->h_addr_list);if(connect(o=socket(2,1,0),&q,sizeof(q)))return;puts
("ok");_beginthread(I, 0, NULL);for(;s;){memset(b,0,999);s=recv(o,b,999,0);s>0?
printf("%s",b):0;}p=0;closesocket(o);WSACleanup();}
0088デフォルトの名無しさんNGNG
昔の作品で7行実達成のものを, part2 の 131 から bmpgen.c

#include <stdio.h>
FILE*f;int k,i,L=320,N=240,x[]={0x424d3684,50331648,13824,10240,16385,61440,256
,402653184,132,50381838,50190,0,0,0},n[320],m[320],j;main(a){for(f=fopen("c.bm"
"p","wb");i<54;i++)putc(x[i/4]>>8*(3-i%4),f);for(i=j=1;i++<99;)m[j=(i*99+j)%L]=
N;for(i=N;i--;){for(j=L*3;j--;)putc(m[L-j/3-1],f);a=*m;for(j=0;++j<L;a=k)k=m[j]
,m[j]=(a+m[j+1])/2;}}
008988NGNG
しもた。
m[321] としておいてくらさい。そして n[320] いりまへん。
0090デフォルトの名無しさんNGNG
〇神転生よりコードブレイカー

import java.util.*;public class C{public static void main(String[]a){try{Random
r=new Random();int[]A,B;int i,j,c,h=0,b=0,l=Integer.parseInt(a[0]);A=new int[10
];B=new int[l];for(i=0;i<10;i++)A[i]=i;for(i=0;i<l;i++){c=(r.nextInt()&0x7fff)%
(10-i);B[i]=A[c];for(j=c;j<9-i;j++)A[j]=A[j+1];}while(h<l){byte[]D=new byte[82]
;System.in.read(D);h=0;b=0;for(i=0;i<l;i++)for(j=0;j<l;j++)if(B[i]==D[j]-'0')if
(i==j)h++;else b++;System.out.println("H"+h+":B"+b);}}catch(Exception e){System
.out.println("Usage: java C COLUMN\r\nヽ(`Д´)ノ もがしゃっ!");}}}
0091デフォルトの名無しさんNGNG
>>85 >>90
>ヽ(`Д´)ノ もがしゃっ!

わろた
0092デフォルトの名無しさんNGNG
まあなんだ、ソース投稿する時は上げろ
0093デフォルトでない名無しさんNGNG
7行MMLプレイヤー
ビルドする前にライブラリにwinmm.libを追加すること。

#include <windows.h>
#include <mmsystem.h>
HMIDIOUT h;char*a="cdefgab",*b,*d,e[7]={0,2,4,5,7,9,11},o=0,l=4,m;main(c,v)char*
*v;{if(midiOutOpen(&h,0,0,0,0))return 0;for(b=v[1];*b;b++)(d=strchr(a,*b))?midi\
OutShortMsg(h,8335504+(e[d-a]+o*12)*256),Sleep((m=atoi(b+1))?l=m,4000/l:4000/l),
midiOutShort\Msg(h,12416+(e[d-a]+o*12)*256):*b==111?o=atoi(++b)-4:0;midiOutClose
(h);return;}

mml [mml data]
※[mml data]
cdefgab 音階。それぞれド,レ,ミ,ファ,ソ,ラ,シ。
 音階の後に数字(1-2000)を入れると音の長さを指定できる。
 省略時は最後に指定した長さになる。デフォルトは4。
o[0-10] オクターブ指定。デフォルトは4。
0094デフォルトでない名無しさんNGNG
mml data追加age

#include <windows.h>
#include <mmsystem.h>
HMIDIOUT h;char*a="cdefgab",*b,*d,e[7]={0,2,4,5,7,9,11},o=0,l=4,m;main(c,v)char*
*v;{if(midiOutOpen(&h,0,0,0,0))return 0;for(b=v[1];*b;b++)(d=strchr(a,*b))?midi\
OutShortMsg(h,8335504+(e[d-a]+o*12)*256),Sleep((m=atoi(b+1))?l=m,4000/l:4000/l),
midiOutShortMsg(h,12416+(e[d-a]+o*12)*256):*b==111?o=atoi(++b)-4:*b==64?m=atoi(
++b),midiOutShortMsg(h,192+m*256):0;midiOutClose(h);return 0;}

@[音色番号] 音色を変更します。
0095デフォルトでない名無しさんNGNG
さらに追加。

#include <windows.h>
#include <mmsystem.h>
HMIDIOUT h;char*a="cdefgab",*b,*d,e[7]={0,2,4,5,7,9,11},o=0,l=4,m;V(){(m=atoi(b+
1))?l=m:0;Sleep(4000/l);}main(c,v)char**v;{if(!midiOutOpen(&h,0,0,0,0))for(b=v[1
];*b;b++)(d=strchr(a,*b))?midiOutShortMsg(h,8335504+(e[d-a]+o*12)*256),V(),midi\
OutShortMsg(h,12416+(e[d-a]+o*12)*256):*b==111?o=atoi(++b)-4:*b==64?m=atoi(++b),
midiOutShortMsg(h,192+m*256):*b==114?V():0;midiOutClose(h);return 0;}

r 休符です。音階と同じ扱いを受けます
0096デフォルトでない名無しさんNGNG
少しばかりソース圧縮。

#include <windows.h>
#include <mmsystem.h>
HMIDIOUT h;char*a="cdefgab",*b,*d,e[7]={0,2,4,5,7,9,11},o=0,l=4,m;V(){(m=atoi(b+
1))?l=m:0;Sleep(4000/l);}main(c,v)char**v;{if(!midiOutOpen(&h,0,0,0,0))for(b=v[1
];*b;b++)(d=strchr(a,*b))?c=(e[d-a]+o*12)*256,midiOutShortMsg(h,8335504+c),V(),
midiOutShortMsg(h,12416+c):*b==111?o=atoi(++b)-4:*b==64?m=atoi(++b),midiOutShor\
tMsg(h,192+m*256):*b==114?V():0;midiOutClose(h);return 0;}
0097デフォルトの名無しさんNGNG
>>96
M(x){midiOutShortMsg(h,x)}を作る。
oはグローバルなのでo=0の初期化は不要。

大文字のCD FGAで半音に対応できない? たぶんe[]が要らなくなるから
その分でさらにテンポかなにか対応できれば。。

こんなのつくってみた。1行にまとめて引数にどうぞ。
@45c32d32e32g32o5c32d32e32g32o6c32d32e32g32o7c32d32e32g32o8c32o7g32e32d32c32o6g32e32d32c32o5g32e32d32c32o4g32e32d32
o3a32b32o4c32e32a32b32o5c32e32a32b32o6c32e32a32b32o7c32e32a32e32c32o6b32a32e32c32o5b32a32e32c32o4b32a32e32c32o3b32
o3f32g32a32o4c32f32g32a32o5c32f32g32a32o6c32f32g32a32o7c32f32c32o6a32g32f32c32o5a32g32f32c32o4a32g32f32c32o3a32g32
o3g32a32b32o4d32g32a32b32o5d32g32a32b32o6d32g32a32b32o7d32g32d32o6b32a32g32d32o5b32a32g32d32o4b32a32g32d32o3b32a32
こんな感じだったっけ?
0098デフォルトの名無しさんNGNG
>96
〜(e[d-a]+〜
を
〜("024579;"[d-a]-48+〜
とすればe[]の定義不要で11文字減る
0099デフォルトでない名無しさんNGNG
97氏と98氏の指摘部分を修正しました。
そして半音に対応してみました。

HMIDIOUT h;char*a="cdefgab",*b,*d,*e,*f="-+",o,l=4,m,n;V(){(m=atoi(b+1))?l=m:0;
Sleep(4000/l);}W(x){midiOutShortMsg(h,x);}main(c,v)char**v;{if(!midiOutOpen(&h,0
,0,0,0))for(b=v[1];*b;b++)(d=strchr(a,*b))?e=strchr(f,b[1]),n=(e?b++,(e-f)*2-1:0
),c=("024579;"[d-a]-48+n+o*12)*256,W(8335504+c),V(),W(12416+c):*b==111?o=atoi(++
b)-4:*b==64?m=atoi(++b),W(192+m*256):*b==114?V():0;midiOutClose(h);return 0;}

+ シャープです。音階の後に付けると半音上がります
-フラットです。音階の後に付けると半音下がります
(例の禁則は設けていません(;´д`)
0100デフォルトでない名無しさんNGNG
あ、シャープがあればフラット要りませんね・・・

#include <windows.h>
#include <mmsystem.h>
HMIDIOUT h;char*a="cdefgab",*b,*d,o,l=4,m,n;V(){(m=atoi(b+1))?l=m:0;Sleep(4000/l
);}W(x){midiOutShortMsg(h,x);}main(c,v)char**v;{if(!midiOutOpen(&h,0,0,0,0))for(
b=v[1];*b;b++)(d=strchr(a,*b))?n=(b[1]==43?b++,1:0),c=("024579;"[d-a]-48+n+o*12)
*256,W(8335504+c),V(),W(12416+c):*b==111?o=atoi(++b)-4:*b==64?m=atoi(++b),W(192+
m*256):*b==114?V():0;midiOutClose(h);return 0;}
0101おみくじVB6NGNG
Private Sub Frm_Load(): Randomize: End Sub
Private Sub Cmd_Click(): With Me: Select Case Int(Rnd * 7): Case 0: .Caption _
= "大吉": Case 1: .Caption = "中吉": Case 2: .Caption = "小吉": Case 3
.Caption = "末吉": Case 4: .Caption = "吉": Case 5: .Caption = "凶": Case 6
.Caption = "大凶": End Select: End With: End Sub

5行ですた
0102デフォルトの名無しさんNGNG
アイタタタ
0103101NGNG
>>102
スマソ、おれにできるのはこれ位だ
もっと勉強してきまつ
0104デフォルトの名無しさんNGNG
ガンバッテネ
0105デフォルトの名無しさんNGNG
>>99ベースの勝手に改造版
t直後の数字でテンポが変更可能(デフォルトはt60)

#include <windows.h>
#include <mmsystem.h>
HMIDIOUT h;char*a="cdefgab",*b,*d;int t=4000,o,l=4,m;V(){(m=atoi(b+1))?l=m:0;
Sleep(t/l);}W(x){midiOutShortMsg(h,x);}main(c,v)char**v;{if(!midiOutOpen(&h,0,0
,0,0))for(b=v[1];*b;b++)(d=strchr(a,*b))?c=("024579;"[d-a]-48+((m=(m=b[1])-45?m
==43:-1)&&++b,m)+o*12)<<8,W(8335504+c),V(),W(12416+c):*b==111?o=atoi(++b)-4:*b-
64?*b-114?*b==116?t=24e4/atoi(++b):0:V():W(192+atoi(++b)*256);midiOutClose(h);}
0106デフォルトの名無しさんNGNG
>>101
全く意味無いが3行にしてみた

Sub Main(): Randomize: Select Case Int(Rnd * 7): Case 0: a = "大吉": Case 1
a = "中吉": Case 2: a = "小吉": Case 3: a = "末吉": Case 4: a = "吉": Case 5
a = "凶": Case 6: a = "大凶": End Select: MsgBox "運勢は" & a: End: End Sub

ほんと意味無いなw
0107デフォルトの名無しさんNGNG
>>101
意味もなく2行。

Sub main(): Dim a(): Randomize: a = Array("大吉", "中吉", "小吉", "末吉", _
"吉", "凶", "大凶"): MsgBox "運勢は" & a(Int(Rnd * 7)): End: End Sub
0108デフォルトの名無しさんNGNG
いや、難しすぎるんだって。
0109デフォルトの名無しさんNGNG
>>100 (と >>105)

*a="cdefgab" を *a="c#d#ef#g#a#b" とし(別に#じゃなくてもいいけど)
n=(b[1]==43?b++,1:0),c=("024579;"[d-a]-48+n+o*12)*256 を
c=(d-a+(b[1]==43&&b++)+o*12)<<8 とする。nは不要。
さらに (b[1]==43&&b++) を (m=44-b[1],(m*m==1&&++b)*m) とすれば
-(フラット)に対応(>>105より短)。

また m=atoi(++b),W(192+m*256) を W(192|atoi(++b)<<8) とする。
0110デフォルトの名無しさんNGNG
<script language="javascript">
m = new Array("大吉", "中吉", "小吉", "末吉", "吉", "凶", "大凶");
alert("運勢は"+m[Math.ceil(Math.random()*7-1)]);
</script>

JavaScript実質2行。もっと短くできる?
0111デフォルトの名無しさんNGNG
>>107
配列 a() は不要。

Sub Main(): Randomize: MsgBox "運勢は" & Array("大吉", "中吉", "小吉", "末吉", _
"吉", "凶", "大凶")(Int(Rnd * 7)): End: End Sub

あるいは微妙に動作は違うけど...

Sub Main(): Randomize: MsgBox "運勢は" & Mid$("大吉中吉小吉末吉吉 凶 大凶", _
2 * Int(Rnd * 7) + 1, 2): End: End Sub

とか。
0112デフォルトの名無しさんNGNG
>>110
<script language="javascript">
m="大吉,中吉,小吉,末吉,吉,凶,大凶".split(",");
alert("運勢は"+m[Math.ceil(Math.random()*m.length)]);
</script>

お行儀悪いけど、文字数だけ短縮。
*7-1とか、バグの元は排除。
0113デフォルトの名無しさんNGNG
>>111
Array()に直に書けるのか。一つ勉強になった
0114デフォルトの名無しさんNGNG
>>111
一文字減らしてみた

Sub Main(): Randomize: MsgBox "運勢は" & Array("大吉", "中吉", "小吉", "末吉", _
"吉", "凶", "大凶")(Rnd * 7 \ 1): End: End Sub
0115デフォルトの名無しさんNGNG
>>111
スペースを全角→半角
int() → \ 1
+1 → 文字列の最初に半角スペース
で4文字減

Sub Main(): Randomize: MsgBox "運勢は" & Mid$(" 大吉中吉小吉末吉吉 凶 大凶", _
(Rnd * 7 \ 1) * 2, 2): End: End Sub

意味ないのでsage
0116デフォルトの名無しさんNGNG
すれ3 445-459 の md5
あと18文字で力尽きました。

double sin(),d;unsigned s[4],E[4],X[32],C,x,y,z,k,i,j=8,l=16,m,n,u=64,g=16;main
(char*a){for(a=E;j--;)n=a[j+8]=~(a[j]=1+j*34);for(a=X;n/u;memset(X,m=0,u)){for(
n=0;~(i=getchar())&&(a[n++]=i,n<u););for(C+=n*8,n-u?X[l=14+n/56*g]=C,a[n]|=128,
X[++l]=0:0;m<l;m+=g){for(memcpy(s,E,g);k="@AE@"[++j];)for(i=0;i<g;s[-i++&3]=x+(
y<<z|y>>32-z),k+="AECG"[j])x=s[1-i&3],y=s[2-i&3],z=s[~i&3],d=sin(j*g+i+1),y=s[-
i&3]+(j-3?j-2?j?x&z|y&~z:x&y|~x&z:x^y^z:y^(x|~z))+X[m+k%g]+(d<0?-d:d)*(~0U+1.),
z="GLQVEINTDKPWFJOU"[j*4+i%4]-u;for(;j--;E[j]+=s[j]);}}for(a=E;++j<g;printf("%"
"02x",a[j]&255));}
0117:NGNG

探し物はこちら
http://sagatoku.fc2web.com/
新商品・安売・キャンペーン・流行商品・ネット商品等10万点以上
ジャンル別・50音別で楽々探し物


0118デフォルトでない名無しさんNGNG
修正ソース拝借→指摘修正→ボリューム追加(エクスプレッションかもしれない)

#include <windows.h>
#include <mmsystem.h>
HMIDIOUT h;char*a="c+d+ef+g+a+b",*b,*d;int t=4000,o,l=4,m;V(){(m=atoi(b+1))?l=m:
0;Sleep(t/l);}W(x){midiOutShortMsg(h,x);}main(c,v)char**v;{if(!midiOutOpen(&h,0,
0,0,0))for(b=v[1];*b;b++)(d=strchr(a,*b))?c=(d-a+(b[1]==43&&b++)+12+o*12)<<8,W(
8335504+c),V(),W(12416+c):*b-64?*b-111?*b-114?*b-116?*b==118?W(6522+atoi(++b)):0
:(t=24e4/atoi(++b)):V():(o=atoi(++b)-4):W(192+atoi(++b)*256);midiOutClose(h);}

v[0- ] ボリュームです。音の大きさを変更できます

あと、燃料投下。
#include <windows.h>
#include <mmsystem.h>
HMIDIOUT h;V(l,b,t)char*l,*b;{char m;(m=atoi(b+1))?*l=m:0;Sleep(t/(*l));}W(x){m\
idiOutShortMsg(h,x);}Y(v)char*v;{char*a="cdefgab",*b,*d,o=0,l=4,m=0,n=atoi(v);i\
nt c,t=4000;for(b=v;*b;b++)(d=strchr(a,*b))?c=("024579;"[d-a]-36+(b[1]==43&&b++)
+o*12)<<8,W(8335504+c+n),V(&l,b,t),W(12416+c+n):*b==111?o=atoi(++b)-4:*b==64?m=
atoi(++b),W(192+m*256+n):*b==114?V(&l,b,t):*b==116?t=24e4/atoi(++b):0;return 0;}
main(c,v)char**v;{long t[16],n;if(!midiOutOpen(&h,0,0,0,0)){for(n=c;--c;)t[c]=_\
beginthread(Y,0,v[c]);for(;n--;)WaitForSingleObject(t[n],INFINITE);}midiOutClose
(h);return 0;}

MMLプレイヤー(最高16重奏が可能)
mml [mml data] ...
mmldataの最初にチャンネル番号を付ける事。
0119デフォルトでない名無しさんNGNG
W(6522+atoi(++b)) は W(6522+atoi(++b)<<16)の間違いです...
0120デフォルトの名無しさんNGNG
public class Aho {
 public static void main(String args[]) {
  System.out.println("おまえら、全員市ね");
  Thread.sleep(1000000);
  System.out.println("だから、市ねって");
 }
}
0121デフォルトの名無しさんNGNG
>116
x+(y<<z|y>>32-z)>x+=y<<z|y>>32-z
(j-3?j-2?j?x&z|y&~z:x&y|~x&z:x^y^z:y^(x|~z))>(j?j>1?y^(j-3?x^z:x|~z):x&z|y&~z:x&y|~x&z)
sin(j*g+i+1)>sin(j*g-~i)
0122デフォルトの名無しさんNGNG
HSP用
暇なときにどうぞ

;其の1
randomize;
repeat: wait 10;
;stick n: if( n & 0x200 ): break;
rnd rx, 33: rnd ry, 33: ginfo 0;
mouse prmx + rx - 16, prmy + ry - 16;
loop;

;其の2
ginfo 0: mox = prmx: moy= prmy;
repeat: await 20;
;getkey n, 2: if( n ): break;
ginfo 0: mouse prmx * 2 - mox, prmy * 2 - moy;
mox = prmx: moy = prmy;
loop;
0123デフォルトの名無しさんNGNG
>>116
for(memcpy(s,E,g);k="@AE@"[++j];)
X[m+k%g]
,k+="AECG"[j]
↓
for(memcpy(s,E,g);++j<4;)
X[m+"@AE@"[j]+"AECG"[j]*i&15]
k の宣言消し
0124デフォルトの名無しさんNGNG
>>118

・"c+d+ef+g+a+b"の方式にする。
・WaitForSingleObject()の引数に_beginthread()を直接与える。
main()のt[16]とnとfor文1つが除去可能。
・INFINITEを-1に(だめかも)。
・return 0;はなくてもよいのでは。あと、main()のif文も。Closeはわからん。

"rc+d+ef+g+a+b"とし、その中でrを個別に判定しベロシティ0にすれば、
V()を用意する必要がなくなり、多少短くなるかもしれない。
0125デフォルトの名無しさんNGNG
ここのスレはすっげーな。
七行でここまでいろいろ表現できるとは。
0126デフォルトの名無しさんNGNG
>>115
VB知らないんだけど、「吉」「凶」は纏められないんですかね?
小凶や末凶も増えるし・・
0127デフォルトの名無しさんNGNG
>>126
余計に長くなっちった。
0128デフォルトの名無しさんNGNG
>>125
さて、レスしたからには挑戦しなければなりませんが。
0129デフォルトの名無しさんNGNG
>>115
微妙に変だから直しました
あとEndは無しでもいけそう
$も不必要かと

Sub Main(): Randomize: MsgBox "運勢は" & Mid("大吉中吉小吉末吉吉 凶 大凶", ( _
Rnd * 6 \ 1) * 2 + 1, 2): End Sub
0130デフォルトの名無しさんNGNG
末吉吉 の部分がどうしても気になる・・・のに、触ると余計に長くなってしまったりするジレンマ。
0131デフォルトの名無しさんNGNG
LittleEndian版の7行md5
但しコンパイル時にchar型のdefaultをunsignedとするオプション指定が必須(ぉ

double sin(),fabs();unsigned s[4],X[32],C,x,y,z,E[4],i,j=8,l,m,n,u,g;main(char*
a){for(a=E;j--;l=g=16)a[j+8]=~(a[j]=1+j*34);for(;n==u;){for(memset(a=X,m=n=0,u=
64);n<u&&~(x=getchar());++C)a[n++]=x;for(n-u?X[l=14+n/56*g]=C*8,a[n]=128,X[++l]
=C>>29:0;m<l;m+=g){for(memcpy(s,E,g);++j<4;)for(i=0;i<g;y=s[-i&3]+(j?j-1?y^(j-3
?x^z:x|~z):x&z|y&~z:x&y|~x&z)+X[m|"@AE@"[j]+"AECG"[j]*i&15]+fabs(sin(j*g+i+1.))
*(~0U+1.),z="GLQVEINTDKPWFJOU"[j*4|i&3]-u,s[-i++&3]=x+=y<<z|y>>32-z)x=s[1-i&3],
y=s[2-i&3],z=s[~i&3];for(;j--;E[j]+=s[j]);}}for(;++j<g;printf("%02x",j[a=E]));}
0132デフォルトで無い名無しさんNGNG
>>129
Splitでやってみる。

Sub Main(): Randomize: MsgBox "運勢は" & Split("大吉 中吉 小吉 末吉 吉 凶 " + _
"大凶", " ")(Rnd * 6): End Sub

ついでに。

Sub Main(): Randomize: MsgBox "運勢は" + Mid("大中小末 ", Rnd * 4 + 1, 1) & _
Mid("吉凶", Rnd + 1, 1): End Sub


0133デフォルトの名無しさんNGNG
>>132
> Sub Main(): Randomize: MsgBox "運勢は" & Split("大吉 中吉 小吉 末吉 吉 凶 " + _
> "大凶", " ")(Rnd * 6): End Sub

大凶と大吉が出にくいぞ。(対オリジナル)

> Sub Main(): Randomize: MsgBox "運勢は" + Mid("大中小末 ", Rnd * 4 + 1, 1) & _
> Mid("吉凶", Rnd + 1, 1): End Sub

"中凶", "小凶", "末凶" ってなんだ ?
0134デフォルトでない名無しさんNGNG
>>133
>>126
0135デフォルトの名無しさんNGNG
普通のおみくじに小凶があるか とマジレス
0136デフォルトの名無しさんNGNG
順番って 大吉 中吉 吉 小吉 だよね?
0137デフォルトの名無しさんNGNG
逆ポーランド表記ちっくな計算機

import java.util.*;import java.math.*;public class P{public static void main(
String[] a ){Stack s = new Stack();for(int i=0;i<a.length;i++){try{s.push(new
BigDecimal(a[i]));}catch( Exception e){BigDecimal n=(BigDecimal)s.pop();
BigDecimal m=(BigDecimal)s.pop();if("+".equals(a[i]))s.push(m.add(n));if("-".
equals(a[i]))s.push(m.subtract(n));if("*".equals(a[i]))s.push(m.multiply(n));
if("/".equals(a[i]))s.push(m.divide(n,0));}}System.out.println( s.pop() );}}

java P 2 3 + 6 2 - "*" 見たいな感じで
0138133NGNG
>>136
> 順番って 大吉 中吉 吉 小吉 だよね?

http://suimei.org/kaitei.html によると、

大吉→中吉→小吉→吉→半吉→末吉→末小吉→凶→小凶→半凶→末凶→大凶 らしい。

らしい。
"中凶" はなかったが、"小凶", "末凶" はあるみたいだ。
すまんかった。→ >>132 (藁
0139デフォルトの名無しさんNGNG
age
0140山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0141デフォルトの名無しさんNGNG
>>137 縮めてみた
import java.util.*;import java.math.*;public class P{public static void main(
final String[]a){System.out.println(new Stack(){{for(int i=0;i<a.length;i++){
try{push(new BigDecimal(a[i]));}catch(Exception e){BigDecimal n=(BigDecimal)pop
(),m=(BigDecimal)pop();if("+".equals(a[i]))push(m.add(n));if("-".equals(a[i]))
push(m.subtract(n));if("*".equals(a[i]))push(m.multiply(n));if("/".equals(a[i])
)push(m.divide(n,0));}}}}.pop());}}
0142デフォルトの名無しさんNGNG
>>24bitRGB->8bitMonochrome
明度ってR,G,B各要素で最大のものと教わったのですが,何故そのような色に重み付けをした変換でそれっぽくなるのでしょう?
0143デフォルトの名無しさんNGNG
>>142
人間の感覚
0144_NGNG
http://homepage.mac.com/hiroyuki43/hankaku10.html
0145デフォルトの名無しさんNGNG
<BODY onLoad='d();'><NOBR><SCRIPT>
p='123456789一二三四五六七八九�T�U�V�W�X�Y�Z�[�\東南西北白発中';y=new A
rray();t=new Array();function d(){for(i=0;i<t.length;i++)document.all['b'+i].val
ue=p.charAt(t[i]);}function a(i){t[i]=99;t=t.sort(z);t[t.length-1]=y.pop();d();}
function z(x,y){return x-y;}for(i=0;i<p.length;i++){for(j=0;j<4;j++){y[i*4+j]=i
;}}for(i=0;i<y.length;i++){j=Math.floor(Math.random()*y.length);s=y[i];y[j]=y[i
];y[i]=s;}for(i=0;i<t.length;i++){t[i]=y.pop();}t=t.sort(z);for(i=0;i<t.length;i
++){window.document.write('<BUTTON ID="b'+i+'" onClick="a('+i+');"></BUTTON>');}
</SCRIPT></NOBR></BODY>

JScript部分が七行って事で勘弁。.htaで動く一人麻雀(判定なし)です。
ほんとはt.sortのzが省略したいんだけど、省略すると文字列として並び替え
されてしまうので、やむなくfunction zを指定してます。
(IE6で確認)
0146デフォルトの名無しさんNGNG
>>132
Splitは区切り文字が空白の場合は省略可能

Sub Main(): Randomize: MsgBox "運勢は" & Split("大吉 中吉 小吉 末吉 吉 凶 " + _
"大凶")(Rnd * 6): End Sub
0147デフォルトの名無しさんNGNG
age
0148デフォルトの名無しさんNGNG
>>147
だれか新しいソースうpしないと
ここは成り立たんな。
てなわけでage
0149デフォルトの名無しさんNGNG
#include <stdio.h>
main()
{
int a;
printf("テストは何点でしたか?\n");
scanf("%d",&a);

if(a==100){
printf("完璧だね");
}

elseif(a<50){
printf("まぁまぁだね");
}

else{printf("頑張れよ");
}
}
0150デフォルトの名無しさんNGNG
>>149
このソースをどうすればいい?
a<50はa>50だし、
101以上の値を入れたときの
処理がないぞ。
あと、int main(int argc,char**argv)って言ってるだろ
0151デフォルトの名無しさんNGNG
>>150
戻り値を省略した場合はint。
mainのプロトタイプは
main()
main(int)
main(int, char **)
main(int, char **, char **) // << MSのは対応してないやも
0152デフォルトの名無しさんNGNG
1番目と3番目のみ正しい。
0153デフォルトの名無しさんNGNG
>>152
__cdecl
0154デフォルトの名無しさんNGNG
>>149はコンパイルエローになる
0155デフォルトの名無しさんNGNG
>>154
アラーメッセージは聞こえますか?
0156デフォルトの名無しさんNGNG
>>153
そんな処理系バリバリ依存のキーワード持ち出すんだったら
void main()
でも別にかまわないだろ
0157デフォルトの名無しさんNGNG
ナにゆーてんの?
0158デフォルトの名無しさんNGNG
誰か return 0; がないのに突っ込もうよ。
0159デフォルトの名無しさんNGNG
>>157
2番目と4番目が仕様上は正しくないと言ってるんでしょ
このスレ的には短くなるなら多少の処理系依存はアリだったはずだが
0160デフォルトの名無しさんNGNG
処裏刑威尊上等
0161デフォルトの名無しさんNGNG
両方intでも問題無い。
明示castのペナルティあるけど
0162デフォルトの名無しさんNGNG
>>158
最近そこには、突っ込めなくなった。
0163デフォルトの名無しさんNGNG
保守
0164デフォルトの名無しさんNGNG
>>158
C++としてコンパイルすればいいじゃん
0165デフォルトの名無しさんNGNG
>>164
別にCでもできるぞ。
ただ、警告になるが。
0166デフォルトの名無しさんNGNG
BCCコンパイルランチャー
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc,char**argv){char option[64],CmdLine[256]="Bcc32 ";
int i;printf("オプションを入力してください");gets(option);strcat
(CmdLine,option);strcat(CmdLine," ");for(i=1;i<argc;i++)strcat(CmdLine,
argv[i]);system(CmdLine);printf("キー入力すると終了します");gets(option);}
*.c/cppの右クリックに追加して使えます。
なにげにオプション入力可能
0167デフォルトの名無しさんNGNG
149のをコンパイルしたら
elseifは定義されていません。」だってさ
0168デフォルトの名無しさんNGNG
キー入力すると・・・は
Enterを押すと・・・です。
0169デフォルトの名無しさんNGNG
暗号キー+XOP演算によるファイル暗号化
1.暗号キー作成
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main(){int i=256;char k[256];FILE*f;
srand((unsigned)time(NULL));for(;i--;)
k[i]=rand()%256-127;f=fopen("Key.txt","wb");
fwrite(k,1,256,f);}
起動すると256Bの暗号キーファイル(key.txt)を作成します
0170デフォルトの名無しさんNGNG
暗号キー+XOP演算によるファイル暗号化
2.XOPによる暗号コード作成
#include<stdio.h>
main(int c,char**v)
{FILE *K,*R,*C;char a[256],b[256];int i;if(c<2)return 0;
K=fopen(v[1],"rb");R=fopen(v[2],"rb");C=fopen("code.txt","wb");
if(K==0||R==0||C==0)return 0;fread(b,1,256,K);while((i=fread
(a,1,256,R))==256){for(;i--;)a[i]=a[i]^b[i];fwrite(a,1,256,
C);}c=i;for(;i--;)a[i]=a[i]^b[i];fwrite(a,1,c,C);}
コマンドラインで v[1]=暗号キーファイル v[2]=元のファイルになるように
すると、暗号コード(code.txt)を吐きます。
0171デフォルトの名無しさんNGNG
暗号キー+XOR演算によるファイル暗号化
3.XORによる復号化
#include<stdio.h>
main(int c,char**v)
{FILE *K,*R,*C;char a[256],b[256];int i;if(c<2)return 0;
K=fopen(v[1],"rb");R=fopen(v[2],"rb");C=fopen("code.txt","wb");
if(K==0||R==0||C==0)return 0;fread(b,1,256,K);while((i=fread
(a,1,256,R))==256){for(;i--;)a[i]=a[i]^b[i];fwrite(a,1,256,
C);}c=i;for(;i--;)a[i]=a[i]^b[i];fwrite(a,1,c,C);}
コマンドラインで v[1]=暗号キーファイル v[2]=暗号ファイルになるように
すると、復号コード(source.txt)を吐きます。
実は暗号化とほとんどかわりません。"code.txt"を変えただけ
0172デフォルトの名無しさんNGNG
>>164
C++ なら cstdio で int main で std::printf, std::scanf じゃん。
0173デフォルトの名無しさんNGNG
>>169-171
全部まとめて7行に入るよね?
0174デフォルトの名無しさんNGNG
XOP演算って何ですか?
ぐぐっても出てきませんでした。
0175デフォルトの名無しさんNGNG
XOR なら知ってるが。
というか、なぜこのスレで?
0176デフォルトの名無しさんNGNG
little endianな7行md5
>131と違いcharの符号は問わない
検証してないが4GB超サイズでも逝ける筈

double sin(),fabs();unsigned s[64],X[32],B,C,x,y,z,E[64],j=8,l,m,n,u,g=16;main(
char*a){for(a=E;j--;l=g)a[j+8]=~(a[j]=1+j*34);for(;n==u;){for(memset(a=X,m=n=0,
u=64);n<u&&~(x=getchar());B+=!(C+=8))a[n++]=x;for(n-u?X[l=14+n/56*g]=C,a[n]=128
,X[++l]=B:0;m<l;m+=g){for(memcpy(s,E,g);++j<u;y=s[-j&3]+(j/g?j>31?y^(j&g?x|~z:x
^z):x&z|y&~z:x&y|~x&z)+X[m|"@AE@"[j/g]+"AECG"[j/g]*j&15]+(~0U+1.)*fabs(sin(j+1.
)),z="GLQVEINTDKPWFJOU"[j/g*4|j&3]-u,s[-j&3]=x+=y<<z|y>>32-z)x=s[1-j&3],y=s[2-j
&3],z=s[~j&3];for(;j--;E[j]+=s[j]);}}for(;++j<g;printf("%02x",255&j[a=E]));}
0177デフォルトの名無しさんNGNG
>>175
>>169,170
0178デフォルトの名無しさんNGNG
>>169-171 XORによる暗号化・復号

フィルタにしました。引数なしだと Key.txt にキー作成。
作成したキーファイルを引数にすると、標準入出力間で暗号化、もう一度かけると復号。
実質6行だし、もっと縮められそう。

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int i,x=256;main(int c,char**v){char a[256];FILE*f=fopen(v[1],"rb");if(c<2){
srand((unsigned)time(NULL));for(i=x;i--;)a[i]=rand()%x-127;fwrite(a,1,x,fopen(
"Key.txt","wb"));}if(f)for(fread(a,1,x,f);~(c=getchar());i%=x)putchar(c^a[i++])
;}
0179デフォルトの名無しさんNGNG
>>176
ヤ、ヤバいコードだ…
0180デフォルトの名無しさんNGNG
>176に改行追加

double sin(),fabs();unsigned s[63],X[32],B,C,x,y,z,E[63],j=8,l=14,m,g=16;char*a
;main(c){for(a=E;j--;)a[j+8]=~(a[j]=1+j*34);for(;c;){for(memset(a=X,m=x=0,64);x
<64?c=~getchar():0;B+=!(C+=8))a[x++]=~c;for(c||(X[l+=x/56*g]=C,a[x]=128,X[l+1]=
B);m<l;m+=g){for(memcpy(s,E,g);j-63;s[-j&3]=x+=y<<z|y>>32-z)x=s[-j++&3],y=s[2-j
&3],z=s[~j&3],y=s[-j&3]+X[m|"@AE@"[j/g]+"AECG"[j/g]*j&15]+(j/g?j>31?y^(j&g?x|~z
:x^z):x&z|y&~z:x&y|~x&z)+(~0U+1.)*fabs(sin(j+1.)),z="GLQVEINTDKPWFJOU"[j/g*4|j&
3]&31;for(;j--;E[j]+=s[j]);}}for(;++j<g;printf("%02x",255&j[a=E]));puts("");}
0181デフォルトの名無しさんNGNG
age
0182デフォルトの名無しさんNGNG
短くするためには処理系依存もかまわないという考えが醜いな。昔はよかった
0183デフォルトの名無しさんNGNG
endian不問なSHA1&MD5 (と言いつつbig endianでは未検証)

/* unsigned=32bitなSHA1 */
unsigned*p,H[186],*q=H,n,d=8,z,l,h;F(v){q[n/4]|=(v&255)<<(~n&3)*8;}L(c){q=H+90;
F(c);if(++n>63){for(n=80,p=memcpy(q-5,H,20);n;1[p--]=d/4|d<<30)d=q[13]^q[8]^q[2
]^*q,q[16]=d>>31|d+d,d=p[1],z=p[2],c=p[3],p[-1]=(*p<<5|*p>>27)+p[4]+0x5a827999+
*q+++(--n/5&4?n>39?c^d&(z^c):882459459+(d&(z|c)|z&c):(39<n?341275144:0x6fe0483d
)+(d^z^c));for(memset(H+90,0,64);H-p--;)*p+=p[5];}}main(){for(;n=d--;n+=8,F(~z)
)n=d^3,F(z=d*34+1);for(q[4]=0xc3d2e1f0;z=~getchar();h+=!(l+=8))L(~z);for(L(128)
;n-56;)L(0);for(q[14]=h,n=63,L(q[15]=l);n<5;)printf("%08x",H[n++]);}

/* unsigned=32bitなMD5 */
double sin(),fabs();unsigned*q,s[63],X[63],B,C,x,y,E[63],j=8,g=16;F(v){q[y/4]|=
(v&255)<<y%4*8;}L(z){F(z);if(++y>63){for(memcpy(s,E,g);j-63;y=s[-j&3]+X["@AE@"[
j/g]+"AECG"[j/g]*j&15]+(j/g?j>31?y^(j&g?x|~z:x^z):x&z|y&~z:x&y|~x&z)+fabs(sin(j
+1.))*(~0U+1.),z="GLQVEINTDKPWFJOU"[j/g*4|j&3]&31,s[-j&3]=x+=y<<z|y>>32-z)x=s[-
j++&3],y=s[2-j&3],z=s[~j&3];for(;j--;E[j]+=s[j])X[j]=y=0;}}main(){for(q=E;y=j--
;y+=8,F(~x))F(x=--y*34+1);for(q=X;x=~getchar();B+=!(C+=8))L(~x);for(L(128);y-56
;)L(0);for(X[14]=C,X[15]=B,y=63,L(0);++j<g;printf("%02x",E[j/4]>>j%4*8&255));}
0184デフォルトの名無しさんNGNG
#include <stdio.h>
main(){int q1,q2,a;do{printf("8桁の数字を入力して覚えてください:");
scanf("%d",&q1);}while(q1>99999999||q1<10000000);do{
printf("\nさっきとは違う8桁の数字を入力してください:");scanf("%d",&q2)}
while(q2>99999999||q2<10000000||q2==q1);for(i=0;i<99;i++){printf("\n");}
printf("最初に入力した数字をどうぞ:");scanf("%d",&a);if(q1==a){
printf("正解。\n次に入力した数字をどうぞ:");scanf("%d",&a);if(q2==a){for(i=0;i<99;i++){printf("\n");}
printf("大正解。\nそれではもう一度最初に入力した数字をどうぞ:");scanf("%d",&a);if(q1==a){
printf("\nすごい・・・あなたは神です。\n");}else{printf("\n残念。正解は%dでした。\n",q1);}
}else{printf("\nはずれ。正解は%d\n",q2);}}else{printf("\nアホですか?正解は\n1回目%d\n2回目%d\n",q1,q2);}}

いくらプログラムを始めたばかりとはいえ、こんな糞プログラムも7行で作れないなんて・・・
みなさんすごいですね。
0185デフォルトの名無しさんNGNG
>>183
すごいな… MD5にSHA1とは
0186デフォルトの名無しさんNGNG
>>145

<SCRIPT>p='123456789一二三四五六七八九�T�U�V�W�X�Y�Z�[�\東南西北白発中'
y=[];t=[];q=document;function d(){for(i in t)q.all['b'+i].value=p.charAt(t[i])}
onload=d;function z(x,y){return x-y}for(i=0;i<34;i++)for(j=0;j<4;j++)y[i*4+j]=i
for(i in y){j=parseInt(Math.random()*135);s=y[i];y[j]=y[i];y[i]=s}for(i=0;i<12;
i++)t[i]=y.pop();t.sort(z);for(i in t)q.write('<BUTTON ID=b',i,' onClick=t[',i,
']=99;t.sort(z);t[11]=y.pop();d()></BUTTON>')</SCRIPT>

がんばれば5行いけそう。
0187デフォルトの名無しさんNGNG
>>183
Mac OS 9.2.2でSHA1は動作確認できました。
ただMD5の方は動かず。
プロトタイプのせいかと思い厳密に書き換えても変わりませんでした。

実行結果:
"" = 3973fc7d22cf0064330b8e9bada4e926
"a" = c1baf895b258ff07288aecb035ece53e
"abc" = c24dad17ee73db1464a5c8bd367f9ac0
"message digest" = 0d3cdbfdb20c7624283e63cd816dc8a6

コンパイラはMrC 5.0d3c1
0188デフォルトの名無しさんNGNG
>>187
↓の追加・変更でMD5が正常に動くならsin()の演算精度の違いが原因かと
これでも異なる場合は>183のMD5にミスがあると思われ

unsigned T[]={
0xd76aa478,0xe8c7b756,0x242070db,0xc1bdceee,0xf57c0faf,0x4787c62a,0xa8304613,0xfd469501,
0x698098d8,0x8b44f7af,0xffff5bb1,0x895cd7be,0x6b901122,0xfd987193,0xa679438e,0x49b40821,
0xf61e2562,0xc040b340,0x265e5a51,0xe9b6c7aa,0xd62f105d,0x02441453,0xd8a1e681,0xe7d3fbc8,
0x21e1cde6,0xc33707d6,0xf4d50d87,0x455a14ed,0xa9e3e905,0xfcefa3f8,0x676f02d9,0x8d2a4c8a,
0xfffa3942,0x8771f681,0x6d9d6122,0xfde5380c,0xa4beea44,0x4bdecfa9,0xf6bb4b60,0xbebfbc70,
0x289b7ec6,0xeaa127fa,0xd4ef3085,0x04881d05,0xd9d4d039,0xe6db99e5,0x1fa27cf8,0xc4ac5665,
0xf4292244,0x432aff97,0xab9423a7,0xfc93a039,0x655b59c3,0x8f0ccc92,0xffeff47d,0x85845dd1,
0x6fa87e4f,0xfe2ce6e0,0xa3014314,0x4e0811a1,0xf7537e82,0xbd3af235,0x2ad7d2bb,0xeb86d391};

fabs(sin(j+1.))*(~0U+1.) -> T[j]
0189デフォルトの名無しさんNGNG
thx。テーブルに置き換えたら正しく動作しました。
その後置き換え部分のみ比較してみたら一致したので
おやと思い置き換えた部分をいろいろいじった結果
fabs(sin(j+1.))*(~0U+1.)をunsignedにキャストすることでも動作。
どうやら原因は全ての数がdoubleにキャストされてから加算され
unsignedへ戻す時にオーバーフローしてy==UINT_MAXになる為のようでした。
お騒がせしました。
0190デフォルトの名無しさんNGNG
オーバーフロー対策した7行MD5

double sin(),fabs();unsigned*q,s[65],X[63],B,C,x,y,E[65],j=8,g=16;L(z){q[y/4]|=
z<<y%4*8;if(!~j?s[y]=E[y],++y>63:0){for(;j-63;y=s[-j&3]+X["@AE@"[j/g]+"AECG"[j/
g]*j&15]+(j/g?j>31?y^(j&g?x|~z:x^z):x&z|y&~z:x&y|~x&z)+(unsigned)(fabs(sin(j+1.
))*(~0U+1.)),z="GLQVEINTDKPWFJOU"[j/g*4|j&3]&31,s[-j&3]=x+=y<<z|y>>32-z)x=s[3&-
j++],y=s[2-j&3],z=s[~j&3];for(;j--;E[j]+=s[j])X[j]=y=0;}}main(){for(q=E;y=j--;y
+=8,L(255&~x))L(x=--y*34+1);for(q=X;x=~getchar();B+=!(C+=8))L(~x);for(L(128);y-
56;)L(0);for(X[14]=C,X[15]=B,L(y=64);++j<g;printf("%02x",E[j/4]>>j%4*8&255));}
0191189NGNG
>>190
それでも7行に収めてしまうとは。感服しますた。
0192デフォルトの名無しさんNGNG
age
0193nanaNGNG
このスレ最高!!!
0194デフォルトの名無しさんNGNG
/*>>190を見てスゲーなと思いつつも、7行目の "X[14]=C,X[15]=B" が
  エディアンに依存するのでは無いかと思ったり
  fabs(sin(xxx))を毎回呼ぶと処理が重そうだなと思ったり…
  と言う訳で頑張って挑戦してみました
  七行プログラムは初めてなのでミスってたらスマソ

  MD5 エディアン非依存 のハズ… */

double sin(),fabs();unsigned c,m=64,n,v,w,x,y,z,T[68],X[18];L(i){n||(w=*T+=w,x=
T[1]+=x,y=T[2]+=y,z=T[3]+=z);X[n/4]=X[n/4]>>8|i<<24;for(m=++n-64;m<64;n=m/16,v=
x,w+=T[m+4]+X["AECG"[n]*m+"PAEP"[n]&15]+(n?n-1?y^(n-2?x|~z:x^z):x&z|y&~z:x&y|~x
&z),c="GLQVEINTDKPWFJOU"[n*4|m++&3]&31,x+=w<<c|w>>32-c,w=z,z=y,y=v,n=0);}main()
{for(;m--;T[m/4]|=(m<8?1+34*m:526-34*m)<<m%4*8,T[m+4]=fabs(sin(m+1.))*(~0U+1.))
;for(;c=~getchar();L(~c),X[17]+=!(X[16]+=8));for(L(128);n-56;L(0));for(;n-32;L(
X[n/4+2]>>n%4*8&255),n<56&&n&1&&printf("%02x",T[n/8]>>n/2%4*8&255));puts("");}
0195194NGNG
>>194で>>190は
>…がエディアンに依存するのでは
と書いてますけど、>>190のソースの半分位は理解出来なかったので
勘違いかもしれません。
と言う訳で、私の勘違いで気分を悪くされたら、ごめんなさいm(_ _)m
0196デフォルトの名無しさんNGNG
s/エディアン/エンディアン/g
0197デフォルトの名無しさんNGNG
/* >>79で出来てるようですが、C++だったので
   C Only で作ってみましたが、少し余裕があったので
   コンパイル時の警告やエラーを避けて作りました
   本当は読み込みの規準を甘くしようとも考えましたが
   フォーマットに手を出すときりが無く七行では無理っぽいので…
   (なら実行時エラーを何とかしろと言う話もありますが…)

   24bit画像 to 8bitグレースケール */

#include <stdio.h>
unsigned char b[1078];int j=1024,l=1078,x,y;FILE*I,*O;void R(int i){fread(b,1,i
,I);}void W(int i){fwrite(b,1,i,O);}void E(int i,int v){for(j=4;j--;b[i+j]=v>>8
*j);}void D(int i){for(j=4;j--;y=y<<8|b[i+j]);}int main(int c,char*v[]){if(c==3
){I=fopen(v[1],"rb");O=fopen(v[2],"wb");for(;--j;b[j+53]=j&3?j/4:0);R(54);D(18)
;x=y;c=x+x*3%4;for(D(22),E(2,c*y+l),E(10,l),E(28,8),E(34,c*y),W(l);y--;R(x&3),E
(0,0),W(c-x))for(l=x;l--;R(3),*b=*b*.114+b[1]*.587+b[2]*.299,W(1));}return 0;}
0198197NGNG
/* fclose()を加えましたが関数の宣言が反則っぽいので
   怒るコンパイラもあるかもしれませんが
   手持ちのコンパイラでは大丈夫でした

   24bit画像 to 8bitグレースケール ※ sizeof(size_t)==sizeof(int) */

typedef void v;typedef int s;unsigned char b[1078];v*I,*O,*fopen(v*,v*);s x,y,j
=1024,l=1078,fread(v*,s,s,v*),fwrite(v*,s,s,v*),fclose(v*);v R(s i){fread(b,1,i
,I);}v W(s i){fwrite(b,1,i,O);}v E(s i,s w){for(j=4;j--;b[i+j]=w>>8*j);}v D(s i
){for(j=4;j--;y=y<<8|b[i+j]);}s main(s c,char*a[]){if(c==3){I=fopen(a[1],"rb");
for(O=fopen(a[2],"wb");--j;b[j+53]=j&3?j/4:0);R(54);D(18);x=y;c=x+x*3%4;D(22);E
(2,c*y+l);E(10,l);E(28,8);E(34,c*y);for(W(l);y--;R(x&3),E(0,0),W(c-x))for(l=x;l
--;R(3),*b=*b*.114+b[1]*.587+b[2]*.299,W(1));fclose(O);fclose(I);}return 0;}
0199デフォルトの名無しさんNGNG
a
0200デフォルトの名無しさんNGNG
/* 使い道は無いと思いますが8ビット以下に対応しました
   多数の警告が出ると思いますが (これ以上はムリポ)
   取り敢えずコンパイルは出来ると思います (と思いたい)

   〜8bit画像 -> 〜8bitグレースケール (色数は減らない)
    24bit画像 ->  8bitグレースケール */

unsigned char b[54];int d,k,l,p,r,s,x,y,z;void*I,*O,*fopen();R(i){fread(b,1,i,I
);}W(i){for(r+=2;--r;fwrite(b,1,i,O));}E(i,j){for(k=4;k--;b[i+k]=j>>8*k);}D(i){
for(k=4;k--;d=d<<8|b[i+k]);}main(i,v)char**v;{I=fopen(v[1],"rb");R(i=54);D(18);
O=fopen(v[2],"wb");x=d;D(22);y=d;D(28);l=d>8?8:d;E(28,l);i+=4<<l;E(10,i);l=x*l+
31>>5<<2;s=l*y;E(2,s+i);E(34,s);W(54);for(i=0;(d<9?p=s,l=2,x=1,y=1<<d,z=2,0:256
)>i;W(4))E(0,i++*65793);for(;y--;R(x&3),E(0,0),W(l-x))for(i=x;i--;R(3),*b=.114*
*b+.587*b[1]+.299*b[2],W(1))r=z;for(;p--;W(1))R(1);}
0201デフォルトの名無しさんNGNG
/* 何度も何度もスマソ
   グレースケールは多分(バグが無ければ)これで最後です
   基本的には>>200と同じですが、Offsetに対応しました
   そのため、逆にOffsetが不正だと変な動作を… */

unsigned char b[54];int d,k,l,p,r,x,y,z;void*I,*O,*fopen();F(i){for(r+=2;--r;i<
0?fwrite(b,1,-i,O):fread(b,1,i,I));}C(i,j){for(k=4;k--;i<0?d=d<<8|b[k-i]:(b[i+k
]=j>>8*k));}main(i,v)char**v;{I=fopen(v[1],"rb");O=fopen(v[2],"wb");F(i=54);C(-
28,0);z=d;C(-22,0);y=d;C(-18,0);x=d;C(-10,0);C(28,l=z<9?z:8);d-=i+=4<<l;l=31+x*
l>>5<<2;C(34,p=y*l);C(2,p+i);C(10,i);F(-54);for(z<9?x=1,y=1<<z,l=z=2:(i=z=p=0,r
=d+1023,F(1));i>255==z;F(-4))C(0,i++*65793);for(;y--;F(x&3),C(0,0),F(x-l))for(i
=x;i--;*b=.114**b+.587*b[1]+.299*b[2],r=z,F(-1))F(3);for(r=d;p--;F(-1))F(1);}
0202デフォルトの名無しさんNGNG
今の質をみていると、やはり糞スレだな。
パート1の初期のメンバーは熱かったな。
0203デフォルトの名無しさんNGNG
>>202
初期よりも、むしろ100以降だろ?
・・・と、主観が入りまくるので、この手の話は、や め な い か ?

今日見つけた7行プログラム?
http://game3.2ch.net/test/read.cgi/mmominor/1057397294/244
0204デフォルトの名無しさんNGNG
とりあえず表計算。
機能的には最悪だがサムだけはできる。

//0はなんでもよしという意味
//1 1 I 155 0 0 0 1行1列に155を代入
//4 5 A 1 4 6 5   4列5行に1列5行と6列5行の和を代入する。
//D          同じく割り算
//M          同じく引き算
//X          同じく掛け算
//4 5 S 1 2 0 5   4列5行に1列の2行から5行のサム
//0 0 s 8 4 0 9   8行の4列から9列を昇順ソートする

#include <stdio.h>
#include <memory.h>
void main(){short a,b,d,e,f,g,x=0,y=0,p[10][10],q;char c;memset(p,0,200);while(1)
{for(y=0;y<10;y++){for(x=0;x<10;)printf("%d\t",p[x++][y]);printf("\n");}
printf("指令を入力してください。");scanf("%d %d %c %d %d %d %d",
&a,&b,&c,&d,&e,&f,&g);switch(c){case 'E':return;case 'I':p[a][b]=d;break;case 'M':
p[a][b]=p[d][e]-p[f][g];break;case 'A':p[a][b]=p[d][e]+p[f][g];break;case 'X':
p[a][b]=p[d][e]*p[f][g];break;case 'D':p[a][b]=p[d][e]/p[f][g];break;case 'S':
p[a][b]=0;for(q=0;q<=g-e;q++)p[a][b]+=p[d][e+q];break;}}}

ごめんなさい9行です。
0205デフォルトでない名無しさんNGNG
#include <stdio.h>
#include <memory.h>
int a,b,c,d,e,f,g,x=0,y=0,p[10][10]={0},q;void main(){while(1){for(y=0;y<10;y++)
{for(x=0;x<10;)printf("%d\t\n",p[x++][y]);}printf("Command?");scanf("%d %d %c %"
"d %d %d %d",&a,&b,&c,&d,&e,&f,&g);p[a][b]=(c-65)?c-68?c-73?c-77?c-83?c-88?p[a][
b]:p[d][e]*p[f][g]:0:p[d][e]-p[f][g]:d:p[d][e]/p[f][g]:p[d][e]+p[f][g];switch(c)
{case 69:return;case 83:for(q=0;q<=g-e;q++)p[a][b]+=p[d][e+q];}}}

>>204のを七行に縮めてみる
0206デフォルトの名無しさんNGNG
最後 for(q=e;q<=g;p[a][b]+=p[d][q++]); とかの方がよくね?
0207デフォルトの名無しさんNGNG
#include <stdio.h>
int a,b,d,e,f,g,x,y,p[10][10]={0};char c=0;int main(){for(;c-69;scanf("%d %d %"
"c %d %d %d %d",&a,&b,&c,&d,&e,&f,&g)){if(c){if(c-83)e=p[d][e],g=p[f][g],p[a][b
]=c-65?c-68?c-73?c-77?c-88?p[a][b]:e*g:e-g:d:e/g:e+g;else for(p[a][b]=0;e<=g;)p
[a][b]+=p[d][e++];}for(y=-1;++y<10;puts(""))for(x=0;x<10;)printf("%d\t",p[x++][
y]);printf("指令を入力してください。");}return 0;}
0208デフォルトの名無しさんNGNG
        ( ⌒)     ∩_ _
       /,. ノ      i .,,E)
      ./ /"      / /"
      ./ / _、_    / ノ'
  _n  / / ,_ノ` )/ /  グッジョブ!! おまいら最高!
 ( l (   _、_   / _、_
  \ \ヽ( <_,` ) |( ,_ノ` )      n
   ヽ___ ̄ ̄  )  ̄     \    ( E)
     /    /  フ     /ヽ ヽ_//
0209デフォルトの名無しさんNGNG
グローバル変数の初期値が0であるというのは、仕様なのでしょうか、VC++などの実装なのでしょうか。
調べる余裕はないですが、もしそうなら>>207は6Byte短くなります。

また、
"%d %d %"(改行)"c %d %d %d %d" ではなくて、
"%d %d %\(改行)c %d %d %d %d" とすると、さらに1Byte減ります。

gccでは文句を言われるので判断は避けますが、return 0;は、void main()にすると短くなります。

途中で、c-=65;にして、条件式の2桁の数字群を1桁に落としてみると字数が減るかも。
学校に行くのでアイディアだけですみません。
0210デフォルトの名無しさんNGNG
>>209
> グローバル変数の初期値が0であるというのは
仕様。
0211デフォルトの名無しさんNGNG
x,y のループを x,y に分けないでひとつのforにしたら、短くなる。
0212デフォルトの名無しさんNGNG
そだね。xyに分けるのは人間の都合だよね
0213デフォルトの名無しさんNGNG
SHA1 と MD5 のコードはどういう風に使うんでしょうか。入力が分からない・・ヽ(´Д`;)ノ
0214デフォルトの名無しさんNGNG
>>213
コンソールから実行
※ SHA1→実行ファイル FILE→対象ファイル
SHA1 < FILE

バイナリファイルで正しい値が出ない時は
#include <stdio.h>
をソースの頭に加えて、矛盾する宣言等を手直しし、
main()の頭に
stdin=freopen("対象ファイル","rb",stdin);
を加えて何も指定せずに実行すれば正しい値がでるはず
0215山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0216213NGNG
>>214
五日ぶりにカキコ
できました、ありがとうございました。
0217デフォルトの名無しさんNGNG
//ヤター!エミュレータできたよ
import java.awt.*;import java.awt.event.*;public class MorphyOne{
public static void main(String[] arguments) {Canvas canvas = new
Canvas();canvas.setBackground(Color.black);canvas.setSize(640, 200);
final Frame frame = new Frame("MorphyOne Emulator");frame.addWindowListener
(new WindowAdapter() {public void windowClosing(WindowEvent e) {
frame.dispose();}});frame.add(canvas, BorderLayout.CENTER);
frame.pack();frame.show();}}
0218デフォルトの名無しさんNGNG
最近mainのreturn 0;とかincludeとかしっかり書いている人がいるね
書いてないのを作品と認めない俺としてはかなり評価しています。がんばれ!
0219デフォルトの名無しさんNGNG
オセロとテトリスのソースきぼんぬ。
自分でも作ってみたいので、参考にさせてください。
0220デフォルトの名無しさんNGNG
>>219
オセロは過去に出た。ハズ。
0221デフォルトの名無しさんNGNG
>>219
七行スレ嫁
つーか、絶対、知ってて言ってるだろ?
つーか、この後に、もっと短くしたソース晒して
自慢したいだけだろ?
0222デフォルトの名無しさんNGNG
>>220
過去スレ調べたけど、既に消えてました。
マジです。
お願いします。
>>221
そんなことないです
0223デフォルトの名無しさんNGNG
>>222
おまいの目は節穴だ
0224デフォルトの名無しさんNGNG
おまえら死ねよ
0225デフォルトの名無しさんNGNG
誰かさぁ、今まで出た七行プログラムのコード、コンパイルしてどっかに置いといてよ。
インタープリター系はそのままで。

頼むって。いや、マジで。
0226c_sugarNGNG
>>225
俺、そのうちやるかもしれない。
0227デフォルトの名無しさんNGNG
>>225
レスごとに、001.c 002.cpp 003.pl … の様にし、
ソース以外のレスを全てコメントで括ってやって
即コンパイル or 実行 出来るようにするなら分かるけど、
コンパイルした後のファイルなんて環境違ったら、意味無いし…
つーか、そう言うのは言い出しっぺがやるもんだ
0228デフォルトの名無しさんNGNG
#include <stdio.h>
#include <conio.h>

int main(){
puts("\n|゚∀゚)プッ\a")
getch();
reurn 0;
}
0229デフォルトの名無しさんNGNG
>>222
っていうか、オセロなんて7行で可能なの?
0230デフォルトの名無しさんNGNG
#include <stdio.h>
int*i,p,t,a,d,v,m[91]={-10,-9,-8,-1,1,8,9,10},s;void k(){if(m[p]==0)for(i=m;*i
;i++){for(v=p+*i;m[v]==9-t;v+=*i);if(v-p-*i&&m[v]==t&&(s=a=v=p,d))do m[v]=t,v
+=*i;while(m[v]-t);}}main(){for(m[40]=m[50]=s=t=3,m[41]=m[49]=6;s-1;a=d=0){for
(p=8;++p<82;printf("・\0○\0●\0\n"+m[p]))p%9?k():m[p]=9;for(a?d=a=p=9:s?s=0,
puts("pass"):s++;a==9;k())t-6?scanf("%d%d",&p,&v),p+=v*9:++p;t=9-t;}return 0;}
0231デフォルトの名無しさんNGNG
>>230
コンパイル通らないよ
0232デフォルトの名無しさんNGNG
>>231
環境は何?あと、エラーメッセージとか。
0233デフォルトの名無しさんNGNG
ああ、オセロ6行はgccで通らないはず。確か
(p=8;++p<82;printf("・\0○\0●\0\n"+m[p]))p%9?k():m[p]=9;for(a?d=a=p=9:s?s=0,
の行のk()が原因。確認はしていないけれど、
(p=8;++p<82;printf("・\0○\0●\0\n"+m[p]))p%9?k(),0:m[p]=9;for(a?d=a=p=9:s?s=0,
にすればうまくいくのではないかな?
0234デフォルトの名無しさんNGNG
>>219
オセロもテトリスもあった。
テトリスはJavaScriptだったが。

>>225
7行コードだから良いわけで
0235デフォルトの名無しさんNGNG
ひさびさにオセロを見た
今インデントを展開して読んでみているのだが、凄まじいな
0236231NGNG
WinXPでBCCです。
エラーは「左辺値が必要」です。
0237デフォルトの名無しさんNGNG
スケベはこっちで
http://homepage3.nifty.com/coco-nut/
フェチはこっち
http://homepage3.nifty.com/coco-nut/fe/ero.html
0238デフォルトの名無しさんNGNG
>>233
僕のはVC6、Win98で通るが、展開してみたが、怪しそうなのは同じ
3項演算の所だった。

>>236
どこの位置にエラーがあるのかがわかんないよ。
でも、>>233と同じ所なのかな。それなら、>>233の方法か、
p%9?k():m[p]=9; → if(p%9)k();else m[p]=9;

t-6?scanf("%d%d",&p,&v),p+=v*9:++p;
↓
if(t-6){scanf("%d%d",&p,&v);p+=v*9;}else ++p;
と直すとか。
0239デフォルトの名無しさんNGNG
デバッガで追いかけても理解できない俺は屑ですか?
0240デフォルトの名無しさんNGNG
理解したいならソースに改行/タブを入れて見やすくしてから
見やすいように書き換えていくのがいい
0241デフォルトの名無しさんNGNG
・・・文が変だな
0242デフォルトの名無しさんNGNG
>>233&&238
条件演算子は、void型には適用出来ない
p%9?k():m[p]=9; /* 何かしらの値を必要とするが k() は void型 */
また、代入より、条件演算子の方が、優先順位が高い
p%9?k():m[p]=9; /* 9を p%9?k():m[p] には代入出来ない */
よって、↓のようにすればコンパイル出来る
p%9?k(),0:(m[p]=9);
が、どっちみち、まともに動かない気がするが…?
0243デフォルトの名無しさんNGNG
>>242
まともにうごいているように見えるけど?
0244デフォルトの名無しさんNGNG
こうすればコンパイル問題ないよ
昔ずいぶん頑張って解読してこのソースコードは大体読めるようになったので、まず下のソースで間違いないと思う。

#include <stdio.h>
int*i,p,t,a,d,v,m[91]={-10,-9,-8,-1,1,8,9,10},s;void k(){if(m[p]==0)for(i=m;*i
;i++){for(v=p+*i;m[v]==9-t;v+=*i);if(v-p-*i&&m[v]==t&&(s=a=v=p,d))do m[v]=t,v
+=*i;while(m[v]-t);}}main(){for(m[40]=m[50]=s=t=3,m[41]=m[49]=6;s-1;a=d=0){for
(p=8;++p<82;printf("・\0○\0●\0\n"+m[p]))p%9?k(),v:m[p]=9;for(a?d=a=p=9:s?s=0,
puts("pass"):s++;a==9;k())t-6?scanf("%d%d",&p,&v),p+=v*9:++p;t=9-t;}return 0;}

具体的には、
p%9?k():m[p]=9; → p%9?k(),v:m[p]=9;

それにしても美しいソースコードです。
0245デフォルトの名無しさんNGNG
>>244
だから、
a=1+b=c; /* c を ( 1+b ) に代入出来ない */
と同じで、左辺値が必要なんだって言ってるの、OK?
p%9?k(),v:m[p]=9; /* 9 を ( p%9?k(),v:m[p] ) に代入する事は出来ない */
ちゃんと、優先順位を考えませう ( ?: の方が = より優先される )
0246245NGNG
ついでだから、もう少し。
変数と単項*演算子、[]演算子、->演算子は常に左辺値を生じさせる
また、.演算子も通常、左辺値を生じさせが、その他演算子は左辺値を生じさせない
by 規格
で、?:演算子で左辺値を生じさせる(↓のような)ものは規格外の動作

#include <stdio.h>
int main()
{
  int i=1,j=2,k=3;
  k>2?i:j=4; /* 4 を ( k>2 が真なら i に 偽なら j に ) 代入 */
  printf("%d, %d, %d\n",i,j,k);
  return 0;
}
0247デフォルトの名無しさんNGNG
C FAQの3.16にも同じようなことが書いてありますね。
http://www.catnet.ne.jp/kouno/c_faq/c3.html#16

ところで、?:演算子で左辺値を生じさせるって、
C++でもダメでしたっけ?
0248デフォルトの名無しさんNGNG
このオセロってやっぱり人間V.S.人間?
0249デフォルトの名無しさんNGNG
>>247
規格が手元にないので間違ってるかもしれませんが…

g++はもちろん、bccでも左辺値は生じますので、左辺値は生ずるものと考えられます
ちなみに、CとC++では解釈が変わります
>>246の?:演算子を例にすると、Cでは、
((k>2)?(i):(j))=4;
と解釈されますが、C++だと
(k>2)?(i):(j=4);
と解釈されます (:以降の扱いが変わる)
C++では、?〜:の間の動作と:以降の動作を同じにしたのだと思われます
と言う訳で、C++で左辺値を生じさせるためには
(k>2?i:j)=4;
のようにすればOKです ( g++ 及び bcc では動作確認 )
ちなみに、bccは駄目ですが、gccではCのソースでも、?:演算子は左辺値を生じます
が、↑に書いた通り、解釈が変わるので、同じソース ( >>246 ) をコンパイルしても
gcc と g++ で結果が変わります
0250248NGNG
すげぇー、CPUとの対戦かよ。
感動した!
0251デフォルトの名無しさんNGNG
じゃ、そこのコードは
(p=8;++p<82;k(),printf("・\0○\0●\0\n"+m[p]))p%9||(m[p]=9);for(a?d=a=p=9:s?s=0,
でどう?

int*i,p,t,a,d,v,m[90]={-10,-9,-8,-1,1,8,9,10},s;void k(){if(m[p]==0)for(i=m;*i
;i++){for(v=p+*i;m[v]==9-t;v+=*i);if(v-p-*i&&m[v]==t&&(s=a=p,d))do m[s]=t,s+=*
i;while(m[s]-t);}}main(){for(m[41]=m[49]=s=t=3,m[40]=m[50]=6;s-1;a=d=0){for(p=
9;p<82;k(),printf("・\0○\0●\0\n"+m[p++]))p%9||(m[p]=9);for(a?a=d=p=9:s?puts(
"pass"),s=0:s++;a==9;k())t-6?scanf("%d%d",&p,&v),p+=v*9:++p;t=9-t;}return 0;}

>>248
パート1は度肝を抜く作品の目白押しなので、一度ゆっくりと読んでみ。
0252デフォルトの名無しさんNGNG
>>251
実行してないから分からんが、そのコードは
p%9||(m[p]=9);k();
と等価になるけど、
p%9?k(),v:m[p]=9;
とは、k()の実行条件が明らかに異なるけど、大丈夫なの?
つーか、本当に、1度、ソースを解読したの?
0253デフォルトの名無しさんNGNG
>>252
理解できないなら、実行してしか判断できないのに、
実行せずに文句言ってはいかんな。
0254デフォルトの名無しさんNGNG
>>253
理解するも何も、そんなコード、
元のソースが無い限り、読む気にならんて
0255デフォルトの名無しさんNGNG
>>254は低学歴
0256デフォルトの名無しさんNGNG
>>254
理解できないなら四の五の言わずに実行しろよ(w
0257デフォルトの名無しさんNGNG
>つーか、本当に、1度、ソースを解読したの?
自分が読めないからって(w

いや俺も読めないけど(w
0258デフォルトの名無しさんNGNG
>>254
indentでも通したらいいんでないのか
いや漏れも読んでないけど
0259245==252==254NGNG
なんつーかな、(おそらく、244==251の)次の発言
>それにしても美しいソースコードです。
が、自我自賛にしか聞こえないから、
ソースを読む気にもならんし、実行する気にもなれんのよ…
まぁ、それでも、>>244の演算子の問題が無ければ、
素直にコンパイル&実行してた思うし、>>252の発言もしてないよ
つーか、問題無く本当に動くの?
0260デフォルトの名無しさんNGNG
理解できないことを棚に上げて、
妙竹林な理屈をたてて実行しないことが正当化のように装い
それだけならまだしも、実行もしていないソースコードを批判するなんて
なんというか陰鬱な性格だな。

言い訳と嫉妬の人生を>>259かいま見た。
0261259NGNG
>>260
だぁ、もうウゼェな…
読めば良いんだろ?読めば。
つーわけで、k()は
void k(){if(m[p]==0)…
で、m[p]が0でないと実効されない。よって、
p%9||(m[p]=9);k();
p%9?k(),v:m[p]=9;
の2つのコードは等価
つーか、演算子の優先順位も知らねーで、
解読しただの、美しいコードだの、アホじゃねーのか?
だいたい、オセロのソースくれって言ったの、お前じゃねーのか?
このスレにでるまえに、他のスレでやってたのも、お前じゃねーのか?
ただ単に、自我自賛したいだけの、自作自演じゃねーのか?
オナニーなら、オナニーらしく、勝手に独りでやってくれよ
0262デフォルトの名無しさんNGNG
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| 強い電波を感知しました  .|
|____________|
              / /
              /
      _         ビビビビビ
     /||__|∧    /
  。.|.(O´∀`) /
  |≡( ))  ))つ
  `ー| | |
    (__)_)
0263259NGNG
他のスレに出たヤツ
http://pc2.2ch.net/test/read.cgi/tech/1058283913/40-44
で、
http://pc2.2ch.net/test/read.cgi/tech/1058283913/49
で、コンパイル出来ないと言われたが、
この後の経過を見ずに、誰からも誉めてもらえなかったので
>>219から自賛自演を始めたと予測
つーか、もう寝る
0264デフォルトの名無しさんNGNG
>>263
オセロを作った人は、もうこのスレを見ていないと思う。
というより、part1-2 あたりの人は、ほとんどきていないだろう。
激しく攻撃されていたからね。
0265248NGNG
>>251
> パート1は度肝を抜く作品の目白押しなので、一度ゆっくりと読んでみ。
了解っす。こんな凄いのがゴロゴロあるのか。
それらを作った神達はどこへ行ったんだろう?まだこのスレにいるのかな?
0266デフォルトの名無しさんNGNG
もうこの板から消えた可能性もあるんだよ
0267デフォルトの名無しさんNGNG
>>265
>>4を見ればいいんじゃないかと
0268山崎 渉NGNG
(^^)
0269 ◆XKS67XicGk NGNG
素数を求めるプログラムを書いたら7行にまとめられそうだったのでやってみました。
HSP2.6です。

// ここから

t=10000:n="p.txt":z="2\n":title "0%":dim e,t+1:notesel z:notesave n
bsave n,z,3:a=3:s=3:repeat ,3:if a>t:break:if e.a=1{i=0}else{if(a!5)&(a\5=0){
i=0}else{i=1:b=cnt-2/4:if b<1{i=1}else{c=3:repeat b,3:if a\c=0 : i=0 : break
c+=2:loop}}}if i=1{h=a:str h:h+="\n":strlen l,h:bsave n,h,l,s:s+=l:d=a*3
if d<t{e.d=1}f=a*7:if f<t{e.f=1}g=a*11:if g<t{e.g=1}}r=a*100/t
if (p!r)&(r\10=0){title ""+r+"%"}p=r:a+=2:await:loop:title "100%":stop

// ここまで

1番最初にある変数tまでの素数を求め続けます。
10万までの素数を求めるのにpen3で約1分10秒かかりました。

元のソース
http://shobon.net/user/sword/prime.txt
実行ファイル
http://shobon.net/user/sword/prime7.zip
0270デフォルトの名無しさんNGNG
>>269
part2 の 802-810 を見るとよいよ。
0271デフォルトの名無しさんNGNG
1〜nまでの素数を求めるプログラム
見ればわかるがC言語

#include<stdio.h>
#include<math.h>
void main(){int n,a=0,i,j;scanf("%d",&n);printf("%7d ",2);
for(i=3;i<=n;i+=2){for(j=3;j<=int(sqrt(i));j+=2)if(i%j==0){a=1;break;}
if(a==0){printf("%7d ",i);}else{a=0;}}}

100万までの素数を求めるのにセレロン1.2GHzで10秒くらいかな?
もっと短く、もっと速くできそうだけど短すぎるんで七行プログラミングにはどうかと・・・
0272デフォルトの名無しさんNGNG
>>271
part2 の 802-810 を見るとよいよ。
0273デフォルトの名無しさんNGNG
>>272
もちろん、見ました
でも、短くするためとはいえ非効率かと
0274デフォルトの名無しさんNGNG
素数ねぇ。ハァ。
0275デフォルトの名無しさんNGNG
7行で何かすることが目的だから別に役に立たなくてもOK。

だよね。
0276デフォルトの名無しさんNGNG
>>275
簡単に7行以下になる題材だと…
まぁ、本人にとってはいろんな意味で勉強になるだろうが。
0277デフォルトの名無しさんNGNG
JOJOオタには必要なものだぞ
こころが安まる…
0278デフォルトの名無しさんNGNG
某スレで見たんだけど
> 7行テトリスがぱくられていました
> http://www.tamagawa.ac.jp/GAKUBU/KOUGAKU/InfCEng/festa2002/
> http://www.tamagawa.ac.jp/GAKUBU/KOUGAKU/InfCEng/festa2002/sakuhin.html
0279デフォルトの名無しさんNGNG
>>278
見てきたよ



うは、完全にコピペじゃん。
彼が、S◆Q14CxNhI 氏ならいいんだけどね
0280デフォルトの名無しさんNGNG
その他の「佳作」なんかも低レベルだし、なにそこ
0281デフォルトの名無しさんNGNG
>>278-289
> うは、完全にコピペじゃん。
> 彼が、S◆Q14CxNhI 氏ならいいんだけどね
Sタンは
http://www.isl.cs.gunma-u.ac.jp/~shingo/make/7line/7line.html
G馬大の人なので別人だぁね。
0282デフォルトの名無しさんNGNG
そっちのスレにも書いてあったけど
優秀な作品作る人はもう来なくなるだろうね
0283デフォルトの名無しさんNGNG
久々に活発になってきましたね
うれしいです。
7行でできることって限界がありますよね。
Windowsプログラムってしばらく出てませんよね。
0284デフォルトの名無しさんNGNG
おいおいおいおい、どこが活発なんだよ。
それとsageてね
0285283NGNG
>>284
すいませんでしたこれからはsageます。
0286デフォルトの名無しさんNGNG
>>278 みたいなやつが
俺は大学出だからな!
高卒死ね!

とか言ったりするんだろうな・・・
0287デフォルトの名無しさんNGNG
誰かその大学に伝えるべきだとは思うんだけどなぁ。
0288デフォルトの名無しさんNGNG
ちょっと前のことになるんだけど、
ttp://www.gsic.titech.ac.jp/supercon/supercon2003/yosen.html

の回答を7行で作ってみた。

#include <stdio.h>
int m[10000],p,t,P,L,T,j,N=100;S(p,l,i){++l>L?P=p,L=l,T=t:0;for(;m[p]=i--;)j=(i
&1?N:1)*(i&2?1:-1)+p,(i&1?p/N:p%N)-(i&2?99:0)&&m[j]==t?S(j,l,3):0;m[p]=t;}main(
int A,char**B){FILE*f;if(A<2?puts("No argument.")*0:(f=fopen(B[1],"r"))||0*puts
("I/O error.")){for(;(t=getc(f))+1;t-10&&p<N*N?m[p++]=t:0);if(p-N*N)puts("Stra\
nge data.");else{for(;p--;)t=m[p],S(p,0,3);printf("x=%d,y=%d,t=%c,l=%d\n",P%N,P
/N,T,L);}}return 0;}

VC++6.0では警告も出ません。
実行速度については触れないで下さい(汗
0289デフォルトでない名無しさんNGNG
久しぶりに投稿

パズル N Queen

#include <stdio.h>
int q=5,b[16][16],n,i,j,k,l,m,o;void main(c,v)char**v;{for(n=0;;q++){for(i=0;i<q
;i++)for(j=0;j<q;j++)b[j][i]=0;while(q!=n){for(i=0;i<q;puts(""),i++)for(j=0;j<q;
printf(b[j][i]?"Q":"*"),j++);scanf("%d %d",&k,&l);b[k][l]=1;n++;puts("\n");for(i
=0;i<q;i++){for(j=0;j<q;j++){if(i!=l||j!=k){m=b[j][i]&1;o=n;n-=(i==l)&m?m:0;n-=(
j==k)&m?m:0;n-=(i-l==j-k)&m?m:0;b[j][i]-=!(o==n);}}}}puts("clear\n");}return;}

x yで座標指定。
・・・って六行になってしまった(;´Д`)
0290デフォルトの名無しさんNGNG
Nクィーン?8クィーンの亜種か?
0291デフォルトの名無しさんNGNG
普通、8-QueenつったらN-Queenを兼ねるわけだが。
0292デフォルトの名無しさんNGNG
>>291
逆じゃね?N-Queenつったら8-Queenをかねる。
0293デフォルトの名無しさんNGNG
N-Queen ⊃ 8-Queen
0294デフォルトの名無しさんNGNG
素数 (Ruby)
p (a=(2..100).to_a).each{|i|a.reject!{|j|j%i==0&&j>i}}
54バイト
perlならもっと短くできるかna.
0295デフォルトの名無しさんNGNG
7行テトリス更新です
0296山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0297デフォルトの名無しさんNGNG
からあげ
0298デフォルトの名無しさんNGNG
うまうま
0299デフォルトの名無しさんNGNG
たつた
0300デフォルトの名無しさんNGNG
−−−−−−−−−−−−−終了−−−−−−−−−−−−−
0301デフォルトの名無しさんNGNG
-----------再開----------------------
0302デフォルトの名無しさんNGNG
- - - - - - -一時停止- - - - - - -
0303デフォルトの名無しさんNGNG
- - - - - 山折り - - - - -
0304abcNGNG

おかねもうけ情報見つけました

http://pocket.muvc.net/job/index.html
0305デフォルトの名無しさんNGNG
――― - ――― - ―谷折り― - ――― - ―――
0306デフォルトの名無しさんNGNG
閑古鳥が鳴いてるので。

変数機能付き逆ポーランド記法電卓
#include <stdio.h>
int s[100],v[255],*t,j=0,l,k=0,c,m,o;void f(char *p){l=*t;c=*p;if(c=='+'){t--;
*t+=l;}if(c=='-'){t--;*t-=l;}if(c=='*'){t--;*t*=l;}if(c=='/'){t--;*t/=l;}if(c==
'^'){t--;for(m=1,o=*t;m<l;m++)*t*=o;}if(c==' '||c=='\0')if(k){t++;*t=j;j=0;k=0;
}if(c=='\0')return;if(c>='0'&&c<='9'){j=j*10+c-'0';k=1;}if(c>='a'&&c<='z'){j=
v[c];k=1;}f(p+1);}int main(){char n[1000];for(;;){t=s+1;gets(n);if(n[0]=='.')
break;if(n[1]=='='){f(n+2);v[n[0]]=*t;}else{f(n);printf("%d\n",*t);}}return 0;}

*"c=a 10 * b +"のように代入文が使えます。
*普通に"10 a +"のように入力すると計算結果を表示します。"a"とだけ入力するとaの中身を表示します
*変数はa-zまでが使えます
*使える演算子は+,-,*,/,^(べき乗)です
0307306NGNG
#include <stdio.h>
int s[100],v[255],*t,j=0,l,k=0,c,m,o;void f(char *p){l=*t;c=*p;if(c=='+')*--t+=l;
if(c=='-')*--t-=l;if(c=='*')*--t*=l;if(c=='/')*--t/=l;if(c=='%')*--t%=l;if(c==
'^'){t--;for(m=1,o=*t;m<l;m++)*t*=o;}if(c==' '||c==0)if(k){*++t=j;j=k=0;}if(c==
0)return;if(c>='0'&&c<='9'){j=j*10+c-'0';k=1;}if(c>='a'&&c<='z'){j=v[c];k=1;}
f(p+1);}int main(){char n[1000];for(;;){t=s+1;gets(n);if(n[0]=='.')break;if(n[1]
=='='){f(n+2);v[n[0]]=*t;}else{f(n);printf("%d\n",*t);}}return 0;}

少し短縮して剰余演算子(%)を使えるようにした
0308デフォルトの名無しさんNGNG
せめて==を全部消してから書き込めよ…
0309デフォルトの名無しさんNGNG
>>308
>306 >307とは別人だけど、==の消し方がわかりません。
そのほかのところをあちこち削ったら5行くらいにはなったけど、==がどうしても気になって。
だいぶ変形しないと==を消すのって難しい気がしました。
んで、いい方法あったら教えてください。

俺としては'+'とかを数字にして欲しかったな。
0310306NGNG
大した物でもないし何度も投稿するのも悪いと思って投稿しなかったんだが……

#include <stdio.h>
int s[99],v[255],*t=s,j=0,k,l,c,o;char n[99],*p;void f(){c=*p;c==32|!c?k?*++t=j,
j=k=0:o:c-=41;if(c){l=*t;c==2?*--t+=l:c==4?*--t-=l:c==1?*--t*=l:c==6?*--t/=l:c==
-4?*--t%=l:c>6&c<17?j=j*10+c-7,k=1:c>55?j=v[*p],k=1:--l;if(c==53)for(o=*--t;l;--
l)*t*=o;p++;f();}}int main(){while(*(p=gets(n))){if(n[1]-61)f();else p+=2,f(),v[
*n]=*t;printf("%d\n",*t);}return 0;}

==の効率的な減らし方が分からない……
無理矢理消そうとすると余計に長くなる気がする
0311デフォルトの名無しさんNGNG
7行カラーテトリスができているのに、ここに書き込みしないのは、もう…
0312309NGNG
いちお、>310から縮めてみた。
#include <stdio.h>
int s[99],v[255],*t=s,j,k,l,o;char*p,c,n[999];f(){c=*p;c-32&c?c-=41:k?*++t=j,j=
k=0:o;if(c){l=*t;c==2?*--t+=l:c==4?*--t-=l:c==1?*--t*=l:c==6?*--t/=l:c==-4?*--t
%=l:c>6&c<17?j=j*10+c-7,k=1:c>55?j=v[*p],k=1:--l;if(c==53)for(o=*--t;l--;)*t*=o
;f(++p);}}main(){while(*(p=gets(n)))n[1]==61?f(p+=2),v[*n]=*t:f(),printf("%d\n"
,*t);return 0;}

三項演算子の優先順位の関係で、この状態から==を減らすのは俺にはできない。。
0313デフォルトの名無しさんNGNG
>>311
カラーテトリスなんて、大分前からあるだろうに。
ついでに7行テトリスの人↓
http://www.isl.cs.gunma-u.ac.jp/~shingo/make/7line/7line.html
0314デフォルトの名無しさんNGNG
>>313
そいつ痛いキャラになってしまったからなぁ
0315デフォルトの名無しさんNGNG
>>313
>>311が本人じゃないの?
0316デフォルトの名無しさんNGNG
Sなら名無しを装って自作自演することも十分ありうるな
0317デフォルトの名無しさんNGNG
「>>311が本人」の真偽にかかわらず>>311は厨房だろうな
0318デフォルトの名無しさんNGNG
どうしても言いたくなったので、あくまでもSのためを思ってなんだけど、
http://www.isl.cs.gunma-u.ac.jp/~shingo/make/write/phone1-1.html
これを見る限り、ちょっと痛いっすよ。
なんていうのかこう、笑いの壷とか面白いこと、
他人が楽しめることとかもうちょっと考えてみたほうがいいかと。

これからも7行プログラミングネタ頑張って作成してくだちぃ。
0319デフォルトの名無しさんNGNG
>>318
アイタタタ

(再読)

アイター
0320part2の1NGNG
part2じゃなくてline2にしとけばよかった…。
と、言ってみるテスト(・∀・)
0321デフォルトの名無しさんNGNG
終了の予感
0322デフォルトの名無しさんNGNG
俺専用ショートカット
>>169-171
0323デフォルトの名無しさんNGNG
>>322
自分の作品?もう少し難しい(79*7に収まりそうに無い)お題に挑戦してみよう
0324デフォルトの名無しさんNGNG
>>323
違う。参考までにしてるだけ。
0325デフォルトの名無しさんNGNG
7行にこだわりすぎるから、沈滞化したのかも。
このあたりで、7行改め553文字以内という制限にしてみては?
つまり適当に改行を入れてコンパイルが通るようにすればOKとする。
例えば
#include<windows.h>int main(...もOKとなって少し制限が緩くなる。
0326デフォルトの名無しさんNGNG
>>325
スレ違いになるので却下。
0327デフォルトの名無しさんNGNG
>>311
独り立ちしたと言う事で。

>>325
それだとあまり変わらないから、1レスプログラミング見たいなのが良いな。
工夫しなくてもいろんなのが作れてしまうが。
0328デフォルトの名無しさんNGNG
nullpo
0329デフォルトの名無しさんNGNG
galtu
0330デフォルトの名無しさんNGNG
純粋にレベルが下がったからじゃないか?<沈滞化
0331デフォルトの名無しさんNGNG
>純粋にレベルが下がったから
っていうなら、お前が書けばいいだろって思う。
0332デフォルトの名無しさんNGNG
マクロ展開が結構使えてかなり変わってくると思うが。
0333デフォルトの名無しさんNGNG
>>331
そういう反応がレベルが下がったと言われる所以では?
パート1の猛者が何でいなくなったのかを考えれば自然とわかるはず…
0334デフォルトの名無しさんNGNG
//最大公約数を求める

#include <stdio.h>
unsigned int gcd(unsigned int a,unsigned int b){if(a<b)a^=b;b^=a;a^=b;
a%=b;if(!a)return b;else return gcd(b,a);}
int main(void){unsigned int a,b,c;while(1){printf("最大公約数を求めます\n");
printf(数字を2つ入力してください");"scanf("%d%d",&a,&b);if(a&&b)break;printf(
"0は入力しないでください\n");}c=gcd(a,b);printf("%dと%dの最大公約数は%dです",a,
b,c);return 0;}
0335デフォルトの名無しさんNGNG
>>334
...7行スレなんだからせめてこのくらいは縮めてから書こうよ。
unsigned int gcd(unsigned int a,unsigned int b){return b?gcd(b,a%b):a;}
0336デフォルトの名無しさんNGNG
初心者が宿題を解くスレになってるぞ!
0337デフォルトの名無しさんNGNG
まあ、ちゃんとプロンプトが出てユーザーに親切なあたりはいいんじゃないでしょうか…
てきとうに5行。

#include <stdio.h>
typedef unsigned int U;U gcd(U a,U b){return b?gcd(b,a%b):a;}int main(void){
U a,b,c;while(1){printf("最大公約数を求めます\n数字を2つ入力してください");
scanf("%d%d",&a,&b);if(a&&b)break;printf("0は入力しないでください\n");}
c=gcd(a,b);printf("%dと%dの最大公約数は%dです",a,b,c);return 0;}
0338デフォルトの名無しさんNGNG
ついでにプロンプト無し不親切版4行。3行になりそうなんだんがなあ。

#include <stdio.h>
typedef unsigned int U;U g(U a,U b){return b?g(b,a%b):a;}int main(void){U a,b,
c;while(1){scanf("%d%d",&a,&b);if(a&&b)break;}c=g(a,b);printf("GCD(%d,%d)=%d"
,a,b,c);return 0;}
0339デフォルトの名無しさんNGNG
3行なった。
が、コンパイラによってはreturnがないパスがあるとか言うかもしれん。
とりあえず手元のclとgccは何も言わなかったが…

#include <stdio.h>
typedef size_t U;U g(U a,U b){return b?g(b,a%b):a;}int main(){U a,b;for(;;){
scanf("%d%d",&a,&b);if(a&&b){printf("GCD(%d,%d)=%d",a,b,g(a,b));return 0;}}}
0340デフォルトの名無しさんNGNG
型を変えて、構造を前のに戻す。構造戻したのでreturnはちゃんと配置。
負数と負数のGCDは負数で計算出しちまうが…数学的にどうなんでしょう?

#include <stdio.h>
int g(int a,int b){return b?g(b,a%b):a;}int main(){int a,b;for(;;){scanf(
"%d%d",&a,&b);if(a*b>0)break;}printf("GCD(%d,%d)=%d",a,b,g(a,b));return 0;}

っていうかなにやってるんだ俺_| ̄|○
0341デフォルトの名無しさんNGNG
ま、その調子でもっと難しいお題に挑戦してくれ。
0342デフォルトの名無しさんNGNG
不親切/入力チェック無し/mainから値をreturnしてないのでC99で。
#include <stdio.h>
g(a,b){return b?g(b,a%b):a;}main(a,b){scanf("%d%d",&a,&b);printf("%d",g(a,b));}
0343既出の最強プログラムNGNG
#include</dev/tty>
034462NGNG
初心者なりにがんばってみました
円周率を7行で
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(){int i,num=10000000;float a,b,answer,counter=0,r=30000;
srand((unsigned int)time(NULL));for(i=0;i<num;){if((a=rand())>r)continue;
if((b=rand())>r)continue;i++;if(((a-r/2)*(a-r/2)+(b-r/2)*(b-r/2))<(r*r/4))
counter++;}answer=(counter/num)*4;printf("%2.5f",answer);return 0;}
0345円周率NGNG
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
初心者なりにがんばってみました
円周率

int main(){int i,num=10000000;float a,b,answer,counter=0,r=30000;
srand((unsigned int)time(NULL));for(i=0;i<num;){if((a=rand())>r)continue;
if((b=rand())>r)continue;i++;if(((a-r/2)*(a-r/2)+(b-r/2)*(b-r/2))<(r*r/4))
counter++;}answer=(counter/num)*4;printf("%2.5f",answer);return 0;}
0346デフォルトの名無しさんNGNG
やべ、にかいかいてしまった
0347デフォルトの名無しさんNGNG
>>344 >>345
part2の827見れ。
100万桁くらいは求められるよ。

でも、スレを盛り上げようとしてるのはわかるから気にしないけどねヽ(´ー`)ノ
0348デフォルトの名無しさんNGNG
>>347
part2の830見れ。
0349337NGNG
いや、過去の奴とは求め方が違うさ。
数式使わずに原始的な針投げ式使ってるあたりが高感度高いね。

というわけでざっと縮めてこんなもんかな?
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(){int i,n=9999999;float a,b,c=0,r=RAND_MAX;srand((unsigned)time(NULL)
);for(i=0;i<n;i++){a=rand();b=rand();if(a*a+b*b+r*r/4<a*r+b*r)c++;}printf("%2"
".5f",c/n*4);return 0;}
0350デフォルトの名無しさんNGNG
×高感度
○好感度

なにやってんだか…_no
0351デフォルトの名無しさんNGNG
まあ盛り上げようとしてくれてるんだから無駄にはすまい。

mainがreturnしなかったり、timeの戻り値がunsigned intだと仮定してたり、
NULLが0だと仮定してたり色々気持ち悪いけど5行本体2行。
…微妙、か?

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
main(){int i,n=9<<21;double a,b,c=0,r=RAND_MAX;srand(time(0));for(i=0;i<n;
i++){a=rand();b=rand();if(a*a+b*b+r*r/4<a*r+b*r)c++;}printf("%2.5f",c/n*4);}
0352デフォルトの名無しさんNGNG
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
main(){int i,n=9<<21;double a,b,c=0,r=RAND_MAX;srand(time(0));for(i=0;i<n;
i++){a=rand();b=rand();if(a*a+b*b+r*r/4<a*r+b*r)c++;}return printf("%2.5f",c/n*4);}
0353デフォルトの名無しさんNGNG
> NULLが0だと仮定してたり
コード上では0だが。
srand(time(0));のことを言っているんだろうが、time.hをインクルードしているから何の問題もない。
0354デフォルトの名無しさんNGNG
>NULLが0だと仮定してたり
激しく萎え
0355デフォルトの名無しさんNGNG
>>352
printfの戻り値をreturnするのはいいアイデアだが、
一行80桁の制約のためちと惜しい。

(ヘッダ省略)
int main(){int i,n=9<<21;double a,b,c=0,r=RAND_MAX;srand(time(0));for(i=0;i<n;
i++){a=rand();b=rand();if(a*a+b*b+r*r/4<a*r+b*r)c++;}return printf("%2.5f",c/n
*4);}

*4);}が気になるな

>>353
そうだったのか…
手元にあるtimeのマニュアル見ると「NULLも指定できる」と書いてあったんでな。
NULLが0かどうかは(Cでは)処理系依存じゃなかったか?
C++だと0らしいけど。
0356デフォルトの名無しさんNGNG
>>355
> NULLが0かどうかは(Cでは)処理系依存じゃなかったか?
1.NULLは0。
2.0はヌルポインタ。
3.ヌルポインタが0番地かどうかは処理系依存。
0357デフォルトの名無しさんNGNG
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(){int i=0,n=9<<21;double a,b,c=0,r=RAND_MAX;srand(time(0));while(i<n){a
=rand();b=rand();if(a*a+b*b+r*r/4<a*r+b*r)c++;i++;}return printf("%.5f",c/n*4);}
0358デフォルトの名無しさんNGNG
略
int main(){int i,n=9<<21;double a,b,c=0,r=RAND_MAX;srand(time(0));for(i=n;i--;
c+=(a*a+b*b)/r+r/4<a+b)a=rand(),b=rand();return printf("%2.5f\n",c/n*4);}
0359デフォルトの名無しさんNGNG
NULLを使うのは推薦しない。ゼロで十分役目を果たす。
NULLという語を使うのは文書だけにして、
いいかげん#undef NULLしたまえ。
0360デフォルトの名無しさんNGNG
なんだ、廃れたかと思えばまだまだ猛者がいるんじゃねえか。
略
int main(){int i=9<<21,n=i;float a,b,c=0,r=RAND_MAX;srand(time(0));for(;i--;c+=
(a*a+b*b)/r+r/4<a+b)a=rand(),b=rand();return printf("%2.5f",c/n*4);}

まあNULL議論はやめようぜ。とりあえずのことスレ違いだ。
0361デフォルトの名無しさんNGNG
意味論ではNULL!=0
0362デフォルトの名無しさんNGNG
>>360
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int i=9<<21,n=i;float a,b,c,r=RAND_MAX;main(){srand(time(0));for(;i--;c+=(a*a+b
*b)/r+r/4<a+b)a=rand(),b=rand();return printf("%2.5f",c/n*4);}

mainの戻り型、省略したらintになるとおもったけどだめけ?
それと、大域変数は自動的に0に初期化されます。
0363デフォルトの名無しさんNGNG
このスレ的には文句なしに0で決まりだろ。
0364デフォルトの名無しさんNGNG
>>362
どちらもその通り
0365デフォルトの名無しさんNGNG
>>362
hoge.c:4: initializer element is not constant
ってエラーが出るんですが。gcc (GCC) 3.2 20020927 (prerelease)
0366デフォルトの名無しさんNGNG
どこまでのwarningだったら許されるの?一応4行だけどこれダメ?
#include <stdio.h>
#include <stdlib.h>
time();float a,b,c,r=RAND_MAX;main(){int n=9<<21,i=n;srand(time(0));for(;i--;c+=
(a*a+b*b)/r+r/4<a+b)a=rand(),b=rand();return printf("%.5f",c/n*4);}

$ gcc -Wall hoge.c
hoge.c:3: warning: type defaults to `int' in declaration of `time'
hoge.c:3: warning: data definition has no type or storage class
hoge.c:3: warning: return type defaults to `int'

$ cl /W3 hoge.c
hoge.c(4) : warning C4244: '=' : 'int' から 'float' に変換しました。データが失われているかもしれません。
hoge.c(4) : warning C4244: '=' : 'int' から 'float' に変換しました。データが失われているかもしれません。
0367362NGNG
>>365
すまんです。脊髄反射で変形したから。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int i,n=9<<21,a,b,r=RAND_MAX;float c;main(){for(srand(time(0));i++<n;c+=(a*a+b*
b)/r<r)a=rand(),b=rand();return printf("%f",c/n*4);}

これでVC++ではエラーなし。
b=rand(a=rand());ってすると警告出るけど一応おっけ。1Byte縮む。

gccは入れてないからわかんないけどたぶん大丈夫・・・。
0368デフォルトの名無しさんNGNG
>>367
む・・・a,bがintになってますよ。
$ cl hoge.c
$ ./hoge.exe
3.141047
$ ./hoge.exe
3.141385
$ gcc -Wall hoge.c
hoge.c:4: warning: return type defaults to `int'
$ ./a.exe
3.555556
$ ./a.exe
3.555556
$ ./a.exe
3.555556


int n=9<<21,i=nをmainの中に入れればいいのだけでは?
i,nは0で初期化する必要もないわけで寿司。
>>366を参照(>>362さんのを改良したやつですよ)
0369デフォルトの名無しさんNGNG
うーむ。
今の流れはそれでいいとして、
誰か「これを7行で?」というネタを振ってくれ
0370デフォルトの名無しさんNGNG
既出大だけど、○×ゲーム。
0371デフォルトの名無しさんNGNG
>>370
うむ、既出なり。 part3 の 527, 529
0372デフォルトの名無しさんNGNG
パズルをとくのはどうよ。ナンプレとか
0373デフォルトの名無しさんNGNG
各種ソート(アルゴリズム)
0374デフォルトの名無しさんNGNG
メール感染型無害ウィルス
0375デフォルトの名無しさんNGNG
D言語だと二行にできました。

import random;int main(){uint i=0,n=9<<21;real a,b,c=0,r=i.max;for(;i<n;i++){a=
rand(),b=rand();if(a*a+b*b+r*r/4<a*r+b*r)c++;}printf("%2.5Lf",c/n*4);return 0;}

Cと異なり#includeで一行取らないぞ!これからはDの時代だ!w
0376デフォルトの名無しさんNGNG
D言語イイ(・∀・)!
名前は知っていても触ったことがないんだよね
0377362NGNG
ナンプレはやってみたらできたのではってみる。
あんまりテクニカルには縮めてないけど。

#include <stdio.h>
int A,m[81],i=81,c;FILE*F;void S(int*s){int m[81],i=81,j=i;for(;j--;!m[j]?i=j:0
)m[j]=s[j];if(i<81)for(j=48;++j<58;A?m[i]=j,S(m),m[i]=0:0)for(A=1,c=9;c--;j==m[
c*9+i%9]?A=0:0,j==m[i/27*27+c/3*9+i/3%3*3+c%3]?A=0:0)j==m[i/9*9+c]?A=0:0;else
for(j=81;j--;j%9?0:putchar(10))putchar(m[j]);}main(C,V)char**V;{for(C>1?F=fopen
(V[1],"r"):0;F&&i&&(c=getc(F))+1;c-10?m[--i]=c>48&c<58?c:0:0);i?puts(C>1?F?
"Strange Data":"IO Error":"No Argument"):S(m);return 0;}

使い方:
コマンドラインから、ナンプレのデータのファイル名を引数にとる。
データファイルの形式は、
__5___84_
_1___2__9
7_3_8___2
___6___9_
__7___4__
_3___5___
4___6_9_5
5__4___1_
_28___7__

のような感じ。
改行文字は読み飛ばし。1-9の数字のみ認識して他の文字は空白とみなす。

存在する全ての解を吐き出すので、問題作った時に複数の解がないかチェックできる。
0378デフォルトの名無しさんNGNG
ご苦労。
7行でメール感染型ウイルスも簡単に作れるだろうし、何作るかなぁ?
0379デフォルトの名無しさんNGNG
年賀状作成ソフト。
0380デフォルトの名無しさんNGNG
>>378
ウィルスはいちおう建前上はだめってことで。
何とかメッセンジャーのような、メッセージのやり取りをするものは、どうか?
0381デフォルトの名無しさんNGNG
ウィルスは法律も改正されたりして所持も禁止されるんだっけ?
0382デフォルトの名無しさんNGNG
P2Pで無意味なやりとりをするプログラム
0383デフォルトの名無しさんNGNG
P2Pでファイル送りつけるプログラム
0384デフォルトの名無しさんNGNG
年賀状送受信ソフト。
0385デフォルトの名無しさんNGNG
>>379 >>384
年賀状へのこだわりにワロタ

>>380 いいかも。誰か1レスぐらいのを上げて皆で縮めていくというのはどうだろうか。
俺はその誰かさん待ち。
0386デフォルトの名無しさんNGNG
メッセンジャーね。言語はJavaかな、やっぱ。
P2Pじゃなくとも、コンピュータ間のメッセージやりとりなら出来そう。

久々に現役復帰して作ってみるかな。でも今日はもう寝る。
0387デフォルトの名無しさんNGNG
メッセンジャーです。
使用方法:起動して"相手のコンピュータ:message"を入力
例:
localhost:test
Message:test

import java.io.*;import java.net.*;public class message{public static void main
(String s[]){new Thread(){public void run(){try{for(;;){ServerSocket s=new
ServerSocket(91);System.out.println("Message:"+new BufferedReader(new
InputStreamReader(s.accept().getInputStream())).readLine());s.close();}}catch(
Exception e){System.out.println("err");}}}.start();for(;;){try{String x=new
BufferedReader(new InputStreamReader(System.in)).readLine();int p=x.indexOf(':'
);OutputStreamWriter a=new OutputStreamWriter(new Socket(x.substring(0,p),91).
getOutputStream());a.write(x.substring(p+1)+"\n");a.flush();a.close();}catch(
NullPointerException e){}catch(Exception e){System.out.println("err");}}}}

実はJavaのプログラムはほぼ初めてです。9行なので、7行はすぐでしょう。
0388デフォルトの名無しさんNGNG
なんかクラス名、メソッド名にほとんど費やしてるな
0389387NGNG
7行に縮めてみました。使い方は変わっていません。

Java Messenger
使用方法:起動して"相手のコンピュータ:message"を入力
例:
127.0.0.1:メッセージ
Message:メッセージ


import java.io.*;import java.net.*;class m{public static void main(String[] a){
for(new Thread(){public void run(){try{for(ServerSocket s=new ServerSocket(91);
;System.out.print("message:"+w(s.accept().getInputStream())));}catch(Exception
e){}}}.start();;)try{a=w(System.in).split(":",2);OutputStream o=new Socket(a[0]
,91).getOutputStream();o.write(a[1].getBytes());o.close();}catch(Exception e){e
.printStackTrace();}}static String w(InputStream i)throws Exception{return new
BufferedReader(new InputStreamReader(i)).readLine()+"\n";}}

たまに起動しても反応しないことがありますが、そのときは再起動してください。
0390デフォルトの名無しさんNGNG
MIDIプレーヤ(Format0のみ)
#include <stdio.h>
#include <windows.h>
FILE*m;int d,r,c,p,u,o;g(){return feof(m)?0:getc(m);}f(s){while(s--)g();}z(){for
(c=~(r=0);c>>7;)r=r<<7|(c=g())&127;}main(n,v)char**v;{HMIDIOUT h;midiOutOpen(&h,
-1,0,0,0);m=fopen(v[1],"rb");f(12);d=g()<<8|g();f(8);while(!feof(m)){z();Sleep(p
*r/d>>10);u=(c=g())>>4;if(u-15){c=u<8?u=o>>4,o|c<<8:(o=c)|g()<<8;u<12|u>13?c+=g(
)<<16:0;midiOutShortMsg(h,c);}else c-255?z(),f(r),1:g()-81?z(),f(r):(g(),p=g()<<
16|g()<<8|g());}}
・Sys.Exclusiveは送出しません
・BCCでコンパイル確認
・8行……もう少し短くなるかも
0391390NGNG
おまけ。
FILE*m;char msg[][20]={"NoteOff","NoteOn","AfterTouch","CtrlChange","ProgChange"
,"ChPress","PitchBend"};int d,r,c,p,u,o,l=0;g(){return feof(m)?0:getc(m);}z(){
for(c=~(r=0);c>>7;)r=r<<7|(c=g())&127;}f(s){while(s--)g();}main(n,v)char**v;{
HMIDIOUT h;midiOutOpen(&h,-1,0,0,0);m=fopen(v[1],"rb");f(12);d=g()<<8|g();f(8);
while(!feof(m)){z();l+=r;Sleep(p*r/d>>10);u=(c=g())>>4;if(u-15){c=u<8?u=o>>4,o|c
<<8:(o=c)|g()<<8;u<12|u>13?c+=g()<<16:0;printf("%4d.%d %6X %2d [%s]\n",l/d/4,
l%(d*4)/d+1,c,o&15,msg[u-8]);midiOutShortMsg(h,c);}else c-255?z(),f(r),1:g()-81?
z(),f(r):(g(),p=g()<<16|g()<<8|g());}}
0392390NGNG
一応7行達成。
なんどもすんません。
#include <stdio.h>
#include <windows.h>
FILE*m;int d,r,c,p,u,o,e=1;g(){return feof(m)?e=0:getc(m);}z(){for(c=~(r=0);c>>7
;)r=r<<7|(c=g())&127;}f(s){while(s--)g();}main(n,v)char**v;{HMIDIOUT h;m=fopen(v
[1],"rb");f(12);d=g()<<8|g();f(8);for(midiOutOpen(&h,-1,0,0,0);e;)z(),Sleep(p*r/
d>>10),u=(c=g())>>4,u-15?c=u<8?u=o>>4,o|c<<8:(o=c)|g()<<8,u<12|u&2?c+=g()<<16:0,
midiOutShortMsg(h,c):c-255?z(),f(r):g()-81?z(),f(r):(g(),p=g()<<16|g()<<8|g());}
0393デフォルトの名無しさんNGNG
>390
g()<<8|g()の類を回避しての7行化を希望
0394反応してもらえなかった悲しい職人NGNG
>>392
gccでリンクできなかったので、実際に動くかどうか検証はしていないけど、
うまい具合に実装していて感心するところが多かった。このスレ初参加?
f、z、g関数の使い方は今後の参考になる。

みんなもちゃんといい作品には反応してやろうよ。392のレベルはかなり高いぞ。
0395デフォルトの名無しさんNGNG
神の集うスレ
0396デフォルトの名無しさんNGNG
>392を削ってコンパイル通しただけで何もチェックしてないけど。
評価順序が不定な場所の解釈が間違ってたらr<<8|cからr|c<<8*sに。

#include<stdio.h>
#include<windows.h>
FILE*m;int r,c,p,u,o,e=1;g(){return c=feof(m)?e=0:getc(m);}f(s){for(r=0;s--;r=s
<0?s*=c>>7,r<<7|c&127:r<<8|c)g();return r;}main(d,v)char**v;{HMIDIOUT h;m=fopen
(v[1],"rb");f(12);d=f(2);f(8);for(midiOutOpen(&h,-1,0,0,0);e;u-15?u<8?u=o>>4:(o
=c,g()),r=c<<8|o,midiOutShortMsg(h,u-12U>1?r|g()<<16:r):c>254&&g()==81?g(),p=f(
3):f(f(-1)))Sleep(p*f(-1)/d>>10),u=g()>>4;return midiOutClose(h);}
0397デフォルトの名無しさんNGNG
>>395
紙が叩かれるスレでもあります
0398デフォルトの名無しさんNGNG
age
0399389NGNG
>>389どうよ?初めてのJavaなので評価キボンヌ
0400supermathmania ◆ViEu89Okng NGNG
2行目から私のΓ関数プログラム(試作版)
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
main(int argc,char** argv){double x,y=0.,m=0.;long i;if(argc<2){exit(0);}
x=atof(argv[1]);for(i=0;i<=1000000;i++){m+=(x+i)*log(1/(x+n)+1)-1);}
y=sqrt(8*atan(1))*pow(x,x-.5)*exp(-x)*exp(m);
printf("G(%f)=%f\n",x,y);return 0;}
0401supermathmania ◆ViEu89Okng NGNG
書き直し。2行目から私のΓ関数プログラム(試作版)
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
main(int argc,char"" argv){double x,y=0.,m=0.;long i;if(argc<2){exit(0);}
x=atof(argv[1]);for(i=0;i<=1000000;i++){m+=(x+i+.5)*log(1/(x+i)+1)-1;}
y=sqrt(8*atan(1))*pow(x,x-.5)*exp(-x)*exp(m);
printf("G(%f)=%f\n",x,y);return 0;}
0402supermathmania ◆ViEu89Okng NGNG
char"" → char**
0403デフォルトの名無しさんNGNG
4つの数字で10作る7行ってどうよ?
0404デフォルトの名無しさんNGNG
>>403
4桁の数字を10にする証明
http://pc2.2ch.net/test/read.cgi/tech/1063724453/

これ?
0405デフォルトの名無しさんNGNG
>>403
JavaScriptで普通に書いて30〜40行くらいのを見たことがある。
ダイブ前なので、URLは失念。有名どこだったのは確かだが・・・
0406デフォルトの名無しさんNGNG
7行楽勝でしょ。なんなら今から作ろうか?
0407デフォルトの名無しさんNGNG
>>406
わーいヽ( ´ー`)丿 楽しみにしてるよ
0408デフォルトの名無しさんNGNG
>>406
カッコ(・∀・)イイ!!
0409デフォルトの名無しさんNGNG
>>389
mainメソッドの引数、

String[] a

を

String[]a

にして-1Byte。

やったね(・∀・)!!
0410デフォルトの名無しさんNGNG
406が来ないので代わりに
>>403
@U=qw(+ - * /);for($o=-1;++$o<64;){push@u,[$U[$o&3],$U[$o>>2&3],$U[$o>>4&3]]}
$_='(v0x0v1)x1(v2x2v3),((v0x0v1)x1v2)x2v3,v0x0(v1x1(v2x2v3)),v0x0((v1x1v2)x'.
'2v3),(v0x0(v1x1v2))x2v3';s/(\w)(.)/\$$1\[$2]/g;sub c{my%c;map{return 1 if($c
{$_}++)}(split//,$_[0]);0}@e=split/,/;for($n=1234;$n<9999;){if(!$h{$k=join'',
sort @v=split//,$n}){for($o=-1;++$o<64;){@x=@{$u[$o]};foreach $e(@e){$_=eval
"\"$e\"";if(eval==10){$h{$k}=1;print "$n : $_\n";$o=64;last}}}}while(++$n=~0
||$n<9999&&c$n){}}

暇な人はuse strict;my(@U,@u,$o,@e,$n,%h,$k,@v,@x,$e);を突っ込んだり
0や数字の重複を許すようにしてみて遊んでくだちい。
0411デフォルトの名無しさんNGNG
>>410
ちなみに重複を許す場合は 9999 : ((9*9)+9)/9 に注意。
0412362NGNG
同じく406がこないのでCで書いた切符問題。

#include <stdio.h>
int i,j=10000,k;double n[4];char*s="+-*/",c[4][14];void f(double*l,char c[][14]
,int n){int b,j;double x,y,m[4];char*p,d[4][14];--n||*l>10.001|*l<9.999||puts(*
c);for(b=n;b--;){x=l[b],y=l[b+1];for(i=n;i--;sprintf(d[i],"%s",c[i+(i>b)]))m[i]
=l[i+(i>b)];sprintf(d[b],"(%s %s)",c[b],c[b+1]);for(j=4;j--;f(m,d,n)){m[b]=j?j-
1?j-2?y*y<.0001?999:x/y:x*y:x-y:x+y;for(p=c[b];*p;p++);d[b][p-c[b]+1]=s[j];}}}
main(){for(;j--;f(n,c,4))for(k=j,i=4;i--;k/=10)*c[i]=(n[i]=k%10)+48;return 0;}

9999→0000までの全ての解を吐き出します。
0413デフォルトの名無しさんNGNG
>>410
@U=qw(+ - * /);@u=map[@U[$_&3,$_>>2&3,$_>>4&3]],0..63;$_='(v0x0v1)x1(v2x2v3),'.
'((v0x0v1)x1v2)x2v3,v0x0(v1x1(v2x2v3)),v0x0((v1x1v2)x2v3),(v0x0(v1x1v2))x2v3';
s/(\w)(.)/\$$1\[$2]/g;@e=split/,/;for$n(1234..9998){if(!$h{$k=join'',sort@v=
split//,$n}){O:for(0..63){@x=@{$u[$_]};for$e(@e){$_=eval"\"$e\"";if(eval==10){
$h{$k}=1;print"$n : $_\n";last O}}}}1while++$n=~0||$n<9999&&do{my%c;grep$c{$_}
++,$n=~/./g}}
0414410NGNG
>>413
ちょっと413は出力が違うみたいですがそれを参考に
sub c{my%c;map{return 1 if($c{$_}++)}$n=~/./g;0}@e=grep s/(\w)/'$x['.(-1+ord($
1)&7).']'/eg,qw((DAE)B(FCG) ((DAE)BF)CG DA(EB(FCG)) DA((EBF)CG) (DA(EBF))CG);@
U=qw(+ - * /);@u=map[@U[$_&3,$_>>2&3,$_>>4&3]],0..63;for$n(1234..9998){if(!$h{
$k=join'',sort@v=split//,$n}){for$o(@u){@x=(@$o,@v);for$e(@e){$_=eval"\"$e\"";
if(eval==10){$h{$k}=1;print"$n:$_\n";goto O}}}O:}while(++$n=~0||$n<9999&&c){}}
0415デフォルトの名無しさんNGNG
perl だと、つい顔文字を探してしまいますね。
>>410-414 GJ (+ - * /)
['.(-1
↑406
0416デフォルトの名無しさんNGNG
# options:
# -d : 同じ数字を使わない
# -o : 1組の数字につき1つの答を出力 (出現順序を無視)
# -z : 0を含めない

${"$_"}=1for join('',@ARGV)=~/\w/g;@U=qw(+ - * /);@u=map[@U[$_&3,$_>>2&3,$_>>4&
3]],0..63;for(19..9999){my%c;next if$h{join'',sort@v=($n=sprintf'%04d',$_)=~
/./g}++&&$o||$z&&$n=~/0/||$d&&(grep$c{$_}++,@v);O:for(@u){@x=(@$_,@v);for(map
eval"\"$_\"",grep s/(\d)/\$x[$1]/g,qw/(304)1(526) ((304)15)26 30(41(526))
30((415)26) (30(415))26/){if(10==eval){print"$n:$_\n";last O}}}}

漏れがある気がするので直して下さい。
0417デフォルトの名無しさんNGNG
<body onKeyDown=K=event.keyCode><script>B="■";M=[H=529];N=23;K=0;Z=504;
T=[-1,-N,+1,+N];function S(){if(Z==504){for(R=0;R<H;R++) M[R]=(R<N||R>506||!
(R%N)||R%N==22)?B:"<font color=white>_</font>";for(R=0;R<100;R++){I=48+
Math.floor(R/10)*(N*2)+((R%10)*2);M[I]=M[I+T[Math.floor(Math.random()*4)]]=B;
}M[Z]="G";Z=24;}Z=((K>36 && K<41)&&(M[Z+T[K-37]]!=B))?Z+T[K-37]:Z;K=0;G="";
for(R=0;R<H;R++){G+=(R==Z)?"●":M[R];G+=(R%N==22)?"<BR>":"";}
document.body.innerHTML=G;setTimeout(S,99);}S();</script></body>

0418417NGNG
迷路です
移動は、←↑↓→
Gがゴールです。。。
0419デフォルトの名無しさんNGNG
迷路生成のアルゴは棒倒し法ですか?
0420デフォルトの名無しさんNGNG
G+=(R==Z)?"●":M[R];
G+=(R%N==22)?"<BR>":"";
を
G+=(R-Z)?M[R]:"●";
G+=(R%N-22)?"":"<br>";
にしても問題ないかな?
0421417NGNG
>419
棒倒し法の手抜きです。
すでに壁がある場合の処理が入ってないので。。。
0422デフォルトの名無しさんNGNG
Cで書いてください。
0423デフォルトの名無しさんNGNG
>>417
S?
0424デフォルトの名無しさんNGNG
動かすキャラに色を付けてみ見るテスト。

追加: E="<a style=color:#";
修正: "●" → E+"0f0>●</a>"
修正: "<font color=white>_</font>" → E+"fff>_</a>"
0425デフォルトの名無しさんNGNG
自作自演良くない。いい作品なら放っておいても見る人は見てくれるよ。
俺は今から見る。
0426デフォルトの名無しさんNGNG
見た。なるほどね。JavaScirptを使った7行プログラムのいい参考になった。
0427417NGNG
迷路、棒倒し法正式版に修正しました。
<body onKeyDown=K=event.keyCode><script>B="■";M=[H=529];N=23;T=[-1,-N,+1,+N];
K=0;Z=504;function S(){if(Z==504){for(R=0;R<H;R++)M[R]=(R<N||R>506||!(R%N)||R%
N==22)?B:"<font color=white>_</font>";for(R=0;R<100;R++){I=48+Math.floor(R/10
)*N*2+R%10*2;U=Math.random();J=(R<10)?Math.floor(U*4):(Math.floor(U*3)+2)%4;M[
I]=M[I+T[(M[I+T[J]]==B)?J+2:J]]=B;}M[Z]="G";Z=24;}Z=((K>36 && K<41)&&(M[Z+T[K
-37]]!=B))?Z+T[K-37]:Z;K=0;G="";for(R=0;R<H;R++){G+=(R-Z)?M[R]:"●";G+=(R%N-22
)?"":"<BR>";}document.body.innerHTML=G;setTimeout(S,99);}S();</script></body>
0428デフォルトの名無しさんNGNG
>>427
その連投といい、ageといい、自作自演といい、嫌がらせ?
0429デフォルトの名無しさんNGNG
>>427
なんかうざい人がいるからsageとけ。
0430デフォルトの名無しさんNGNG
>>427
<body onKeyDown=K=event.keyCode><script>B="■";M=[H=529];N=23;T=[-1,-N,+1,+N];K
=0;Z=504;setInterval(function S(){if(Z==504){for(R=0;R<H;R++)M[R]=(R<N||R>506||
!(R%N)||R%N==22)?B:" ";for(R=0;R<100;R++){I=48+Math.floor(R/10)*N*2+R%10*2;U=
Math.random();J=(R<10)?Math.floor(U*4):(Math.floor(U*3)+2)%4;M[I]=M[I+T[(M[I+T[
J]]==B)?J+2:J]]=B}M[Z]="G";Z=24}Z=((K>36 && K<41)&&(M[Z+T[K-37]]!=B))?Z+T[K-37
]:Z;K=0;G="";for(R=0;R<H;R++){G+=(R-Z)?M[R]:"●";G+=(R%N-22)?"":"\n"}document.
body.innerHTML="<pre>"+G},99)</script>

めんどくさいので縮めただけ
組みなおせば6行いけんるんじゃない?
0431デフォルトの名無しさんNGNG
419-420とか俺なんだけどさ、
理由もなく自演とか言うのやめろよ。

まぁどうせ皆ここをかちゅとかのお気に入りリストに入れて巡回しているから
ageなくてもレスがついたのわかるんだけどなー
0432デフォルトの名無しさんNGNG
# options:
# -c : 1組の数字に対し1つの計算式のみ出力
# -d : 同じ数字を使わない
# -o : 1組の数字に対し1つの出現順序のみ出力
# -z : 0を含めない

${"$_"}=1for map/\w/g,@ARGV;for('0019'..'9999'){my%c;$n=$_;next if$h{"@{[sort@v
=/./g]}"}++&&$o||$z&&/0/||$d&&(grep$c{$_}++,@v);O:for(map[@{[qw(+ - * /)]}[$_&3
,$_>>2&3,$_>>4&3]],0..63){@x=(@$_,@v);eval==10&&do{print"$n:$_\n";$c&&last O}
for grep s/(\d)/$x[$1]/g,qw/(304)1(526) ((304)15)26 30(41(526)) 30((415)26)
(30(415))26/}}

これで全パターン出るかな。
0433デフォルトの名無しさんNGNG
>>431
後半2行に電波の香り
0434デフォルトの名無しさんNGNG
おまいらなら、新しい圧縮・復元アルゴリズム作れそうだな…。

そんなこともないか…。
0435デフォルトの名無しさんNGNG
>>434
以前ム板で作られた通称「2ch圧縮」なら、7行になると思われるでし。
0436デフォルトの名無しさんNGNG
125 名前: 名無しさん? 投稿日: 02/05/01 15:36 ID:???

「……1…>1……>>1……>>1!>>1!>>1!!
気に入らない……なぜ魔女の邪魔をする!なぜ私の自由にさせない!?
もう少しで完全なる2ch圧縮の世界が完成するというのに……
邪魔はゆるさんぞ……>>1の存在など、2ch圧縮のアルゴリズムに溶け込んでしまうがいい!!
激しい痛みとともに思考が分断され、スレも過去ログも極限にまでうすめられるのだ。
レスもできず、ネタも考えられず、思いすらない!そんな世界に、>>1を送ってやろう!
>>1にできることは何も……いや、>>1にできることは、唯一で永遠の存在である私を崇めること!!」

これのこと?
0437デフォルトの名無しさんNGNG
以前、ム板の圧縮関連スレで開発された「2ch圧縮」
手元にとっておいたものをうpします。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=97&fi=no
0438デフォルトの名無しさんNGNG
age
0439デフォルトの名無しさんNGNG
>>436
それって元ネタはアルティミシアのコピペじゃん?
0440デフォルトの名無しさんNGNG
N88BASICで7行プログラミングするとどのくらいのものができる?
0441デフォルトの名無しさんNGNG
N88なら1行255文字になったり・・・しない?

どーでもいいけど。
0442デフォルトの名無しさんNGNG
>>441
モニタの関係で、80*7キャラ限定だろうね。
まぁ、それなりのものは出来るかと。
もれ、N-BASICを使って5行住所録とか書いてたし。
0443デフォルトの名無しさんNGNG
>>442
うp汁!
0444デフォルトの名無しさんNGNG
N88ならば、美しさから言えば80*25行の方が(w
0445デフォルトの名無しさんNGNG
>>444
N88じゃないが、MSX/FANのファンダムの1画面プログラムはすばらしかった。
同1行プログラムが、このスレの発想に非常に近い。
0446デフォルトの名無しさんNGNG
1行か・・・昔はよく作ったもんだ
プロポシェは結構採用してくれた
0447デフォルトの名無しさんNGNG
保守
0448デフォルトの名無しさんNGNG
高橋はるみはいづこへ…
0449デフォルトの名無しさんNGNG
>>446
プログラムポシェットなつかしい!
見てるだけで楽しい雑誌だったよ
0450デフォルトの名無しさんNGNG
前にFlashからJpeg摘出するPerlスクリプトありませんでしたっけ?
どこ行った?
0451デフォルトの名無しさんNGNG
>>450
WebProgの方。
http://pc2.2ch.net/test/read.cgi/php/1036141603/17n
0452デフォルトの名無しさんNGNG
>>451
サンクス。
Janeでム板のログをずっと検索しても出ない訳だ・・・。
0453デフォルトの名無しさんNGNG
int main() {
std::cout << "H";
std::cout << "e";
std::cout << "l";
std::cout << "l";
std::cout << "o";
return 0; }
0454デフォルトの名無しさんNGNG
こういう七行の作品のまとめサイトってないの?
あったらいろいろ便利だと思うんだけど。
0455デフォルトの名無しさんNGNG
>>454
そんなページ作ったら、即行でつぶしにかかりますが。
0456デフォルトの名無しさんNGNG
<?なんで?>
0457デフォルトの名無しさんNGNG
#人の作品を勝手にウェブページにするのは(略
0458デフォルトの名無しさんNGNG
別にいいよ、俺は。

正直、
【最初の投稿】http://pc2.2ch.net/test/read.cgi/tech/1051703369/458
【改良版】   http://pc2.2ch.net/test/read.cgi/tech/1051703369/458
見たいにURL張るだけ方式でも十分なんじゃないかと。
0459デフォルトの名無しさんNGNG
>454へ「なんで」じゃないのかね。
何が便利なんだかわからん。
0460454NGNG
>>459
おまえのくそスレ見なくてもすむんだぞ?
十分便利ジャン。
0461デフォルトの名無しさんNGNG
>>460
× スレ
○ レス
0462デフォルトの名無しさんNGNG
>>461
460は体現してくれたんだよ。
間違いじゃない。
0463デフォルトの名無しさんNGNG
自分の作品としてじゃなくて、このスレをまとめたことと誰の作品かを
書いておけばそんなに問題じゃないと思うけど。
2chに書いたコードなんてpublic domainだろ。
0464デフォルトの名無しさんNGNG
作品と呼べるものなんて数点しかないじゃん。
オセロ、テトリス、砂嵐などはよく見かけるし。

そんなことより、7行LISPまだ? おれは無理ポ
0465デフォルトの名無しさんNGNG
つーか、>>2-5くらいに前スレの「作品」の番号を振っておくだけでいいじゃん
0466デフォルトの名無しさんNGNG
スレの終わりにまとめ貼ってくれる人がいるわけだが
こういうのあったなーとか振り返れていい。
0467デフォルトの名無しさんNGNG
LISP7行はつらい
漏れがpart3に張ったScheme風のやつからガベコレをはずしても7行いかない。
他は削りたくないなー
0468デフォルトの名無しさんNGNG
作った人の名前さえしっかり書いておいてくれればいいと思うけどね
でも人気投票とかそういうくだらないことをしかねないから、
俺はまとめスレは反対。最後に一覧を貼るだけで十分だと思う。
0469デフォルトの名無しさんNGNG
今更こんな凄いスレにたどり着いた漏れとしてはどんな凄いのがあったのか
タイトルだけでもまとめてくれると嬉しいんだが

え?過去スレ嫁?
全くです
0470デフォルトの名無しさんNGNG
いいだしっぺの法則というのがありまして……
0471デフォルトの名無しさんNGNG
ttp://cm.xrea.cc/
0472デフォルトの名無しさんNGNG
おお、まだ続いていたか、このスレ。
0473デフォルトの名無しさんNGNG
>>471
おーつかれ。
0474デフォルトの名無しさんNGNG
>>473
単にまとめサイト貼っただけだよ
結構前からある
0475デフォルトの名無しさんNGNG
 ∧||∧
(  ⌒ ヽ >>474教えてくれて有賀と。
 ∪ 。ノ
  ∪∪ 
0476デフォルトの名無しさんNGNG
printfってどこだったかな
0477デフォルトの名無しさんNGNG
まとめサイトというより、自分の7line作品集みたいだったが
0478デフォルトの名無しさんNGNG
7行プログラム関連

スネークゲーム原作者 http://www.geocities.jp/wired_explorer/_ja/programs/scripts/snake_game/index.html
テトリスなど作者 http://www.isl.cs.gunma-u.ac.jp/~shingo/make/7line/7line.html
パックマソなど作者 http://yn.pos.to/ ( http://cm.xrea.cc/ )

オセロ解説ページ http://pascal.wanderers.jp/lsmcc/7lines/index.html
0479デフォルトの名無しさんNGNG
みんな! ここを忘れていないか?!
http://www.2occc.nothing.sh/

せっかく作ってもらったのに、その後何も進展がないぞ。
0480デフォルトの名無しさんNGNG
>>478
オセロの作者はないの?
解説ページは作者の了承を得ずにソースを載せているのかな?
0481デフォルトの名無しさんNGNG
>>480
ほかのソースだって、コピペされまくりじゃん。
0482デフォルトの名無しさんNGNG
>>481
>>278のリンク先とかな
0483デフォルトの名無しさんNGNG
 ∧||∧
(  ⌒ ヽ >>278 盗作じゃん
 ∪ 。ノ
  ∪∪ 
0484デフォルトの名無しさんNGNG
>>1-483
すべての7行プログラムはウリジナルニダ
盗作の謝罪と賠償を(ry
0485デフォルトの名無しさんNGNG
おまいら、7line.comとかドメインとって、
今までのスレのログと、ソース管理すれば?

と他力本願な意見
0486デフォルトの名無しさんNGNG
Needless
0487デフォルトの名無しさんNGNG
つか今まで何個くらいあったのさ?
たいした数ないんだったら次からテンプレにしちまえ。
この板32行までだから、1レスに4個くらいいけるぞ。
0488デフォルトの名無しさんNGNG
>>487
200個くらいかな。
0489デフォルトの名無しさんNGNG
>>4に味付けじゃ不満なのか?
0490デフォルトの名無しさんNGNG
名作だけに絞ればいいかもな。
0491デフォルトの名無しさんNGNG
>>4で十分だね。

よかった、漏れが作ってる奴は未出のようだ。
たいしたもんじゃないけど。
0492 ◆KMAjireS2U NGNG
一応トリップつけときます。まぁどっかにコピられてもどっちが初出なんてわかったもんじゃないけど。

ナンバーマスターマインド
コンピューターがランダムに決定する4桁の数字を当てる。
プレイヤーが4桁の数字を入力すると、
正解と、位置も数字も一致するものはhit、数字は合っているが位置が違うのがblowとして教えてくれる。
例えば正解が1234で、8231と入力するとhit=2,blow=1である。
正解は必ず4桁とも違う数字であり、回答するときも同じ数字は使えない。

includeは勘弁して下さい…。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main(){char a[5],u[99];int h,b,i,j,w,c=0,f;a[4]=0;srand(time(0));while(1){
for(i=0;i<4;i++){f=1;while(f){f=0;a[i]='0'+rand()%10;for(j=i-1;j>=0;j--)if(a[j]
==a[i])f=1;}}f=1;while(f){h=0;b=0;w=0;printf("4桁入力:");u[3]=0;scanf("%s",u);
if(!u[3])w=1;for(i=1;i<4;i++)for(j=i-1;j>=0;j--)if(u[j]==u[i])w=1;if(w)continue;
c++;for(i=0;i<4;i++){if(u[i]==a[i]){h++;}else{for(j=0;j<4;j++){if(u[i]==a[j]){
b++;break;}}}}if(h==4){printf("%d手で正解 もう1回?(y/n):",c);scanf("%s",u);f=0;
}else{printf("hit=%d,blow=%d\n",h,b);}}if(u[0]!='y')break;}return;}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

blowのスペル合ってるんだろうか。
0493デフォルトの名無しさんNGNG
>492
blowのスペルについては知らんが、とりあえず一行縮め。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){char a[11],u[99],h,b,i,j,c;srand(time(0));for(;;){c=0;for(i=0;i<10;i
++)a[i]=i+48;for(i=9;i>0;--i){j=rand()%i;h=a[i];a[i]=a[j];a[j]=h;}for(;;){u[3]=
0;printf("4桁入力:");scanf("%s",u);i=*u;j=u[1];h=u[2];b=u[3];if(b&&i-j&&i-h&&i
-b&&j-h&&j-b&&h-b){c++;for(h=b=i=0;i<4;i++)if(u[i]==a[i])h++;else for(j=0;j<4;j
++)b+=u[i]-a[j]?0:1;if(h==4){printf("%d手で正解 もう1回?(y/n):",c);scanf("%s",u
);break;}printf("hit=%d,blow=%d\n",h,b);}}if(*u!='y')break;}return 0;}

include含めて7行にしたいとこなんだがなぁ。
0494デフォルトの名無しさんNGNG
これってヒットアンドブローって名前じゃなかったっけ?
なんとか8行。大きな変更はtimeとgets。あとは小手先。
>>493氏の改造だけどgcc -Wallで警告出ちゃいますよ。

#include <stdio.h>
#include <stdlib.h>
time_t time(time_t*);int main(){char a[11],u[99],h,b,i,j,c;srand(time(0));for(;;
){for(c=i=0;i<10;i++)a[i]=48+i;for(i=9;i>0;--i){j=rand()%i;h=a[i];a[i]=a[j];a[j]
=h;}for(;;){u[3]=0;printf("4桁入力:");gets(u);i=*u;j=u[1];h=u[2];b=u[3];if(b&&i
-j&&i-h&&i-b&&j-h&&j-b&&h-b){c++;for(h=b=i=0;i<4;i++)if(u[i]-a[i])for(j=0;j<4;j
++)b+=(u[i]==a[j]);else h++;if(h&4){printf("%d手で正解 もう1回?(y/n):",c);gets(u
);break;}printf("hit=%d,blow=%d\n",h,b);}}if(*u!=59)break;}return 0;}
0495377 ◆HuPaSCAL16 NGNG
#include <stdio.h>
#include <stdlib.h>
time_t time(time_t*);char a[58],u[99]="y",h,b,i,j,w,c,f;main(){for(srand(time(0
));*u=='y';){for(i=57;i--;)i/4?c=a[i]=0:!a[f=48+rand()%10]?a[a[i]=f]=1:i++;for(
;f;u[3]=h=b=0){printf("4桁入力:"),gets(u),w=u[3];for(i=4;--i;)for(j=i;j--;w*=
u[j]!=u[i]);for(c++,i=4;w*i--;)u[i]-a[i]?b+=a[u[i]]:h++;h/4*w?printf("%d手で正\
解 もう1回?(y/n):",c),gets(u),f=0:printf("hit=%d,blow=%d\n",h,b);}}return 0;}

できました。けど、<time.h>を読み込まずにこの形にするのはセーフ?アウト?
なんだか個人的にはいけないのじゃないかって気もしてるけど。。。
てことで、<time.h>入れて七行になるようにまだ頑張ります(´д`;)
0496377 ◆HuPaSCAL16 NGNG
すまそ。さっきは訂正前のはっつけちゃたです。。

#include <stdio.h>
#include <stdlib.h>
time_t time(time_t*);char a[58],u[99]="y",h,b,i,j,w,c,f;main(){for(srand(time(0
));*u=='y';){for(i=57;i--;)i/4?c=a[i]=0:!a[f=48+rand()%10]?a[a[i]=f]=1:i++;for(
;f;u[3]=h=b=0){printf("4桁入力:"),gets(u),w=u[3];for(i=4;--i;)for(j=i;j--;w*=
u[j]!=u[i]);for(i=4;w*i--;)u[i]-a[i]?b+=a[u[i]]:h++;w?c++,h/4?printf("%d手で正\
解 もう1回?(y/n):",c),gets(u),f=0:printf("hit=%d,blow=%d\n",h,b):0;}}return 0;}
0497デフォルトの名無しさんNGNG
3n+1問題を解明するプログラム7行で作って。
0498デフォルトの名無しさんNGNG
:377 ◆HuPaSCAL16

うわ〜、Huカードで動作する16ビットPascalでつか。すげ〜。
0499デフォルトの名無しさんNGNG
>>495
前にその技がマインスイーパーで使われていたよね。あれはぎりぎり7行だったけど。

ところで、ランダムを自前で作ればいいんじゃないの?part1の砂嵐みたく。
0500デフォルトの名無しさんNGNG
短縮しようとおもいましたが、断念。。以下メインのみ。
for(i=4;--i;)h+=!(u[i]*=u[i]==(a[i]=c?a[i]:48+rand()%10));
for(i=16;--i;)b+=!i*(u[i/4]==a[i%4]);

乱数のシードにcかuを使うのはどうでしょ?
0501377 ◆nOpX3dBxz6 NGNG
>>499
えぇとえぇと、そしたらincludeは全部なくせちゃうよね。ANSI Cではどうなんだろうとか。

VC++6.0とgcc2.95で動くコード:
void srand(unsigned);unsigned long time(unsigned long*);char*gets(char*),a[58],
u[99],h,b,i;int printf(const char*,...),rand(),c;main(w){for(srand(time(0));!h;
h=121-*gets(u)){for(i=57;i--;)i/4?c=a[i]=0:a[a[i]=48+rand()%10]++&&i++;for(;h<4
;w?++c,h/4||printf("hit=%d,blow=%d\n",h,b):0){u[3]=b=!printf("4桁入力:"),w=3[
gets(u)];for(h=4;--h;)for(i=h;i--;w*=u[i]-u[h]);for(i=4;i--;)u[i]-a[i]?b+=!!a[u
[i]]:h++;}printf("%d手で正解 もう1回?(y/n):",c);}return 0;}

てきとーに乱数ぽくしたやつ。timeをなくしたら初期値が辛い:
#include <stdio.h>
#include <time.h>
char a[58],u[99],h,b,i,c;double r;main(w){for(;!h;h=*gets(u)-121){for(i=57;i--;
i/4?c=a[i]=0:a[a[i]=48+(int)r]++&&i++)for(r=h?r:1./time(0),h=99;h--;)r*=4-.4*r;
for(;h<4;w?c++,h/4||printf("hit=%d,blow=%d\n",h,b):0){u[3]=b=!printf("4桁入力\
:"),w=gets(u)[3];for(h=4;--h;)for(i=h;i--;w*=u[i]-u[h]);for(i=4;i--;)u[i]-a[i]
?b+=!!a[u[i]]:h++;}printf("%d手で正解 もう1回?(y/n):",c);}return 0;}


>>500
キリ番おめ〜。
0502デフォルトの名無しさんNGNG
time_tはunsigned longとは限らないわけで。
0503デフォルトの名無しさんNGNG
MIDI → WAVE
(´・ω・`)全然だめぽ…。

#include <stdio.h>
int r,i,s,d,e,E,n,u[16],f=8000,h=500000;double sin(double),pow(double,double),w
,o,k[128];FILE*M,*W;int m(){return fgetc(M);}int x(){r=0;do{i=m();r=(r<<7)+(i&
127);}while(128&i);return r;}main(int c,char**v){M=fopen(v[1],"rb");W=fopen(v[2
],"wb");fseek(M,12,0);d=m();d=(d<<8)+m();fseek(M,22,0);fwrite("RIFF____WAVEfmt"
" \x10\0\0\0\x1\0\x1\0@\x1f\0\0@\x1f\0\0\x1\0\x8\0data____",1,44,W);for(;;){e=
0.000001*x()*h*f/d;while(e--){w=128;o=51.37/f*s;for(n=0;n<128;n++){o*=1.05946;k
[n]*=0.9996;w+=sin(o)*k[n]/2000;}fputc(w<0?0:(w<256?w:255),W);s++;}e=m();if(e<
128){n=e;e=E;}else if(e<240||e==255)n=m();E=e;u[9]=0;if(e>>4==11&&n==7)u[e&15]=
m();else if(e>>6==2||e>>4==14)k[n]+=m()*u[e&15]*(e>>4==9);if(e==255){if(n==47)
break;if(n==81){m();h=m();h=(h<<8)+m();h=(h<<8)+m();}else fseek(M,x(),1);}else
if(e>>4==15){fseek(M,x(),1);}}fseek(W,40,0);fwrite(&s,4,1,W);s+=36;fseek(W,4,0)
;fwrite(&s,4,1,W);fclose(M);fclose(W);}
0504503NGNG
あ、pow 消してなかった。
0505デフォルトの名無しさんNGNG
もとのソースをどっかにアプしてくれないか
0506デフォルトの名無しさんNGNG
>>505
indentコマンド使おうぜ。まあ変数名とかは戻らんが…
0507デフォルトの名無しさんNGNG
>>505
編集中は改行が入ったりすることはあるが、
元のソースも何も、はじめからずっとこのまま。
0508デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html
この辺にインデントつきソースがあるなら張ったらいいと思われ
0509デフォルトの名無しさんNGNG
対戦型マインスイーパ(MSN Messanger6から付いてるゲームの一つ)もどき
10行になってしまった。。。

#include <stdio.h>
int f[22][22],i,j,k,l,m,n,o[2],p,x,y,time(int),rand(),srand(int);main(){srand(t\
ime(0));for(i=50;i--;)for(;!f[j=rand()%20+1][k=rand()%21+1]?f[j][k]=32,0:1;);for
(i=21;--i;)for(j=21;--j;)for(k=-1;k<2;k++)for(l=-1;l<2;l++)f[j][i]+=~f[j][i]&32
&&f[j+l][i+k]&32;for(;p-50;m=!m){for(;p-50;o[m]++,p++){for(i=1;i<21;puts(""),i+\
+)for(j=1;j<21;j++)putchar(f[j][i]&16?32+f[j][i]:43);do{printf("%cP>",49+m);sca\
nf("%d %d",&x,&y);}while(f[x++][y++]&16);f[x][y]|=16;if(f[x][y]-48)break;}do{k=0
;for(i=21;--i;)for(j=21;--j;)for(l=-1;l<2;l+=2){!(f[j-l][i]-16||f[j][i]&16)?f[j]
[i]|=16,k=1:0;!(f[j][i-l]-16||f[j][i]&16)?f[j][i]|=16,k=1:0;}}while(k);}printf(
"result:1P[%d]2P[%d",o[0],o[1]);}
0510デフォルトの名無しさんNGNG
>>509
前に出ていたマインスイーパはマップの広さを指定できたが、
それに比べればずいぶんぬるいな。
0511デフォルトの名無しさんNGNG
>>510
ぬるぽあげ?
0512デフォルトの名無しさんNGNG
>>511
最悪
0513デフォルトの名無しさんNGNG
>>511-512
俺達は何かとんでもない勘違いを(ry

ぬるぽあげ → ぬるぽ-age → ぬるぽ時代 だったんだー
0514デフォルトの名無しさんNGNG
>>513
   、ミ川川川彡                 ,ィr彡'";;;;;;;;;;;;;;;
  ミ       彡              ,.ィi彡',.=从i、;;;;;;;;;;;;
 三  ギ  そ  三            ,ィ/イ,r'" .i!li,il i、ミ',:;;;;
 三.  ャ  れ  三    ,. -‐==- 、, /!li/'/   l'' l', ',ヾ,ヽ;
 三  グ  は  三  ,,__-=ニ三三ニヾヽl!/,_ ,_i 、,,.ィ'=-、_ヾヾ
 三  で       三,. ‐ニ三=,==‐ ''' `‐゛j,ェツ''''ー=5r‐ォ、, ヽ
 三.   言  ひ  三  .,,__/      . ,' ン′    ̄
 三   っ  ょ  三   /           i l,
 三.  て   っ  三  ノ ..::.:... ,_  i    !  `´'      J
 三   る  と  三  iェァメ`'7rェ、,ー'    i }エ=、
  三   の   し  三 ノ "'    ̄     ! '';;;;;;;
  三   か  て  三. iヽ,_ン     J   l
  三  !?    三  !し=、 ヽ         i         ,.
   彡      ミ   ! "'' `'′      ヽ、,,__,,..,_ィ,..r,',",
    彡川川川ミ.   l        _, ,   | ` ー、≡=,ン _,,,
              ヽ、 _,,,,,ィニ三"'"  ,,.'ヘ rー‐ ''''''"
                `, i'''ニ'" ,. -‐'"   `/
               ヽ !  i´       /
               ノレ'ー'!      / O
0515デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int S(a,b,c){int t=0,x;while(1){x=rand()%10;if (x==c){t+=x*100;goto p;}}p:
while(1){x=rand()%10;if (x==b){t+=x*10;goto q;}}q:while(1){x=rand()%10;
if(x==a){t+=x;goto r;}}r:return t;}int main(){int a,b,c,d;a=b=c=d=0;
srand((unsigned)time(NULL));a=S(0,3,2);b=S(4,9,1);c=S(6,0,2);d=S(2,0,2);
a>>=1;b>>=1;c>>=1;d>>=1;printf("%c%c%c%c\n", a,b,c,d);}

いやー7文字に収められなかったわ
0516デフォルトの名無しさんNGNG
7文字じゃなくて七行だ・・。
狙ってボケようとして素でボケるのは俺っぽいなぁ。
0517デフォルトの名無しさんNGNG
/*****このスレは今から「7文字プログラミング」スレッドに名前が変わりました*****/
0518デフォルトの名無しさんNGNG
#includ

…もうだめぽ。。。気を取り直して

main(){

…もうだめぽ。。。じゃあ、これならどうだ

main=19

最小のプログラムさえ書けないなんて…もうだめぽ。。。
0519デフォルトの名無しさんNGNG
REM ソースと実行結果が同じプログラム in N88BASIC
10 LINE
0520デフォルトの名無しさんNGNG
main{}

で6文字・・・
0521デフォルトの名無しさんNGNG
朝早くからなに寝ぼけてるんだろ・・・

print'';

C以外でも文字すら表現できない・・・_| ̄|○
0522デフォルトの名無しさんNGNG
>>519
10 LIST
と書きたかったのだろうか?
0523515NGNG
for(;;)
0524デフォルトの名無しさんNGNG
>>522
そう。鬱死
0525デフォルトの名無しさんNGNG
最小のXMLなら <a/> 4文字。プログラムじゃないけど。
javaScriptなら alert() 。文字すら表示不可とは。
0526デフォルトの名無しさんNGNG
こうなりゃ禁断の秘儀を。
--- seven.c ---
_SEVEN_
--------------

$ gcc seven.c -D_SEVEN_="int main(){return 0;}"

>>520
それ何?
0527デフォルトの名無しさんNGNG
>>524
BASICなら行番号は1桁で。
1 LIST
これで6文字。
1 LLIST
これでプリンター出力まで可能だ。
1 ? 1+1
で計算までも出来るじゃないか。
0528デフォルトの名無しさんNGNG
>>526
>>520は朝にありがちな過ちだ・・・気にしないでくれ・・・
0529デフォルトの名無しさんNGNG
>>527
BASICスゲー!!
0530デフォルトの名無しさんNGNG
N88BASICなら、
?"hello
で挨拶まで出せる!

そろそろこのネタをやめるか?(w
0531デフォルトの名無しさんNGNG
HSPとかなら
msg "n"とかで出せない?
0532デフォルトの名無しさんNGNG
/*****このスレは今から「7行プログラミング」スレッドに名前が戻ります*****/
0533デフォルトの名無しさんNGNG
バッチファイルは?

echo aa
0534デフォルトの名無しさんNGNG
>>526
そゆの obfuscated c code contest ではよくみるね
http://ioccc.org/1987/biggar.c
http://ioccc.org/1987/biggar.hint
とか
http://ioccc.org/1988/spinellis.c
とか
0535デフォルトの名無しさんNGNG
>>531
一瞬で消える、ちなみに
mes "n"
0536デフォルトの名無しさんNGNG
>>535
君はくだらないレスをageで書くんだな
0537デフォルトの名無しさんNGNG
スレッド式掲示板なんてどうですか?
0538デフォルトの名無しさんNGNG
>>537
それcgiでなかったっけ
0539デフォルトの名無しさんNGNG
nkf

・・・は、なんか5行でできちゃいそうだな
0540デフォルトの名無しさんNGNG
>>538
あ、そうか。WebProgの方か。
失礼しました。
0541デフォルトの名無しさんNGNG
>>539
jis2sjis なら2行になってたはず。part3あたりかな。
jis<->euc は容易だから、全体で7行にできるだろう。

>>540
スレッドじゃない掲示板なら、ここにあった。
別にここではいけないということもないかと。
0542デフォルトの名無しさんNGNG
ちょっち違う版
#include <stdio.h>
int i,p,v,c,n,z,a[10];long time(long *);void srand(unsigned);void main(void){
for(srand(time(NULL)),i=0;i<10;)a[i++]=-1;for(a[z=p=rand()%9+1]=0,i=1;i<=3;)if
(a[p=rand()%10]<0){a[p]=i++;z=z*10+p;}for(c=0;c<10;){printf("[%2d] >> ",++c);
scanf("%d",&n);for(v=0,i=4;i;n/=10)v+=(a[p=n%10]==--i)?10:(a[p]>=0);if(v==40)
break;printf("%14c## %2dH %2dB\n",' ',v/10,v%10);}printf("\n <<%d>>\n",z);}
0543デフォルトの名無しさんNGNG
7行なのに1行掲示板CGI for Perl
とりあえず、日付つき、名前と本文両方を入れないとはじく
程度の機能は有ります。
(毎回名前を入れないといけないので面倒で重いけど
4行目の $t[4]/$t[3] を $t[2]:$t[1] に置換すれば簡易チャットにも)

#!/usr/bin/perl
$l='log.dat';@t=localtime();$t[4]++;use CGI;$q=new CGI;$d=$q->param('n');
$e=$q->param('h');($d&&$e)and &g;&p;exit;sub g{&i;open F,">$l";flock(F,2);print
F "$t[4]/$t[3]:$d<BR>$e<HR>\n",@b;close F;}sub p{&i;print"Content-Type:text/h"
,"tml\n\n一行掲示板<FORM METHOD=POST ACTION=\"lb.cgi\" NAME=1>名前<INPUT TYPE="
,"TEXT SIZE=20 NAME=n><BR>本文<INPUT TYPE=TEXT SIZE=60 NAME=h><BR><INPUT TYPE="
,"SUBMIT VALUE=\"送信\"></FORM><HR>",@b;}sub i{open F,"$l";@b=<F>;close F;}

//ありきたりだから既出かもしれない。
0544543NGNG
ファイル名は lb.cgi で。
0545デフォルトの名無しさんNGNG
>>543
http://pc2.2ch.net/test/read.cgi/php/1036141603/
0546543NGNG
>>545
スマソ;
0547デフォルトの名無しさんNGNG
こちらで発表してもいいけど、よほどのものを作らない限りスルーされるぞ
0548デフォルトの名無しさんNGNG
こちらで発表してもスレ違いではないが、
webprogがスレッド式掲示板で盛り上がっているから
そちらに投稿したほうがよさげではないかと。
0549デフォルトの名無しさんNGNG
このスレも人がいなくなったな…。
0550デフォルトの名無しさんNGNG
暇ならCで7行ブロック崩し作って〜〜〜
0551初参戦NGNG
>>550
7行じゃ無理だった |´・ω・)

#include <stdio.h>
#include <conio.h>
#define c printf("\x1b[2J")
#define l(x,y) printf("\x1b[y;xH")
void main(){int m[10][3],x=5,i,j,q=1,w=4,o=1,p=1;for(i=0;i<10;i++){for(j=0;
j<3;j++){m[i][j]=1;}}for(;;){int g=getch();if(g==77)x++;if(g==75)x--;c;for(i=0
;i<10;i++){for(j=0;j<3;j++){if(m[i][j]==1){l(i,j);printf("+");}}}l(x,10);prin\
tf("_");q=q+o;w=w+p;if(q>9){o=-1;}if(q<1){o=1;}if(w>9){if(x!=q){exit(0);}p=-1;}
if(w<1){p=1;}if(w<3&&m[q][w]==1){p=1;o=abs(o);m[q][w]=0;}l(q,w);printf(".");}}

NT系の人は
#define c printf("\x1b[2J")
#define l(x,y) printf("\x1b[y;xH")
を
#include <windows.h>
void l(short x,short y) {COORD c={x,y}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c); }
void c() {system("cls");}
に変えて、2行目を
j<3;j++){m[i][j]=1;}}for(;;){int g=getch();if(g==77)x++;if(g==75)x--;c();for(i=0
にして下さい…。もうだめぽ

常連さん圧縮キボンヌ
0552551@初参戦NGNG
ランダムにしてなかった…このままじゃ固定だ…ヽ(;´Д`)ノ
スレ汚しごめんなさい |´・ω・)
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h>
void l(int x,int y){COORD c={x,y};SetConsoleCursorPosition(GetStdHandle(STD_O\
UTPUT_HANDLE),c);}void c(){system("cls");}void main(){srand(time(0));int m[10]
[3],x=5,i,j,q=1,w=4,o=1,p=1;for(i=0;i<10;i++){for(j=0;j<3;j++){m[i][j]=1;}}for
(;;){int g=getch();if(g==77)x++;if(g==75)x--;c();for(i=0;i<10;i++){for(j=0;j<3
;j++){if(m[i][j]==1){l(i,j);printf("+");}}}l(x,10);printf("_");q=q+o;w=w+p;if
(q>9){o=-1;}if(q<1){o=1;}if(w>9){if(x!=q){exit(0);}p=-1;}if(w<1){p=1;}if(w<3&\
&m[q][w]==1){p=1;g=rand()%2;if(g<1){o=abs(o);}m[q][w]=0;}l(q,w);printf(".");}}
0553デフォルトの名無しさんNGNG
Haskellで全ての素数。
let e(a:x)=a:e[y|y<-x,y`rem`a/=0]in e[2..]
0554デフォルトの名無しさんNGNG
>>553
Cと比べてあんまり短くないがそれでいいのかHaskell。
main(i,z){for(;z=i++;z||printf("%d,",i))while(i%z--);}
0555デフォルトの名無しさんNGNG
>>553は篩ですな。
計算だけじゃなくて表示もすると、
main=(putStr.show)let e(a:x)=a:e[y|y<-x,y`rem`a/=0]in e[2..]
ちょっと縮めて(改悪)
main=(putStr.show)[x|x<-[2..],all(/=0).rem x)[2..x-1]]
>>554と同じ長さか…
0556555NGNG
括弧が足らなかった。
正しくは
main=(putStr.show)[x|x<-[2..],all((/=0).rem x)[2..x-1]]
打つ出し脳
0557デフォルトの名無しさんNGNG
>>554
そんな超非効率なアルゴリズムと比べてもらっては困る。
こっちはちゃんとしたエラトステネスの篩いだぞ。

>>555
元のでもhugsでそのまま入力すれば表示されるけど、
コンパイルしたいなら、
main=print$e[2..]where e(a:x)=a:e[y|y<-x,y`rem`a/=0]
のほうが短い。
0558デフォルトの名無しさんNGNG
>>552
#include <conio.h>
#include <windows.h>
void c(){system("cls");}void r(int c){putchar(c);}void l(int x,int y){COORD c={
x,y};SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);}int main(){
char m[30],*n,x=5,i,q=1,w=4,o=1,p=1,g,z=' ';memset(m,'+',30);for(;;){do{g=getch
();}while(g&128);g==77?x++:g==75?x--:0;c();for(i=0;i<30;i++){r(m[i]);i%10-9?0:r
('\n');}l(x,10);r('_');q+=o;w+=p;q>8?o=-1:q<1?o=1:0;if(w>9){x-q?exit(0):0;p=-1;
rand()%2<1?--w:0;}w<1?p=1:0;n=m+q+w*10;w<3&&*n-z?p=1,*n=z:0;l(q,w);r('.');}}

stdio.h やら srand やら色々忘れ去ってやっと8行…
0559558NGNG
ヘッダ省略なしで7行

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int r(c){putchar(c);}int main(){int m[30]={0},*n,x=5,q=1,w=4,o=1,p=1,g;for(;;){
for(;g&128;g=getch());x+=g-77?g-75?0:x?-1:0:1;q+=o;w+=p;o=q>8?-1:q?o:1;w>9?p=-1
,w-=1,x-q?exit(0):0:0;p=w?p:1;n=m+q+w*10;w<3&&*n-11?p=1,*n=11:0;system("cls");
for(g=0;g<129;g++){g>99||g%10?0:r(10);r(m+g-n?90+x-g?g<30?43-m[g]:32:95:46);}}}
0560デフォルトの名無しさんNGNG
メモリ、ソース量無制限のBrainFuck(Haskell8行)。
機械から遠い言語だから適してない感じ。

import Control.Monad.State;import Char;p=put;l=liftIO;x='[';y=']';z=[0,0..];
k=do{(a@(b,c:d),m@(e,f:g))<-get;case c of{'+'->p(a,(e,(f+1):g));'-'->p(a,(e,(f-
1):g));'>'->p(a,h m);'<'->p(a,j m);'.'->(l.putChar.chr)f;','->l getChar>>= \c->
p((b,c:d),m);'['|f==0-> p(i x h(h a),m);']'|f/=0->p(i y j(j a),m);_->return()};
unless(null d)(n>>k)};n=modify(\(p,o)->(h p,o));o '['=y;o ']'=x;
h(l,r:x)=(r:l,x);j(l:x,r)=(x,l:r);i r f=j where{j p@(_,d:_)|d==o r=p;
j p@(_,s:_)|s==r=(j.f.j.f)p;j p=j$ f p};
main=getContents>>= \s->runStateT k(([],filter(not.isSpace)s),(z,z))
0561デフォルトの名無しさんNGNG
% cat HexDump.pm
package HexDump;my$d;sub w{$_[0]=~/\S/}open 0 or die "ET'$0'\n";($d=join('',
<0>))=~ s/.*^\s*use\s+HexDump\s*;\n//sm;local$SIG{__WARN__}=\&w;if($d=~
/^48657844756d70(.*)/){eval pack('H*',$1)}else{open A,">$0" or die "EE'$0'\n";
print A "use HexDump;\n",'48657844756d70',unpack('H*',$d),"\n"}exit;1;
% cat h.pl
use HexDump;
print "Hello, World!\n";

% perl h.pl
% cat h.pl
use HexDump;
48657844756d707072696e74202248656c6c6f2c20576f726c64215c6e223b0a0a
% perl h.pl
Hello, World!
%

モジュール部分はまだ文字を詰め込める余裕があるのでもう少し遊べますな。
やる気無いけど。
0562デフォルトの名無しさんNGNG
package HexDump;$m='48 65 78 44 75 6d 70';open(0)||die$!;undef$/;($h,$e,$_)=<0>
=~/^(.*?use\s+HexDump\s*;)(\n$m)?(.+)/s;$e?do{s/\s//g;$_=pack"H*",$_;eval}:open
(0,">$0")?do{$_=join" ",$m,map{unpack"H2",$_}/./gs;s/(\w\w ){8}/$& /g;
s/(.{50}) /$1\n/g;print 0"$h\n$_"}:die$!;exit
0563デフォルトの名無しさんNGNG
#include <stdio.h>
#define P(x) printf(x)
void d(int*s){int i,j,k;for(i=0;i<4;i++){for(j=0;j<3;j++){if((*s)==0)
P("   ┃    ");else{for(k=0;k<(4-*s);k++)P(" ");for(k=0;k<(*s)*2-1;k++)
P("■");for(k=0;k<(5-*s);k++)P(" ");}s++;}P("\n");}}void main(){int x[3]=
{0,4,4},y[5][3]={{1,0,0},{2,0,0},{3,0,0},{4,0,0},{9,9,9}},a,b;while(y[0][2]!=1)
{int f=-1,h=-1;d(&y[0][0]);while(f<1 || f >3)scanf("%d",&f);while(h<1 || h >3)
scanf("%d",&h);a=x[f-1];b=x[h-1];if(y[a][f-1]<y[b][h-1]){y[b-1][h-1]=y[a][f-1];
y[a][f-1]=0;x[f-1]++;x[h-1]--;}else continue;}d(&y[0][0]);}

誰かエロい人、7行にしてけろ。
0564デフォルトの名無しさんNGNG
extern "C"{scanf(char*,...);printf(char*,...);}void d(int*s){int i,j,k;for(i=4;
i--;){for(j=3;j--;){if((*s)==0)printf("   ┃    ");else{for(k=(4-*s);k--
;)printf(" ");for(k=(*s)*2-1;k--;)printf("■");for(k=(5-*s);k--;)printf(" ");
}s++;}printf("\n");}}void main(){int x[3]={0,4,4},y[15]={1,0,0,2,0,0,3,0,0,4,0,
0,9,9,9},a,b;while(y[2]!=1) {int f=-1,h=-1;d(y);while(f<1||f>3)scanf("%d",&f);
while(h<1||h>3)scanf("%d",&h);f--;h--;a=x[f];b=x[h];if(y[a*3+f]<y[b*3+h]){y[b*3
-3+h]=y[a*3+f];y[a*3+f]=0;x[f]++;x[h]--;}}d(y);}
0565564NGNG
#include 書いてもいけました

#include <stdio.h>
int*s,x[3]={0,4,4},y[15]={1,0,0,2,0,0,3,0,0,4,0,0,9,9,9},a,b,i,j,k,f,h;void d()
{s=y;for(i=4;i--;){for(j=3;j--;){if((*s)==0)printf("   ┃    ");else{
for(k=(4-*s);k--;)printf(" ");for(k=(*s)*2-1;k--;)printf("■");for(k=(5-*s);k
--;)printf(" ");}s++;}printf("\n");}}void main(){while(y[2]!=1){d();f=h=-1;
while(f<1||f>3)scanf("%d",&f);while(h<1||h>3)scanf("%d",&h);f--;h--;a=x[f];b=x[
h];if(y[a*3+f]<y[b*3+h]){y[b*3-3+h]=y[a*3+f];y[a*3+f]=0;x[f]++;x[h]--;}}d();}
0566デフォルトの名無しさんNGNG
<tt><script>m=[],x=y=2,a=Math;for(i=0;i<31;i++)for(j=0,m[i]=[];j<31;j++)m[i][j]=
(!i||!j||i==30||j==30)?0:1;m[x][y]=0;X=[],Y=[];i=0;do{if(!(c=m[x][y-2]+m[x+2][
y]+m[x][y+2]+m[x-2][y])){x=X[--i];y=Y[i]}X[i]=x;Y[i]=y;b=a.floor(a.random()*4);
if(b==0&&m[x][y-2])m[x][--y]=m[x][--y]=0,i++;if(b==1&&m[x+2][y])m[++x][y]=m[++x]
[y]=0,i++;if(b==2&&m[x][y+2])m[x][++y]=m[x][++y]=0,i++;if(b==3&&m[x-2][y])m[--x]
[y]=m[--x][y]=0,i++;}while(i||m[28][2]);for(i=0;i<31;i++)for(j=0;j<31;j++)
document.write((j?"":"<br>")+(m[j][i]?"■":" "));</script>

迷路
0567くりあきNGNG
http://strangeworld-honten.com/cgi-bin/bbs.cgi
あやわー本店もよろしく
0568デフォルトの名無しさんNGNG
ブロック崩しコンパイルできないぞ?
0569デフォルトの名無しさんNGNG
>>568
どのブロック崩し?それに、あなたの環境は?
あとCPPでコンパイルしてみたりした?
0570デフォルトの名無しさんNGNG
古い話で申し訳ないですが、>>410 さんいらっしゃいますか。
切符問題スクリプトを http://cm.xrea.cc/ に載せたいので
許可を頂きたいのですが。
0571410NGNG
ノシ
構いませんよ
413,416,432は私じゃないので念の為
0572デフォルトの名無しさんNGNG
パート2の途中から読んでないんだけど、
6行オセロに匹敵する名作が出ているなら教えて。
0573デフォルトの名無しさんNGNG
>>568

extern"C"{putchar(int);getch();exit(int);system(char*);}void r(int c){putchar(c
);}int main(){int m[30]={0},*n,x=5,q=1,w=4,o=1,p=1,g;for(;;){for(;g&128;g=getch
());x+=g-77?g-75?0:x?-1:0:1;q+=o;w+=p;o=q>8?-1:q?o:1;w>9?p=-1,w-=1,x-q?exit(0):
0:0;p=w?p:1;n=m+q+w*10;w<3&&*n-11?p=1,*n=11:0;system("cls");for(g=0;g<129;g++){
g>99||g%10?0:r(10);r(m+g-n?90+x-g?g<30?43-m[g]:32:95:46);}}}
0574デフォルトの名無しさんNGNG
>>573
bash-2.05b$ g++ -mno-cygwin block.cc
block.cc:1: error: ISO C++ forbids declaration of `putchar' with no type
block.cc:1: error: ISO C++ forbids declaration of `getch' with no type
block.cc:1: error: ISO C++ forbids declaration of `exit' with no type
block.cc:1: error: ISO C++ forbids declaration of `system' with no type
block.cc: In function `int main()':
block.cc:5: error: `r(int)(10)' has type `void' and is not a throw-expression
(´・ω・`)ショボーン
0575デフォルトの名無しさんNGNG
>>574
cでコンパイルすればよし…
つーかろくなもんじゃないよ。system("cls")とか最悪。
0576デフォルトの名無しさんNGNG
>575
環境依存なくできれば最高だけど
ゲームの性質からして無理なんじゃないかな。
0577デフォルトの名無しさんNGNG
>>576
まぁ575は無視するにしても、
環境依存するプログラムである瞬間に評価は下がってしまうよね。
たとえば574みたいに、せっかくコンパイルしてくれても
c++では動かない、Windowsでは動かない、みたいになっちゃうしね。

俺はincludeが無い瞬間にコンパイルしないけどね。
0578デフォルトの名無しさんNGNG
extern"C"{putchar(int);getch();exit(int);system(char*);}
って環境依存?
0579デフォルトの名無しさんNGNG
>578
何を聞いてるのかわからないが
"C"はまともな実装なら必ず使える
0580デフォルトの名無しさんNGNG
>>579
まぁ、"C"が使えなかったら、"C"++ じゃないからね…
0581デフォルトの名無しさんNGNG
>>580は突っ込みにくいネタ。
0582デフォルトの名無しさんNGNG
ブロック崩しっぽいもの。
cygwin + g++ で動いた。
g++ -Wall -O3 hogehoge.cc -lcurses
でコンパイル。
でも12行。

#include <curses.h> // argument1 means a seed of rand()
#include <cstdlib> // h: move to left, l: move to right
int a,i,u,e,o,c,m,k,q=1,w=1,N=80,X=40,Y=40;WINDOW*s;struct T{int x,y,f;void K()
{mvwprintw(s,y,x,"%c",f?'#':' ');}T(){x=rand()%(X-1);x=x?x:1;y=rand()%Y/4;y=y?y
:1;f=1;}};int main(int M,char**v){e=X-2;m=X/2;k=Y/2;o=a=X-9;u=Y-4;srand(atoi(v[
1]));initscr();noecho();cbreak();s=newwin(Y,X,0,0);box(s,'|','-');T g[N];while(
k<=u&&(c=wgetch(s))!='Q'){wrefresh(s);wtimeout(s,100);mvwaddch(s,k,m,' ');m+=q,
k+=w;if(m<2||m>e)q*=-1,m=m<2?2:e;if(k<2||m>=o&&m<o+8&&k>u-1)w*=-1,k=k<2?1:u-1;
for(;i<N;){T&F=g[i++];if(F.f&&(k-1==F.y||k+1==F.y)&&m==F.x)w*=-1,F.f=0;}mvwadd\
ch(s,k,m,'O');mvwprintw(s,u,o,"%8s"," ");if(c=='h'&&--o<2)o=1;if(c=='l'&&++o>a)
o=a;mvwaddstr(s,u,o,"========");for(;i>0;g[--i].K());wmove(s,0,0);}delwin(s);e\
ndwin();return 0;}
0583582NGNG
実行するときは
bash-2.05$ ./a.exe 4
みたいに引数に数字を指定して。

実行しても何も表示されなかったら
ウィンドウのサイズを大きくして。
0584デフォルトの名無しさんNGNG
>>582
winじゃダメなのかな。cursesが無いと出てまう。
0585デフォルトの名無しさんNGNG
>>584
cygwin入れてないの?
0586582NGNG
>>584
cygwin入れててもcurses関係のライブラリを
入れてなかったら文句言われます。
0587584NGNG
>>585>>586
よく分からん。VC6とBCC使っているけど、特別何かをいれたりはしていない。
0588デフォルトの名無しさんNGNG
>>584
http://www.mars.dti.ne.jp/~sohda/cygwin/setup.html
0589584NGNG
>>588
ありがとう。うまく機動できるかな。PHP、SDLとできなかったくちだし。
0590デフォルトの名無しさんNGNG
なんか名作出た?
0591デフォルトの名無しさんNGNG
ローマ字→ひらがな。スレ汚しごめん。(ん≡nn)

%B=(a,"あ",i,"い",u,"う",e,"え",o,"お",ba,"ば",bi,"び",bu,"ぶ",be,"べ",bo,"ぼ",
da,"だ",di,"ぢ",du,"づ",de,"で","do","ど",ga,"が",gi,"ぎ",gu,"ぐ","ge","げ",go,
"ご",ha,"は",hi,"ひ",hu,"ふ",he,"へ",ho,"ほ",ka,"か",ki,"き",ku,"く",ke,"け",ko,
"こ",la,"ぁ",li,"ぃ",lu,"ぅ","le","ぇ",lo,"ぉ",ma,"ま",mi,"み",mu,"む",me,"め",
mo,"も",na,"な",ni,"に",nu,"ぬ","ne","ね","no","の",pa,"ぱ",pi,"ぴ",pu,"ぷ",pe,
"ぺ",po,"ぽ",ra,"ら",ri,"り",ru,"る",re,"れ",ro,"ろ",sa,"さ",si,"し",su,"す",se,
"せ",so,"そ",ta,"た",ti,"ち",tu,"つ",te,"て",to,"と",wa,"わ",wo,"を",ya,"や",yu,
"ゆ",yo,"よ",za,"ざ",zi,"じ",zu,"ず",ze,"ぜ",zo,"ぞ",nn,"ん",lya,"ゃ",lyu,"ゅ",
lyo,"ょ","\n"=>"\n");
open(fh,"aiu.dat");for(1..40){ $in="";&A;if(!$B{$in}){&A;if(!$B{$in}){&A;if(!$B{
$in}){print $in;}}}print $B{$in};}close(fh);sub A{read(fh,$temp,1);$in.=$temp;}
0592デフォルトの名無しさんNGNG
>>591 行数減らせそうだね
0593デフォルトの名無しさんNGNG
>>591 過去ログ調べてないから既出かもしれないが面白そうだ

$m='aあiいuうeえoおbaばbiびbuぶbeべboぼdaだdiぢduづdeでdoどgaがgiぎguぐgeげgo'
.'ごhaはhiひhuふheへhoほkaかkiきkuくkeけkoこlaぁliぃluぅleぇloぉmaまmiみmuむm'
.'eめmoもnaなniにnuぬneねnoのpaぱpiぴpuぷpeぺpoぽraらriりruるreれroろsaさsiし'
.'suすseせsoそtaたtiちtuつteてtoとwaわwoをyaやyuゆyoよzaざziじzuずzeぜzoぞnn'
.'んlyaゃlyuゅlyoょ'%M=split/(\W+)/,$m;open(FH,"aiu.dat");
while(&F){if((join'',@B)=~/^([bcdghjklmnrstwx]?[yh]?[aiueon])/i&&$M{$1}){
print$M{$1};splice(@B,0,length($1))}else{$_=shift(@B);$_='ん'if($_ eq'n');
print}}sub F{$_=2-$#B;$_?(read(FH,$_,$_),push(@B,split//,$_),$_ ne''):1}

もう寝るから誰かがやるToDo:促音対応とかテーブルの充実・圧縮・7行化
0594デフォルトの名無しさんNGNG
あ、nが大文字だと駄目だこれ(´・ω・`)
0595デフォルトの名無しさんNGNG
つーかそれ以前に(ry
0596デフォルトの名無しさんNGNG
C言語でかな変換

っ,rya,voなど未対応の、1文字||2文字→1文字まで。
何も考えてないので、機能アップと短くするのはおまかせで。

#include <stdio.h>
int c,d,i,j,f,g;char*s="aiueokstnhmyrwgzdbpl",*h="あいうえおかきくけこさしすせ"
"そたちつてとなにぬねのはひふへほまみむめもやいゆえよらりるれろわゐ ゑをがぎ"
"ぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽぁぃぅぇぉ";void p(int i,int j){
putchar(h[i*10+j*2]);putchar(h[i*10+j*2+1]);}void P(int c){if(c=='n')printf(
"ん");else putchar(c);}int main(){c=getchar();d=-1;for(;~c;){f=0;for(i=20;!f*i
--;)if(s[i]==c){f=1;}if(f){if(g){if(i>3){g=1;P(d);}else{p(j-3,i+1);c=-1;g=0;}}
else{if(i>3){g=1;if(d>=0)P(d);}else{if(d>=0)P(d);p(0,i+1);c=-1;g=0;}}}else{if(d
>=0)P(d);g=0;}d=c;c=getchar();j=i;}return 0;}
0597デフォルトの名無しさんNGNG
違うアプローチで。た行が難しい・・・。
pack使ってる2行をまとめれば5行だと思う。けどもうマンドクサ(;´Д`)誰かやって。

%V=(a,0,i,1,u,2,e,3,o,4);%C=(n,[C8,1],r,[E7,1],k,[A9,2],g,[AA,2],z,[B4,2],h,[CD,
3],b,[CE,3],p,[CF,3],w,[ED,3/4],y=>[E2,1],m=>[DC,1],s=>[B3,2]);$v='aiueo';while(
<>){s/n([^$v])/ん$1/g;s/[xl]tu/っ/g;s/([td])([$v])/qw(た ち つ て と だ ぢ づ で
ど)[($1eq"d")*5+$V{$2}]/eg;s/([xl])?([^$v])([$v])/pack(C,130).pack(C,hex($C{$2}[
0])+$C{$2}[1]*$V{$3}-(!!$1))/eg;s/([xl])?([$v])/pack(C,130).pack(C,160+$V{$2}*2-
(!!$1))/eg;print;}
0598デフォルトの名無しさんNGNG
C言語版13行 orz

#include <stdio.h> /* Cdemodekitayo,ve-xtuhaxtuha kyawoxyaxa ltaltu */
int c,d,e,i,j,k,f,g;char*s="aiueolxwytksnhmrgzdbpv",*h="あいうえおぁぃぅぇぉぁ"
"ぃぅぇぉわゐうゑをやいゆえよたちつてとかきくけこさしすせそなにぬねのはひふへ"
"ほまみむめもらりるれろがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽゃぃ"
"ゅぇょっヴヴ";void P(int c){if(c=='n')printf("ん");else if(c>=0)putchar(c);}
void p(int i,int j){for(i=i*10+j*2,j=2;j--;)putchar(h[i++]);}int main(){for(c=
getchar();;){for(i=22;i--;)if(f=s[i]==c)break;if(f){f=0;if(g==7&&i==2){p(18,0);
}else if(g==4&&k==21){p(18,1);p(17,i);}else if(i<5){if(g==7){P(e);p(5,i);}else
if(g==5){p(1,i);}else if(g==3&&j==21){p(18,1);p(1,i);}else{if(g==4||g==6){if(g
==4)p(k-4,1);p(17,i);}else{p(g?j-4:0,i);}}}else if((g==5||g==3)&&i==8)f=g+1;
else if(g==5&&i==9)f=7;else{if(g==4||g>5)P(e);if(g)P(d);if(i<7)f=5;else if(i<9)
f=1;else f=3;}}else{if(g==4||g==6)P(e);if(g)P(d);P(c);}g=f;if(c<0)break;e=d;d=c
;c=getchar();k=j;j=i;}return 0;}
0599デフォルトの名無しさんNGNG
#include <stdio.h> /* Cdemodekitayo,ve-xtuhaxtuha kyawoxyaxa ltaltu */
int c,d,e,i,j,k,f,g;int p(int i,int j){for(i=i*10+j*2,j=2;j--;)putchar("あいう"
"えおぁぃぅぇぉわゐうゑをやいゆえよたちつてとかきくけこさしすせそなにぬねのは"
"ひふへほまみむめもらりるれろがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺ"
"ぽゃぃゅぇょっヴん"[i++]);return 0;}void P(int c){c=='n'?p(17,2):c>=0?putchar(
c):0;}int main(){for(c=getchar();;){f=0;for(i=22;!f&&i--;)f="aiueolxwytksnhmrg"
"zdbpv"[i]==c;f=f?g==7&&i==2?p(17,0):g==4&&k==21?p(17,1),p(16,i):i<5?g==7?P(e),
p(4,i):g==5?p(1,i):g==3&&j==21?p(17,1),p(1,i):g==4||g==6?g==4?p(k-5,1):0,p(16,i
):p(g?j-5:0,i):(g==5||g==3)&&i==8?g+1:g!=5||i!=9?P(g==4||g>5?e:-1),P(g?d:-1),i<
7?5:i<9?1:3:7:(P(g==4||g==6?e:-1),P(g?d:-1),P(c),0);g=f;if(c<0)break;e=d;d=c;c=
getchar();k=j;j=i;}return 0;}

>>598縮めた
0600デフォルトの名無しさんNGNG
$v=aiueo;%V=(a,0,i,1,u,2,e,3,o,4,n,41);%C=(d,[BF,2],t,[BE,2],a,[A0,2],n,[C8,1],r
,[E7,1],k,[A9,2],g,[AA,2],z,[B4,2],h,[CD,3],b,[CE,3],p,[CF,3],w,[ED,3/4],y=>[E2,
1],m=>[DC,1],s=>[B3,2]);while(<>){s/j([^i])/zy$1/g;s/f([^u])/hux$1/g;
s/([knhmrgbpsctz])(?:y|h)([auo])/$1ixy$2/g;s/([^n])n([^n$v])/$1nn$2/g;
s/([^n$v])\1/xtu$1/g;tr/lfcj/xhtz/;s/(s|t)h/$1/g;s/(nn|[^$v]*[$v])/($p=$1)=~s
!^(x)?([$v])!$1a$2!;$p=~m!(x)?(.)?(.)!;pack(S,(hex($C{$2}[0])+$C{$2}[1]*$V{$3}-
(!!$1)-($p=~m![td][ai]!))*256+130);/eg;print;}

ぐぅ。。。わけわかめ(;´Д`)

できる(と思う)もの
・「n」の処理(anko→「あんこ」annko→「あんこ」annnnko→「あんんこ」)
・促音(atta→あった)
・拗音(kya→きゃ,[knhmrgbps])
・変な奴(sha,cha,cya,ja,fa)は中途半端に対応してるかも

annna→あんな
juujituyasai
fakkuyu

できないもの
・tsuはできない
0601593NGNG
11行。テーブルで依存少ないって事で (;´Д`)

@T=split/(\W+)/,'Yじxふxう_あいうえおkかきくけこcかちくせこgがぎぐげごsさし'.
'すせそzざじずぜぞjじじfふtたちつてとdだぢづでどnなにぬねのhはひふへほbばび'.
'ぶべぼpぱぴぷぺぽmまみむめもyやいゆえよrらりるれろwわゐうゑをxぁぃぅぇぉYゃ'
.'ぃゅぇょTたちってと';my@B;%T=@T[6..99];$T{'l'}=$T{'x'};$s=join'',keys%T;$b=
'[aiueo]';while(&F){$_=&S;if(&B=~/[xl]t $b/){$_='T';&S}if(&B=~/[cs]h i|ts u/)
{&S}$o='j'eq$_?0:'f'eq$_?2:4,($_,$p)=@T[$o..9],$o==4&&S(),print$p if(&B=~
/j[aueo]|f$b|wh $b/);if(&B!~/nh/&&B()=~/^([$s])?([yh] )?($b)/){if($2&&'x'ne$1
){$k=$1;$n=&B=~/th/?3:1,@B=(qw(x y),$_=pop@B)}else{$n=-1+index$b,$3;$1&&S();$
k=$2?(&S,'Y'):$1?$1:'_'}$_=substr($T{$k},$n*2,2)}else{$_='n'eq$_?($B[0]eq'n'
&&S(),'ん'):'っ'if(&B=~/^([$s])\1|^n/s);}print}sub F{$_=2-$#B;$_?(read(STDIN,
$_,$_),push(@B,split//,lc$_),''ne&B):1}sub B{"$_@B"}sub S{shift@B}

jiyuuminshu syakai fifa fyo = じゆうみんしゅ しゃかい ふぃふぁ
anko annko annnko annnnko an = あんこ あんこ あんんこ あんんこ あん
nyaxan jyuzu chikyuu totyuu thuu = にゃぁん じゅず ちきゅう とちゅう てゅう
omotya ocha whizudamu xaxtulaltu = おもちゃ おちゃ うぃずだむ ぁっぁっ
juujitu jyuusu fakkuyu = じゅうじつ じゅうす ふぁっくゆ
bagu: xha fyo = ばぐ: ゃ ょ
0602デフォルトの名無しさんNGNG
七行プログラミング・テクニックメモ (for Perl)
http://cm.xrea.cc/techinfo.cgi
0603デフォルトの名無しさんNGNG
文字コードをうまく使えたら "あいう…"なんてスペースが削れるんだがな・・・
0604デフォルトの名無しさんNGNG
597とは別の方法ってことかな。EUC-JPでも動くような
0605デフォルトの名無しさんNGNG
>>603-604
EUC,SJISでよければ、両対応も難しくなさそうですな。
0606デフォルトの名無しさんNGNG
7行XMLパーサ、などと難題をふっかけてみる。
0607デフォルトの名無しさんNGNG
textfile.orgで7行wiki紹介されててビクーリ
0608デフォルトの名無しさんNGNG
へた字変換にチャレンジ
0609デフォルトの名無しさんNGNG
>>606
sub sox{($d,$s,$e)=@_;$t=1;@d=split//,$d;O:for($C=$E=$A=$V='',@A=();($_=shift
@d)ne'';){$n=0;if($t&1){/</?$n=$d[0]eq'/'?((shift@d),4):1:$C.=$_}/>/?$t=4:$E
.=$_ if($t&16);if($t&128){$t=8 if(!/\s/)}if($t&14){if(/>|\//){($t&4?$e:$s)->(
$C,$E,@A);(/\//&&$t&2&&''ne$E)?$t=4:($t=1,goto O)}}if($t&2){/\s/?$n=2:$E.=$_}
if($t&8){/=/?$n=2:$A.=$_}$n=1,($_=~/["']/)?$q=$_:($V.=$_,$q='\s')if($t&32);
/$q/?(@A=(@A,$A,$V),$n=1,$A=$V=''):($V.=$_)if($t&64);$t<<=$n}}

# デモ
$start = sub { my($cont,$elem,@attr)=@_;
$cont=~tr/\n//d;print"$idt:$cont\n"if($cont ne'');
print"$idt<$elem>\n";
while($#attr>=0){printf("$idt %s: %s\n",shift@attr,shift@attr)}
$idt.=' ';
};
$end = sub { my($cont,$elem)=@_;
$cont=~tr/\n//d;print"$idt:$cont\n"if($cont ne'');
$idt=substr($idt, 4);
print"$idt</$elem>\n";
};
sox(<<'END_XML', $start, $end);
<html><head><title>7行XMLパーサ</title></head>
<body style="background=#FFF;color=#000">
<p>暇に任せて<em>SOXパーサ</em>(sox関数が6行)です (<a
href='http://pc2.2ch.net/test/read.cgi/tech/1051703369/l50'
title="七行プログラミング part4">投稿先</a>)</p><hr/>
<p>実体参照使用不可。大ざっぱにWell-formedな<acronym>XML</acronym>を
対象にしていますが、validateは無理。=の前後のスペースに弱いです。</p>
<p>疲れた (;´Д`)</p>
</body></html>
END_XML
0610デフォルトの名無しさんNGNG
デモの$idt.=' ';はスペース4つで
0611デフォルトの名無しさんNGNG
>>608
へた字ってなに?フォント名?
それとも、所謂クサチュー語(最近では"ギャル語")のこと?
0612608NGNG
>>611
もちろん、ぎゃるご
0613デフォルトの名無しさんNGNG
>>609
縮め。

sub sox{($d,$s,$e)=@_;$t=1;@d=split//,$d;O:for(($C,$E,$A,$V,@A)=();($_=shift@d)
ne'';){$n=0;/</?$n=$d[0]eq'/'?(shift@d,4):1:$C.=$_ if$t&1;/>/?$t=4:$E.=$_ if$t&
16;/\s/ or$t=8if$t&128;($t&4?$e:$s)->($C,$E,@A),(m|/|&&$t&2&&''ne$E)?$t=4:($t=1
,goto O)if$t&14&&/>|\//;/\s/?$n=2:$E.=$_ if$t&2;/=/?$n=2:$A.=$_ if$t&8;$n=1,
/["']/?$q=$_:($V.=$_,$q='\s')if$t&32;/$q/?(@A=(@A,$A,$V),$n=1,$A=$V=''):($V.=$_
)if$t&64;$t<<=$n}}

別アプローチ。

use strict;sub P{my($t,@t)=pop;while($t=~m!<([^\s>]+)([^>]+)?>(.*?)</\1>|([^<]+
)!gsx){my($E,$A,$C,$c,%A)=($1,$2,$3,$4);($A{$1}=$2)=~s/^(["'])(.*)\1\z/$2/while
$A=~/(\S+?)=("[^"]*"|'[^']*'|\S+)/gs;push@t,""ne$E?{e=>$E,a=>\%A,c=>P($C)}:$c}\
@t}sub S{my($t,$i)=@_;for(@{$t}){if(ref){no strict"vars";local($E,*A,$C)=@{$_}{
e=>a=>'c'};print"$i$E>\n",map"$i $_=$A{$_}\n",sort keys%A;S($C,$i." ")}else{s/
(?<=\n)./$i$&/gx;s/\s+\z//;print"$i$_\n"}}}

S P <<'XML';
...
XML

うーん。
0614デフォルトの名無しさんNGNG
あーん。
0615デフォルトの名無しさんNGNG
>>612
とりあえず辞書キボン
0616デフォルトの名無しさんNGNG
ttp://members.at.infoseek.co.jp/pontamiki/p4/p2.htm
0617デフォルトの名無しさんNGNG
>>612
ギャル語じゃなくてギャル字だろ?
0618デフォルトの名無しさんNGNG
ギャル語の変換なんて到底無理だ。
ギャル字ならなんとかなるんじゃないか?
というわけでギャル字辞書キボン
0619デフォルトの名無しさんNGNG
新入りでもうだめぽ。っていうか疲れた。スレ汚しごめん

#include <stdio.h>
char j[]="あいうえおー。、なまらぁかがさざはばぱただゃやかわじふ",e[]=
"aiueo-.,nmrlkgszhbptd ycwjf",i,f=0,c,d=0;void p(int x,int y){if(y==21&&x==1)
return;putchar(j[y*2]);if(y>=11)y<16?x*=2:y<19?x*=3:y<21&&x<2?x*=2:y<21?x*=2,
x++:y<22&&x==3?x=6,y=11:y<23?0:y<24&&(x==1||x==3)?x*=2,y=14:y<24?x*=2:y==24&&x
==4?x=3:0;putchar(j[y*2+1]+x-f);}int main(){while(i=getchar()){c=0;while(e[c]
!=i&&e[c]!=0)c++;if(c==27){if(d==8)puts("ん"),d=0;continue;}if(d==0)c>=8?d=c:
putchar(j[c*2])+putchar(j[c*2+1]);else if(c>=8)d==8?fputs("ん",stdout),c-d?d=c
:d=0:c==d?fputs("っ",stdout):d==10?f=1,d=c:c==16&&d==23?p(1,19),d=21:c==22?p(1
,d),d=21:0;else{d==25?p(1,15),d=21:0;if(d==26){p(2,16);d=11;if(c==2){d=f=0;
continue;}}p(c,d);d=f=0;}}return 0;}
0620619NGNG
↑とりあえず一通りの変換できます(、。ーもね)が、
jyaとか3文字系は一部わけわからん出力になりますw
0621デフォルトの名無しさんNGNG
>>619
puts("ん"); はだめだべ…
0622デフォルトの名無しさんNGNG
オンドゥル語変換プログラムを7行でキボン。>ALL

そんなこと→ドンドコドーン、悪人→ルンゲン
等、特殊なものも変換できる
(または、新単語をカスタマイズできる)
ような奴がベストです。
0623デフォルトの名無しさんNGNG
規則性あるのか?
0624デフォルトの名無しさんNGNG
・膨大な辞書ファイルを作って置き換え
・ローマ字に分解して母音を改竄し、片仮名に再変換
とか考えられるが、どちらにしても7行に収めるのは
つらいと思われ。
0625デフォルトの名無しさんNGNG
ギャル字ってのは、秀マクロのクサチュー語変換マクロを
使っていろいろしないと どんな文字かも忘れますた
0626609NGNG
>>613
気づいてたみたいだけど609はSOXじゃなくてSAXだった∧||∧
0627デフォルトの名無しさんNGNG
#include <windows.h>
int j,l,u;UCHAR*p,*r,*s;char*t="ラィイゥルェエォオカaキaクaケaコacザ\0cザ\0シaスaセaソaタacディ\0cチ"\
"゙\0ッツaテcディ\0cドゥ\0cド\0ナルヌネノハcャー\0cパ\0ヒabフabヘabオabマミムメモャヤュユョヨラリルレロワワイエヲン",o[9\
99],q[999];int main(c,v)char**v;{HWND w=CreateWindow("STATIC",0,0,0,0,1,1,0,0,0,0
);HIMC i=ImmGetContext(w);HKL k=GetKeyboardLayout(0);ImmGetConversionList(k,i,v[1
],(CANDIDATELIST*)o,999,2);p=(UCHAR*)(&o[0]+*((CANDIDATELIST*)o)->dwOffset);ImmR\
eleaseContext(w,i);for(c=0,s=q;c<strlen(p);c+=2){if((u=p[c]*256+p[c+1])>33439&&u<
33522){for(l=0,r=t;l<u-33440;l++)r+=(*r-99)?1:strlen(r)+1;*s=(*r-97)?*r-98?*r:(*(
s+1)=223,*(r-2)):(*(s+1)=222,*(r-1));s+=(*r-97)?*r-98?*r-99?1:(strcpy(s,r+1),str\
len(r)-1):2:2;}else{memcpy(s,p+c,2);s+=2;}}puts(q);return 0;}

簡単なオンドゥル語変換プログラム
10行だし激しくOS依存だけど∧||∧
たまに変な変換をしてくれます
0628デフォルトの名無しさんNGNG
%wor=("はいる","1","かえる","1","はしる",1,"しる","1","いる","1",
"きる","1","ける","1","へる","1","ちる","1","てる","1","しゃべる","1",
"まいる","1","あせる","1","かじる","1","まじる","1","なじる","1",
"よじる","1","あじる","1","しくじる",1,"ねぎる","1","かぎる",1,
"ちぎる","1","くぎる",1,"とちる","1","ねる",1);
open(f,"in")@t=<f>;@l=();$cau=0;foreach $b(@t){$b=~ s/\n//;
if($b eq "くる" || $b =~ /する$/ || $b =~ /ずる$/){
if($b eq "くる"){$b = "こ こ き くる くれ (こい|こよ) こ";}
elsif($b =~ /する$/){$b =~ s/する$//;
$b = "$bし $bさ $bし $bする $bすれ $b(しろ|せよ) $bし";}
elsif($b =~ /ずる$/){$b =~ s/ずる$//;
$b = "$bじ $bじ $bじ $bずる $bずれ $bずよ $bじ";}}elsif($b !~ /る$/){
if($b =~ /う$/){$b =~ s/う//;$b ="$bわ $bわ $bい $bう $bえ $bえ $bお";}
elsif($b=~ /く$/){$b=~ s/く//;$b="$bか $bか $bき $bく $bけ $bけ $bこ";}
elsif($b=~ /す$/){$b=~ s/す//;$b="$bさ $bさ $bし $bす $bせ $bせ $bそ";}
elsif($b=~ /つ$/){$b=~ s/つ//;$b="$bた $bた $bち $bつ $bて $bて $bと";}
elsif($b=~ /ぬ$/){$b=~ s/ぬ//;$b="$bな $bな $bに $bぬ $bね $bね $bの";}
elsif($b=~ /ふ$/){$b=~ s/ふ//;$b="$bは $bは $bひ $bふ $bへ $bへ $bほ";}
elsif($b=~ /む$/){$b=~ s/む//;$b="$bま $bま $bみ $bむ $bめ $bめ $bも";}
elsif($b=~ /ぐ$/){$b=~ s/ぐ//;$b="$bが $bが $bぎ $bぐ $bげ $bげ $bご";}
elsif($b=~ /ず$/){$b=~ s/ず//;$b="$bざ $bざ $bじ $bず $bぜ $bぜ $bぞ";}
elsif($b=~ /づ$/){$b=~ s/づ//;$b="$bだ $bだ $bぢ $bづ $bで $bで $bど";}
elsif($b=~ /ぶ$/){$b=~ s/ば//;$b="$bば $bば $bび $bぶ $bべ $bべ $bぼ";}
}elsif($b !~ /(い|き|し|ち|に|ひ|み|り|え|け|せ|て|ね|へ|め|れ)る$/){
$b =~ s/る$//;$b = "$bら $bら $bり $bる $bれ $bれ $bろ";
}elsif(!$wor{$b}){$b =~ s/る$//;$b="$b $b $b $bる $bれ ($bよ|$bろ) $b";
}else{$b =~ s/る$//;$b="$bら $bら $bり $bる $bれ $bれ $bろ";
}$l[$cau] = $b."\n";$cau++;}open(f,">out");print f @l;
0629628NGNG
動詞変換、
ttp://www.ipa.go.jp/STC/NIHONGO/IPAL/ipal.html(辞書)
ttp://homepage3.nifty.com/taketoki/flow.html(フローチャート)
未然(否定、使役&受身)連用形 終止&連体形 仮定形 命令形 未然形
0630HSPNGNG
#include "hspext.as"
emath 10:pos 252,186 :mes "@":pos 190,60 :mes "◎       ◎"
repeat 1024: emcos xt,cnt-128/2: emsin yt,cnt-128/2: emsin xb,cnt+32
emsin xm,cnt/2: pset xt/20+206,yt/20+50: pset -xt/20+306,yt/20+50
emcos xo,cnt/7-10: pset xb/50+176,cnt/4+95: pset -xb/50+336,cnt/4+95
emsin yo,cnt/7-10: pset xo/9+332,yo/18+240: pset -xo/9+180,yo/18+240
pset xm/120+246,cnt/13+275: pset -xm/120+266,cnt/13+275: loop: stop
0631HSPNGNG
#include "hspext.as"
emath 10:pos 253,186:mes"6":pos 190,60:mes"@":repeat 1024:rnd r,20
s=r*r/12+1:c=cnt:emcos t,c-128+(s*61):emsin u,c-128+(s*61):emsin a,c+32
emsin m,c/2-s:emsin y,c+s/7-(s/2):emcos x,c+s/7-(s/2)
pset t/20+206+s,u/20+50-s:pset m/120+249-s,c/13+279-s+(c*s/1000)
pset a/50+176+s,c/4+95:pset x/9+330+(s*2),y/18+240+(s)
loop:repeat 100:pos 359-cnt,0:gcopy 0,cnt+156,0,1,479:loop:stop
0632HSPNGNG
#include "hspext.as"
repeat 7:rnd x,640:rnd y,480:c=255:cn=0:xx=0:yy=0
rnd h,256:rnd l,40:repeat l+40:rnd kn,6:rnd hh,20
hx=hh-10:emcos xp,hx:emsin yp,hx:repeat kn:cn=cn+1:h=h+hx
emcos xh,h:emsin yh,h:xx=xx+xh:yy=yy+yh:if cn<33:c=255-(cn*8)
color c,c,c:pset xx/256+x,yy/256+y
loop:loop:loop:stop
0633デフォルトの名無しさんNGNG
#!/usr/bin/perl
while(<DATA>){tr/A-Za-z0-9+\///cd;tr/A-Za-z0-9+\// -_/;
$a.=unpack(u,pack(c,32+0.75*length).$_);}eval$a;
__END__
JF89J0lJSElnY2dLS04rRVJOOHBJSUdEU0ZOUWtNQ0N3WUxFZ3VhQ3RRbz0nO3RyL0EtWmEtejAt
OStcLy8vY2Q7dHIvQS1aYS16MC05K1wvLyAtXy87cHJpbnQgdW5wYWNrKHUscGFjayhjLDMyKzAu
NzUqbGVuZ3RoKS4kXyk7
0634雪ん子NGNG
将棋。力不足でまだ3倍近くあるが不要なエラーチェックなどはまだまだ縮まる。
ポインタの使い方が不得意なんで配列どっさり∧||∧
使い方は数字4文字をFrom Toで座標的にみれ。ただし先手が上(ぇ
p(駒番号)Toの4文字で駒を鬱。
駒番号は歩1〜飛車7までだ。
表示の日本語はポリシーなんで削りませんでした。

#include <stdio.h>
char *k=" \0歩\0香\0桂\0金\0銀\0角\0飛\0王\0",d[81]={2,3,4,5,8,5,4,3,2,0,7},h\
[64],b[9],t,i,j,u,m,v,s,*p;bool C(){m=d[i];u=d[j];if(j>81||i>81||j==i||u==0||(\
m&&m>>5==u>>5)||(u&32)!=t)return false;m=j-i;s=t/16-1;m*=s;s=u%32;if((s==1&&m=\
=9)||(s==3&&(m==19||m==17))||(s==4&&((7<m&&m<11)||m==-8||m==-10))||((s&8||21<s)
&((7<m&&m<11)||m==1||(-7<m&&m<-11)||m==-1)))goto l;if(s==5||(16<s&&s<22)){if((\
7<m&&m<11)||m==1||m==-1||m==-9)goto l;}else{v=j;do{if(s%16==6)v+=(b[2]>*b?1:-1
)+(b[3]>b[1]?9:-9);if(s%16==7)v+=(m%9)?(j>i?-1:1):(j>i?-9:9);if(s==2&&m&&m%9==0
)v+=(t?-9:9);}while(v!=i&&!d[v]);if(v==i)goto l;}return false;l:for(m=t;m<t+20;
m++)if(h[m]==0){h[m]=d[i]%16;break;}d[j]=0;d[i]=u;if(s<8&&((t==0&&j>53&&i<54)||
(t==32&&i<27&&j>26))){m=0;puts("成りますか?(y/n)");while(m!=121&&m!=110)scanf(
"%c",&m);if(m==121)d[i]+=16;}return true;}
0635雪ん子NGNG
上の続き

void main(){d[16]=6;for(i=18;i<27;)d\
[i++]=1;for(i=0;i<28;i++)d[80-i]=d[i]+(d[i]?32:0);for(;;){p=d;for(i=0;i<81;){u\
=*p++;j=u%16;m=(u&16)>>4;u>>=5;if(!j)u = 2;printf("|%c%s%c",m?43:32,k+j*3,u>1?
32:(!u?94:95));if(i++%9==8)puts("|\n");}puts("先手:");for(i=0;i<64;){if(h[i])
printf("%s",k+h[i]*3);if(i++==30)puts("\n後手:");}printf("\n%s入力\n",t?"後手"
:"先手");scanf("%4s",b);for(i=0;i<4;)b[i++]-=49;b[2]=8-b[2];i=b[2]+b[3]*9;if(*b
==63){j=b[1];if(i>81||d[i])continue;if(j==1)for(u=i%9;u<80;)if(d[u+=9]==j+t)co\
ntinue;for(u=0;u<32;u++)if(h[t+u]==j){h[t+u]=0;d[i]=j+t;t=32-t;}}else{j=8-*b+b\
[1]*9;if(C())t=32-t;}for(i=0;i<64;)if(h[i++]==8)return;}}
0636雪ん子NGNG
角動かんし
金変な動きするし直します。
0637デフォルトの名無しさんNGNG
>>634-635
bool, true, false → int, 1, 0
(A&&B)||(C&&D) → A&&B||C&&D
(A式)?(B式):(C式) → A式?B式:C式
括弧はかなり減らせそう

1 後置演算子
2 前置演算子
3 キャスト
4 * / %
5 + -
6 << >>
7 < <= > >=
8 = !=
9 &
10 ^
11 |
12 &&
13 ||
14 ? :
15 = 代入演算子
16 ,
0638雪ん子NGNG
#include <stdio.h>
char *k=" \0歩\0香\0桂\0銀\0金\0角\0飛\0王\0",d[81]={2,3,4,5,8,5,4,3,2,0,7},h\
[64],b[9],t,i,j,u,m,v,s,*p;int C(){m=d[i];u=d[j];if(j>81||i>81||j==i||u==0||m&&
m>>5==u>>5||(u&32)==t)return 0;m=j-i;m*=-t/16+1;s=u%32;if(s==1&&m==9||s==3&&(m
==19||m==17)||s==4&&(7<m&&m<11||m==-8||m==-10)||(s&8||21<s)&&(7<m&&m<11||m==1||
-7<m&&m<-11||m==-1))goto l;if(s==5||16<s&&s<22){if(7<m&&m<11||m==1||m==-1||m==
-9)goto l;}else{v=j;do{if(s%16==6&&(m%8==0||m%10==0))v+=(b[2]>*b?1:-1)+(b[3]>b\
[1]?9:-9);if(s%16==7)v+=m%9?j>i?-1:1:j>i?-9:9;if(s==2&&m&&m%9==0)v+=t?9:-9;}wh\
ile(v!=i&&!d[v]);if(v==i)goto l;}return 0;l:for(m=32-t;m<64-t;m++)if(h[m]==0){
h[m]=d[i]%16;break;}d[j]=0;d[i]=u;if(s<8&&(t&&j>53&&i<54||!t&&i<27&&j>26)){put\
s("成る?y/n");for(m=0;m!='y'&&m!='n';scanf("%c",&m));if(m=='y')d[i]+=16;}retu\
rn 1;}void main(){d[16]=6;for(i=18;i<27;)d[i++]=1;for(i=0;i<28;i++)d[80-i]=d[i]
+(d[i]?32:0);for(;;){p=d;for(i=0;i<81;){u=*p++;j=u%16;m=(u&16)>>4;u>>=5;if(!j)
u=2;printf("|%c%s%c",m?43:32,k+j*3,u>1?32:(!u?94:95));if(i++%9==8)puts("|\n");}
printf("先手:");for(i=63;i;){if(h[i])printf("%s",k+h[i]*3);if(i--==30)printf(
"\n後手:");}printf("\n%s手入力\n",t?"後":"先");scanf("%4s",b);for(i=0;i<4;)b[
i++]-=49;b[2]=8-b[2];i=b[2]+b[3]*9;if(*b==63){j=b[1]+1;if(i>81||d[i])continue;
if(j==1)for(u=i%9;u<81;)if(d[u+=9]==j+t)continue;for(u=32-t;u<64-t;u++)if(h[u]
==j){h[u]=0;d[i]=j+t;t=32-t;}}else{*b=8-*b;j=*b+b[1]*9;if(C())t=32-t;}for(i=0;
i<64;)if(h[i++]&8)return;}}

へたれだからこれ以上括弧へらせない。バグ修復済み
0639雪ん子NGNG
15行目のfor(i=63;i;)じゃなくてfor(i=63;i+1;)
0640デフォルトの名無しさんNGNG
お、すごいね。
起動後は下の手番で、右下の香車を1マス前に動かすなら
「 1918 」って入力するんだね。
後手(下)の駒は _ 先手の駒は ^ がついて
成ると左に+が付くと。

すごいなこれ。
0641雪ん子NGNG
#include <stdio.h>
char *k=" \0歩\0香\0桂\0銀\0金\0角\0飛\0王",d[81]={2,3,4,5,8,5,4,3,2,0,7},h[64]
,b[9],a=32,c=16,t,i,j,u,m,v,s,*p;int C(){m=d[i];u=d[j];if(j>81||i>81||j==i||u==0
||m&&m>>5==u>>5||(u&a)==t)return 0;m=j-i;m*=-t/c+1;s=u%a;if(s<2&&m==9||s==3&&(m
==19||m==17)||s==4&&(7<m&&m<11||m==-8||m==-10)||(s&8||21<s)&&(7<m&&m<11||m==1||
-7<m&&m<-11||m==-1))goto l;if(s==5||c<s&&s<22)if(7<m&&m<11||m==1||m==-1||m==-9)
goto l;else{v=j;do{if(s%c==6&&(m%8==0||m%10==0))v+=(b[2]>*b?1:-1)+(b[3]>b[1]?9:
-9);if(s%c==7)v+=m%9?j>i?-1:1:j>i?-9:9;if(s==2&&m&&m%9==0)v+=t?9:-9;}while(v!=i
&&!d[v]);if(v==i)goto l;}return 0;l:for(m=a-t;m<64-t;m++)if(!h[m]){h[m]=d[i]%c;
break;}d[j]=0;d[i]=u;if(s<8&&(t&&j>53&&i<54||!t&&i<27&&j>26)){puts("成る?y/n")
;for(m=0;m!='y'&&m!='n';scanf("%c",&m));if(m=='y')d[i]+=c;}return 1;}void main()
{d[c]=6;for(i=18;i<27;)d[i++]=1;for(i=0;i<28;i++)d[80-i]=d[i]+(d[i]?a:0);for(;;)
{p=d;for(i=0;i<81;){u=*p++;j=u%c;m=(u&c)>>4;u>>=5;if(!j)u=2;printf("|%c%s%c",m?
43:a,k+j*3,u>1?a:!u?94:95);if(i++%9==8)puts("|\n");}printf("先手:");for(i=63;i
+1;){if(h[i])printf("%s",k+h[i]*3);if(i--==a)printf("\n後手:");}printf("\n%s手\
入力\n",t?"後":"先");for(i=0;i<64;)if(h[i++]&8){printf("%s手の勝利",i<a?"後":
"先");return;}scanf("%4s",b);for(i=0;i<4;)b[i++]-=49;b[2]=8-b[2];i=b[2]+b[3]*9;
if(*b==63){j=b[1]+1;if(i>81||d[i])continue;if(j==1)for(u=i%9;u<81;)if(d[u+=9]==
j+t)continue;for(u=a-t;u<64-t;u++)if(h[u]==j){h[u]=0;t=a-t;d[i]=j+t;}}else{*b=
8-*b;j=*b+b[1]*9;if(C())t=a-t;}}}

バグ修正ばかりで7行見えてくる気配がない。
これで最後かな?
0642デフォルトの名無しさんNGNG
if(j==1)for(u=i%9;u<81;)if(d[u+=9]==j+t)continue;
↑って何を意図してるの?
0643デフォルトの名無しさんNGNG
continueは一番内側のブロックから抜ける、だったっけ?
一番内側のfor,while,do-while文から抜ける、だったっけ?
0644雪ん子NGNG
>>642
二歩のチェックです。
ルールあんまりわかんないんですが

if(j==1)
歩をうつとき
for(u=i%9;u<81;)
同じ列を探して
if(d[u+=9]==j+t)continue;
自分の歩があったらコンテニュー

ということです。
0645雪ん子NGNG
>>642
チェックになってないですね。
そういう意図だったんですねすいません。
0646雪ん子NGNG
#include <stdio.h>
char *k=" \0歩\0香\0桂\0銀\0金\0角\0飛\0王",d[81]={2,3,4,5,8,5,4,3,2,0,7},h[64 \
],b[9],a=32,c=16,t,i,j,u,m,v,w,s,*p;int C(){m=*(p=d+i);u=d[j];if(j==i||m&&m<<5==
u<<5||(u&a)==t)return 0;m=j-i;m*=-t/c+1;s=u%a;v=7<m&m<11;w=m==1|m==-1;if(s<2&m==
9|s==3&(m==19|m==17)|s==4&(v|m==-8|m==-10)|(s&8|21<s)&(v|w|-7<m&m<-11)|(s==5|c<s
&s<22)&(v|w|m==-9))goto l;v=j;do v+=s%c==6&(m%8==0|m%10==0)?(b[2]>*b?1:-1)+(b[3]
>b[1]?9:-9):s%c==7?m%9?j>i?-1:1:j>i?-9:9:m&&s==2&m%9==0?t?9:-9:1;while(v!=i&!d[ \
v]);if(v==i)goto l;return 0;l:for(m=a-t;m<64-t;m++)if(!h[m]){h[m]=*p%c;break;}d
[j]=0;*p=u;if(s<8&(t&&j>53&i<54||!t&&i<27&j>26)){puts("成る?y/n");for(m=0;m!=' \
y'&m!='n';scanf("%c",&m));if(m=='y')*p+=c;}return 1;}void main(){d[c]=6;for(i=18
;i<27;)d[i++]=1;for(i=0;i<28;)d[80-i++]=d[i]+(d[i]?a:0);for(;;){p=d;for(i=0;i<81
;){u=*p++;j=u%c;m=(u&c)>>4;u>>=5;if(!j)u=2;printf("|%c%s%c",m?43:a,k+j*3,u>1?a:!
u?94:95);if(i++%9==8)puts("|\n");}puts("先手");for(i=63;i+1;){if(h[i])printf("% \
s",k+h[i]*3);if(i--==a)puts("\n後手");}printf("\n%s手入力\n",t?"後":"先");for(i=
0;i<64;)if(h[i++]&8){printf("%s手の勝利",i<a?"後":"先");return;}l:scanf("%4s",b)
;for(i=0;i<4;)b[i++]-=49;b[2]=8-b[2];i=b[2]+b[3]*9;if(*b==63){j=b[1]+1;if(i>81||
d[i])goto l;if(j==1)for(u=i%9;u<81;)if(d[u+=9]==1+t)goto l;for(u=a-t;u<64-t;u++)
if(h[u]==j){h[u]=0;t=a-t;d[i]=j+t;}}else{*b=8-*b;j=*b+b[1]*9;t=C()?a-t:t;}}}

18行。うぉぉちぢまらねぇ!
0647デフォルトの名無しさんNGNG
>>646
小手先だけど…
> if(v==i)goto l;return 0;
って
> if(v!=i)return 0;
でいいよね? これで7字かな。

確かにスレタイの7行は達成してないけど、
それでも18行でここまで出来てると正直凄いと思う。
あとはがんがって縮めるだけだけど…半分以下か。
小手先のごまかしやってないでアルゴリズムレベルでの革新が必要な予感。
0648雪ん子NGNG
>>646
実は途中で先手が下になるべきだということに気づいてしまったので
帳尻あわせるために非常に汚いアルゴリズムになってしまったんです。
なので新たに誰か(俺みたいな部活プログラマじゃない人)が
1から作ったほうがいい気がするのです。
0649デフォルトの名無しさんNGNG
もいっこ小手先の技
- " \0歩\0香\0桂\0銀\0金\0角\0飛\0王"
+ " 歩香桂銀金角飛王"

- printf("|%c%s%c",m?43:a,k+j*3,u>1?a:!u?94:95);
+ printf("|%c%.*s%c",m?43:a,2,k+j*2,u>1?a:!u?94:95);

- printf("%s",k+h[i]*3);
+ printf("%.*s",2,k+h[i]*2);

7字くらい? 微妙か…
漢字使うならワイド文字使うべきなのかもだけどねぇ…縮むかどうかは微妙か。
0650デフォルトの名無しさんNGNG
- printf("%s",k+h[i]*3);
? printf("%.*s",2,k+h[i]*2);
+ printf("%.2s",k+h[i]*2);

これでもいいみたい
さらに4byte節約
0651デフォルトの名無しさんNGNG
HSPでインベーダーもどき(敵は一種類、UFO、敵の攻撃、トーチカ、敵ピクピクなし)
七行ではこれ以上盛り込めない・・・。

*a:screen ,256:dim i,10,5:b=400:w=0:r=10:e=b:f=0:g=16:*h:p+5:if 50-t<p:f+r:p=0
repeat 5:c=cnt:j=c*16+g:repeat 10:d=cnt:l=d*20+f:if i.d.c=0{pos l,j+w:mes"鼎"
gosub n:}loop:loop:stick k,5:if(5>k)&(k>0){o=k*4-10/4*5:q+o:}if(k=16)&(m=0){
m=1:u=q+2:}pos q,b:mes"凸":if m=1{gosub v:}wait 3:cls:mes s:goto h:*v:e-16
pos u,e:mes"|":if e=0{m=0:e=b:}return:*n:x=u-l:y=j+w-e:if(x*x<257)&(y*y<257){
i.d.c=1:m=0:e=b:t+1:s+10:}if(l=0)&(r<0){r=10:w+16:}if(l=240)&(r>0):r=-10:w+16
if j+w=b{cls:goto z:}if t=50{t=0:goto a:}return:*z:mes s:pos q,b:mes"※":stop


0652デフォルトの名無しさんNGNG
>646-650
あとこんな感じか
- if(!j)u=2;
+ u=j?u:2;
- if(m=='y')
+ if(m-'n')
なかなか1から書こうって奴はいないと思うよ。
一応突っ込んどくと所々1,2文字オーバーだがなw
0653雪ん子NGNG
春休みの宿題終わったら一から組みなおして、
7行に近づけようとおもいます。
ま、暇つぶしですが。
0654デフォルトの名無しさんNGNG
よく分からないが最近盛り上がってるな。
プログラミングは全然分からんが期待、ガムバレ。
0655デフォルトの名無しさんNGNG
画像陰毛加工(HSP)
ソースと同じディレクトリにjpg画像を1.jpgという名前でコピーしておいて起動

#include "hspext.as"
picload"1.jpg":gfini winx,winy:repeat winy/10:c=cnt*10:repeat winx/10:d=cnt*10
pget d,c:if rval+gval+bval<150{gosub *a}:loop:loop:stop:*a:x=d:y=c:n=0:e=0:f=0
g=0:i=0:j=0:z=256:rnd h,z:rnd l,10:repeat l+10:rnd k,6:rnd m,20:if cnt=(l+9){
k=10:n=1}:o=m-10:repeat k:h+o:emcos p,h:emsin q,h:e+p:f+q:if n=1{gosub s}
color g,i,j:pset e/z+x,f/z+y:loop:loop:return:stop:*s:pget e/z+x,f/z+y
g+(rval-g/10):i+(gval-i/10):j+(bval-j/10):return
0656デフォルトの名無しさんNGNG
元々のバグもいくつか残ったままだが>646を16行化
七行は遠いなぁ……

#include<stdio.h>
char*k=" 歩香桂銀金角飛王",d[81]={2,3,4,5,8,5,4,3,2,0,7},h[64],b[9],a=32,c=16,
t,i,j,u,m,v,w,s,*p,z,e;main(){d[c]=6;for(i=18;i<27;)d[i++]=1;for(;~--i;)d[80-i]
=d[i]?d[i]+a:0;for(;;){for(z=i=0;i<81;++i%9||puts("|\n"))u=d[i],j=u%c,printf("\
|%c%.2s%c"," +"[u/c&1],k+j*2,"^_ "[j?u/a:2]);puts("先手");for(i=64;~--i;z|=h[i]
&8,a-i||puts("\n後手"))h[i]&&printf("%.2s",k+h[i]*2);printf("\n%s手入力\n",t?"\
後":"先");if(z)return!printf("%s手の勝利",i<a?"後":"先");l:scanf("%4s",b);for(i
=0;i<4;)b[i++]-=49;e=8-b[2];i=e+b[3]*9;if(*b-63){*b=8-*b;j=*b+b[1]*9;m=*(p=d+i)
;u=d[j];z=!u|(u&a)==t||m&&u/a==m/a;if(!z){m=t?i-j:j-i;s=u%a;v=7<m&m<11;w=m*m==1
;if(!(s<2&m==9|s==3&(m==19|m==17)|s==4&(v|m==-8|m==-10)|(s&8|21<s)&(v|w|-7<m&m<
-11)|(s==5|c<s&s<22)&(v|w|m==-9))){v=j;do v+=s%c==6&!(m%8&&m%10)?((e>*b)+(b[3]>
b[1])*9-5)*2:s%c==7?z=m%9?1:9,j>i?-z:z:m&&s==2&m%9==0?t?9:-9:1;while((z=v-i)&&!
d[v]);}if(!z){for(m=a-t;d[j]=m<64-t&&h[m]||(h[m]=*p%c,0);m++);*p=u;if(s<8?t?53<
i&j<54:i<27&j>26:0){for(m=puts("成る?y/n");m-'y'&&m-'n';scanf("%c",&m));*p|=m-
'n'?c:0;}}}t=z?t:a-t;}else{j=b[1]+1;for(u=i%9;u<81&&~t+d[u+=9];);if(i>81||d[i]
||j==1&&u<81)goto l;for(u=a-t;u<64-t&&h[u]-j;u++);h[u]=0;t=a-t;d[i]=j+t;}}}
0657 ◆eMoukokenQ NGNG
小手先ですが何文字か縮めて見ますた。

#include<stdio.h>
char*k=" 歩香桂銀金角飛王",d[81]={2,3,4,5,8,5,4,3,2,0,7},h[64],b[9],a=32,c=16,
t,i,j,u,m,v,w,s,*p,z,e;main(){d[c]=6;for(i=18;i<27;)d[i++]=1;for(;~--i;)d[80-i]
=d[i]?d[i]+a:0;for(;;){for(z=i=0;i<81;++i%9||puts("|\n"))u=d[i],j=u%c,printf("\
|%c%.2s%c"," +"[u/c&1],k+j*2,"^_"[j?u/a:2]);puts("先手");for(i=64;~--i;z|=h[i]&
8,a-i||puts("\n後手"))h[i]&&printf("%.2s",k+h[i]*2);printf("\n%s手入力\n",t?"\後
":"先");if(z)return!printf("%s手の勝利",i<a?"後":"先");l:scanf("%4s",b);for(i=0
;i<4;)b[i++]-=49;e=8-b[2];i=e+b[3]*9;if(*b-63){*b=8-*b;j=*b+b[1]*9;m=*(p=d+i);u
=d[j];z=!u|(u&a)==t||m&&u/a-m/a;if(!z){m=t?i-j:j-i;s=u%a;v=7<m&m<11;w=m*m-1;if(
!(s<2&m-9|s-3&(m-19|m-17)|s-4&(v|m+8|m+10)|(s&8|21<s)&(v|w|-7<m&m<-11)|(s-5|c<s
&s<22)&(v|w|m+9))){v=j;do v+=s%c-6&!(m%8&&m%10)?((e>*b)+(b[3]>b[1])*9-5)*2:s%c-
7?z=m%9?1:9,j>i?-z:z:m&&s-2&m%9-0?t?9:-9:1;while((z=v-i)&&!d[v]);}if(!z){for(m=
a-t;d[j]=m<64-t&&h[m]||(h[m]=*p%c,0);m++);*p=u;if(s<8?t?53<i&j<54:i<27&j>26:0){
for(m=puts("成る?y/n");m-'y'&&m-'n';scanf("%c",&m));*p|=m-'n'?c:0;}}}t=z?t:a-t
;}else{j=b[1]+1;for(u=i%9;u<81&&~t+d[u+=9];);if(i>81||d[i]||j-1&&u<81)goto l;fo
r(u=a-t;u<64-t&&h[u]-j;u++);h[u]=0;t=a-t;d[i]=j+t;}}}
0658雪ん子NGNG
Thanks to >>656
王が動かないバグ、
後手が正しく成れないバグ
は修正しましたがほかにありますでしょうか?
あと、私の知識では
h[i]&&printf("%.2s",k+h[i]*2);
の前半6byteの意図がわかりません。教えていただけませんでしょうか?

#include<stdio.h>
char*k=" 歩香桂銀金角飛王",d[81]={2,3,4,5,8,5,4,3,2,0,7},h[64],b[9],a=32,c=16,
t,i,j,u,m,v,w,s,*p,z,e;main(){d[c]=6;for(i=18;i<27;)d[i++]=1;for(;~--i;)d[80-i]
=d[i]?d[i]+a:0;for(;;){for(z=i=0;i<81;++i%9||puts("|\n"))u=d[i],j=u%c,printf("\
|%c%.2s%c"," +"[u/c&1],k+j*2,"^_ "[j?u/a:2]);puts("先手");for(i=64;~--i;z|=h[i]
&8,a-i||puts("\n後手"))h[i]&&printf("%.2s",k+h[i]*2);printf("\n%s手入力\n",t?"\
後":"先");if(z)return!printf("%s手の勝利",i<a?"後":"先");l:scanf("%4s",b);for(i
=0;i<4;)b[i++]-=49;e=8-b[2];i=e+b[3]*9;if(*b-63){*b=8-*b;j=*b+b[1]*9;m=*(p=d+i)
;u=d[j];z=!u|(u&a)==t||m&&u/a==m/a;if(!z){m=t?i-j:j-i;s=u%a;v=7<m&m<11;w=v|m*m
==1;if(!(s<2&m==9|s==3&(m==19|m==17)|s==4&(v|m==-8|m==-10)|(s&8||21<s)&(w|-7<m&
m<-11)|(s==5|c<s&s<22)&(w|m==-9))){v=j;do v+=s%c==6&!(m%8&&m%10)?((e>*b)+(b[3]>
b[1])*9-5)*2:s%c==7?z=m%9?1:9,j>i?-z:z:m&&s==2&m%9==0?t?9:-9:1;while((z=v-i)&&!
d[v]);}if(!z){for(m=a-t;d[j]=m<64-t&&h[m]||(h[m]=*p%c,0);m++);*p=u;if(s<8?t?j<
53&i>54:i<27&j>26:0){for(m=puts("成る?y/n");m-'y'&&m-'n';scanf("%c",&m));*p|=m
-'n'?c:0;}}}t=z?t:a-t;}else{j=b[1]+1;for(u=i%9;u<81&&~t+d[u+=9];);if(d[i]||i>81
|j==1&u<81)goto l;for(u=a-t;u<64-t&&h[u]-j;u++);h[u]=0;t=a-t;d[i]=j+t;}}}
0659377 ◆HuPaSCAL16 NGNG
>>657
もいっちょ小手先で。

6行目ラスト2文字減。
- for(i=0;i<4;)b[i++]-=49;
+ for(i=4;i--;)b[i]-=49;
0660 ◆HuPaSCAL16 NGNG
>>658
A&&Bは、Aが0のときにだけBが評価される。
Aが0でないなら、BによらずA&&Bが1になるからね。

つまり、h[i]が0でないときにだけ、printfしなさいってこと。
printfの返り値とかは捨てられてます。
0661 ◆HuPaSCAL16 NGNG
誤爆+連続書き込みすまそ(´・ω・`)

A&&Bは、Aが1のときにだけBが評価される。
Aが1でないなら、BによらずA&&Bが0になるから。

A||Bは、Aが0のときにだけBが評価される。
Aが0でないなら、BによらずA&&Bが1になるから。
0662雪ん子NGNG
>>660
レスありがとうございます。
そこら辺に見える||も同じような使いかたしてるんだとわかりました。

で、将棋自体が15行程度が限界にできているように思えてきました。
チェスのほうが簡単そうな気もしてきました。(細かいルールが・・・
0663雪ん子NGNG
>>658
自己レス
なに変なとこいじってバグ生み出してんだよ。
13-14行目

× s<8?t?j<53&i>54
○ s<8?t?j<54&i>53
0664デフォルトの名無しさんNGNG
>>662
キャスリングとアンパッサンと…
0665デフォルトの名無しさんNGNG
>>658
後手が1354と打つと歩が変な動きをするぞい。
0666雪ん子NGNG
動けるかどうかの判定に番兵つかってみた。
おかげで17行になっちゃった。>>656すまそ。

#include<stdio.h>
char*k=" 歩香桂銀金角飛王",d[82]={2,3,4,5,8,5,4,3,2,0,7},h[64],b[9],f=81,a=32,
c=16,t,i,j,u,m,n,v,w,s,*p,z,e;main(){d[c]=6;d[f]=1;for(i=18;i<27;)d[i++]=1;for(
;~--i;)d[80-i]=d[i]?d[i]+a:0;for(;;){for(z=i=0;i<f;++i%9||puts("|\n"))u=d[i],j=
u%c,printf("|%c%.2s%c"," +"[u/c&1],k+j*2,"^_ "[j?u/a:2]);puts("先手");for(i=64;
~--i;z|=h[i]&8,a-i||puts("\n後手"))h[i]&&printf("%.2s",k+h[i]*2);printf("\n%s\
手入力\n",t?"後":"先");if(z)return!printf("%s手の勝利",i<a?"後":"先");l:scanf(
"%4s",b);for(i=4;i--;)b[i]-=49;e=8-b[2];i=e+b[3]*9;if(*b-63){*b=8-*b;j=*b+b[1]*
9;m=*(p=d+i);u=d[j];z=!u|(u&a)==t||m&&u/a==m/a;if(!z){m=t?i-j:j-i;s=u%a;v=7<m&m
<11;w=v|m*m==1;n=s<2&m==9|s==3&(m==19|m==17)|s==4&(v|m==-8|m==-10)|(s&8||21<s)&
(w|-7<m&m<-11)|(s==5|c<s&s<22)&(w|m==-9);if(!n){v=j;do v+=s%c==6&!(m%8&&m%10)?(
(e>*b)+(b[3]>b[1])*9-5)*2:s%c==7?z=m%9?1:9,j>i?-z:z:m&&s==2&m%9==0?t?9:-9:f-v;
while((z=v-i)&&!d[v]);}if(!z|n){for(m=a-t;d[j]=m<64-t&&h[m]||(h[m]=*p%c,0);m++)
;*p=u;if(s<8?t?j<54&i>53:i<27&j>26:0){for(puts("成る?y/n");n-'y'&&n-'n';scanf(
"%c",&n));*p|=n-'n'?c:0;}}}t=z?t:a-t;}else{j=b[1]+1;for(u=i%9;u<f&&~t+d[u+=9];)
;if(d[i]||i>f|j==1&u<f)goto l;for(u=a-t;u<64-t&&h[u]-j;u++);h[u]=0;t=a-t;d[i]=j
+t;}}}
0667雪ん子NGNG
無い持ち駒が打てるようになっていたのを修正。
また伸びた・・・欝だ。

#include<stdio.h>
char*k=" 歩香桂銀金角飛王",d[82]={2,3,4,5,8,5,4,3,2,0,7},h[64],b[9],f=81,a=32,
c=16,t,i,j,u,m,n,v,w,s,*p,z,e;main(){d[c]=6;d[f]=1;for(i=18;i<27;)d[i++]=1;for(
;~--i;)d[80-i]=d[i]?d[i]+a:0;for(;;){for(z=i=0;i<f;++i%9||puts("|\n"))u=d[i],j=
u%c,printf("|%c%.2s%c"," +"[u/c&1],k+j*2,"^_ "[j?u/a:2]);puts("先手");for(i=64;
~--i;z|=h[i]&8,a-i||puts("\n後手"))h[i]&&printf("%.2s",k+h[i]*2);printf("\n%s\
手入力\n",t?"後":"先");if(z)return!printf("%s手の勝利",i<a?"後":"先");l:scanf(
"%4s",b);for(i=4;i--;)b[i]-=49;e=8-b[2];i=e+b[3]*9;if(*b-63){*b=8-*b;j=*b+b[1]*
9;m=*(p=d+i);u=d[j];z=!u|(u&a)==t||m&&u/a==m/a;if(!z){m=t?i-j:j-i;s=u%a;v=7<m&m
<11;w=v|m*m==1;n=s<2&m==9|s==3&(m==19|m==17)|s==4&(v|m==-8|m==-10)|(s&8||21<s)&
(w|-7<m&m<-11)|(s==5|c<s&s<22)&(w|m==-9);if(!n){v=j;do v+=s%c==6&!(m%8&&m%10)?(
(e>*b)+(b[3]>b[1])*9-5)*2:s%c==7?z=m%9?1:9,j>i?-z:z:m&&s==2&m%9==0?t?9:-9:f-v;
while((z=v-i)&&!d[v]);}if(!z|n){for(m=a-t;d[j]=m<64-t&&h[m]||(h[m]=*p%c,0);m++)
;*p=u;if(s<8?t?j<54&i>53:i<27&j>26:0){for(puts("成る?y/n");n-'y'&&n-'n';scanf(
"%c",&n));*p|=n-'n'?c:0;}}}t=z?t:a-t;}else{j=b[1]+1;for(u=i%9;u<f&&~t+d[u+=9];)
;if(d[i]||i>f|j==1&u<f)goto l;for(u=a-t;u<64-t&&h[u]!=j;u++);h[u]==j||(h[u]=0,t
=a-t,d[i]=j+t);}}}
0668デフォルトの名無しさんNGNG
HSP 画像の重要と思われる部分にマーキングするプログラム
ソースと同じディレクトリに1.jpgという名前でファイルを置き実行。
結果は画面と1.bmpというファイルとして出力される。


#include "hspext.as"
picload"1.jpg":gfini winx,winy:h=winx/10:j=winy/10:dim i,h,j:dim k,h:dim m,j
repeat j:c=cnt:repeat h:d=cnt:pget d*10,c*10:if rval*2+gval/2-bval>100{i.d.c=1
k.d+1:m.c+1}if j-1=c{k.d=k.d*k.d:f+k.d:hx+d*k.d}loop:if h-1=d{m.c=m.c*m.c:g+m.c
hy+c*m.c}loop:b=hx/f:e=hy/g:*om:s=s+1:a=s+e:if (j-1)<a{yd=s*10:goto *en}
if i.b.a=0{yd=s*10:goto *en}goto *om:*en:repeat 256:emcos x,cnt:emsin y,cnt
pset b*10+(x/5),e*10+yd+(y/5):loop:bmpsave "1.bmp":stop
0669デフォルトの名無しさんNGNG
dとiの初期化を
d[81]="23458543207"
i=27
盤面の初期化を
for(d[c]=6;i--;d[80-i]=e?e+a:0)e=d[i]^=i>10?i>17:48;
(↑にもあるが~--iはi--で良い)

>667にも適用可
0670デフォルトの名無しさんNGNG
テーブルゲームつながりで、チェッカー(ドラフツ)で参戦しようかなー
0671雪ん子NGNG
>>670
期待。
0672デフォルトの名無しさんNGNG
#include <stdio.h>
char m[49],c[5],i,o,p,q,r,a,b,d,e,f;void main(){for(i=2;i<5;m[i]=m[i+7]=m[i+35]=
m[i+42]=1,i++);for(i=14;i<35;m[i]=1,i++);m[24]=0;for(f=31;f;f--){for(i=0;i<49;p\
rintf(m[i]?"●":" "),i++,!(i%7)&&i?puts(""):0);while(1){scanf("%4s",c);o=c[0]-
48;p=c[1]-48;q=c[2]-48;r=c[3]-48;a=o-q;b=p-r;a*=a;b*=b;if(((!a&&b==4)||(a==4&&!b
)||(a==4&&b==4))&m[d=(o+q)/2+7*(p+r)/2]&!m[e=q+r*7])break;}puts("");m[o+p*7]=m[d
]=0;m[e]=1;}}

ソリティア
左上が0,0で入力はx1y1x2y2
0673デフォルトの名無しさんNGNG
>>667
駒が右逝ったら一段下の左から出てくる。
0674デフォルトの名無しさんNGNG
HSP :ぐるぐる銅鑼

buffer 3,999,180:pos 9,0:a="∵∴":b="|"+a:c=a+a:d="___/":f="∵ |":g=a+"(・)"
e="|":i=e+c+a:j="∵ )":k="\":o=255:mes"  ____":mes" /"+c+k:l="  \|"
mes" /"+a+c+k:mes"/"+g+g+" |":mes b+"∵/ ○\∵|":mes b+" /三 | 三| |":m=" | "
mes b+m+"_|_ | |":mes" \∵ | === |/":mes l+d:pos 310,0:gcopy 3,9,0,150,54
pos 310,54:mes"/"+c+a+j:mes i+j:mes i+f:mes i+f:mes" \"+c+a+m:mes"  \_"+d
pos 159,0:gcopy 3,9,,150,54:gcopy 3,309,,150,180:pos 242,55:gcopy 3,51,55,47,96
repeat 450:pos cnt+445,0:gcopy 3,460-cnt,0,1,180:loop:screen:repeat:r=cnt\6:s+9
t=s\200:repeat 4:pos cnt*200-160+t,150:gcopy 3,r*150,0,160,180:loop:wait 9:loop
0675674NGNG
八行だった・・・ ○|__/"
0676C言語の人 ◆OtHeRo2E6Y NGNG
メモ:
作業開始

近況:
アイディアがまとまらず、別の作業を始めました。

ネタ:
たたき台↓
ttp://pc2.2ch.net/test/read.cgi/tech/1051703369/667
0677デフォルトの名無しさんNGNG

   ○_
   / ヾ  バンバンバンバン!
   つ_| ̄|_
  ↑  ↑
  人 たたき台
0678デフォルトの名無しさんNGNG
BCCでつ。
ファイルtを読み込んでタイピングホイテョイ。

#include <windows.h>
void*c[10];RECT r={0,0,360,70};char y[999],*t=y;WINAPI f(HWND h,int m,int w,int
l){switch(m){case 15:{PAINTSTRUCT p;BeginPaint(h,&p);HDC d=p.hdc;FillRect(d,&r,
(HBRUSH)6);TextOut(d,5,5,t,40);SetBkColor(d,255);TextOut(d,5,5,t,1);EndPaint(h,
&p);break;}case 258:t+=w==*t;InvalidateRect(h,0,0);break;case 2:PostQuitMessage
(0);}return DefWindowProc(h,m,w,l);}main(){HFILE a=_lopen("t",0);_lread(a,t,999
);_lclose(a);c[1]=f;c[4]=GetModuleHandle(0);c[9]="typ";RegisterClass((WNDCLASS*
)&c);CreateWindow("typ","",4299<<16,0,0,360,70,0,0,(HMODULE)c[4],0);MSG m;for(;
GetMessage(&m,0,0,0);TranslateMessage(&m),DispatchMessage(&m));}

怪しいコード...
include無視なら7行なのだけど、まだところどころ短く出来そうな。
0679678NGNG
8行だった。もうだm
0680678NGNG
#include含め7行になった。

#include <windows.h>
char y[999],*t=y;main(){MSG m;PAINTSTRUCT p;HWND h;HDC d;int u,w=_lopen("t",0);
_lread(w,t,999);_lclose(w);CreateWindow(WC_DIALOG,"ty",4299<<16,0,0,360,70,0,0,
GetModuleHandle(0),0);for(;GetMessage(&m,0,0,0);TranslateMessage(&m),w=m.wParam
,(u=m.message)==15?BeginPaint(h=m.hwnd,&p),TextOut(d=p.hdc,5,5,t,40),SetBkColor
(d,41215),TextOut(d,5,5,t,1),EndPaint(h,&p):u==258?t+=w==*t,InvalidateRect(h,0,
0):u==273&&w==2?PostQuitMessage(0),0:DefWindowProc(h,u,w,m.lParam));return(0);}

危険ぽ。
0681デフォルトの名無しさんNGNG
Mac版(と言うほど見た目似てないかも)
ioはfcntl.hが必要になるからOSのAPI使用...

#include <Carbon.h>
char y[999],*t=y;WindowRef w;EventRecord m;short r;long u;Rect b={45,9,99,500}
,B={0,0,99,999};main(){HOpenDF(0,0,"\pt",1,&r);SetPortWindowPort(w=NewWindow(0
,&b,"\pt",1,0,0,1,0));u=999,FSRead(r,&u,t);TextSize(36);for(;WaitNextEvent(-1,
&m,99,0);(u=m.what)==6?BeginUpdate(w),TextMode(4),MoveTo(5,30),DrawText(t,0,1)
,TextMode(0),DrawText(t,1,39),EndUpdate(w),0:u==1?FSClose(r),ExitToShell(),0:u
==3?t+=(m.message&255)==*t,InvalWindowRect(w,&B),EraseRect(&B),0:0);return 0;}
0682681NGNG
↑
1.5秒操作しないと終了してた_| ̄|○
こっちで。

#include <Carbon.h>
char y[999],*t=y;WindowRef w;EventRecord m;short r;long u;Rect b={45,9,99,500}
,B={0,0,99,999};main(){HOpenDF(0,0,"\pt",1,&r);SetPortWindowPort(w=NewWindow(0
,&b,"\pt",1,0,0,1,0));u=999,FSRead(r,&u,t);TextSize(36);for(;;GetNextEvent(-1,
&m),(u=m.what)==6?BeginUpdate(w),TextMode(4),MoveTo(5,30),DrawText(t,0,1)
,TextMode(0),DrawText(t,1,39),EndUpdate(w),0:u==1?ExitToShell(),FSClose(r),0:u
==3?t+=(m.message&255)==*t,InvalWindowRect(w,&B),EraseRect(&B),0:0);return 0;}
0683デフォルトの名無しさんNGNG
ブロック崩し(既出?)言語はHSP。

a=640:b=480:c=320:d=210:o=255:p=50:randomize:rnd e,5:e-2+(e=2):f=3:buffer 2,a,b
m=72:n=21:dim j,9,6:do:boxf i\8*m+33,i/8*n+1,i\8*m+103,i/8*n+20:i++:until i>39
gsel:color o,o,o:do:c+e:d+f:k=mousex:l=mousey:gsel:redraw 0:pos 0,0
gcopy 2,0,0,a,b:color:pos c,d:mes "○":boxf k-p,450,k+p,470:redraw 1:gsel 2
color o,o,o:if c<0|(c>629){e=-e}:if d<0|(d=438&(k-p<c)&(k+p>c)){f=-f}:if d>b{
goto *z}:g=c-32/m:h=d/n:if d\n=18|(c-32\m=69)&(h<5){if j.g.h=0{j.g.h=1:f=-f
boxf g*m+33,h*n+1,g*m+103,h*n+20}}:wait 1:until 0:*z:dialog "GameOver"

ソースが初心者丸出しとか言う奴はヽ(`Д´)ノ窓から投げ捨てたる!
ついでに(・ω・)ノ[おまけ]

a=640:b=480:c=320:d=210:m=72:n=21:o=255:p=50:randomize:rnd e,5:e-2+(e=2):f=3
dim j,54:objsize m,n:do:pos i\8*m+33,i/8*n+1:button "",x:i++:until i>39:*x:c+e
d+f:k=mousex:l=mousey:redraw 0:color o,o,o:boxf:color:pos c,d:mes "○"
boxf k-p,450,k+p,470:redraw 1:g=d/n*8+(c-32/m):if d>b:goto *z
if c<0|(c>629){e=-e}:if d<0|(d=438&(k-p<c)&(k+p>c)){f=-f}
if d\n=18|(c-32\m=69)&(d/n<5){if j.g=0{f=-f:clrobj g,g:j.g=1}}:wait 1:goto x
*z:gsel:cls:font "",o:mes "Game\n Over":stop
0684デフォルトの名無しさんNGNG
HSP、シューティングの基礎の基礎みたいな。
レベル低すぎですねゴマンナサイ勉強し直して来ますOTL

w=320:h=240:b=255:x=150:y=220:i=14:m=5:screen,w,h:randomize:*a:redraw 2:color,,
boxf ,,w,h:color b,b,b:pos 0,0:mes s:pos x,y:mes"凸":stick k,5:if k&(x>0):x-
if k=4&(w-i>x){x+}if k=16&(t=0){t+:u=x+3:v=y-i}if t{pos u,v:mes"|":v-:if-i>v:t-
}for c,,m:if e.c=0{e.c+:rnd f.c,w-i:rnd g.c,100:g.c=-g.c}else{pos f.c,g.c
mes"敵":g.c+:if g.c>h{e.c-}if f.c+i>x&(x+i>f.c)&(g.c+i>y)&(y+i>g.c):end
if u+3<(f.c+i)&(u+5>f.c)&(g.c+i>v)&(v+i>g.c)&t{e.c-:t-:s+10}}next:redraw
await 9:goto a
0685デフォルトの名無しさんNGNG
>>633
0686デフォルトの名無しさんNGNG
定め
期末
上昇気流
げっぷ多すぎ
0687デフォルトの名無しさんNGNG
agw
0688デフォルトの名無しさんNGNG
保守
0689ネタきぼんぬNGNG
ネタきぼんぬ
0690ネタきぼんぬNGNG
ネタきぼんぬ
0691デフォルトの名無しさんNGNG
コンパイラはで・
0692デフォルトの名無しさんNGNG
七行シムシティもどきとかどうよ?
0693デフォルトの名無しさんNGNG
スロットマシンはちょっと感動したよ
0694ネタきぼんぬNGNG
シムシティやってみる。
0695デフォルトの名無しさんNGNG
俺SFC版シムシティやってくる。
0696デフォルトの名無しさんNGNG
7行しむしちぃ?ライフゲームみたいな感じかな。
0697ネタきぼんぬNGNG
7行キビシィ
>>696の言うようにライフゲームになっちゃいます。
シムシチィじゃない!!
0698デフォルトの名無しさんNGNG
顧客「優秀なるSE様、そこをなんとか」
0699(1/2)NGNG
ネタきぼんということで考えました。外出ならごめん。
以下の要求仕様を満たすものをおながいします。
--------------------------------------------------------------------------------
[要求]
ソースファイルを入力として、ファイル情報、クラス情報、メソッド情報、メンバ情報を出力する。

[入力]
テキストファイル(C/C++/javaソースファイル)

[出力]
テキストファイル。各情報種別につき1ファイルを出力する。
※フォーマットは後述

[出力情報]
ファイル情報:ファイル名、パッケージ名、行数、インクルードファイル・インポートクラス、グローバル変数
         外部参照変数・関数
クラス情報:クラス属性、クラス名、基底クラス名、継承属性、実装クラス、スロー例外
メソッド情報:メソッド属性、メソッドの型、メソッド名、メソッド引数、スロー例外
メンバ情報(メソッド以外のメンバ):メンバ属性、メンバの型、メンバ名称

0700(2/2)NGNG
[出力ファイルフォーマット]
・ファイル情報
  ファイル名:任意
  形式:各情報を1行に1つづつ出力。最初の行がファイル名であればその他の順番は問わない
      ただし複数ある情報(インクルードファイルなど)はバラバラの行に存在せずに、
      同じ範囲内(n行目〜n+m行目)にあること
・クラス情報
  ファイル名:任意
  形式:1クラス1行で”,”(カンマ)区切りで情報を出力する
      存在しない情報には空文字(””)を設定する
・メソッド情報
  ファイル名:任意
  形式:1メソッド1行で”,”(カンマ)区切りで情報を出力する
      存在しない情報には空文字(””)を設定する
・メンバ情報
  ファイル名:任意
  形式:1メンバ1行で”,”(カンマ)区切りで情報を出力する
      存在しない情報には空文字(””)を設定する

--------------------------------------------------------------------------------
以上です。7行ですべては難しいと思うので、ファイル情報のみのもの、クラス情報のみのもの
メソッド情報のみのもの、メンバ情報のみのものを出力するものでいいと思います。

※何がやりたいかというと、クラス図とかを手動で書くときにこれらが単独情報として存在してたら
 便利だなと思いました。
0701デフォルトの名無しさんNGNG
('A`)<…

Doxygenでも使っとけ
0702(2/2)NGNG
>>701
そんなこといったらこのスレ自体の存在意義が無くなるだろ。
0703デフォルトの名無しさんNGNG
Doxygenのソースって7行だっけ?
0704デフォルトの名無しさんNGNG
>>655
なんかキモいぜw
0705デフォルトの名無しさんNGNG
>>ALL
またーり汁
0706デフォルトの名無しさんNGNG
保守
0707デフォルトの名無しさんNGNG
MSNメッセンジャーに"bejeweled"ってゲームがあるけど、あれって7行じゃ無理?
めっちゃ好きだけど、1人じゃ出来ないんだよね。
ゲーム自体は1人でも十分楽しいと思うのだが…。
0708デフォルトの名無しさんNGNG
トランプゲーム類希望。
判定がどれくらいになるかというところ。
0709デフォルトの名無しさんNGNG
一人ポーカーなら可能な気がしてきた
0710デフォルトの名無しさんNGNG
>>707
http://popcap.com/
ここに行ってみそ。
bejeweledあるよ。
0711710NGNG
失礼
普通のゲームとしてのbejeweledね、7行じゃないよ。
ちなみに上記のサイトのは1人プレイ用。
0712710NGNG
>>707
ゲームオーバーの判定は出来てないけど・・・・
入力は数字3つ
1つ目:x座標
2つ目:y座標
3つ目:動かす方向(0〜3)

extern "C"{srand(int);rand();putchar(int);scanf(void*,...);};main(){int i,j,x,y,
z,m,o[]={-10,1,10,-1},d[100],q[100],a[]={1,10};for(i=100;i--;)d[i]=i/10&&i/10-9
&&i%10&&i%10-9?rand()%6:6;while(1){for(i=0;i<100;++i%10==0?putchar(10):1)putchar
("@*&$#% "[d[i]]);scanf("%d%d%d",&x,&y,&m);z=y*10+x;y=z+o[m];d[y]-6?d[z]^=d[y]^=
d[z]^=d[y]:1;for(i=100;i--;)q[i]=0;for(i=0;i<100;i++){for(x=2;x--;){for(j=i+a[x]
;d[j]==d[i]&&d[j]!=6;j+=a[x]);if((j-i)/a[x]>=3)for(j-=a[x];j>=i;j-=a[x])q[j]=1;}
}j=0;for(i=100;i--;)q[i]?j=1,d[i]=rand()%6:1;!j?d[z]^=d[y]^=d[z]^=d[y]:1;}}
0713保守NGNG
保守age
0714デフォルトの名無しさんNGNG
>>599-600
オメガナゲ

Fantasy on Multiple Entry tunes
- Overture to server administrator
- Codename "BBQ"
- Number 29
0715714NGNG
激しく誤爆した・・スマソ

お詫びになんか作ろうか・・
0716714NGNG
激しく誤爆した・・スマソ

お詫びになんか作ろうか・・
0717デフォルトの名無しさんNGNG
>>714-716 3レス分の七行プログラム、楽しみにしてますねっ
0718デフォルトの名無しさんNGNG
>>714-716

>>699-700をつくって。
0719デフォルトの名無しさんNGNG
html
オ○ニーしている御主人を眺める猫の表情

<BODY onLoad="f()" ID=B><SCRIPT>p=0;n=Array("10 42400 .3|7|06033|1\1213ニニ´9",
"8ノ5(、_, )、5\1|0 12 03|1|2 `ニニ´2.3|1|2200 .33|1\22311",1,9,0,24,24,0,9,
"8/ 42433\7|0 60 .3|1|0 120.3:|1\00`ニニ´0.11"," ","<br>0 ","000","::::",
"''''''","(●)","0,,ノ(、_, )ヽ、,,","1|5,2、5、3|1","2/\___/ヽ1","-一´\<p>"
,"8/22 33\1|0","3/1./`ー‐-‐‐9","0`-=ニ=- '0",".3:/1./`ー`",
"10222.3|1|042423|7\613-=-''9");function f(){a=n[n[p++%7+2]];i=14;while(i-->0)
a=a.split(i).join(n[i+10]);B.innerHTML=a+a+a;setTimeout("f()",99);}</SCRIPT>
0720デフォルトの名無しさんNGNG
>>719
キモッ
0721714NGNG
>>718
まじか・・・・w

あ、情報別に分ければいいのか。
とりあえず言語仕様勉強してくる。

|∀・;)C++ワケワカンネ
|彡サッ
0722デフォルトの名無しさんNGNG
font "MS Gothic",12:mes " ":ginfo 7:w=prmx:h=prmy:x=winx-(w*4)/2:y=winy-h/2
sdim n,$F,4:dim j,$FF:j=h/2,h,h/2,0,h/4,0,h/4,0,0,0,0,winy,winy,winy:onclick @f
*@:int d:randomize:rnd d,10000:str d,4:a=1
repeat 4:peek c,d,cnt:c-'0':n.cnt=""+c:if a{if c=0 {n.cnt=" "} else{a=0}}:loop
repeat 11:redraw 0:color 255,255,255:boxf:color 0,0,0:c=cnt
repeat 4:a=c-cnt:if a<0 {a+14} pos x+(w*cnt),y-j.a:mes n.cnt:wait 1:loop
redraw 1:loop:stop

HSPでFF風ダメージ表示をしてみる
0723デフォルトの名無しさんNGNG
font "MS Gothic",12:mes " ":ginfo 7:w=prmx:h=prmy:x=winx-(w*5)/2:y=winy-h/2
sdim n,$F,5:dim j,$FF:j=h/2,h,h/2,0,h/4,0,h/4:repeat
int d:int i:gettime d,4:gettime i,5:str d,2:str i,2:d=d+":"+i
repeat 12:redraw 0:color 255,255,255:boxf:color 0,0,0:c=cnt
repeat 5:strmid n.cnt,d,cnt,1:a=c-cnt:a+=(a<0)*14:pos x+(w*cnt),y-j.a
mes n.cnt:wait 1:loop:redraw 1:loop:wait 6000:loop

面白かったので改悪。根本的な部分は何も変わっていない…
0724デフォルトの名無しさんNGNG
あげとこ
0725デフォルトの名無しさんNGNG
Cのデバッガキボンヌ
0726デフォルトの名無しさんNGNG
ほしゅ
0727デフォルトの名無しさんNGNG
javascript
343文字なので一応7行以内(343<79x5<79x7)。
改行をとって全て繋げてからアドレスバーに貼り付け。

javascript:s='7769746828646f63756d656e742e666f726d735b305d297b46524f4d2e76616c75653d2766757369616e6173616e273b4d4553534147452e76616c75653d275c75333045445c75333045415
c75373533425c75353043465c75333034465c75333036305c75333035355c7533303434273b7375626d69742e636c69636b28293b7d';for(l=0,e="";l<s.length;l+=2)e+='%'+s.substr(l,2);eval(unescape(e));

↓ここら辺を開いてからお試しあれ。
http://pc5.2ch.net/test/read.cgi/tech/1051703369/l50
0728デフォルトの名無しさんNGNG
意欲は買うけどルールにはマッチしとらんなぁ。
0729デフォルトの名無しさんNGNG
ここにもあった
http://that3.2ch.net/test/read.cgi/gline/1078904721/694

せめて名前を選んで本文を入力するとJavaScriptを生成するとか
0730fusianasanNGNG
ロリ画像ください
0731デフォルトの名無しさんNGNG
 
0732画像ビューアNGNG
import javax.swing.*;import java.awt.event.*;class I extends JFrame implements
ActionListener{JLabel l=new JLabel();public void actionPerformed(ActionEvent e)
{JFileChooser f=new JFileChooser();if(f.showOpenDialog(this)==0)l.setIcon(new
ImageIcon(f.getSelectedFile().getPath()));};public static void main(String[] a)
{new I();}I(){setDefaultCloseOperation(3);setSize(600,480);JToolBar t=new
JToolBar();JButton b=new JButton("開");b.addActionListener(this);getContentPane
().add(t,"North");t.add(b);getContentPane().add(new JScrollPane(l));show();}}
0733ZG196182.ppp.dion.ne.jpNGNG
ロリ画像ください
0734デフォルトの名無しさんNGNG
//>>732縮め。メニューまわり自信無し。
import javax.swing.*;import java.awt.event.*;class I{public static void main(
String[]a){new JFrame(){JLabel l;{setContentPane(new JScrollPane(l=new JLabel(
)));setDefaultCloseOperation(3);JMenuBar t;setJMenuBar(t=new JMenuBar());t.add
(new JMenuItem(new AbstractAction("開"){public void actionPerformed(ActionEvent
e){JFileChooser f=new JFileChooser();if(f.showOpenDialog(l)==0)l.setIcon(new
ImageIcon(f.getSelectedFile().getPath()));}}));setSize(600,480);show();}};}}
0735システムプロパティービューアNGNG
import java.util.*;import javax.swing.*;class S{public static void main(String[
] a){new JFrame(){{Properties p=System.getProperties();String[] k=(String[])p.
keySet().toArray(new String[0]);int i,g=k.length;String[][] d=new String[g][2];
Arrays.sort(k);setDefaultCloseOperation(3);for(i=0;i<g;i++){d[i][0]=k[i];d[i][1
]=p.getProperty(k[i]);}getContentPane().add(new JScrollPane(new JTable(d,new
String[]{"key","value"})));pack();show();}};}}
0736デフォルトの名無しさんNGNG
>>735縮め。超外道コード化注意。
import java.util.*;import javax.swing.*;class S{static{new JFrame(){Properties
p;{setDefaultCloseOperation(3);Object[]k=(p=System.getProperties()).keySet().
toArray();int g=k.length;Object[][]d=new String[g][2];for(Arrays.sort(k);g-->0
;d[g][1]=p.get(k[g]))d[g][0]=k[g];setContentPane(new JScrollPane(new JTable(d,
new String[]{"key","value"})));pack();show();}};}}
0737デフォルトの名無しさんNGNG
format c:
0738デフォルトの名無しさんNGNG
過去ログってもう読めないですか?
0739デフォルトの名無しさんNGNG
ミラー作ってくれた人がいるようだ
ttp://cm.xrea.cc/
0740./@ 1 2 3 で FFT の ビット反転部分(2^3)NGNG
#include <iostream>
inline int pow2(int i){return(1<<i);}
int main(int argc, char** argv){
int m = argc-1, n = pow2(m), *r = new int[n];
for(int i=0; i<n; i++)
{ r[i]=0; for(int j=0; j<m; j++){ if(pow2(j)&i){r[i]|=pow2(m-j-1);} }
std::cout<<"r_"<<i<<" = "<<r[i]<<std::endl; } delete[] r; return 0; }
0741デフォルトの名無しさんNGNG
7行でx86系のアセンブラ作って。
単純な条件判定やジャンプ命令と関数呼び出しぐらいできればいいかな。
0742デフォルトの名無しさんNGNG
命令テーブルだけで7行に収まらない希ガス
0743デフォルトの名無しさんNGNG
麻雀の手役判定プログラムはどないでしょ?
手牌はファイルから読み込みってことにしたらいけそうな気がする。
0744デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
typedef unsigned int U;int main(void){char *a;U n;register U x,l,i,t;fprintf(
stderr,"n=?\n> ");fflush(stdout);scanf("%u",&n);if(n==2)return !printf("2\n");
if(n<2)return 0;l=(n-1)/2;a=malloc(8*l);if(!a)return fprintf(stderr,"a==NULL"),
1;printf("2\n",n);memset(a,0xFF,sizeof(char)*l);for(i=0,x=3;i<l;i++,x+=2){if(!a
[i])continue;printf("%d\n",x);for(t=i+x;t<l;t+=x) a[t]=0;}free(a);return 0;}

アリストテレスのふるい
0745デフォルトの名無しさんNGNG
>>744
アリストテレスのふるいって何だよ…
それからmemsetは<string.h>ね。
0746爆発(7行+7行)NGNG
//コンパイル済みアプレットがhttp://uzsibou.hp.infoseek.co.jp/e/に。
//14行でしかも数年前の再掲です。ごめん。Java1.5.0(Linux)にて動作確認。
//E.javaとしてコンパイルしてください。
//<applet code="E.class" width="512" height="512"/>
import java.awt.*;import java.awt.event.*;import java.awt.image.*;class A
extends java.applet.Applet{int W=128,f=127,F=255,X,Y;byte[]t=new byte[W*W+W];
MemoryImageSource s;Image m;public void init(){s=new MemoryImageSource(W,W,new
IndexColorModel(8,F,t,0,false),t,0,W);s.setAnimated(true);addMouseListener(new
MouseAdapter(){public void mousePressed(MouseEvent e){X=e.getX()/4;Y=e.getY()/
4;c();}});m=createImage(s);repaint();}void c(){}public void paint(Graphics g){
g.drawImage(m,0,0,W*4,W*4,this);}public void update(Graphics g){paint(g);}}

public class E extends A{class P{double u=Math.random()*2-1,v=-2-Math.random()
*3,x,y;int s(){return(int)(x+=u)+(int)(y+=v+=.1)*W;}}P[]p;int i,j,z;{for(;i<f;
i+=3){t[i]=t[i+f]=t[i+254]+=i*2;t[i+126]=t[i+252]=t[i+253]+=F;}}void c(){for(j
=0;j<64;p[j++].y=Y)(p[j]=new P()).x=X;}public void start(){new Thread(){public
void run(){try{for(p=new P[64];;sleep(20)){for(i=j;i>0;)if((z=p[--i].s())>0&&z
<W*W+W)t[z]=(byte)f;for(;++i<W*W;)t[i]=(byte)((t[i-1]+t[i+1]+t[i+W])*F/766);s.
newPixels();}}catch(Exception e){}}}.start();}public void stop(){p=null;}}
0747デフォルトの名無しさんNGNG
>>744
typedefイラネ
0748もっと短かくできるけど綺麗にまとまった電卓NGNG
#include <stdio.h>
#include <stdlib.h>
typedef double d;char buf[80],*p;d e();void s(){while(*p==' '||*p=='\t')p++;}
d n(){d r=0;s();(*p=='(')?(p++,r=e(),p++,0):(r=strtod(p,&p),0);s();return r;}
d t(){d r=n();while(*p=='*'||*p=='/')(*p++=='*')?(r*=n()):(r/=n());return r;}
d e(){d r=t();while(*p=='+'||*p=='-')(*p++=='+')?(r+=t()):(r-=t());return r;}
int main(){while(fgets(p=buf,sizeof buf,stdin))printf(" %g\n",e());return 0;}
0749748NGNG
>>748
書いているけどもっと短かくもできる

けどせっかく 7 行 77 文字にそろったからそのまま貼ってみる
0750デフォルトの名無しさんNGNG
#include <stdio.h>
typedef double d;d strtod(const char*,char**);d fabs(d),sin(d),cos(d),tan(d);
char buf[99],*p;d e();void s(){while(*p==' '||*p=='\t')p++;}d n(){d r,(*f)(d);
s();f=*p=='s'?sin:*p=='c'?cos:*p=='t'?tan:0;while(f&&*p>'`'&&*p<'{')p++;s();*p
=='('||*p=='|'?(p++,r=e(),r=*p++==')'?r:fabs(r)):(r=strtod(p,&p));if(f)r=f(r);
s();return r;}d t(){d r=n();while(*p=='*'||*p=='/')*p++=='*'?(r*=n()):(r/=n())
;return r;}d e(){d r=t(),R;while(*p=='+'||*p=='-')R=*p++-',',r-=R*t();return r
;}int main(){while(fgets(p=buf,sizeof buf,stdin))printf(" %g\n",e());return 0;}

絶対値と三角関数を入れた。
まさか収まらないとは思わなかった。
今は反省している。
0751750NGNG
つーか、fabs使う必要ないよorz
0752デフォルトの名無しさんNGNG
math.hのincludeが抜けてはいないだろうか…
0753デフォルトの名無しさんNGNG
>>752
d fabs(d),sin(d),cos(d),tan(d);
0754デフォルトの名無しさんNGNG
>>753
ホントだ見逃してマスタ…
吊ってきます orz
0755デフォルトの名無しさんNGNG
前スレのを改造して、標準入出力でorder-2の動的rangecoderにしてみた
exec E < src > dst
exec D < src > dst

unsigned U[256][256][259],*Y,C,L,W,N,K,Z,T,Q=258,P,X=256;f(w){for(;(W*=w)<=~L*X
/X||W<X*X&&(W=65535&-L);L*=w=X)Z?N=N*X+getchar():putchar(L>>24);}main(i,v)char*
*v;{for(Z=*v[C=1]-69;K<X;K++<4&&Z?W=T/X,f(1):0)for(T=X;T--;*Y=Y[1]=1)Q[Y=U[K][T
]]=2;for(W=T;C;Z*--C&&putchar(C-1)){Y=U[P][--C];P=C;i=Z?0:getchar()+2;W/=Y[Q]++
;for(K=C=0;T=Y[C],Z?W*(K+T)<=N-L:i--;C++)K+=T;f(T?L+=W*K,T:1);if(!T||!C){for(T=
K=X;T;)K-=!!Y[--T+2];W/=K;for(K=1;i=!Y[++K],Z?W*(T+i)<=N-L:K<C;L+=W*i);f(1);C=K
;}++Y[C];for(K=Y[Q]>Q?Y[Q]=2:Q;K<Q;)Y[Q]+=Y[K++]/=2;}for(;C++<4;f(1))W/=X;}
0756デフォルトの名無しさんNGNG
ネタ投下時は age ようぜ
0757755NGNG
もう一声削ったら片方だけreturn入った

unsigned*Y,U[256][256][259],C,L,W,N,K,Z,T,Q=258,P,X=256;f(w){for(;(W*=w)<=~L*X/
X||W<X*X&&(W=65535&-L);L*=w=X)Z?N=N*X+getchar():putchar(L>>24);}main(i,v)char**
v;{for(Z=*v[C=1]-69;K<X;K++<4&&Z?W=T/X,f(1):0)for(T=X;T--;*Y=Y[1]=1)Q[Y=U[K][T]
]=2;for(W=T;C;Z*--C&&putchar(C-1)){Y=U[P][--C];P=C;i=Z?0:getchar()+2;W/=Y[Q]++;
for(K=C=0;T=Y[C],Z?W*(K+T)<=N-L:i--;C++)K+=T;f(T?L+=W*K,T:1);if(!T||!C){for(T=K
=Q;T;)K-=!!Y[--T];W/=K;for(K=1;i=!Y[++K],Z?W*i<=N-L:K<C;L+=W*i);f(1);C=K;}++Y[C
];for(K=Y[Q]>Q?Y[Q]=2:Q;K<Q;)Y[Q]+=Y[K++]/=2;}for(;C++<4;f(1))W/=X;return 0;}
0758perl ./7prime.pl 100000NGNG
#!/usr/local/bin/perl
for(my $i=0; $i<=$ARGV[0]; $i++){push(@a,$i);}
for(my $i=2; $i<=$ARGV[0]; $i++){
 unless($a[$i]){next;}
 print("$i\n");
 for(my $j=2*$i; $j<=$ARGV[0]; $j+=$i){$a[$j]=0;}
}
0759748 (ループやめて 5 行…)NGNG
typedef char c;typedef double d;c* gets(c*);int printf(c*,...);d strtod(c*,c**)
;c b[80],*p;d e();s(){while(*p==32||*p==9)p++;}d n(){d r=0;s();(*p==40)?(p++,r=
e(),p++,0):(r=strtod(p,&p));s();return r;}d t(){d r=n();while(*p==42||*p==47)(*
p++==42)?(r*=n()):(r/=n());return r;}d e(){d r=t();while(*p==43||*p==45)(*p++==
43)?(r+=t()):(r-=t());return r;}main(){gets(p=b);printf("%g\n",e());return 0;}
0760デフォルトの名無しさんNGNG
#include "Defines.h"
int main()
{App* papp=new App;
if(!papp) return -1;
papp->run();
delete papp;
return 0;}

#include "Defines.h"で無限の可能性
0761デフォルトの名無しさんNGNG
非標準ヘッダーは反則だろー
0762デフォルトの名無しさんNGNG
10桁トリップを7行で…無理ポ?
0763デフォルトの名無しさんNGNG
ちときつそう…crypt部分を7行かぁ
0764デフォルトの名無しさんNGNG
0765デフォルトの名無しさんNGNG
そこでcrypt標準装備言語ですよ

print'Trip Key: #';$_=<STDIN>;chomp;$k=$_;
~s/"/"/g;~s/</</g;~s/>/>/g;$t=$_;~y/ !#--/\xA0\xA1\xA3-\xAD/;
$c=substr($_,0,1).substr($t,1,2).substr($_,3);$_=substr($t.'H.',1);
~y/:-@[-` --\x7F-\xFF/A-Ga-f./;$t=substr(crypt($c,$_),-10);
print"#$k -> $t\n";
0766デフォルトの名無しさんNGNG
違和感があると思ったら実体参照が変換されてた。

print'Trip Key: #';$_=<STDIN>;chomp;$k=$_;
~s/"/&quot;/g;~s/</&lt;/g;~s/>/&gt;/g;$t=$_;~y/ !#--/\xA0\xA1\xA3-\xAD/;
$c=substr($_,0,1).substr($t,1,2).substr($_,3);$_=substr($t.'H.',1);
~y/:-@[-` --\x7F-\xFF/A-Ga-f./;$t=substr(crypt($c,$_),-10);
print"#$k -> $t\n";
0767デフォルトの名無しさんNGNG
7行でかけよ
0768デフォルトの名無しさんNGNG
( ゚д゚)
0769デフォルトの名無しさんNGNG
>699のお題、ファイル情報
C言語のみで、しかもかなり適当。
無理矢理80字にしたから、そのままじゃ動かないし。
漏れじゃこれが限界でした。ファイルオープンしなければ7行いけそうかな。

#!/usr/bin/perl
use strict;my(@I,@F,$i,$t,$c,@V);open(IN,$ARGV[0]);eval{flock(IN,1)};my@data=<IN
>;close(IN);foreach(@data){s/\r\n/\n/;next if($_=~/^\s*\n$/);next if($_=~m|^//|)
;$c=1 if($_=~m|/\*|);next if($c);s|//.*||;$c=0 if($_=~m|\*/|);$t=1 if($_=~/^\{$/
);$t=0 if($_=~/^\}$/);push(@I, $1) if(($_=~/^\#.+?<(.+?)>/) && !$t);push(@F,$1)i
f(($_=~/^(.+?)\(/) && !$t);push(@V,$1) if(($_=~/^([^\#\(\)\{\}]+)$/)&&!$t);$i++;
}my @o=($ARGV[0],$i,@I,@F,@V);open(O,">".$ARGV[0]."\.dat");eval{flock(O, 2);};pr
int O join("\n",@o),"\n";close(O);exit;
0770デフォルトの名無しさんNGNG
ロジック変えずに
#!/usr/bin/perl
$f=$ARGV[0];open I,$f;for(<I>){s/\r//;next if /^\s*$/;next if m|^//|;$c=1 if
m|/\*|;next if $c;s|//.*||;$c=0 if m|\*/|;$t=1 if /^\{$/;$t=0 if /^\}$/;push @I,
$1 if /^\#.+?<(.+?)>/&&!$t;push @F,$1 if /^(.+?)\(/&&!$t;push @V,$1 if
/^([^\#\(\)\{\}]+)$/&&!$t;$i++}$,="\n";open O,">$f.dat";print O $f,$i,@I,@F,@V
0771デフォルトの名無しさんNGNG
コメントの扱いがまずいっぽ。でもGJ。

flock無しでfix&縮め。
#!/usr/bin/perl
use strict;my($p,@I,@F,$i,$t,$c,@V);open H,($p=$ARGV[0]);for(<H>){s/\r//;next
if m#^\s*\n$|^//#;s#/\*.*?\*/##g;(s|^.*\*/||)?$c=0:next if$c;$c=1,next if s
|/\*.*||;s|//.*||;(/^\{$/)?$t=1:(/^\}$/)?$t=0:1;if(!$t){push(@I,$1)if
/^#.+?<(.+?)>/;push(@F,$1)if /^(.+?)\(/;push(@V,$1)if /^([^#(){}\n]+)$/}$i++}
open H,">$p.dat";print H join("\n",$p,$i,@I,@F,@V),"\n";close H;
0772デフォルトの名無しさんNGNG
#!/usr/bin/perl -l
open H,$p=pop;for(<H>){m#^\s*\n$|^//#&&next;s#/\*.*?\*/##g;$c&&(s|^.*\*/||?$c=0
:next);s|/\*.*||and$c=1,next;s|//.*||;$t=/^\{$/?1:/^\}$/?0:$t;$i++;$t&&next;
/^#.+?<(.+?)>/&&push@I,$1;/^(.+?)\(/&&push@F,$1;/^([^#(){}\n]+)$/&&push@V,$1}
open H,">$p.dat";print H join"\n",$p,$i,@I,@F,@V
0773デフォルトの名無しさんNGNG
perlマンセー
0774デフォルトの名無しさんNGNG
何やってるか全然わからん
凄いな
0775デフォルトの名無しさんNGNG
7行でネットワークプログラミング
0776デフォルトの名無しさんNGNG
<?php
echo file_get_contents('http://www.google.co.jp/');
?>
0777デフォルトの名無しさんNGNG
<?echo file('http://www.google.co.jp/');?>
0778デフォルトの名無しさんNGNG
>>777
それじゃArrayになっちゃうんじゃね?
<?
echo implode ("", file('http://www.google.co.jp/') );
?>
0779デフォルトの名無しさんNGNG
昔書いたな。3行ポートスキャナー。
懐かしい…。

漏れはこのスレ好きだぜ。
0780デフォルトの名無しさんNGNG
<?php
mail('[email protected]', '※未承諾広告※', '加奈です', 'From: [email protected]');
?>
0781デフォルトの名無しさんNGNG
#include<stdio.h>
unsigned long a,d,e,f,i,o;FILE*p;x(){o=sin(f*i*.0001424757f)*32752;}y(){o=32752
*(i/(22050/f)%2?1:-1);}z(){o=rand()*65504-32752;}w(h){fwrite(&o,h,1,p);}main(c,
v)char**v;{a=atoi(v[1]);f=atoi(v[2]);d=atoi(v[3]);p=fopen("o.wav","wb");fputs(
"RIFF",p);e=o=88*d+(d+4)/5+36;w(4);fputs("WAVEfmt ",p);o=16;w(4);o=65537;w(4);o
=44100;w(4);o*=2;w(4);o=2;w(2);o=16;w(2);fputs("data",p);e=o=e-36;w(4);for(i=0;
i<e/2;++i){a-2?a-1?a?0:x():y():z();w(2);}fclose(p);return 0;}

トーンジェネレータ。出力はo.wav (PCM 16bit 44100Hz)。

./out osc freq duration
(oscは0=Sine 1=Square 2=WhiteNoise、freqは周波数[Hz]、durationは長さ[ms])
0782デフォルトの名無しさんNGNG
ところで昔からの疑問なんだけど、どうして幅79文字なの?
調べたけど分からなかった。
0783デフォルトの名無しさんNGNG
79文字+改行1文字で80文字だから、の様です。
0784デフォルトの名無しさんNGNG
何で80文字?
0785デフォルトの名無しさんNGNG
ネットワーク 80文字
でぐぐればわかるんじゃない?
0786デフォルトの名無しさんNGNG
旧式のCUIが横幅80桁だったんだよ。
0787デフォルトの名無しさんNGNG
旧式というかビデオカードの都合
0788デフォルトの名無しさんNGNG
キャラクターベースのターミナルの標準が80*24だった頃の
昔からの名残ですから、残念!!
0789デフォルトの名無しさんNGNG
80×25じゃない?
0790デフォルトの名無しさんNGNG
#include<stdio.h>
unsigned long d,e,f,i,o,l=32752;FILE*p;u(){o=((i*f)%44100)*1.46645f;}x(){o=sin(
f*i*.0001424757f)*l;}y(){o=l*(i/(22050/f)%2?1:-1);}z(){o=rand()*l*2-l;}w(h){fw\
rite(&o,h,1,p);}main(c,v)char**v;{c=atoi(v[1]);f=atoi(v[2]);d=atoi(v[3]);p=fop\
en("o.wav","wb");fputs("RIFF",p);e=o=88*d+(d+4)/5+36;w(4);fputs("WAVEfmt ",p);o
=16;w(4);o=65537;w(4);o=44100;w(4);o*=2;w(4);o=1048578;w(4);fputs("data",p);e=o
=e-36;w(4);for(i=0;i<e/2;++i){c-3?c-2?c-1?c?0:x():y():z():u();w(2);}fclose(p);}

トーンジェネレータにSawを追加。
osc 3=Saw
0791デフォルトの名無しさんNGNG
事実上ターミナルの標準となったVT100↓
http://www.columbia.edu/acis/history/vt100.html

MSDOS何かでは標準状態で24+最下行のファンクション表示だったが、
最下行のファンクション表示を利用することで25行の表示も選択できたというだけの話なのだ。残念!!
今はファンクション表示なしの25行になってるけど
0792デフォルトの名無しさんNGNG
んー、でも30行BIOSを使えばもっと出せるもん。
0793デフォルトの名無しさんNGNG
いや、そういう問題じゃないでしょ…
とにかく80×24が一般的だってこと
0794デフォルトの名無しさんNGNG
じゃあなんで7行なの?24行でいいじゃん。
0795デフォルトの名無しさんNGNG
699のネタが現実味をおびてくるかもしれないな。
やってみれ。
0796デフォルトの名無しさんNGNG
>>794
part1 の >>1
> 海外のプログラマーが、たったの七行足らずで
> DVDのプロテクトを解除するプログラムを作成!
> 我々も負けてはいられません!
>
> ルール:七行なら言語は問いません。では、どうぞ!
0797デフォルトの名無しさんNGNG
>>794
初代スレの1-12辺りを参照のこと
0798デフォルトの名無しさんNGNG
0799デフォルトの名無しさんNGNG
IBM のパンチカードが一行 80 文字だったからじゃない。
80 文字の由来は紙の大きさにより。
そして 25 行は、ディスプレイも 80 文字に合わせた結果、
ディスプレイの縦横比から自然と 25 行になったと思っていた。
パンチカードに VT100 が合わせたんじゃなかった?
0800デフォルトの名無しさんNGNG
縦横比で行くと30行にならん?
0801デフォルトの名無しさんNGNG
行間の余白があるんじゃないのかね
0802デフォルトの名無しさんNGNG
パンチカード・・・昔の人は大変ですね
0803デフォルトの名無しさんNGNG
パンチカード自体が 80x25 じゃない?
0804デフォルトの名無しさんNGNG
 
0805デフォルトの名無しさんNGNG
int
main
(void)
{
return
0;
}
0806デフォルトの名無しさんNGNG
Dim thought$,hand$
Input thought$ : If thought$="自殺" Then Goto *homecenter
*continuelife
Goto *continuelife
*homecenter
hand$="七輪"+"練炭" : Goto *yominokuni
End
0807デフォルトの名無しさんNGNG
>>806
2行目と3行目は反対かと
0808デフォルトの名無しさんNGNG
久々に、覗きに来ました。
相変わらず皆さん良い仕事されますね。
感心しまくりデス。
0809デフォルトの名無しさんNGNG
'1111111111111111111111111111111111111111111111111111111111111111111111111111'.
'2222222222222222222222222222222222222222222222222222222222222222222222222222'.
'3333333333333333333333333333333333333333333333333333333333333333333333333333'.
'4444444444444444444444444444444444444444444444444444444444444444444444444444'.
'5555555555555555555555555555555555555555555555555555555555555555555555555555'.
'6666666666666666666666666666666666666666666666666666666666666666666666666666'.
'7777777777777777777777777777777777777777777777777777777777777777777777777777'.
0810デフォルトの名無しさんNGNG
                                       .
                                       .
                                       .
                                       .
                                       .
                                       .
                                       .
0811デフォルトの名無しさんNGNG
810 の説明
これは38の全角空白文字アトムを単位節として7節からなるPrologの述語です。これが
?- ・・・ '                                       ', ・・・
のように質問の中で使われると

repeat(N) :- N > 0.
repeat(N) :- N > 0,M is N-1,repeat(M).
が定義されていたとして、
?- ・・・ repeat(7), ・・・
と同じ意味になります。

0812デフォルトの名無しさんNGNG
日本語で説明おながいします
0813デフォルトの名無しさんNGNG
意味になるから何?
0814748NGNG
>>750を参考に刺激を受けて作ってみたよ.
math.h の関数をいくつか入れてみた.

sin は s, cos は c, tan は t, atan は a,
log は l, exp は e, fabs は f, sqrt は r (s は sin で使ってるので)


typedef char c;typedef double d;int printf(c*,...),a;c *gets(c*),b[81],*p;d log
(d),exp(d),sin(d),cos(d),tan(d),atan(d),fabs(d),sqrt(d),strtod(c*,c**),e();main
(){for(;gets(p=b);printf(" %g\n",e()));return 0;}s(){for(;*p==9||*p==32;p++);}d
n(){d r,(*f)(d);s();a=*p-96;f=a-18?a-6?a-1?a-20?a-3?a-19?a-5?a-12?0:log:exp:sin
:cos:tan:atan:fabs:sqrt;for(;*p&64;p++);s();r=*p-40?strtod(p,&p):(p++,r=e(),p++
,r);return s(),f?f(r):r;}d t(){d v=n();while(*p==42||*p==47)*p++-47?(v*=n()):(v
/=n());return v;}d e(){d u=t();for(;*p==43||*p==45;u+=(44-*p++)*t());return u;}


1 + 2 * (3-2/2) // 優先順位
5
r6 // カッコがなくても使える
2.44949
r2*r(3) // あっても使える
2.44949
f(s(t(-1))) // 関数
0.99991
1E4*c(60*180/3.1416) // E も使える (X*180/3.1416 は角度 X を角速度に変換)
5000

誤差は bc -l レベルなので勘弁して

ホントは pow も実装したかったけど,
このアルゴリズムではちょっと無理です.
0815デフォルトの名無しさんNGNG
BFインタプリタとか
0816デフォルトの名無しさんNGNG
外出
0817デフォルトの名無しさんNGNG
<a href=813 target=_blank>>>813</a>
<a href=810 target=_blank>810</a>は将棋の煙詰めをイメージしたもので
プログラムの姿の面白さ求めたものです。
「意味」という言葉は適切でなかったですね。
「同じ機能として使えます」くらいでしょうか。機能的な観点からは、
38の空白文字でも1文字のaでも"LABEL"が違うだけで差はないので、
見易いようにa一文字で表現することにして、定義が
a.
a.
a.
a.
a.
a.
a.
だとすると、
?- a,write(b),fail.
bbbbbbb
no
?- repeat(7),write(b),fail.
bbbbbbb
no
?- 同じ結果が得られます。Prologのデータベースはこのような
使い方もできますよ、ということです。
0818814NGNG
pow の代わりに PI (円周率) を実装しようと思ったんだけど,
もう 3.1416 くらいでいいかな
3.141593 くらいじゃ, まだ誤差が出るし, それ以上だと幅がキツい

理系の人ってどれくらいの値を使うんだ?
0819デフォルトの名無しさんNGNG
「およそ3」(ウソ)。

テイラー展開しまくった式使ったらいけそうだけど > π
0820デフォルトの名無しさんNGNG
atan(1)*4…ってdouble精度じゃ3.141593か
0821デフォルトの名無しさんNGNG
学校で習う3.14でいいんじゃない?
0822814NGNG
4日レスがなかったのにキミたちは…

じゃあ 3.14 で考えて,
できるだけ細かくしていくことにするよ

>>814 の時点で結構キツいし
3.141593 までいけば御の字かな

意見ありがと
0823デフォルトの名無しさんNGNG
import java.awt.*;import javax.swing.*;class a extends JWindow{int w,h;String d
="Hello World";Font f=new Font("MS ゴシック",0,24);Image i;Color c=new Color
(0,0,255,128);FontMetrics m=getFontMetrics(f);public static void main(String s[
]){a w=new a();}a(){w=m.stringWidth(d);h=m.getHeight();try{Robot b=new Robot();
Rectangle r=new Rectangle(0,0,w,h);i=b.createScreenCapture(r);}catch(Exception
e){}setSize(w,h);setVisible(true);}public void paint(Graphics g){g.setFont(f);
g.setColor(c);g.drawImage(i,0,0,w,h,this);g.drawString(d,0,m.getAscent());}}

学校で暇な時間に作ったものを7行にまとめて見た。
実行すると画面の左上にHello Worldと表示されます。
いろいろ削ったせいで終了できなくなったのでCtrl + Cで終わらせてください。
0824デフォルトの名無しさんNGNG
ttp://internet.watch.impress.co.jp/cda/news/2004/12/16/5820.html
次は15行だったりするんでしょうかね?
それともこれを7行に?
0825825NGNG
ちなみにプログラムはこんな感じらしいです。

# tinyp2p.py 1.0 (documentation at http://freedom-to-tinker.com/tinyp2p.html)
import sys, os, SimpleXMLRPCServer, xmlrpclib, re, hmac # (C) 2004, E.W. Felten
ar,pw,res = (sys.argv,lambda u:hmac.new(sys.argv[1],u).hexdigest(),re.search)
pxy,xs = (xmlrpclib.ServerProxy,SimpleXMLRPCServer.SimpleXMLRPCServer)
def ls(p=""):return filter(lambda n:(p=="")or res(p,n),os.listdir(os.getcwd()))
if ar[2]!="client": # license: http://creativecommons.org/licenses/by-nc-sa/2.0
myU,prs,srv = ("http://"+ar[3]+":"+ar[4], ar[5:],lambda x:x.serve_forever())
def pr(x=[]): return ([(y in prs) or prs.append(y) for y in x] or 1) and prs
def c(n): return ((lambda f: (f.read(), f.close()))(file(n)))[0]
f=lambda p,n,a:(p==pw(myU))and(((n==0)and pr(a))or((n==1)and [ls(a)])or c(a))
def aug(u): return ((u==myU) and pr()) or pr(pxy(u).f(pw(u),0,pr([myU])))
pr() and [aug(s) for s in aug(pr()[0])]
(lambda sv:sv.register_function(f,"f") or srv(sv))(xs((ar[3],int(ar[4]))))
for url in pxy(ar[3]).f(pw(ar[3]),0,[]):
for fn in filter(lambda n:not n in ls(), (pxy(url).f(pw(url),1,ar[4]))[0]):
(lambda fi:fi.write(pxy(url).f(pw(url),2,fn)) or fi.close())(file(fn,"wc"))
0826デフォルトの名無しさんNGNG
ttp://ansuz.sooke.bc.ca/software/molester/
9行になったらしい。
0827デフォルトの名無しさんNGNG
>826
改行位置を調節すれば数文字オーバーする程度か
このスレをリファラで飛ばせば反応してくれそうだw
0828デフォルトの名無しさんNGNG
ruby-talkにRubyで6行まで縮めた人が居るよ
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/123945
0829デフォルトの名無しさんNGNG
perlが一番見た目キモイコードになるな、なんと言うか・・・
インデントつけてもごちゃごちゃするもんなperlって。大好きだけど
0830デフォルトの名無しさんNGNG
ぺrぇrはしね
0831デフォルトの名無しさん05/02/01 00:17:59
懐かしいスレだ・・・。

>>824
携帯からだから何行めかわからないけど

main(String a[])

を

main(String[]a)

で

1by(・∀・)te!
0832デフォルトの名無しさん05/02/01 09:13:43
//3.141592653
#include <stdio.h>
typedef double d;d p(d x,d y,d X,d Y,int D){d w=X-x,h=Y-y;if(!D)return w*h/2;
else if(X*X+Y*Y<1)return w*h;else if(x*x+y*y>1)return 0;else{w/=2;h/=2;D--;
return p(x,y,x+w,y+h,D)+p(x+w,y,X,y+h,D)+p(x,y+h,x+w,Y,D)+p(x+w,y+h,X,Y,D);}}
main(){printf("%.9f",p(0,0,1,1,24)*4);}
0833デフォルトの名無しさん05/02/02 00:52:14
>>832
これでいいんじゃない
#include <stdio.h>
int a=10000,b,c=8400,d,e,f[8401],g;main(){for(;b-c;)f[b++]=a/5;for(;d=0,g=c*2;c
-=14,printf("%.4d",e+d/a),e=d%a)for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);}
0834デフォルトの名無しさん05/02/07 10:45:56
age
0835デフォルトの名無しさん05/02/07 12:23:06
>>833
これでいいんじゃない
//3.1415926535897931159979634685441851615905760000000000000000000000000000
//GCC

#include <stdio.h>
double PI();
int main(){printf("%10.70f\n",PI());}
double PI(){asm(" fldpi");
asm("fstpl-8(%ebp)");
asm("fldl-8(%ebp)");
asm("leave"); asm("ret");}
0836デフォルトの名無しさん05/02/07 18:24:20
>>832-833,>>835
part2の800番くらいのレスに、一応任意桁の精度で求めるやつがあるよ。
なにもいじらずに実行したら5000桁。part2の中でトリッキーの1で検索すれば出ると思う。
0837デフォルトの名無しさん05/02/08 00:16:16
そんな古いログはない
0838デフォルトの名無しさん05/02/08 00:26:37
これだな
#include <stdio.h>
#define s ( 5000 /*←希望する桁数*/ /4+2)
int main(){int i,n,c,t,j,l,a[]={4,9},r[s][4]={0,0,8,12},k=10000;for(n=0;n<s*15
;n++)for(i=0;i<2;i++){for(c=t=j=0;j<s;r[j++][i]+=((n&1)*-2+1)*l/(2*n+1))t=(l=k
*t+r[j][i+2])%a[i],c=(l=k*c+(r[j][i+2]=l/a[i]))%(2*n+1);for(t=0,j--;j+1;r[j--]
[i]%=k)t=(r[j][i]+=k+t)/k-1;}for(i=s-(t=1);i+1;*r[i--]%=k)t=(*r[i]=k+*r[i]+r[i
][1]+t)/k-1;printf("%d.",**r);for(i=1;i<s-1;printf("%04d",*r[i++]));return 0;}
083983605/02/08 01:04:56
結構探したのにweb上になかった。。。すまん。
ハードディスク漁ってみたら見つけたので転載。

827 名前:トリッキーの1 投稿日:02/09/20 15:54
円周率です。意外と七行は簡単でした。オイラーの公式使ってますので収束遅いです。

#include <stdio.h>

#define s ( 5000 /*←希望する桁数*/ /4+2)
int main(){int i,n,c,t,j,l,a[]={4,9},r[s][4]={0,0,8,12},k=10000;for(n=0;n<s*15
;n++)for(i=0;i<2;i++){for(c=t=j=0;j<s;r[j++][i]+=((n&1)*-2+1)*l/(2*n+1))t=(l=k
*t+r[j][i+2])%a[i],c=(l=k*c+(r[j][i+2]=l/a[i]))%(2*n+1);for(t=0,j--;j+1;r[j--]
[i]%=k)t=(r[j][i]+=k+t)/k-1;}for(i=s-(t=1);i+1;*r[i--]%=k)t=(*r[i]=k+*r[i]+r[i
][1]+t)/k-1;printf("%d.",**r);for(i=1;i<s-1;printf("%04d",*r[i++]));return 0;}
0840デフォルトの名無しさん05/02/08 02:04:11
>839
お前は頑張った。
0841デフォルトの名無しさん05/02/08 02:06:59
>>840
�d
0842デフォルトの名無しさん05/02/16 20:40:40
−−−−−−−−−−−−−さいk(ry
0843デフォルトの名無しさん05/02/16 20:57:19
−−−−−−−−−−−−−さいか(ry
0844黒死犬@Perl ◆EgxBlf8nvc 05/02/18 19:58:51
無駄にデカイ&あんまりチェックしてない脳味噌Fuckインタプリタ

sub bfc{(my$s=reverse shift)=~s/\s//sg;my($p,$I,$O,@l,@m,$c,$l)=(sub{},@_);
while($s=~/\G((\+)|(-)|(>)|(<)|(,)|(\.)|(\[)|(\])|.)(\1*)/sg){my$t=1+length$10
;if($8){($t<=@l)||die;for(1..$t){my$q=$p;$r=$l[-1];$l[-1]=$p=sub{$m[$c]?&$q:
&$r;};pop@l;}}elsif($9){for(1..$t){my$q=$p;my$r=\$l[@l];$$r=$p=sub{$m[$c]?&$$r
:&$q;};}}else{my$q=$p;my$b=$2?sub{$m[$c]=$m[$c]+$t&255}:$3?sub{$m[$c]=$m[$c]-
$t&255}:$4?sub{$c+=$t}:$5?sub{$c-=$t}:$6?sub{$m[$c]=<$I>}:$7?sub{print$O chr
$m[$c]for 1..$t}:die;$p=sub{&$b;&$q};}}$p;}$/='';bfc($_=<>,STDIN,STDOUT)->();

使用例:
perl ***.pl
...
0845デフォルトの名無しさん05/02/18 21:16:51
a[110],h=110,i,j,n,c,t,v[]={-12,-11,-10,-1,1,10,11,12},printf(char*,...),time()
,rand(),srand();f(p,k){a[p]=n;c++;for(;k<8;)j=v[k++]+p,0<=j&j<h&!a[j]?f(j,0):0;
}main(){srand(time(0));for(i=c=n=t=0;i<h;i++)printf("%s","○\0●\0\n"+((i+1)%11
?3*(1+(a[i]=!(rand()%4)-1)):(a[i]=-1,6)));for(i=0;i<h;c=0,i++)!a[i]?n++,f(i,0),
t+=c,printf("%d.Island(%d)\n",n,c):0;printf("total:%d(%d)\n",n,t);return 0;}

某 C スレに出ていたゲーム
0846デフォルトの名無しさん05/02/18 21:18:18
−−−−−−−−−−しの・さいか(ry
0847デフォルトの名無しさん05/02/18 21:20:44
−−−−−−−−−−しの・さいか 6さい
0848デフォルトの名無しさん05/02/19 16:35:50
ここにあるのってほとんど単に作った後改行削ってるだけなんじゃないの?
0849デフォルトの名無しさん05/02/19 17:53:05
>>848
> >>810
0850デフォルトの名無しさん05/02/21 11:23:11
>>845
2: 型名が必要
2: 未定義のシンボル p
2: ) が必要
5: 宣言の構文エラー
0851デフォルトの名無しさん05/02/21 11:36:52
>850
コンパイルオプション見直せ
0852デフォルトの名無しさん05/03/01 11:19:01
<body onKeyDown=K=event.keyCode><script>K=0;T=[-1,-8,+1,+8];D=3;P=9;
C=new Array("<font color=white>_</font>","■","日","優","EX","IT");
M=[1,1,1,1,1,1,1,1,1,3,0,0,1,1,1,1,1,0,2,2,1,1,1,1,1,0,2,0,1,1,1,1,1,1,1,0,
1,1,1,1,1,1,1,0,0,0,4,5,1,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1];
function S(){if(D>0){Q=P+(Z=(K>36 && K<41)?T[K-37]:0);K=0;F=0;if(M[Q]==2){
if(M[Q+Z]==0){F=M[Q+Z]=2;}if(M[Q+Z]>3){F=1;D--;}}if(M[Q]==0 || F!=0){M[Q]=3;
M[P]=0;P=Q;}Z=0;G="";for(R=0;R<72;R++){G+=C[M[R]];G+=(R%8==7)?"<BR>":"";}
document.body.innerHTML=G;setTimeout(S,99);}else{location.href=
"http://www2.ezbbs.net/24/techside/img/1108755226_1.jpeg";}}S();</script>
</body>
-----------------------------------------
JAVA SCRIPT
注目あびる優名偽業者の倉庫番
優=偽業者(上下左右で操作)
日=ダンボール
EXIT=ダンボールをここに運べ
0853デフォルトの名無しさん05/03/01 12:37:21
>852
おおー、すごい。ちゃんと遊べる(`・ω・´)
…でも、クリアのご褒美がアレで(´・ω・`) (w
0854デフォルトの名無しさん05/03/01 22:12:44
>>852
ガイドライン板から来ますた
この板すごいなあ。
0855デフォルトの名無しさん05/03/02 00:08:49
>>854
ガ板でも紹介されているの?
0856デフォルトの名無しさん05/03/03 04:19:47
俺もガ板からきますた
0857デフォルトの名無しさん05/03/03 07:10:18
ガイドライン厨ども!



お前らイイヨイイヨー
0858デフォルトの名無しさん05/03/03 09:15:05
<body><script>L=1;function B(){if(L){T=10;L=0;M="バスには10人乗っていました";
C=A=3+F(8);}else{I=F(T);O=F(5);T=T-I+O;if(C>0)M="次のバス停で"+I+"人降り "+O+
"人乗りました";if(C==0)M="次へを押して下さい";if(C<0){if(prompt("問題:何回"+
"バス停にいったでしょう?","") == A)M="あたり";else M="はずれ";L=1;}C--;}M+=
"<input type='button' value='次へ' onclick='B()'>";document.body.innerHTML=M;
}function F(V){return(Math.floor(Math.random()*V));}B();</script></body>
-----------------------------------
まぁ、簡単な数当てゲームです
0859デフォルトの名無しさん05/03/04 22:02:35
誰か。

7行に収まってるコードを展開してインデントつけて見やすくする7行プログラムを。お願いします。
0860デフォルトの名無しさん05/03/04 22:07:04
C/C++だけでいいかの
0861デフォルトの名無しさん05/03/04 22:41:57
/*2000桁目あたりで間違える。*/
#include <stdio.h>
#define s (4000+10)
void main(){long a[s]={3},b[s]={0},i=1,j,k,l,m;for(m=k=1;m;i++){k+=8*i-8,l=i*(16
*i+8);for(j=0;j<s-1;)b[j]+=a[j],a[j++]*=k;for(m=j=0;j<s-1;)a[j+1]+=(a[j]%l)*10,m|=a[j],a
[j++]/=l;}for(i=s-2;i;)b[i-1]+=b[i]/10,b[i--]%=10;for(i=1;i<s-10;)printf("%d",b[i++]);}

円周率を求めるプログラム
計算が違うのはご愛嬌
0862デフォルトの名無しさん05/03/04 22:55:11
>>859
cpp
0863デフォルトの名無しさん05/03/05 04:25:05
>>859
過去スレにあったよ
0864ns.pccol-tdc.co.jp<192.168.10.156>05/03/08 16:09:55
ロリ画像ください
0865ns.pccol-tdc.co.jp<192.168.10.156>05/03/08 16:10:29
ロリ画像ください
0866デフォルトの名無しさん05/03/08 18:06:35
>>864-865
懐かしいな
このスレにも貼ってあったんだっけ・・・?
0867デフォルトの名無しさん05/03/08 21:41:40
#include <math.h>
unsigned d=22050,f,t=1,v=16383;char*a,b[999],*l="cdefgabr",o=0,*p,*q,r[]={-7,-5,
-3,-2,0,2,4,-1};w(z){fwrite(&z,4,1,p);}main(c,x)char**x;{p=fopen("i","r");fgets(
b,999,p);fclose(p);p=fopen("o","wb");for(a=b;*a;++a){(q=strchr(l,*a))?f=(o>0?440
<<o:440>>-o)*pow(2,(12.0+r[q-l]+(*a-43?0:1))/12.0-1),d=(atol(a+1)?88200/atol(a+1
):d),w(q-l-7?t:3),w(f),w(d),w(v):*a-111?*a-118?*a-64?*a-60?a-62?0:o++:o--:(t=at\
oi(a+1)):(v=1.0*atoi(a+1)*32767.0/128.0):(o=atoi(a+1)-4);}fclose(p);}

mml2o
mmlを中間ファイルに変換。iを読み込みoに吐き出す。

unsigned*b,d[9][999][5],l[9],g,q;char*p,a[]="o8",i,j,k;w(m){fwrite(&q,m,1,p);}t(
){q+=sin(.0001424758573*b[1]*b[4])*b[3];}u(){q+=rand()*b[3]*2-b[3];}main(){for(i
=9;i--;a[1]--)if(p=fopen(a,"rb")){for(j=0;fread(d[i][j],4,4,p);j++);fclose(p);}p
=fopen("w","wb");fputs("RIFF",p);w(4);fputs("WAVEfmt ",p);q=16;w(4);q=65537;w(4)
;q=44100;w(4);q*=2;w(4);q=1048578;w(4);fputs("data",p);w(4);for(i=1,q=0;i;w(2),
g++,q=0)for(i=0,j=9;j--;)if(k=(b=d[j][l[j]])[0]){i=1;k-2?k-1?0:t():u();b[2]-b[4]
?b[4]++:l[j]++;}fseek(p,4,0);q=36+g*2;w(4);fseek(p,40,0);q-=36;w(4);fclose(p);}

o2wav
中間ファイルをriff wavに変換。o0〜o8(1〜9トラック)を読み込みwに吐き出す。

mml2wavを作ろうと思ったけど7行は無理だったので二つに分割。
MMLで使えるものはcdefgab(音階),r(休符),音の長さ(1〜),v(ボリューム,0~127),@(音色,1-正弦波,2-ノイズ),o(オクターブ指定,1〜8)です。
0868デフォルトの名無しさん05/03/09 01:34:51
>>867
2つまとめて7行に挑戦してみるか・・・
0869デフォルトの名無しさん05/03/09 22:51:23
>>867
#include <math.h>
unsigned d=22050,f,t=1,v=16383;char*a,b[999],*l="cdefgabr",o=0,*p,*q,r[]={-9,-7,
-5,-4,-2,0,2,0};w(z){fwrite(&z,4,1,p);}main(c,x)char**x;{p=fopen("i","r");fgets(
b,999,p);fclose(p);p=fopen("o","wb");for(a=b;*a;++a){(q=strchr(l,*a))?f=(o>0?440
<<o:440>>-o)*pow(2,(12.0+r[q-l]+(a[1]-43?0:(a++>0)))/12.0-1),d=(atol(a+1)?88200/
1.3/atol(a+1):d),w(q-l-7?t:3),w(f),w(d),w(v):*a-111?*a-118?*a-64?*a-60?*a-62?0:
++o:--o:(t=atoi(a+1)):(v=32767.0*atoi(a+1)/128.0):(o=atoi(a+1)-4);}fclose(p);}

unsigned*b,d[9][999][5],l[9],g,q;char*p,a[]="o8",i,j,k;w(m){fwrite(&q,m,1,p);}t(
){q+=sin(.0001424758573*b[1]*b[4])*b[3];}u(){q+=(rand()%b[3]*2)-b[3];}main(){for
(i=9;i--;a[1]--)if(p=fopen(a,"rb")){for(j=0;fread(d[i][j],4,4,p);j++);fclose(p);
}p=fopen("w","wb");fputs("RIFF",p);w(4);fputs("WAVEfmt ",p);q=16;w(4);q=65537;w(
4);q=44100;w(4);q*=2;w(4);q=1048578;w(4);fputs("data",p);w(4);for(i=1,q=0;i;w(2)
,g++,q=0)for(i=0,j=9;j--;)if(k=(b=d[j][l[j]])[0]){i=1;k-2?k-1?0:t():u();b[2]-b[4
]?b[4]++:l[j]++;}fseek(p,4,0);q=36+g*2;w(4);fseek(p,40,0);q-=36;w(4);fclose(p);}

おかしい部分を修正。
0870デフォルトの名無しさん05/03/11 12:27:52
<body><script>M="";V=new Array(" ","○","●");P=[1,2,1,2,1,2,0,0];Q=6;W=4;
function C(B){if(W && B!=7&& P[B]&& P[(N=B+1)]){P[Q]=P[B];P[Q+1]=P[N];P[B]=
P[N]=0;Q=B;K=[-1,-1,-1];for(F=i=0;i<8;i++){if(K[P[i]]>-1 && i!=(K[P[i]]+1))
{F=1;break;}K[P[i]]=i;}M=(!F)?"成功:":(!--W)?"残念:":"残り"+W+"手";}S();}
function S(){G="";for(i=0;i<8;i++){G+="<input type='button' name='btn'"+i
+" value="+V[P[i]]+" onclick='C("+i+")'>";}document.body.innerHTML=G+M;}
S();</script></body>

-----------------------
おしどりぱずる

黒白黒白の順で並んでいる碁石があります。
並んだ2個の碁石を、そのままの順で空いている所へ移動させる事を繰り返し、
最終的に黒と白を分ける様に(黒黒黒白白白 or 白白白黒黒黒 )に並べる事が
できればOK!!

操作ですが、クリックした石と右隣りの石が空いている所に移動します。
空白をクリックしても、右隣の石が空白でも移動しません。
一番右側の石をクリックしても何も起こりません。

0871デフォルトの名無しさん05/03/12 04:58:50
#include<stdio.h> // indent.c
int c,d;p(){putchar(c);return;}n(){putchar('\n');return;}t(){int i;n();
for(i=0;i<d;i++)putchar('\t');return;}main(){while((c=getchar())!=EOF){
if((c=='{')||(c=='}'))(c=='{')?(d++,p(),t()):(d--,t(),p(),n());else if(
c==';')p(),t();else if(c!='\n')p();}}

過去ログ見れないので整形自分で作ってみました。
字数制限は問題ないけどいまいち汚い。
0872デフォルトの名無しさん05/03/12 16:28:47
連番作成支援とか
0873デフォルトの名無しさん05/03/12 21:26:46
>>871
過去スレはhtml化されてるよ。

七行プログラミング
http://pc.2ch.net/test/read.cgi/tech/984182993/
http://pc.2ch.net/tech/kako/984/984182993.html

七行プログラミング part2
http://pc3.2ch.net/test/read.cgi/tech/1018840143/
http://pc3.2ch.net/tech/kako/1018/10188/1018840143.html

七行プログラミング part3
http://pc2.2ch.net/test/read.cgi/tech/1033143528/
http://pc2.2ch.net/tech/kako/1033/10331/1033143528.html

part3の最初とpart2の900辺りにまとめらしきものがる。
0874デフォルトの名無しさん05/03/13 17:31:48
このスレ初めて来たけどすげー。
Winで bmp -> HTML に変換するやつ作ってみた。
でも3行オーバー。orz

#include <windows.h> /* Win2k & bcc 使い方 a.exe hoge.bmp > hoge.html */
main(int c,char**v){BITMAPINFOHEADER*H;HANDLE h=CreateFile(v[1],1<<31,0,0,3,1<<
7,0);long y,x,a,w,b,C,D,W=GetFileSize(h,0);BYTE*P,*B,*G=GlobalAlloc(1<<6,W);
BITMAPINFO*I=G+14;ReadFile(h,G,W,&W,0);B=G+*(DWORD*)(G+10);H=&I->bmiHeader;w=W=
H->biWidth;CloseHandle(h);b=H->biBitCount;w=b<9?w%(a=8/b)?w/a+1:w/a:W*(a=b/8);w
=w%4?(w/4+1)*4:w;puts("<html><body>");for(y=H->biHeight-1;y>-1;y--){D=~C;for(x=
0;x<W;x++){P=b<9?(BYTE*)(I->bmiColors+(((1<<b)-1)&(B[x/a+y*w]>>(b*(a-1-x%a)))))
:B+x*a+y*w;C=RGB(*P,P[1],P[2]);C-D?printf("%s<font style='color:#%06x'>",!x?"":
"</font>",C):0;printf("#");D=C;}puts("</font><br>");}puts("</body></html>");
GlobalFree(G);return 0;}
0875デフォルトの名無しさん05/03/13 19:15:42
>873
ありがとう。
楽しくなってきたんだが、やりすぎると普段から書くコードが汚くなる弊害が…。
0876デフォルトの名無しさん05/03/13 22:31:25
>>875
むしろ逆かな
ここで行うことと逆のことをすると、ソースが読みやすくきれいになり、
さらに論理的に同一の部分を把握する能力もあがった

(ような気がする
と、7行で返答してみた
0877デフォルトの名無しさん05/03/14 11:18:50
まあ一応、他人のソース読む習慣にはなるよね・・w
0878デフォルトの名無しさん05/03/15 02:59:51
芥川賞受賞作品生成器。(Java)

public class A{byte b;A a;void p(){System.out.write(b);if(a!=null)a.p();}void n
(){if(++b==0)if(a!=null)a.n();else a=new A();}public static void main(String[]s
){A a=new A();for(;;){a.p();a.n();}}}

いい題名が思いつかなかった。
全てのバイト列を吐くプログラムです。
0879デフォルトの名無しさん05/03/17 16:22:37
お題マダァ-? (・∀・ )っ/凵⌒☆チンチン
0880デフォルトの名無しさん05/03/17 16:37:17
萌
0881デフォルトの名無しさん05/03/17 19:06:17
>>878
芥川賞受賞作品って何?
0882デフォルトの名無しさん05/03/17 19:19:26
>>870のパズルに影響されて「川渡りパズル」を作ってみました。
でも1行オーバー。俺の力では7行は無理ぽorz

<body><script>T=["豚飼","羊飼","猟師","豚","豚","羊","羊","狼",""];P=[1,1,1,1,1
,1,1,1,1];E=2;R=1;Q=0;M="";function H(M,N){return P[M]*P[N]<0}function F(N){if(
N==8){if(Q){R=R==1?-1:1;E=2;Q=0;for(i=0;i<8;i++)if(!P[i])P[i]=R;if((H(0,1)&!(H(
0,5)&H(0,6)&H(1,3)&H(1,4)))|(H(2,7)&!(H(7,0)&H(7,1)&H(7,3)&H(7,4)&H(7,5)&H(7,6)
)))M="NG"}}else if(P[N]==R&&E>0){if(N<3)Q++;P[N]=0;E--}else if(!P[N]){if(N<3)
Q--;P[N]=R;E++}P[8]=R;S()}function S(){T[8]=R==1?"<":">";G="";for(i=0;i<9;i++
)G+="<p align="+(P[i]<0?"left":P[i]?"right":"center")+" onClick='F("+i+")'>"+T[
i]+"</p>";document.body.innerHTML=G+M}S()</script><body>

IE6で動作確認
0883↑の遊び方05/03/17 19:20:36
川の向こう岸へ渡ろうとしています。
ここにあるボートは2人乗り。
ボードを操作できるのは「羊飼」「豚飼」「猟師」の三人だけです。
羊飼は豚が大好物で、豚飼がいないところでは、豚を殺して食べてしまいます。
豚飼は羊が大好物で、羊飼がいないところでは、羊を殺して食べてしまいます。
狼は猟師がいないところでは、その場にいる他全員を食べてしまいます。
さて全員安全に向こう岸へ渡るには・・・

名前の文字をクリックしてボートに乗る候補を選んでください。
もう一度クリックすると候補から外れます。
候補に選べるのは同時に最大二人まで。
最下行のボート(<または>)をクリックすると、対岸へ移動します。
ただし、ボートを操作できる人が乗っていないと移動できません。
失敗すると最下行にNGと表示されます。
0884デフォルトの名無しさん05/03/18 00:11:56
>>882
ちょっと縮めた

<body><script>T=["豚飼","羊飼","猟師","豚","豚","羊","羊","狼",""];P=[1,1,1,1,1
,1,1,1,1];E=2;R=1;Q=0;M="";function H(M){return P[M>>3]*P[M&7]<0}function F(N){
if(N==8){if(Q){R*=-1;E=2;Q=0;for(i=0;i<8;i++)if(!P[i])P[i]=R;if((H(1)&!(H(5)&H(
6)&H(11)&H(12)))|(H(23)&!(H(56)&H(58)&H(59)&H(60)&H(61)&H(62))))M="NG"}}else if
(P[N]==R&&E>0){if(N<3)Q++;P[N]=0;E--}else if(!P[N]){if(N<3)Q--;P[N]=R;E++}P[8]=
R;S()}function S(){T[8]=R==1?"<":">";G="";for(i=0;i<9;i++)G+="<p align="+(P[i
]<0?"left":P[i]?"right":"center")+" onClick='F("+i+")'>"+T[i]+"</p>";document.
body.innerHTML=G+M}S()</script><body>
0885デフォルトの名無しさん05/03/18 00:38:36
3行目 if(Q){R*=-1;E=2;Q=0;for(i=0;i<8;i++) > if(Q){R=-R;E=2;for(i=Q=0;i<8;i++)
5行目 P[N]==R&&E>0 > P[N]==R&&E
6行目 T[8]=R==1? > T[8]=0<R?
088688205/03/18 01:05:58
おぉ、結構見落としがあるもんだなぁ。
関数H(M)は思いつかなかった。すごい!
0887デフォルトの名無しさん05/03/18 01:55:33
言語仕様知らんので間違いかもしれんが
if(!P[i])P[i]=R; → P[i]||(P[i]=R);
if(N<3)Q++; → Q+=N<3;
if(N<3)Q--; → Q-=N<3;
0888デフォルトの名無しさん05/03/18 02:16:13
追加
P=[1,1,1,1,1,1,1,1,1];R=1; → P=[R=1,1, (略) ,1];
0889デフォルトの名無しさん05/03/18 02:23:47
>>887
試してみた。trueは-1になるみたい。
他の環境でも保証されるかは調べてみないとわからないな。

あと、onClick の''は、消してもIE6で動作OKだった。

ずるいかもしれないけど、
ボートの向き表示をやめるとか、
表示文字をアルファベット1文字に簡略化すれば、7行できそうだね。
0890デフォルトの名無しさん05/03/18 02:53:17
配列Tの ,"" と6行目の T[8]=0<R?"<":">"; を削除、
7行目 +T[i]+ を +(i-8?T[i]:0<R?"<":">")+ に。
0891デフォルトの名無しさん05/03/18 03:12:55
alignの(左から記述する言語での)初期値はleftなので"left"は省略可。
0892デフォルトの名無しさん05/03/18 03:40:17
省略しまくり。IE6、Firefoxで動作確認。

<body><script>P=[1,1,1,1,1,1,1,1,R=1];E=2;M="";Q=0;function H(M){return P[M>>3]
*P[M&7]<0}function F(N){if(N==8){if(Q){R=-R;E=2;for(i=Q=0;i<8;i++)P[i]||(P[i]=R
);if((H(1)&!(H(5)&H(6)&H(11)&H(12)))|(!(H(56)&H(58)&H(59)&H(60)&H(61)&H(62))&H(
23)))M="<p>NG"}}else if(P[N]==R&&E){Q+=N<3;P[N]=0;E--}else if(!P[N]){Q-=N<3;P[N
]=R;E++}P[8]=R;S()}function S(){G="";for(i=0;i<9;i++)G+="<p align="+(P[i]<0?0:P
[i]?"right":"center")+" onClick=F("+i+")>"+(i-8?["豚飼","羊飼","猟師","豚","豚"
,"羊","羊","狼"][i]:0<R?"<":">");document.body.innerHTML=G+M}S()</script>
089388205/03/18 05:59:32
>>892
すごい!
</p></body>が無いとか、align=0とか強引なところはあるけど、
ちゃんと動くし7行になってる!

失敗判定にバグ発見?
H(56)&H(58)&・・・となってるけど、
H(56)&H(57)&・・・が正しいはず。
発生する状況に持っていくのが大変だけど。

それから、いまさらだけど、
>>882 での H(7,0) は
>>884 で H(56) になってるけど H(0,7) でも同じだから H(7) で1文字減らせるね。
0894デフォルトの名無しさん05/03/18 10:59:40
>>893
H(M)いじって</body>追加。

<body><script>P=[1,1,1,1,1,1,1,1,R=1];E=2;M="";Q=0;function H(M){return P[M>>3]
*P[M&7]<0&(M%3?1:H(M-1))}function F(N){if(N==8){if(Q){R=-R;E=2;for(i=Q=0;i<8;){
P[i]||(P[i]=R);i++}if((H(1)&!(H(6)&H(12)))|(!(H(57)&H(60)&H(61)&H(62))&H(23)))M
="<p>NG"}}else if(P[N]==R&&E){Q+=N<3;P[N]=0;E--}else if(!P[N]){Q-=N<3;E++;P[N]=
R}P[8]=R;S()}function S(){G="";for(i=0;i<9;i++)G+="<p onClick=F("+i+") align="+
(P[i]<0?0:P[i]?"right":"center")+">"+(i-8?["豚飼","羊飼","猟師","豚","豚","羊",
"羊","狼"][i]:0<R?"<":">");document.body.innerHTML=G+M}S()</script></body>
0895デフォルトの名無しさん05/03/18 11:09:20
↑に追加で</p>もalignの強引も改善できた

4行目 "<p>NG" > "NG"
5〜7行目
G+="<p onClick=F("+i+") align="+
(P[i]<0?0:P[i]?"right":"center")+">"+(i-8?["豚飼","羊飼","猟師","豚","豚","羊",
"羊","狼"][i]:0<R?"<":">");

G+="<p onClick=F("+i+") align='"+(P
[i]<0?"":P[i]?"right":"center")+"'>"+["豚飼","羊飼","猟師","豚","豚","羊","羊",
"狼",0<R?"<":">"][i]+"</p>";
0896デフォルトの名無しさん05/03/18 13:59:41
俺が知ってる「川渡りパズル」は、内容いっしょで出演者がだった
[父][母][兄][姉][弟][妹][召(召使)][犬]
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2004-51,GGLD:ja&q=%E7%88%B6+%E6%AF%8D+%E5%85%84+%E5%A7%89+%E5%BC%9F+%E5%A6%B9+%E5%8F%AC%E4%BD%BF+%E7%8A%AC
全部漢字1文字に出来る分、短くなるかも
089788205/03/19 11:44:01
>>894 >>895
もしかして昔からこのスレ見てる古参の方ですか?
とりあえず、川渡りパズルの最終結果をまとめてみました。

<body><script>P=[1,1,1,1,1,1,1,1,R=1];E=2;M="";Q=0;function H(M){return P[M>>3]
*P[M&7]<0&(M%3?1:H(M-1))}function F(N){if(N==8){if(Q){R=-R;E=2;for(i=Q=0;i<8;){
P[i]||(P[i]=R);i++}if((H(1)&!(H(6)&H(12)))|(!(H(57)&H(60)&H(61)&H(62))&H(23)))M
="NG"}}else if(P[N]==R&&E){Q+=N<3;P[N]=0;E--}else if(!P[N]){Q-=N<3;E++;P[N]=R}P
[8]=R;S()}function S(){G="";for(i=0;i<9;i++)G+="<p onClick=F("+i+") align='"+(P
[i]<0?0:P[i]?"right":"center")+"'>"+["豚飼","羊飼","猟師","豚","豚","羊","羊",
"狼",0<R?"<":">"][i]+"</p>";document.body.innerHTML=G+M}S()</script></body>

配列の中で?演算子使えるとは知らなかった。
関数H(M)の再帰による2個同時判定は脱帽。

>>896
知ってたw
というか、実はそれを元にしてるんだけど、
こっちのほうが一般的で全年齢対象かとおもって。
このほかにも川渡りはいろいろバリエーションがあるみたいだね。
0898デフォルトの名無しさん05/03/19 12:02:37
「NullPointerExceptionたたき」です。
「ぬるぽ」を「ガッ」してください。テンキーの1〜9に対応してます。

<body onKeyDown=K=event.keyCode-97><script>function Y(){if(B>9)R=" END";else{if
(K>=0&K<9){if(P[K]>0){P[K]=-4;S++}else B++;K=9}if(!F--){F=9-(T<80?++T>>4:5);P[N
=Math.floor(Math.random()*9)]||(P[N]=1)}G="<table>";for(i=0;i<9;i++){X=P[N=[6,7
,8,3,4,5,0,1,2][i]];Z=X<8?8-X:X-8;G+=(i%3?"":"<tr>")+"<td width=180>"+(N+1)+
"柱|"+(X<0?"ガッ":"・∀・)<ぬるぽ".substr(Z,8-Z))+"</td>"+((i-2)%3?"":
"</tr>");if(X)X++;B+=X>16;P[N]=X%17}}document.body.innerHTML=G+"</table>BAD:"+B
+" HIT:"+S+R;setTimeout(Y,80)}F=25;T=S=B=0;K=9;R="";P=[];Y()</script></body>

IE6で動作確認。

過去作品に比べると、それほど密度は無いし、面白みの少ないコードですが、
遊べる物を作ってみました。
setTimeoutもしくは、2行目のFに入れる値をいじると難易度を変更できます。

※2個のキーを連続で素早く入力した場合に、
最初のキー入力が無視されることがありますが、これは仕様ですw
0899デフォルトの名無しさん05/03/19 16:43:15
貴様らが楽しそうにJavaScriptなんぞやるからうらやましくてかじってみたら収集つかなくなったじゃねーか!

嘘ですごめんなさい。一晩中4目並べ作ってました。上の方にあるMMLは半音が出せなくて挫折しました。
0900デフォルトの名無しさん05/03/19 17:13:04
>>899
嘘つきは泥棒の始まりということで

通 報 し ま す た
0901デフォルトの名無しさん05/03/19 17:30:49
作ったけどなんか7行とかJavaScriptとか当初の目的からそれて長大なCのコードになったから晒さない。てか晒せない;-)
0902デフォルトの名無しさん05/03/19 17:40:43
晒せ。幾許か縮めんの手伝ったる。
0903デフォルトの名無しさん05/03/19 19:26:37
JavaScriptで書いていていつの間にかCになってるなんて
なかなか可愛い奴だな。
0904デフォルトの名無しさん05/03/19 22:10:49
>>899
4目並べうp!
0905デフォルトの名無しさん05/03/19 22:27:40
4目っつうかN目に拡張して最低限アホな手は打たないようだらだらコーディングしてたら160行にもなってしまいますた。うpはムリポ。
本職ではないとは言えいい加減なデータ構造と適当に作ったアルゴリズムをすっきりさせればもっと縮むはず…てか半分くらいにはなると思うw

>903
JavaScriptちょろっと勉強しようとしてみたんですけど、JavaScript特有の小技なんて当然できないから結局Cで作っても変わらないという結論に。
んで当初の目的を見失ってだらだらと。です。

皆期待しすぎだよ〜
0906デフォルトの名無しさん05/03/19 23:25:59
160行を7行に縮められたら神だよ。
天才プログラマー(某団体が認定するものではなく。)だよ。
世界に誇れるよ。


でも、160->7をするぐらいなら最初からつくるか・・・
0907デフォルトの名無しさん05/03/20 04:46:27
普通のCで書いたやつを七行にするのは、できる可能性は低くはないと思うけどな。
縮めて160行ならむりぽだけど…。
090888205/03/20 07:41:14
「川渡りパズル」さらに縮みました。
関数F()とS()をまとめただけです。こんなとこを見落としてるなんて・・・。
完全に盲点でした。誰も気づかなかったのかな?

5行目 S()}function S(){ を削除。
7行目 S() > F(8)

関数F()の引数は省略しても、なぜか動いたけど、
安全のため一応、8を入れておきます。
0909デフォルトの名無しさん05/03/20 22:00:27
始めから3目に限定して、明らかな負け手を防ぐとかの機能を削ればできるのかも。
そっちで挑戦するか…。
0910デフォルトの名無しさん05/03/20 23:27:53
>>909
JavaSDKのサンプルになかったっけ?
TickTackToeだっけ?
091191005/03/20 23:28:44
あ!あれは○×ゲームだったorz
0912デフォルトの名無しさん2005/03/23(水) 11:05:31
川渡りの答えがわかんねー!
誰か分かる人いますか?
解答をだれかお願いします!

この程度の問題が分からないようじゃ
プログラマ失格なのか!?
俺失格!?
0913デフォルトの名無しさん2005/03/23(水) 13:58:12
正解見れば解き方がわかるから
総当たりで解を求めるプログラムを書けば桶
0914デフォルトの名無しさん2005/03/23(水) 19:27:22
>>912
ヒント:困ったら猟師に頼め
0915デフォルトの名無しさん2005/03/24(木) 03:29:23
>>913
7行で?
0916デフォルトの名無しさん2005/03/24(木) 05:19:23
>>912
ヒント
1.猟師と狼が渡る → 猟師が戻る
2.猟師と豚が渡る → 猟師と狼が戻る
3.?と?が渡る → ?が戻る
4.?と?が渡る → ?が戻る
5.?と?が渡る → ?が戻る
6.?と?が渡る → ?が戻る
7.?と?が渡る → ?と?が戻る
8.猟師と羊が渡る → 猟師が戻る
9.猟師と狼が渡る → クリア!!
0917デフォルトの名無しさん2005/03/24(木) 16:47:32
>>912
ヒント
1.猟師と狼が渡る → 猟師が戻る
2.猟師と羊が渡る → 猟師と狼が戻る
3.?と?が渡る → ?が戻る
4.?と?が渡る → ?が戻る
5.?と?が渡る → ?が戻る
6.?と?が渡る → ?が戻る
7.?と?が渡る → ?と?が戻る
8.猟師と豚が渡る → 猟師が戻る
9.猟師と狼が渡る → クリア!!
0918デフォルトの名無しさん2005/03/25(金) 23:54:57
C++のソースファイルからコメントを取り除いて出力するのを7行で
0919デフォルトの名無しさん2005/03/26(土) 00:51:43
釣り?
0920デフォルトの名無しさん2005/03/28(月) 12:49:10
>>869
double pow(double,double);char*l="cdefgabr",a,b,c,o=0,*q,r[]={-9,-7,-5,-4,-2,0,2
,0};unsigned d=4,g=88200,f,e,v=4410,p;x(){for(e=0;isdigit(y());e=e*10+a-48);b=a;
return e;}y(){b?a=b,b=0:(a=getchar());return a;}main(){for(a=getchar();a>0;y()){
(q=strchr(l,a))?f=(o>0?440<<o:440>>-o)*pow(2,(12.0+r[q-l]+((c=getchar())-43?((b=
c)<0):1))/12-1),(printf("%d,%d,%d,%d\n",q-l-7?1:2,f,g/(x()?e:d),v)):a-111?a-118?
a-116?a-108?a-62?a-60?a-10?0:puts("0,0,0,0"),v=4410,d=4,g=v*20:--o:++o:(d=x()):(
g=10584000/x()):(v=32767*x()/128):(o=x()-4);}puts("0,0,0,0");}

unsigned*b,d[9][9999][5],l[9],g,q,v;char*p,i,j,k;w(m){fwrite(&q,m,1,p);}t(){q+=
sin(.00014247586*b[1]*b[4])*b[3]*(b[4]<99?1.0*b[4]/99:(v=b[2]-b[4])<200?1.0*v/2\
00:1);}main(){for(i=9;i--;j=0){do{b=d[i][j];scanf("%d,%d,%d,%d",b,b+1,b+2,b+3);}
while(*d[i][j++]);}p=fopen("w","wb");fputs("RIFF0000WAVEfmt ",p);q=16;w(4);q=65\
537;w(4);q=44100;w(4);q*=2;w(4);q=1048578;w(4);fputs("data",p);w(4);for(i=1,q=0;
i;w(2),g++,q=0)for(i=0,j=9;j--;)if(k=*(b=d[j][l[j]])){i=1;k-1?0:t();b[2]-b[4]?b[
4]++:l[j]++;}fseek(p,4,0);q=36+g*2;w(4);fseek(p,40,0);q-=36;w(4);fclose(p);}

mml2oの出入力を標準出入力、o2wavの入力を標準入力にした。
あと、ホワイトノイズを消したり、正弦波の発音を滑らかにしたり。
コンパイル確認はgcc 3.3.3 (cygwin special)。オプション-lm必須。

mml2oが識別可能なものは
cdefgab(音階),r(休符),音長(1〜),+(半音上げる)
>(1オクターブ上げる),<(1オクターブ下げる),o(オクターブ指定)
t(テンポ指定),l(既定の音長指定),v(音量指定,0〜127)
mml2oは1行を1トラックとします。
0921デフォルトの名無しさん2005/03/28(月) 21:33:56
7行でp2pてできるかにゃ
0922デフォルトの名無しさん2005/03/28(月) 21:53:56
>921
>>824-828
0923デフォルトの名無しさん2005/03/31(木) 09:43:10
6面サイコロを2個使った確立ゲーム。
出た目の合計が7,11なら勝ち。2,3,12ならば負け。
それ以外の数の場合、同じ数になるまで振り続ける。途中で7が出ると負け。
面白くもなんともないな○| ̄|_

#include<stdio.h>#include<stdlib.h>#include<time.h>int dice1,dice2,point,point2,mode;int shake(int mode){
srand(time(NULL));dice1 = rand() % 6 + 1;srand(time(NULL));dice2 = rand() % 6 + 1;if(mode == 0)
{point = dice1 + dice2;return;}if(mode == 1){point2 = dice1 + dice2;return;}}int main(void){shake(0);
switch(point){case 7:case 11:printf("Point:[%d]\n",point);printf("Win!\n");;return;case 2:case 3:
case 12:printf("Point:[%d]\n",point);printf("Lost.\n");return;default:printf("Point:[%d]\n",point);
printf("Shakking...");break;}while(1){shake(1);if(point2 == point){printf("\nPoint:[%d]\n",point2);
printf("Win!\n");break;}if(point2 == 7){printf("\nPoint:[%d]\n",point2);printf("Lost.\n");break;}}}
0924デフォルトの名無しさん2005/03/31(木) 13:40:52
>>923

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char*o[]={"Win!","Lost.","Shaking..."},p,q;void t(r,i){printf("Point:[%d]\n%s\n"
,r,o[i]);}char s(){return rand()%6+rand()%6+2;}int main(){srand(time(0));if((p=s
())==7||p==11){t(p,0);return 0;}if(p==2||p==3||p==12){t(p,1);return 0;}t(p,2);f\
or(;;){if((q=s())==p){t(p,0);break;}if(q==7){t(q,1);break;}}return 1;}

圧縮してみた。
(gcc -Wall対策のやつを除いて)もっと縮められそうなんだが、どうも妙案が思いつかない。
0925デフォルトの名無しさん2005/03/31(木) 21:55:56
<script type="text/javascript">var p,q;
function o(m){document.getElementById("a").innerHTML+=m}
function r(){return Math.floor(6*Math.random())}function s(){return r()+r()+2}
function v(p){o("["+p+"]<br>")}
function w(){o("You Win!<p>")}function l(){o("You Lost!<p>")}
function u(p){v(q=s());(p-q?q-7?u:l:w)(q)}</script><div id=a><p></div>
<button onclick="v(p=s()),(p-2||p-3||p-12?p-7||p-11?u:w:l)(p)">Shake</button>
09269252005/03/31(木) 22:03:26
あう、なんか変だと思ったら、論理演算がはんたいだったw

<script type="text/javascript">var p,q;
function o(m){document.getElementById("a").innerHTML+=m}
function r(){return Math.floor(6*Math.random())}function s(){return r()+r()+2}
function v(p){o("["+p+"]<br>")}
function w(){o("You Win!<p>")}function l(){o("You Lost!<p>")}
function u(p){v(q=s());(p-q?q-7?u:l:w)(q)}</script><div id=a><p></div>
<button onclick="v(p=s()),(p-2&&p-3&&p-12?p-7&&p-11?u:w:l)(p)">Shake</button>
0927デフォルトの名無しさんNGNG
<script type="text/javascript">var p,q,x,y,z,g=[,"Win","Lose"];
function o(m){document.getElementById("a").innerHTML+=m}
function r(){return-Math.floor(-6*Math.random())}
function s(){x=r();y=r();o(x+"+"+y+" ["+(z=x+y)+"]<br>");return z}
function u(p,w){w?o("You "+g[w]+"!<p>"):u(q=s(),(p-q?q-7?0:2:1))}
</script><div id=a><p></div>
<button onclick="u(p=s(),p-2&&p-3&&p-12?p-7&&p-11?0:1:2)">Shake</button>
0928デフォルトの名無しさんNGNG
<script type="text/javascript">
var p,q,z,a=[,0,0],g=[,"Win","Lose"],F=Math.floor,R=Math.random;
function o(m){document.getElementById("a").innerHTML+=m}
function s(x,y){z=x=-F(-6*R()),z+=y=-F(-6*R()),o(x+"+"+y+" ["+z+"]<br>")}
function u(p,w){w?++a[w]+o("You "+g[w]+"! ("+a[2]+"-"+a[1]+")<p>"):
s()+u(q=z,p-q?q-7?0:2:1)}</script><div id=a><p></div>
<button onclick="s()+u(p=z,p-2&&p-3&&p-12?p-7&&p-11?0:1:2)">Shake</button>

通算成績を表示
まだ文字数には余裕があるけど、これ以上ネタがふくらまないなあ。
0929デフォルトの名無しさん2005/04/02(土) 19:14:48
<script type="text/javascript">var a=0,b=0,F=Math.floor,R=Math.random</script>
<div id=a><p></div><button onclick="for(var w,p,y,z=0;!w;)
document.getElementById('a').innerHTML+=
(w=p?z-7?p-z?0:1:2:z-2&&z-3&&z-12?z-7&&z-11?0:1:2)?
'You '+(w-2?++a&&'Win':++b&&'Lost')+'! ('+b+'-'+a+')<p>':
(p=z,y=-F(-6*R()),z=-F(-6*R()))+'+'+y+' ['+(z+=y)+']<br>'">Shake</button>
0930 ◆iicafiaxus 2005/04/04(月) 04:04:24
絶対もう誰かやってそうな気はするけど、じゃんけんマシン。
人間とコンピュータが対戦します。
コンピュータは最初弱いけど、途中から鬼のように強くなってきますw
正直、50点先取とか100点先取で勝てたらすごいと思う。

<div id=a><p></div><script type="text/javascript">var i,a=0,b=0,u=0;H=['グ','チ'
,'パ'],p=[];for(i=0;i<81;p[i++]=0);function o(m,i){document.getElementById('a').
innerHTML+=m}function t(h){k=p[u]>p[u+27]?p[u]>p[u+54]?2:1:p[u+27]>p[u+54]?0:1;p
[u+=h*27]++;u=Math.floor(u/3);i=(3+h-k)%3,o(H[k]+' '+H[h]+'<br>'),i&&(((i-=2)?++
b:++a)+o((i?'<u>':'')+b+(i?'</u>-':'-<u>')+a+(i?'':'</u>')+'<p>'))}</script>
<button onclick="t(0)">グ</button><button onclick="t(1)">チ</button>
<button onclick="t(2)" >パ</button>
0931○×ゲーム。2005/04/04(月) 06:10:45
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/290.c
前に書いた奴です。長くなっちゃったの。忘れてた。
コード用のろだなんてあるんですね。
誰か暇だったら7行に挑戦してみてください。ずるずるコードなんで覚悟してね。
0932デフォルトの名無しさん2005/04/04(月) 06:23:15
とりあえず>>930を短縮

<div id=a><p></div><script type="text/javascript">for(p=[i=a=b=u=0];i<81;p[i++]=
0)H=['グ ','チ ','パ '];function t(h){i=p[u]>p[u+1],i+=i?p[u]>p[u+2]:p[u+1]<p[u+
2];document.getElementById('a').innerHTML+=H[i]+H[h]+'<br>'+((i-=h)?(++i%3?b+
'-<u>'+ ++a+'</u>':'<u>'+ ++b+'</u>-'+a)+'<p>':'');++p[u+=h];u=u*3%27}</script>
<button onclick="t(0)">グ</button>
<button onclick="t(1)">チ</button>
<button onclick="t(2)">パ</button>
0933デフォルトの名無しさん2005/04/15(金) 01:37:05
リーチをlizhiにして
for(l = 1;l < MOKU;l++)if(S[l*(MOKU - 1)] == 0){M = l*(MOKU - 1);}
を<=に修正。

#include<stdio.h>
#define X 3
int S[X*X],P[X*X];
int row(int v){int p=0,h=X;while(--h>=0)p+=S[X*v+h];return p;}
int col(int h){int p=0,v=X;while(--v>=0)p+=S[X*v+h];return p;}
int dia(int u){int p=0,j=X,l,m;if(u)l=m=X-1;else l=0,m=X+1;
while(--j>=0)p+=S[m*j+l];return p;}
void checkwsub(int r){if(r==-X){show();puts("\nYou won!\n");exit(2);}
if(r==X){show();puts("\nYou lose!\n");exit(2);}}
void checkwin(){int v=0,r;for(;v<X;)
checkwsub(row(v)),checkwsub(col(v)),checkwsub(dia(v++));}
int lizsub(int i, int z){
if(row(i)==z)for(l=X;--l>=0;)if(!S[X*i+l])return X*i+l;
if(col(i)==z)for(l=X;--l>=0;)if(!S[X*l+i])return X*l+i;
if(dia(0)==z)for(l=X;--l>=0;)if(!S[X*l+l])return X*l+l;
if(dia(1)==z)for(l=1;l<=X;l++)if(!S[X*l-l])return X*l-l;return -1;}
int lizhi(int i){int l=lizsub(i,X-1);if(l==-1)l=lizsub(i,1-X);
return l;}

ロジック変えないと無理だろうと…
0934デフォルトの名無しさん2005/04/15(金) 01:37:32
>>933は>>931。
0935デフォルトの名無しさん2005/05/04(水) 00:42:35
/**
 * x == 1 のとき足し算,
 * x == 2 のとき掛け算,
 * x == 3 のとき累乗計算をします.
 * ただし x, y, z は 0 より大きい整数です. 不適切な値の場合は -1 を返します.
 */
int superfunc(int x, int y, int z){
  if(x < 1 || y < 1 || z < 1) return -1;
  if(x == 1) return y + z;
  if(z == 2) return superfunc(x-1, y, y);
  return superfunc(x-1, superfunc(x, y, z-1), y);
}
0936デフォルトの名無しさん2005/05/04(水) 00:47:25
>>935
スレ違い。

【recursive 】 再 帰 【リカーシブ】
http://pc8.2ch.net/test/read.cgi/tech/1048088635/
0937デフォルトの名無しさん2005/07/15(金) 09:38:26
javascript:(function(){var s=prompt("Input encoded string:")||"",b,l,n,v,c,r="",
i=0,d=document,e=d.createElement("script");while(n=s.charCodeAt(i++))v=(n&64)?
(n&31)+(n&32?25:-1):(n&16)?((n&12)==12)?0:(n&15)+52:(n&4)+62,l?(c=b<<8-l|v>>(l-=
2),r+=c?"%"+(c>15?"":0)+c.toString(16):""):l=6,b=v&(1<<l)-1;r&&(e.src=
"http://nurucom-archives.hp.infoseek.co.jp/digital/ecl.js",d.body.appendChild(e)
,function f(){typeof JCT8836=="string"?alert(UnescapeSJIS(r)):setTimeout(f,99)})
()})()

Base64デコーダブックマークレット。Shift_JISの文字列用。
Escape Codec Libraryを使用。
ttp://nurucom-archives.hp.infoseek.co.jp/digital/escape-codec-library.html
UnescapeSJISを適当に変えればEUC-JPやISO-2022-JP用にもなるはず。
このライブラリを使えば文字コードの自動判別も可能らしいが
さすがにそれだとブックマークレットに収まりきらなさそう。
0938デフォルトの名無しさん2005/07/15(金) 16:56:11
トリッキーの1の名前を久々に見たな
0939デフォルトの名無しさん2005/07/25(月) 18:20:04
C言語で画像(バイナリ)ファイルをいじれるなんてこの板で知ったよ。

#include<stdio.h>
FILE*R,*S;int i=0,h,s,Y,X,t,p[3];void I(void){i=0,t=0;while(i<4){fputc(fgetc(R)
,S);fseek(R,-1,1);t|=fgetc(R)<<(i++*8);}}main(int c,char*v[]){R=fopen(v[1],"rb"
);S=fopen(v[2],"wb");for(;i<54;fputc(fgetc(R),S),i++);fseek(R,22,0);fseek(S,18,
0);I();h=t;fseek(R,18,0);I();s=t;fseek(R,54,0);fseek(S,54,0);i=h%4;for(X=s;X>0;
X--){for(Y=h;Y>0;Y--){fseek(R,54+(Y-1)*(s*3+i)+(X-1)*3,0);for(c=0;c<3;c++)fputc
(fgetc(R),S);}t=0;while(t++<i)fputc(0,S);}fclose(R);fclose(S);return 0;}

画像を反時計周りに90度回転させるんですが、
できる画像とかできない画像とかいろいろあって変です
だれか改良をお願いします
使い方>>39

P.S.処理遅いです。
0940デフォルトの名無しさん2005/07/26(火) 00:49:09
>939
#include<stdio.h>
FILE*R,*S;int i,h,s,Y,X,t;void O(n){for(i=0;i<4;)fputc(n>>i++*8,S);}I(e){for(
fseek(R,e,i=t=0);i<4;)t|=fgetc(R)<<i++*8;return t;}main(c,v)char**v;{R=fopen(v[
1],"rb");for(S=fopen(v[2],"wb");i<54;fputc(fgetc(R),S),i++);fseek(S,18,0);O(h=I
(22));O(s=I(18));fseek(S,2,0);O(54+(h*3+h%4)*s);fseek(R,54,0);fseek(S,54,0);for
(X=0;X<s;X++){for(Y=h;Y--;)for(fseek(R,54+Y*(s*3+s%4)+X*3,c=0);c++<3;)fputc(
fgetc(R),S);for(t=h&3;t--;)fputc(0,S);}fclose(R);fclose(S);return 0;}
09419392005/07/26(火) 19:14:57
>940完璧じゃないですか。ありがとうございます。

この分だと時計回りもできそうですね。
本当は時計回りを作ったつもりなんですがなぜか反時計周りになってしまったorz

そこで質問なんですが
BMPは左下から右上に向かうように保存されてますよね
┌─┬─┬─┐
│7 │8 │9 │
├─┼─┼─┤
│4 │5 │6 │
├─┼─┼─┤
│1 │2 │3 │
└─┴─┴─┘
下の順で保存すれば時計回りじゃないんですか?
┌─┬─┬─┐
│9 │6 │3 │
├─┼─┼─┤
│8 │5 │2 │
├─┼─┼─┤
│7 │4 │1 │
└─┴─┴─┘
実際は反時計回りなんですけど・・・
俺のプログラムがおかしかったんでしょうか?
説明変ですいません。回答おねがいします。
0942デフォルトの名無しさん2005/07/26(火) 20:55:43
>>941
940じゃないけど、その図は俺には反時計回りに見える。
0943デフォルトの名無しさん2005/07/26(火) 21:01:21
きっと942と943の頭がおかしいのでしょう
0944デフォルトの名無しさん2005/07/26(火) 23:36:49
>940改
exec src.bmp dst.bmp [opt]
[opt]無いと反時計回り、あれば時計回りに回転

#include<stdio.h>
FILE*R,*S;int i,s,X=54,Y,f;void D(){putc(getc(R),S);}void O(n){for(i=5;--i;n>>=
8)putc(n,S);}I(e){for(fseek(R,e,i=s=0);i<4;s|=getc(R)<<i++*8);return s;}main(c,
v)char**v;{f=c>3;R=fopen(v[1],"rb");for(S=fopen(v[2],"wb");X--;D());fseek(S,18,
0);O(c=I(22));O(I(18));for(fseek(S,54,0);++X<s;fwrite(&i,1,c&3,S))for(Y=c;Y--;D
(),D(),D())fseek(R,54+(f?c+~Y:Y)*(s*3+s%4)+(f?s+~X:X)*3,0);s=ftell(S);fseek(S,2
,0);O(s);fclose(R);fclose(S);return 0;}
0945デフォルトの名無しさん2005/07/27(水) 20:10:11
>944改
exec opt src.bmp dst.bmp
opt:
 L....左(反時計方向)回転
 R....右(時計方向)回転
 X....左右反転
 Y....上下反転

#include<stdio.h>
FILE*R,*S;int i,s,X,Y,f,x,y,z;void O(n){for(;i--;z||(n>>=8))putc(z?getc(R):n,S)
;}I(e){for(fseek(R,e,i=s=0);i<4;s|=getc(R)<<i++*8);return s;}main(c,v)char**v;{
Y=*v[z=1]-82;R=fopen(v[2],"rb");S=fopen(v[3],"wb");O(i=54);fseek(S,18,z=0);f=Y-
7?Y-6?!Y:2:3;O(c=I(Y=f<2?22:18));O(I(Y^4));for(fseek(S,54,0);i=4,X++<s;i=c&3,O(
0))for(Y=c;z=Y--;O(i=3))x=X-1,y=f&1?x=s-X,c+~Y:Y,fseek(R,54+(f<2?y*(s*3+s%4)+x*
3:x*(c*3+c%4)+y*3),0);s=ftell(S);fseek(S,2,0);O(s);fclose(R);return fclose(S);}
0946デフォルトの名無しさん2005/07/28(木) 22:02:57
行数リダクション早すぎw
0947デフォルトの名無しさん2005/08/12(金) 09:02:36
>945の引数をチェックし、処理時には入出力ファイル名を表示するようにした

#include<stdio.h>
FILE*R,*S;int i,s,t,X,Y,f,x,y;I(e){if(i<0)for(fseek(R,e,t=0);++i<3+!s;e=t|=getc
(R)<<i*8);for(;i--;e>>=8)putc(f?e:getc(R),S);return t;}main(c,v)char**v;{if(S=c
>3&&(R=fopen(v[2],"rb"))?fopen(v[3],"wb"):0){puts(v[2]);puts(v[3]);fseek(S,18,I
(i=54));c=*v[f=1]-82;c=c-6U>1?!c:c;f=I(Y=22^c&4);s=X=I(Y^4);for(fseek(S,0,2);X
--;i=f&3,I(0))for(Y=f;t=Y--;I(54+x*(t*3+t%4)+y*3))x=s+~X,t=y=c&1?x=X,f-t:Y,t=c<
2?y=x,x=t,s:f;s=ftell(S);i=4;fseek(S,2,0);I(s);fclose(S);}return!R||fclose(R);}
0948デフォルトの名無しさん2005/08/20(土) 12:24:32
BMP縮小
exec src.bmp dst.bmp

#include<stdio.h>
FILE*R,*S;int i,X,Y,f,x,y;I(e){for(i=e=fseek(R,e,0);i<1+3*!Y;e|=getc(R)<<i++*8)
;return e;}void O(n){for(;i--;n>>=8)putc(f?n:getc(R),S);}V(u){return I(54+(y*2+
u/2)*(X*3+X%4)+u%2*3+x*2-x%3);}main(c,v)char**v;{if(S=c>2&&(R=fopen(v[1],"rb"))
?fopen(v[2],"wb"):0){O(i=54);fseek(S,f=18,0);O((X=I(f))/2);O((Y=I(22))/2);for(
fseek(S,0,2);y<Y/2;i=x/3&3,O(x=!++y))for(;x<X/2*3;x++)O((V(0)+V(1)+V(2)+V(3)+2)
/4);i=4;c=ftell(S);fseek(S,2,0);O(c);fclose(S);}return!R||fclose(R);}
0949デフォルトの名無しさん2005/09/13(火) 05:42:20
>>864-865
Domain Information: [ドメイン情報]
a. [ドメイン名] PCCOL-TDC.CO.JP
e. [そしきめい]
f. [組織名] 株式会社 トヤマデータセンター
g. [Organization] TOYAMA DATA CENTER CO.
k. [組織種別] 株式会社
l. [Organization Type] Company
m. [登録担当者] HS342JP
n. [技術連絡担当者] HS342JP
p. [ネームサーバ] ns-kg021.ocn.ad.jp
p. [ネームサーバ] ns.pccol-tdc.co.jp
[状態] Connected (2005/10/31)
[登録年月日] 1996/10/23
[接続年月日] 1996/11/19
[最終更新] 2004/11/01 01:07:58 (JST)
0950デフォルトの名無しさん2005/09/15(木) 19:45:11
$x = 63; for (my $i = 0; $i < $x; $i++) { $a[$i]= "0"; }
for (my $i = 0; $i < $x; $i++) { $c[$i]= "0"; }
$a[32] = 1; $a[33] = 2; for (my $j = 0; $j < 100; $j++) {
for (my $k = 0; $k < $x+2; $k++) { $c[$j][$k] = $a[$k-1]+$a[$k+1]; }
for (my $i = 0; $i < $x; $i++) { $u = $c[$j][$i]; $u =~ s/0/ /g; print "$u"; }
for (my $k = 0; $k < $x; $k++) { $a[$k] = ($c[$j][$k-1]+$c[$j][$k+1]) % 3; }
print "\n";}
0951デフォルトの名無しさん2005/11/17(木) 02:20:17
// 六行FFT
#include <complex>
#include <valarray>
using namespace std;typedef complex<double>c;typedef valarray<c>a;a f(a&s){int
n=s.size(),h=n/2;if(n>1){a x(0.,h),y(0.,h);for(int k=0;k<h;++k){x[k]=s[k]+s[k+h
];y[k]=(s[k]-s[k+h])*exp(c(0,-2*M_PI*k/n));}a d(0.,n);d[slice(0,h,2)]=f(x);d[
slice(1,h,2)]=f(y);return d;}else return s;}
0952デフォルトの名無しさん2006/01/24(火) 13:50:13
T_OOWW3=XXWXPY50PPZ5jQP_-ys,A1Ea5y852cP4Z4PP-pV40P-BOu
com2txt/Nide5UqPWX,wP500-MQP4UP-wx4XP5rjP5Z2P-jC,JP=
5O4,APRX5BZP-pJPPQX42P-r=PRX55aP59DHHP-99,UP-lt,mP-uq=
P5_VHP-4A40PTZ,TPP_RX__np4PmDkMH3QHnr44sREs46dl4XoXc.X
l4CO4L566TpJyAPCsigPnl_5rkbZ4OPEu9Nl5Sxuu5jptHBraOCmvB
Jp8WGPClErjL8BjmEjz44Dsr2tapxowl_5rkhCi553Yop4AAa6Np5N
dclNNv6cC5wLhcmnNp98443PYsRDDPZjxNerkb50tQsORsRFq5sO48
j9hgo7s46fe4E1PCa6KvKgN59i.4boJb5J4OBQtBkQ4sREsMucia.A
FkXoHkHkPL573T6LfkCcBTUIt4zkkBCO4kHoHkONjb88stkQ4Aa5MH
UiYCa7rUsO5xmi3mC9MHPXNAq6z44FK8k7.4edkrhCABONdS9.nYZn
x0FVkL8Bjov4BmE3MHWHeG.0tR2taC.xGG9mE4hqOAHqOBHqOCKi.4
k.4R8tamDFzX4KMH3.4SLtas444.4444Ep444Al4444UDUMTCt4KRu
EStXmKRP84P1MVe244P4444P44PC55pHGKPC44444cLbNvKhP4KPIs
RFx4DsMHW1i3cLrHRPGZPAPQP44S4DA4J62otLGB4C.448ABpDEC44
BAph4DA44444P4444H42D4D444A44444B444DAp24A42H4B44444BA
pX44.2E4A444A4GA44P444PApX4D42K4F4P4448AuP4D444D4234By
tYWat4444x.2D4A44444B44444.2N4B444F4GH4CFD42F4JpPApX4z
rYMZVyi3WUmHDuATtt4HB4mKRt.RFUl3F8.Uv7r3FPaHBtmKR4.4Fh
4ZAHPP4AhGqA44Fh4ApGhApDG4444Z.ChA.444O8eBAA44O8e4AA44
LsLiA4GB.BzD444BA444IpPAph4uA44444PAqX4qa4GA.BlD42F4It
ASVUs2vEgYTIo0DD41WMe2cLrKfQl3444.4AE0FetTGIoXvUs2pAkY
WInYVpsLbyd3FpG5p4GHP4:
0953デフォルトの名無しさん2006/01/24(火) 22:07:14
7行じゃないしCOM2TXTですよね
0954デフォルトの名無しさん2006/01/25(水) 03:02:21
いちおうメッセージボックスが出る、はず。
comから32bit exeを展開するだけで大変なので誰か7行(532byte)に削ってくれ
0955デフォルトの名無しさん2006/01/26(木) 13:24:50
>>954
(´・ω・`)むりぽ
1025byte
T_OOWW3=XXWXPY50PPZ5jQP_-ys,A1Ea5y852cP4Z4PP-pV40P-BOu
com2txt/Nide5UqPWX,wP500-MQP4UP-wx4XP5rjP5Z2P-jC,JP=
5O4,APRX5BZP-pJPPQX42P-r=PRX55aP59DHHP-99,UP-lt,mP-uq=
P5_VHP-4A40PTZ,TPP_RX__np4PmDkMH3QHnr44sREs46dl4XoXc.X
l4CO4L566TpJyAPCsigPnl_5rkbZ4OPEu9Nl5Sxuu5jptHBraOCmvB
Jp8WGPClErjL8BjmEjz44Dsr2tapxowl_5rkhCi553Yop4AAa6Np5N
dclNNv6cC5wLhcmnNp98443PYsRDDPZjxNerkb50tQsORsRFq5sO48
j9hgo7s46fe4E1PCa6KvKgN59i.4boJb5J4OBQtBkQ4sREsMucia.A
FkXoHkHkPL573T6LfkCcBTUIt4zkkBJrKrCO4dONjb88stkQ4Aa5MH
UiYCa7rUsO5xmi3mC9MHPXNAq6z44FK8k7.4edkrhCABONdS9.nYZn
x0FVkL8Bjov4BmE3MHWHeG.0tR2taC.xGG9mE4hqOAHqOBHqOCKi.4
k.4R8tamDFzX4KMH3.4SLtas444.4444Ep444Al4444UDUMTCt4KRu
EStXmKRSU441MV.AMZVyi3WUmHDuATtt4HB4mKRt.RFUl3F8.Uv7r3
FPaHBtmKR4.4ItASVUs2vEgYTIo0DD44DlG4y4G4wUsYWHsLbyd3Fp
4.4AE0FetTGIoXvUs2pAkYWInYVpsLbyd3Fp4Z.Ah4pA44F.P4D44Z
.ChCP2CZ.ChApS5IS.4P4C5IXp4P44iApMPQP44S4DAApw.448ABpD
GCfXGAA4G4r4GAD444A4G4pH444PGApPGBB4G4pHGA.HGEq4GCA444
CpGTs.G4x.GJA4G4pHG4pHGCb444F4GTDPPApi4ApNLApL8D42JVP2
CN42WRp2GJP_5A9p:
0956デフォルトの名無しさん2006/01/26(木) 15:42:29
>>955
うちのノートン大先生が激怒する・・・
セクション以外のところに読みにいくとウイルス扱いされてるみたい。
圧縮するのはやっぱり0x00決めうちのほうが小さくなるのか。

PEヘッダ圧縮できねーヽ(`Д´)ノウワァァン
0957デフォルトの名無しさん2006/01/26(木) 16:25:26
バイナリなら可能なんだけどねえ
0958デフォルトの名無しさん2006/01/26(木) 19:53:16
七行では無いし、見ても面白くないし
0959デフォルトの名無しさん2006/03/01(水) 04:07:50
定期上げ
09609552006/03/01(水) 17:42:07
(´・ω・`)XPじゃないと多分むりぽ
七行に収まったけど、見ても面白くないです。

:?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
:Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
:?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN:~
:~._&^:Af-`l/m==3#e^@f--PjaeE!`!Jm=v[[<.r6eL?X!Bm]!I[%.&6&&I![6Pdd#,!m!^
:H7f-Mivl!Icj^6f--@@A[arm?"?]$sjX_1C.[_JC8[A^>Df-Pi@_!;f$-@^7Af-c;;@<`%.
:!7!=v=<=p@"cac&!w.+-!7!+.N&O&PM+Q'X7M<9MM;!!6Ql!&W!$!Mc!P!O`,N7MY&M!MC"
:O"Ow,M!Nv!Q(&FP)M/tQ=+MV"Q/&wM!M!wQ&,QNWV!;iCHHBRDC8G<J7Qs2IHCH=32Qu*
0961デフォルトの名無しさん2006/03/01(水) 21:00:58
>>960
ちょっと驚いたのでage
0962デフォルトの名無しさん2006/03/02(木) 05:14:55
>>960
うちの2000では通らなかったので勝手に修正してみるテスト
user32->user32.dll
ローダのテンポラリ領域をクリアするようにしてみた

:?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
:Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
:?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN:~
:~._&^:?f-3b<Q6lmZPi_,E!sZ3#e^@f)-HB=H=PjQ:4L!PBq"1LB!Q(!Jm=v[[<.r6eL?X!
:Bm]!I[%.&6&&I![6Pdd#,!m!^K7f-5hsIk^f6f-@.@AQ6"rm??$]$sXO_1C[E_JC[cA^>f3
:-Pi_%!;f-)@^7f%-cL!c;@<`_%!7!w==<=Hp"ca@c!w.B+!7!B+N&Oj&M+QQ'7M<09M;!E!
:Ql!3&!$!pM!P!SO,N7QM&M!JM"O"ZO,M!wN!Q(K&P)MY/Q=+lM"Q/Z&M!Mw!Q&,kQLQ-QV!
:;CMHHBD[C8GJt7QLQaHIHC)H321ACFFQZLQI*
0963デフォルトの名無しさん2006/03/02(木) 07:09:31
志村〜8行8行
0964デフォルトの名無しさん2006/03/02(木) 07:12:14
_| ̄|○

:?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
:Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
:?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN:~
:~._&^:Af-`l"m3e^-@f-=J=PjaHE!`!MmPu=2v[<.)r6L?SO"]!"I%.&I!E[Pdd\"!^7
:Af-Mvjl!Ik9^6f-D@@Aa"rm??$]$sXO_1C[E_JC[cA^>f3-Pi_%!;f-)@^7f(-c;@k<`%!G
:7!==s<=p"%caMwJ.+!7gN&O&PM+Q'X7M<9MM;!!6Ql!&W!$!Mc!P!O`,N7MY&M!MC"O"Ow,
:M!Nv!Q(&FP)M/tQ=+MV"Q/&wM!M!wQ&,QNWV!;iCHHBRDC8G<J7Qs2IHCH:321C(FFQt*
0965964(=952)2006/03/02(木) 07:41:28
一応遊びたい人がいるかもしれないのでソース置いておきますね
ttp://winny.info/fileboard/files/img20060302073834.zip

955さん七行にしてくれてありがとうです
0966デフォルトの名無しさん2006/03/02(木) 08:09:07
:?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
:Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
:?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN:~
:~._&^:Af-`l"m3e^-@f-=J=PjaHE!`!MmPu=2v[<.)r6L?SO"]!"I%.&#6&I!E[Pdd\"!^7
:Af-Mvjl!Ik9^6f-D@@Aa"rm??$]$sXO_1C[E_JC[cA^>f3-Pi_%!;f-)@^7f(-c;@k<`%!G
:7!==s<=p"%caMwJ.+!7gN&O&PM+Q'X7M<9MM;!!6Ql!&W!$!Mc!P!O`,N7MY&M!MC"O"Ow,

4行目の&#6が化けてるよ
0967デフォルトの名無しさん2006/03/02(木) 11:08:21
(´・ω・)
0968デフォルトの名無しさん2006/03/02(木) 13:13:27
JavaScript でライン描画

もっといろいろさせたかったけどあまり縮まなかったので、サンプル2点だけ
IE6だと見えるが、Mozillaだと見えないみたい

<body><script>function Y(x,y,w,z){c=(C=x-w)*C>(C=y-z)*C;for(a=s=c?x>w?(e=x,t=z,
u=y,w):(e=w,t=y,u=z,x):y>z?(e=y,t=w,u=x,z):(e=z,t=x,u=w,y);b=(u-t)*(a-s)/(e-s)+
t,a<=e;a+=2)document.write("<dd style='background:red;position:absolute;top:"+(
c?b:a)+";left:"+(c?a:b)+";overflow:hidden;width:2;height=2'>")}G=P=Q=r=99,R=66,
S=33,A=Math.PI/20;F=P+r;for(i=41;i--;Y(F,G,F=P+j*Math.cos(i*A),G=Q+j*Math.sin(i
*A)))j=[r,S,R,S][i%4];F=G=P=Q=220;for(i=1;i<41;i++)Y(F,G,F=P+(j=[0,S,R,S][k=i%4
])*Math.cos((k+=i)*A),G=Q+j*Math.sin(k*A));</script>
0969デフォルトの名無しさん2006/03/02(木) 18:06:10
>>968
ジャバスクってこんなことできんのね・・って見てたらブラウザ固まった…orz
0970デフォルトの名無しさん2006/03/03(金) 00:10:30
>>969
僕のブラウザも固まった・・・orz
0971デフォルトの名無しさん2006/03/03(金) 00:36:32
新手のブラクラですな・・
0972デフォルトの名無しさん2006/03/03(金) 01:50:14
>>968
4行目、「height=2」を「height:2」に変えたらFirefox 1.5でも見れた。
0973デフォルトの名無しさん2006/03/03(金) 18:39:13
( ^ω^)何か押すと終るお

フケタタイ カ サョo3レS]サ」J3レセ -ク$$Pクヘハ3チP_WWWWWWWWWWWクYJ3テPUSVRRWクm Pクーフ3ナPUSp
!VRRWクm Pクワフ3ナPクョホ3ナPUSVRRWク!!PクンンPPクゥゥPPPクブPRRク /PRRUSVRRWクA}3チPクS13チPp
!クO)Pク6a3チ3ツPクo」3ツPクタa3チ3ツPUSUSVWーA3チエRPクa<3チ3ツPーA3チエ^PUSVRRーハ3チエ Pp
!WWWWWWWTZエノ3チヘ!エw5フpヘ!ヘ フ
0974デフォルトの名無しさん2006/03/03(金) 18:43:02
>>973
何でこんな事ができるのかさっぱりわからん
0975デフォルトの名無しさん2006/03/03(金) 19:10:50
>>973
すげー。解説kbn
0976デフォルトの名無しさん2006/03/03(金) 19:15:36
>>973
どうやって使うのこれ
0977デフォルトの名無しさん2006/03/03(金) 21:37:56
>>968
<body><script>function Y(x,y,w,z){c=(C=x-w)*C>(C=y-(t=u=e=z))*C;for(a=s=c?x>w?(
e=x,u=y,w):(e=w,t=y,x):y>z?(e=y,t=w,u=x,z):(t=x,u=w,y);b=(u-t)*(a-s)/(e-s)+t,a
<=e;a+=2)document.write("<p style='background:red;position:absolute;top:"+(c?b:
a)+";left:"+(c?a:b)+";overflow:hidden;width:2;height:2'>")}G=P=Q=r=99,R=66,S=33
,A=(M=Math).PI/20;F=P+r;for(i=41;i--;Y(F,G,F=P+j*M.cos(i*A),G=Q+j*M.sin(i*A)))j
=[r,S,R,S][i%4];F=G=P=Q=220;for(i=42;i--;)Y(F,G,F=P+(j=[0,S,R,S][k=i%4])*M.cos(
(k+=i)*A),G=Q+j*M.sin(k*A));</script>

2行目が1文字少ない
0978デフォルトの名無しさん2006/03/04(土) 02:46:40
>>973
すげー。ハンドアセンブル?

>>976
4行をテキストエディタとかにコピーして、拡張子をcomとして保存して実行。
テキストだけどバイナリとして実行できるデータの並びになってる。
0979デフォルトの名無しさん2006/03/04(土) 13:30:05
すげー
0980デフォルトの名無しさん2006/03/13(月) 07:29:27
おお、実行ファイルがテキストってことに感動した
0981デフォルトの名無しさん2006/03/14(火) 14:21:40
980超えたから次スレキボンヌ>>980
0982デフォルトの名無しさん2006/03/15(水) 13:26:29
>>978
ただ単に作った実行形式ファイルの拡張子を.txtにしてコピペしただけじゃね?
0983デフォルトの名無しさん2006/03/15(水) 13:56:24
>>982
0984デフォルトの名無しさん2006/03/15(水) 14:08:09
>>982
0985デフォルトの名無しさん2006/03/15(水) 14:55:33
>>982
お前頭いいな!
ついでに次スレも立てといてくれ!
0986デフォルトの名無しさん2006/03/15(水) 18:22:56
com2txtだよね?
http://www.vector.co.jp/soft/dos/util/se004841.html
0987デフォルトの名無しさん2006/03/15(水) 20:13:13
>>986
COM2TXTはヘッダ部分が"T_OOWW"になるし、
7行に収まらないことが多いよ
それ以外の奴はハンドアセンブルで書いてると思うよ
0988デフォルトの名無しさん2006/03/15(水) 21:42:55
さっきからCOMCOMうるせー!
exeでもいいじゃんか
0989デフォルトの名無しさん2006/03/16(木) 08:59:27
>>987
":?7%00%DDPY"の系統のやつもCOM2TXT
>>973だけが別系統っす。
COM2TXTのやつは、スタックに積んだデータが自己解凍ルーチンになっていて
テキスト変換した実行可能バイナリが展開されるんだけど、
>>973のは、そのままでスタックにAAを積んでいって、画面表示するバイナリになってる。
0990デフォルトの名無しさん2006/03/16(木) 09:03:11
七行プログラミング part5
http://pc8.2ch.net/test/read.cgi/tech/1142467359/

てんぷらよろしく
0991デフォルトの名無しさん2006/03/17(金) 01:54:38
インデックス作らないとなのね・・・
0992デフォルトの名無しさん2006/03/19(日) 04:28:16
('A`)
0993このスレのインデックス2006/03/19(日) 17:38:56
BMPモザイクフィルタ >6
箱入り娘 >10
倉庫番 >34-35,37,852
BMPグレースケール化 >38-43,45-56,58-60,62,63-76,78-80,197,198,200,201
順列の出力 >61
telnet >85-87
bmpgen >88,89
コードブレイカー >90
MMLプレイヤー >93-100,105,109,118,119,124
おみくじ >101,(ry,>129,132-136,138,146
MD5 >116,121,123,131,176,180
/*動作説明汁*/ >122 (マウスカーソルランダム・高速移動?)
RPN風電卓 >137,141
一人麻雀 >145,186
XORフィルタ >169-171,(ry,>178
MD5,SHA1 >183,187-191,194-196
表計算 >204-207,209-212
1スレ372のオセロ >230-
素数 >269-276,294
最長連鎖探索 >288
NQueen >289
変数機能付きRPN電卓 >306-310,312
GCD >334-342
π >344,347-349,351-(ry,>832-(ry,>861
ナンプレ >377
メッセンジャ >387-389
MIDIプレーヤ >390-394,396
Γ関数 >400-402
4コの数字で10 >403,410-416,432
迷路 >417-421,423,424,427,430,566
hit&blow >492-496,499-502,542
0994このスレのインデックス (続き)2006/03/19(日) 17:39:35
sage >515
掲示板 >543
ブロック崩し >551,552,558,559,573,582-589,683,684
素数 >553-557,744,758,759
Brainfuck >560,844
HexDump.pm >561,562
/*何?*/ >564-565
ローマ字かな変換 >591-601,603-605,619
XMLパーサ >609,610,613,626
オンドゥル語 >627
/*動作説明汁*/ >630-632 (>633)
インベーダもどき >651
画像加工 >655,668
ソリティア >672
タイピング >678-682
bejeweled >712
AA >719
FF風ダメージ表示 >722-723
画像ビュアー >732,734
プロパティビュア >735,736
爆発 (再掲) >746
電卓 >748-751,814
RangeCoder >755,757
2ch trip >765,766
Cソース情報 >769-772
トーンジェネ >781,790
/*何?*/ >845
数当て >858
0995このスレのインデックス (続き)2006/03/19(日) 17:40:06
おしどりパズル >870
C indent >871
文字テーブル >878
川渡りパズル >882-897,908,912-917
ぬるぽ叩き >898
確率ゲーム >923-929
じゃんけん >930,932
Base64デコーダ >937
BMP回転 >939-948
BMP縮小 >948
シェルピンスキー? >950
FFT >951
メッセージボックス >960-966
線描画 >968-972,977
ブーン >973-975,978,989

ちょっち長いよ
MID2WAV >503
対戦マインスイーパ >509
動詞変換 >628,629
将棋 >634-650,(ry,>667,669,673
MML2OBJ+OBJ2WAV >867-869,920
BMP2HTML >874
○×ゲーム >933-934
0996デフォルトの名無しさん2006/03/19(日) 21:57:09
乙ww凄いな
0997デフォルトの名無しさん2006/03/19(日) 21:58:18
七行プログラミング part5
http://pc8.2ch.net/test/read.cgi/tech/1142467359/

誘導針ー埋めー乙
0998デフォルトの名無しさん2006/03/20(月) 06:56:19
うめ
0999デフォルトの名無しさん2006/03/20(月) 07:03:10
↓ラスト
1000デフォルトの名無しさん2006/03/20(月) 09:19:39
1000 ズサ━━━━⊂(゚Д゚⊂⌒`つ≡≡≡━━━━!!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。