七行プログラミング part4

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
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
惰性で2ゲッツ
議論は入れないで、ソースで語ろうね!
==========  終  了  ==========
サイズ・形式限定の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);}
==========  終了  ==========
8デフォルトの名無しさん:03/05/02 04:46
9動画直リン:03/05/02 05:13
10箱入り娘:03/05/03 03:12
ピース(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);}
11デフォルトの名無しさん:03/05/04 12:23
age
12デフォルトの名無しさん:03/05/07 21:44
#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);
}
13デフォルトの名無しさん:03/05/07 22:08
>>12
#include<stdio.h>
main(){long a;scanf("%ld",&a);a<1001&&((a=(a-1)/2+1),printf("%ld",a*a*(a>0)));}
14デフォルトの名無しさん:03/05/07 23:07
sub main()
do
msgbox "ふ〜ん、それで?"
loop
end sub

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

もしそうなら、その本破り捨てて
トイレットペーパーにでもした方がいいね!
>>20
whileをifの代わりに使っていませんが。
while(a<1001){

a=1001;
}

実質 if(a<1001)
>>22
sokoka.
24デフォルトの名無しさん:03/05/09 21:39
age
>>16
行バッファリングだからscanfによってバッファはフラッシュされる。
JIS X 3010の7.9.3参照。(C99だと章番号が違うかもしれないが)
Cマガの連載に詳しい解説が載ってたんだが単行本化してくれない…
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!*/

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

ttp://accessplus.jp/staff/in.cgi?id=11258
34:03/05/18 05:07
以前の書き込みにあった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
35:03/05/18 05:13
念のために追記しておきます。
上のコマンドラインのまま実行するにはスクリプトの
ファイル名をs.txtとして保存して下さい。
36デフォルトの名無しさん:03/05/18 10:01
>>20
じゃ、やけにfor文を使う参考書は?
実際、あるよ。
37:03/05/18 19:30
すみません。
まだ、書き忘れていたことがありました。
スクリプトを読めば解かることなんですが
移動はviと同じhjklです.
38ばけ:03/05/18 21:25
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時間
39ばけ:03/05/18 21:31
↑の使い方。
コマンドから、実行ファイル名 元のBMP名 保存するBMP名
もし、保存するBMPを書かなかったら、エラーです。
(けど、だれも使わないか)一応書いたけど。
>>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;}
41ソース変更された人:03/05/18 23:06
>>40
よく、がんばった。
けど、何が気になった?
なんで変えたの?
>>41
diffを取ってみたら?

と発言しかけたが無意味だったな
>>41
動機?
マカーだからエンディアンが気になった

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

24bitBMPをグレースケールにして,24bitBMPで保存するのは無駄すぎ.
8bitにてテーブルカラーで保存されー.
(自分でやれ?時間があれば……)
#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インデックスカラーへの布石.
思ったより縮んでないけど,まだまだ行けるはず!
47デフォルトの名無しさん:03/05/20 15:34
>>45
輝度値の計算のことはありがとう。気づかなかった。
そんで、8bitでの保存は、とても
1行+6行*79文字では表せそうにないことがわかったので、
断念した。やけに、コードが増えてしまう・・・
そんで、24bit→24bitグレースケールになっていた理由は、
Game上で24bitのドットデータを変換するのに使う関数を改造したから。
いい、アドバイスありがとう。けど、無理だ。
#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重ループが削れるから……(ぶつぶつ
4948:03/05/20 16:39
>>48
?〜:0;ではなく,?0:〜;でした...
5047:03/05/20 16:47
>>48
すげー。今、「どんだけやっても、
paintとプレビューで表示してくれん。」
とか、思って来てみたら、できてる人がいる。
そのソース見て勉強させてもらうよ。今から。
5147:03/05/20 16:59
>>48
情報:
さっき、ソース解体して調べたら、実は
fclose()前のfputc(0,S);がいらないことが判明。
消しても大丈夫。ただのゴミだから。
5247:03/05/20 17:44
//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に入ったら、もう一回載せる。輝度は修正しました
>>52
fgetc,fputs はすべて getc,putc にしてもよいと思うが。
fclose もその場でプログラム終了するからいらないね。
while もすべて for にしる。
main(int c,char**v) を main(c,v)char**v; にしる。
0x00 を 0 にしる。
i>=4 を i>3 にしる。
5447:03/05/20 19:07
↑のやつは(<<52)LoadImageで読み込めない
BITMAPを作っちゃいます。
すいません。これ、おかしかったです。
使わないで。
>>54
ループを
for(X=s*h;X--;putc((T+B+G)/3,S))B=getc(R),G=getc(R),T=getc(R);
に変更すれば大丈夫でない?
5647:03/05/20 19:11
>>53
ごめん。まさか、書き込みが来るとおもわなかった(↑とか書いたし。
けど、まずは、LoadImageで読み込める、
フォーマットどおりのBitmap作るようにするよ。
57bloom:03/05/20 19:11
ちゃんと変換されていると思うけど、どうよ?

#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);}
>>58
最後の fseek(R,i,1); って、うちではなくても大丈夫そうだった。
そしたら7行だね...はやぁ
bmp ってリトルエンディアン固定なんでしたっけ?
順列を辞書順に出力(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);}}
>>47
RGB平均≠輝度ってのは覚えておくといいかも。詳しくはYUVとか検索。
で、今更だが>>40の輝度、GとBの係数が逆だったのに気づいた。
77,151,28が正解なんだが5,9,2 >>4でも結果に大した違いがなかった罠。

>>60
固定だと思う。RIFFでも見たことないし
8bitだと7行でエンディアン依存無しは無理か・・・
6347:03/05/20 19:50
>>59
fseekは必要です。
横のデータは4の倍数バイトに決まってるので、
その修正用です。横のサイズが4の倍数以外の
BMPだと狂うはずです。
あと、#includeは七行に入らないの?
6447:03/05/20 20:40
//みんなの力借りてなんとかできました。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);}}
//協力有難うございます。
>>59
fseek(R,i,1);はlong境界にあわせるために必要.
横サイズが4の倍数でないファイル読ませると破綻します.
私はfseek使わずに読み込むことで進めさせましたが.
6665:03/05/20 21:02
>>63
あぁ,かぶり負け
さて、じゃあエンディアン依存なしバージョンに朝鮮だな。
6858:03/05/20 22:01
>>63 >>65
ほんとだ。ペイントだと見られるけど、すしえさんではだめだった。
お詫びに >>67 のお題に挑戦させてください。
基本は>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);}}
>>64
おれっちのところだと、横が4の倍数でないとずれまくるのだが何か変?
画像は 187x298x24
7147:03/05/20 23:04
>>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に収まってません。なんかアイデアありませんか?
>>71
今まで fopen やめて stdin/stdout を使うようにしてたけど
そうすれば十分収まったりしない?
漏れ的にも引数にファイル名とるよりfilterのような動作のほうが
何かと便利だったりすることのほうが多い。
7358:03/05/20 23:51
できました。今、調整中です。ちょっとお待ちを。
>>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);}}

適当にやってみただけでテストしてない罠
7558:03/05/20 23:57
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);}}
#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++コンパイラを通そうとすると私にはこれが限界です.
なんか昼間からずっとやってる気がする……
きみらのやってる事はスキルアップに直接繋がると思うよ。
短く書く方法参考になった。
>>76
C++使うんだったら、fstream 使ったほうが便利でよろしいかと。
#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省略の辺りはとても残念です.
>>78
引数の型の省略がなんかずるい気がしてイヤだったんで,なんとか付けたままで出来ないかと頑張ってたんですよ.
短くしていく過程でデフォルト引数使ってしまったんで,C++と宣ってるだけでして.
結局私も妥協してしまったわけですが……

連続すいませぬ.
>>79-80
gcc(g++) と Sun Workshop CC では、
関数 O, I の返値でエラーが出てコンパイルできないです。
何とかがんばってみてください。
82デフォルトの名無しさん:03/05/22 01:12
age
ねた切れ?
>>83
ここに挙がってるネタでやってないものならいくつもあるが
8583:03/05/22 15:36
即興で作ってみた
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ヽ(`Д´)ノ もがしゃっ!");}}}
#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 [ホスト名] [ポート]
動作がおかしかったのでちょっと修正

#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();}
昔の作品で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;}}
8988:03/05/23 01:14
しもた。
m[321] としておいてくらさい。そして n[320] いりまへん。
〇神転生よりコードブレイカー

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ヽ(`Д´)ノ もがしゃっ!");}}}
>>85 >>90
>ヽ(`Д´)ノ もがしゃっ!

わろた
まあなんだ、ソース投稿する時は上げろ
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。
94デフォルトでない名無しさん:03/05/23 23:31
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;}

@[音色番号] 音色を変更します。
95デフォルトでない名無しさん:03/05/24 10:19
さらに追加。

#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 休符です。音階と同じ扱いを受けます
少しばかりソース圧縮。

#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;}
>>96
M(x){midiOutShortMsg(h,x)}を作る。
oはグローバルなのでo=0の初期化は不要。

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

こんなのつくってみた。1行にまとめて引数にどうぞ。
@45c32d32e32g32o5c32d32e32g32o6c32d32e32g32o7c32d32e32g32o8c32o7g32e32d32c32o6g32e32d32c32o5g32e32d32c32o4g32e32d32
o3a32b32o4c32e32a32b32o5c32e32a32b32o6c32e32a32b32o7c32e32a32e32c32o6b32a32e32c32o5b32a32e32c32o4b32a32e32c32o3b32
o3f32g32a32o4c32f32g32a32o5c32f32g32a32o6c32f32g32a32o7c32f32c32o6a32g32f32c32o5a32g32f32c32o4a32g32f32c32o3a32g32
o3g32a32b32o4d32g32a32b32o5d32g32a32b32o6d32g32a32b32o7d32g32d32o6b32a32g32d32o5b32a32g32d32o4b32a32g32d32o3b32a32
こんな感じだったっけ?
>96
〜(e[d-a]+〜

〜("024579;"[d-a]-48+〜
とすればe[]の定義不要で11文字減る
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;}

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

#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;}
101おみくじVB6:03/05/25 03:07
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行ですた
アイタタタ
103101:03/05/25 03:27
>>102
スマソ、おれにできるのはこれ位だ
もっと勉強してきまつ
ガンバッテネ
>>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);}
>>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
>>101
意味もなく2行。

Sub main(): Dim a(): Randomize: a = Array("大吉", "中吉", "小吉", "末吉", _
"吉", "凶", "大凶"): MsgBox "運勢は" & a(Int(Rnd * 7)): End: End Sub
いや、難しすぎるんだって。
>>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) とする。
<script language="javascript">
m = new Array("大吉", "中吉", "小吉", "末吉", "吉", "凶", "大凶");
alert("運勢は"+m[Math.ceil(Math.random()*7-1)]);
</script>

JavaScript実質2行。もっと短くできる?
>>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

とか。
>>110
<script language="javascript">
m="大吉,中吉,小吉,末吉,吉,凶,大凶".split(",");
alert("運勢は"+m[Math.ceil(Math.random()*m.length)]);
</script>

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

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

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

意味ないのでsage
すれ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));}
117::03/05/25 13:51

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


修正ソース拝借→指摘修正→ボリューム追加(エクスプレッションかもしれない)

#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の最初にチャンネル番号を付ける事。
119デフォルトでない名無しさん:03/05/25 14:01
W(6522+atoi(++b)) は W(6522+atoi(++b)<<16)の間違いです...
public class Aho {
 public static void main(String args[]) {
  System.out.println("おまえら、全員市ね");
  Thread.sleep(1000000);
  System.out.println("だから、市ねって");
 }
}
>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)
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;
123デフォルトの名無しさん:03/05/25 16:50
>>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 の宣言消し
>>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()を用意する必要がなくなり、多少短くなるかもしれない。
125デフォルトの名無しさん:03/05/25 22:23
ここのスレはすっげーな。
七行でここまでいろいろ表現できるとは。
>>115
VB知らないんだけど、「吉」「凶」は纏められないんですかね?
小凶や末凶も増えるし・・
>>126
余計に長くなっちった。
>>125
さて、レスしたからには挑戦しなければなりませんが。
>>115
微妙に変だから直しました
あとEndは無しでもいけそう
$も不必要かと

Sub Main(): Randomize: MsgBox "運勢は" & Mid("大吉中吉小吉末吉吉 凶 大凶", ( _
Rnd * 6 \ 1) * 2 + 1, 2): End Sub
末吉吉 の部分がどうしても気になる・・・のに、触ると余計に長くなってしまったりするジレンマ。
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]));}
132デフォルトで無い名無しさん:03/05/26 21:20
>>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


>>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

"中凶", "小凶", "末凶" ってなんだ ?
普通のおみくじに小凶があるか とマジレス
順番って 大吉 中吉 吉 小吉 だよね?
逆ポーランド表記ちっくな計算機

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 - "*" 見たいな感じで
138133:03/05/27 21:59
>>136
> 順番って 大吉 中吉 吉 小吉 だよね?

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

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

らしい。
"中凶" はなかったが、"小凶", "末凶" はあるみたいだ。
すまんかった。→ >>132 (藁
139デフォルトの名無しさん:03/05/27 23:52
age
140山崎渉:03/05/28 12:33
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
>>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());}}
>>24bitRGB->8bitMonochrome
明度ってR,G,B各要素で最大のものと教わったのですが,何故そのような色に重み付けをした変換でそれっぽくなるのでしょう?
>>142
人間の感覚
144_:03/05/29 03:01
145デフォルトの名無しさん:03/05/29 15:39
<BODY onLoad='d();'><NOBR><SCRIPT>
p='123456789一二三四五六七八九TUVWXYZ[\東南西北白発中';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で確認)
>>132
Splitは区切り文字が空白の場合は省略可能

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

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

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

else{printf("頑張れよ");
}
}
150デフォルトの名無しさん:03/05/31 22:53
>>149
このソースをどうすればいい?
a<50はa>50だし、
101以上の値を入れたときの
処理がないぞ。
あと、int main(int argc,char**argv)って言ってるだろ
151デフォルトの名無しさん:03/05/31 22:55
>>150
戻り値を省略した場合はint。
mainのプロトタイプは
main()
main(int)
main(int, char **)
main(int, char **, char **) // << MSのは対応してないやも
1番目と3番目のみ正しい。
153デフォルトの名無しさん:03/05/31 23:01
>>152
__cdecl
154デフォルトの名無しさん:03/05/31 23:03
>>149はコンパイルエローになる
>>154
アラーメッセージは聞こえますか?
>>153
そんな処理系バリバリ依存のキーワード持ち出すんだったら
void main()
でも別にかまわないだろ
ナにゆーてんの?
誰か return 0; がないのに突っ込もうよ。
>>157
2番目と4番目が仕様上は正しくないと言ってるんでしょ
このスレ的には短くなるなら多少の処理系依存はアリだったはずだが
処裏刑威尊上等
両方intでも問題無い。
明示castのペナルティあるけど
>>158
最近そこには、突っ込めなくなった。
163デフォルトの名無しさん:03/06/01 13:28
保守
>>158
C++としてコンパイルすればいいじゃん
165デフォルトの名無しさん:03/06/01 15:39
>>164
別にCでもできるぞ。
ただ、警告になるが。
166デフォルトの名無しさん:03/06/01 16:37
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の右クリックに追加して使えます。
なにげにオプション入力可能
167デフォルトの名無しさん:03/06/01 16:44
149のをコンパイルしたら
elseifは定義されていません。」だってさ
168デフォルトの名無しさん:03/06/01 16:44
キー入力すると・・・は
Enterを押すと・・・です。
169デフォルトの名無しさん:03/06/01 17:34
暗号キー+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)を作成します
170デフォルトの名無しさん:03/06/01 17:37
暗号キー+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)を吐きます。
171デフォルトの名無しさん:03/06/01 17:41
暗号キー+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"を変えただけ
>>164
C++ なら cstdio で int main で std::printf, std::scanf じゃん。
173デフォルトの名無しさん:03/06/02 00:23
>>169-171
全部まとめて7行に入るよね?
XOP演算って何ですか?
ぐぐっても出てきませんでした。
XOR なら知ってるが。
というか、なぜこのスレで?
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]));}
>>175
>>169,170
>>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++])
;}
179デフォルトの名無しさん:03/06/03 19:47
>>176
ヤ、ヤバいコードだ…
>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("");}
181デフォルトの名無しさん:03/06/10 17:48
age
短くするためには処理系依存もかまわないという考えが醜いな。昔はよかった
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));}
184デフォルトの名無しさん:03/06/14 14:54
#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行で作れないなんて・・・
みなさんすごいですね。
>>183
すごいな… MD5にSHA1とは
>>145

<SCRIPT>p='123456789一二三四五六七八九TUVWXYZ[\東南西北白発中'
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行いけそう。
>>183
Mac OS 9.2.2でSHA1は動作確認できました。
ただMD5の方は動かず。
プロトタイプのせいかと思い厳密に書き換えても変わりませんでした。

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

コンパイラはMrC 5.0d3c1
>>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]
thx。テーブルに置き換えたら正しく動作しました。
その後置き換え部分のみ比較してみたら一致したので
おやと思い置き換えた部分をいろいろいじった結果
fabs(sin(j+1.))*(~0U+1.)をunsignedにキャストすることでも動作。
どうやら原因は全ての数がdoubleにキャストされてから加算され
unsignedへ戻す時にオーバーフローしてy==UINT_MAXになる為のようでした。
お騒がせしました。
オーバーフロー対策した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));}
191189:03/06/20 02:04
>>190
それでも7行に収めてしまうとは。感服しますた。
192デフォルトの名無しさん:03/06/23 22:39
age
193nana:03/06/24 18:22
このスレ最高!!!
/*>>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("");}
195194:03/06/24 23:12
>>194>>190
>…がエディアンに依存するのでは
と書いてますけど、>>190のソースの半分位は理解出来なかったので
勘違いかもしれません。
と言う訳で、私の勘違いで気分を悪くされたら、ごめんなさいm(_ _)m
s/エディアン/エンディアン/g
/* >>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;}
198197:03/06/26 23:23
/* 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;}
199デフォルトの名無しさん:03/06/28 10:37
a
/* 使い道は無いと思いますが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);}
/* 何度も何度もスマソ
   グレースケールは多分(バグが無ければ)これで最後です
   基本的には>>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);}
今の質をみていると、やはり糞スレだな。
パート1の初期のメンバーは熱かったな。
>>202
初期よりも、むしろ100以降だろ?
・・・と、主観が入りまくるので、この手の話は、や め な い か ?

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

//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行です。
#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のを七行に縮めてみる
206デフォルトの名無しさん:03/07/09 03:08
最後 for(q=e;q<=g;p[a][b]+=p[d][q++]); とかの方がよくね?
#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;}
        ( ⌒)     ∩_ _
       /,. ノ      i .,,E)
      ./ /"      / /"
      ./ / _、_    / ノ'
  _n  / / ,_ノ` )/ /  グッジョブ!! おまいら最高!
 ( l (   _、_   / _、_
  \ \ヽ( <_,` ) |( ,_ノ` )      n
   ヽ___ ̄ ̄  )  ̄     \    ( E)
     /    /  フ     /ヽ ヽ_//
グローバル変数の初期値が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桁に落としてみると字数が減るかも。
学校に行くのでアイディアだけですみません。
>>209
> グローバル変数の初期値が0であるというのは
仕様。
x,y のループを x,y に分けないでひとつのforにしたら、短くなる。
そだね。xyに分けるのは人間の都合だよね
SHA1 と MD5 のコードはどういう風に使うんでしょうか。入力が分からない・・ヽ(´Д`;)ノ
>>213
コンソールから実行
※ SHA1→実行ファイル FILE→対象ファイル
SHA1 < FILE

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

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
216213:03/07/16 13:52
>>214
五日ぶりにカキコ
できました、ありがとうございました。
217デフォルトの名無しさん:03/07/17 02:17
//ヤター!エミュレータできたよ
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();}}
最近mainのreturn 0;とかincludeとかしっかり書いている人がいるね
書いてないのを作品と認めない俺としてはかなり評価しています。がんばれ!
219デフォルトの名無しさん:03/07/17 23:52
オセロとテトリスのソースきぼんぬ。
自分でも作ってみたいので、参考にさせてください。
>>219
オセロは過去に出た。ハズ。
>>219
七行スレ嫁
つーか、絶対、知ってて言ってるだろ?
つーか、この後に、もっと短くしたソース晒して
自慢したいだけだろ?
222デフォルトの名無しさん:03/07/18 00:04
>>220
過去スレ調べたけど、既に消えてました。
マジです。
お願いします。
>>221
そんなことないです
>>222
おまいの目は節穴だ
おまえら死ねよ
誰かさぁ、今まで出た七行プログラムのコード、コンパイルしてどっかに置いといてよ。
インタープリター系はそのままで。

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

int main(){
puts("\n|゚∀゚)プッ\a")
getch();
reurn 0;
}
229デフォルトの名無しさん:03/07/18 11:17
>>222
っていうか、オセロなんて7行で可能なの?
#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;}
231デフォルトの名無しさん:03/07/18 12:50
>>230
コンパイル通らないよ
>>231
環境は何?あと、エラーメッセージとか。
ああ、オセロ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,
にすればうまくいくのではないかな?
>>219
オセロもテトリスもあった。
テトリスはJavaScriptだったが。

>>225
7行コードだから良いわけで
ひさびさにオセロを見た
今インデントを展開して読んでみているのだが、凄まじいな
236231:03/07/18 16:51
WinXPでBCCです。
エラーは「左辺値が必要」です。
237デフォルトの名無しさん:03/07/18 16:53
>>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;
と直すとか。
デバッガで追いかけても理解できない俺は屑ですか?
理解したいならソースに改行/タブを入れて見やすくしてから
見やすいように書き換えていくのがいい
・・・文が変だな
>>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);
が、どっちみち、まともに動かない気がするが…?
>>242
まともにうごいているように見えるけど?
こうすればコンパイル問題ないよ
昔ずいぶん頑張って解読してこのソースコードは大体読めるようになったので、まず下のソースで間違いないと思う。

#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;

それにしても美しいソースコードです。
>>244
だから、
a=1+b=c; /* c を ( 1+b ) に代入出来ない */
と同じで、左辺値が必要なんだって言ってるの、OK?
p%9?k(),v:m[p]=9; /* 9 を ( p%9?k(),v:m[p] ) に代入する事は出来ない */
ちゃんと、優先順位を考えませう ( ?: の方が = より優先される )
246245:03/07/20 03:46
ついでだから、もう少し。
変数と単項*演算子、[]演算子、->演算子は常に左辺値を生じさせる
また、.演算子も通常、左辺値を生じさせが、その他演算子は左辺値を生じさせない
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;
}
C FAQの3.16にも同じようなことが書いてありますね。
http://www.catnet.ne.jp/kouno/c_faq/c3.html#16

ところで、?:演算子で左辺値を生じさせるって、
C++でもダメでしたっけ?
このオセロってやっぱり人間V.S.人間?
>>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++ で結果が変わります
250248:03/07/20 08:15
すげぇー、CPUとの対戦かよ。
感動した!
じゃ、そこのコードは
(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は度肝を抜く作品の目白押しなので、一度ゆっくりと読んでみ。
>>251
実行してないから分からんが、そのコードは
p%9||(m[p]=9);k();
と等価になるけど、
p%9?k(),v:m[p]=9;
とは、k()の実行条件が明らかに異なるけど、大丈夫なの?
つーか、本当に、1度、ソースを解読したの?
253デフォルトの名無しさん:03/07/21 00:27
>>252
理解できないなら、実行してしか判断できないのに、
実行せずに文句言ってはいかんな。
>>253
理解するも何も、そんなコード、
元のソースが無い限り、読む気にならんて
>>254は低学歴
>>254
理解できないなら四の五の言わずに実行しろよ(w
>つーか、本当に、1度、ソースを解読したの?
自分が読めないからって(w

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

言い訳と嫉妬の人生を>>259かいま見た。
261259:03/07/21 02:26
>>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つのコードは等価
つーか、演算子の優先順位も知らねーで、
解読しただの、美しいコードだの、アホじゃねーのか?
だいたい、オセロのソースくれって言ったの、お前じゃねーのか?
このスレにでるまえに、他のスレでやってたのも、お前じゃねーのか?
ただ単に、自我自賛したいだけの、自作自演じゃねーのか?
オナニーなら、オナニーらしく、勝手に独りでやってくれよ
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| 強い電波を感知しました  .|
|____________|
              / /
              /
      _         ビビビビビ
     /||__|∧    /
  。.|.(O´∀`) /
  |≡( ))  ))つ
  `ー| | |
    (__)_)
263259:03/07/21 02:43
他のスレに出たヤツ
http://pc2.2ch.net/test/read.cgi/tech/1058283913/40-44
で、
http://pc2.2ch.net/test/read.cgi/tech/1058283913/49
で、コンパイル出来ないと言われたが、
この後の経過を見ずに、誰からも誉めてもらえなかったので
>>219から自賛自演を始めたと予測
つーか、もう寝る
>>263
オセロを作った人は、もうこのスレを見ていないと思う。
というより、part1-2 あたりの人は、ほとんどきていないだろう。
激しく攻撃されていたからね。
265248:03/07/21 11:01
>>251
> パート1は度肝を抜く作品の目白押しなので、一度ゆっくりと読んでみ。
了解っす。こんな凄いのがゴロゴロあるのか。
それらを作った神達はどこへ行ったんだろう?まだこのスレにいるのかな?
もうこの板から消えた可能性もあるんだよ
>>265
>>4を見ればいいんじゃないかと
268山崎 渉:03/08/02 02:29
(^^)
269 ◆XKS67XicGk :03/08/03 14:40
素数を求めるプログラムを書いたら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
>>269
part2 の 802-810 を見るとよいよ。
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秒くらいかな?
もっと短く、もっと速くできそうだけど短すぎるんで七行プログラミングにはどうかと・・・
>>271
part2 の 802-810 を見るとよいよ。
>>272
もちろん、見ました
でも、短くするためとはいえ非効率かと
素数ねぇ。ハァ。
7行で何かすることが目的だから別に役に立たなくてもOK。

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



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

とか言ったりするんだろうな・・・
誰かその大学に伝えるべきだとは思うんだけどなぁ。
ちょっと前のことになるんだけど、
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では警告も出ません。
実行速度については触れないで下さい(汗
久しぶりに投稿

パズル 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で座標指定。
・・・って六行になってしまった(;´Д`)
Nクィーン?8クィーンの亜種か?
普通、8-QueenつったらN-Queenを兼ねるわけだが。
>>291
逆じゃね?N-Queenつったら8-Queenをかねる。
N-Queen ⊃ 8-Queen
素数 (Ruby)
p (a=(2..100).to_a).each{|i|a.reject!{|j|j%i==0&&j>i}}
54バイト
perlならもっと短くできるかna.
7行テトリス更新です
296山崎 渉:03/08/15 15:59
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
297デフォルトの名無しさん:03/08/20 22:02
からあげ
うまうま
299デフォルトの名無しさん:03/08/26 19:24
たつた
−−−−−−−−−−−−−終了−−−−−−−−−−−−−
-----------再開----------------------
- - - - - - -一時停止- - - - - - -
- - - - - 山折り - - - - -
304abc:03/08/26 22:23

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

http://pocket.muvc.net/job/index.html
――― - ――― - ―谷折り― - ――― - ―――
閑古鳥が鳴いてるので。

変数機能付き逆ポーランド記法電卓
#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までが使えます
*使える演算子は+,-,*,/,^(べき乗)です
307306:03/08/27 17:42
#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;}

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

俺としては'+'とかを数字にして欲しかったな。
310306:03/09/01 09:48
大した物でもないし何度も投稿するのも悪いと思って投稿しなかったんだが……

#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;}

==の効率的な減らし方が分からない……
無理矢理消そうとすると余計に長くなる気がする
7行カラーテトリスができているのに、ここに書き込みしないのは、もう…
312309:03/09/01 14:00
いちお、>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;}

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

これからも7行プログラミングネタ頑張って作成してくだちぃ。
>>318
アイタタタ

(再読)

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

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

#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;}
>>334
...7行スレなんだからせめてこのくらいは縮めてから書こうよ。
unsigned int gcd(unsigned int a,unsigned int b){return b?gcd(b,a%b):a;}
初心者が宿題を解くスレになってるぞ!
まあ、ちゃんとプロンプトが出てユーザーに親切なあたりはいいんじゃないでしょうか…
てきとうに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;}
ついでにプロンプト無し不親切版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;}
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;}}}
型を変えて、構造を前のに戻す。構造戻したので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;}

っていうかなにやってるんだ俺_| ̄|○
ま、その調子でもっと難しいお題に挑戦してくれ。
不親切/入力チェック無し/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));}
#include</dev/tty>
34462:03/09/09 21:09
初心者なりにがんばってみました
円周率を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;}
345円周率:03/09/09 21:19
#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;}
346デフォルトの名無しさん:03/09/09 21:20
やべ、にかいかいてしまった
>>344 >>345
part2の827見れ。
100万桁くらいは求められるよ。

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

というわけでざっと縮めてこんなもんかな?
#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;}
×高感度
○好感度

なにやってんだか…_no
まあ盛り上げようとしてくれてるんだから無駄にはすまい。

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);}
352デフォルトの名無しさん:03/09/09 22:09
#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);}
353デフォルトの名無しさん:03/09/09 22:12
> NULLが0だと仮定してたり
コード上では0だが。
srand(time(0));のことを言っているんだろうが、time.hをインクルードしているから何の問題もない。
>NULLが0だと仮定してたり
激しく萎え
>>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らしいけど。
>>355
> NULLが0かどうかは(Cでは)処理系依存じゃなかったか?
1.NULLは0。
2.0はヌルポインタ。
3.ヌルポインタが0番地かどうかは処理系依存。
#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);}

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);}
NULLを使うのは推薦しない。ゼロで十分役目を果たす。
NULLという語を使うのは文書だけにして、
いいかげん#undef NULLしたまえ。
なんだ、廃れたかと思えばまだまだ猛者がいるんじゃねえか。

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議論はやめようぜ。とりあえずのことスレ違いだ。
意味論ではNULL!=0
>>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に初期化されます。
このスレ的には文句なしに0で決まりだろ。
>>362
どちらもその通り
>>362
hoge.c:4: initializer element is not constant
ってエラーが出るんですが。gcc (GCC) 3.2 20020927 (prerelease)
どこまでの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' に変換しました。データが失われているかもしれません。
367362:03/09/10 22:00
>>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は入れてないからわかんないけどたぶん大丈夫・・・。
>>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さんのを改良したやつですよ)
うーむ。
今の流れはそれでいいとして、
誰か「これを7行で?」というネタを振ってくれ
既出大だけど、○×ゲーム。
>>370
うむ、既出なり。 part3 の 527, 529
パズルをとくのはどうよ。ナンプレとか
各種ソート(アルゴリズム)
メール感染型無害ウィルス
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
D言語イイ(・∀・)!
名前は知っていても触ったことがないんだよね
377362:03/09/11 23:39
ナンプレはやってみたらできたのではってみる。
あんまりテクニカルには縮めてないけど。

#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の数字のみ認識して他の文字は空白とみなす。

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

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

久々に現役復帰して作ってみるかな。でも今日はもう寝る。
メッセンジャーです。
使用方法:起動して"相手のコンピュータ: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行はすぐでしょう。
なんかクラス名、メソッド名にほとんど費やしてるな
389387:03/09/13 11:06
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";}}

たまに起動しても反応しないことがありますが、そのときは再起動してください。
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行……もう少し短くなるかも
391390:03/09/14 21:30
おまけ。
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());}}
392390:03/09/14 22:54
一応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());}
>390
g()<<8|g()の類を回避しての7行化を希望
>>392
gccでリンクできなかったので、実際に動くかどうか検証はしていないけど、
うまい具合に実装していて感心するところが多かった。このスレ初参加?
f、z、g関数の使い方は今後の参考になる。

みんなもちゃんといい作品には反応してやろうよ。392のレベルはかなり高いぞ。
神の集うスレ
>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);}
>>395
紙が叩かれるスレでもあります
398デフォルトの名無しさん:03/09/21 17:30
age
399389:03/09/22 03:38
>>389どうよ?初めてのJavaなので評価キボンヌ
400supermathmania ◆ViEu89Okng :03/09/22 17:24
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;}
401supermathmania ◆ViEu89Okng :03/09/23 16:58
書き直し。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;}
402supermathmania ◆ViEu89Okng :03/09/23 17:01
char"" → char**
4つの数字で10作る7行ってどうよ?
>>403
4桁の数字を10にする証明
http://pc2.2ch.net/test/read.cgi/tech/1063724453/

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

String[] a



String[]a

にして-1Byte。

やったね(・∀・)!!
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や数字の重複を許すようにしてみて遊んでくだちい。
>>410
ちなみに重複を許す場合は 9999 : ((9*9)+9)/9 に注意。
412362:03/09/25 01:08
同じく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までの全ての解を吐き出します。
>>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}}
414410:03/09/25 02:53
>>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){}}
perl だと、つい顔文字を探してしまいますね。
>>410-414 GJ (+ - * /)
['.(-1
↑406
# 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}}}}

漏れがある気がするので直して下さい。
417デフォルトの名無しさん:03/09/29 19:21
<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>

418417:03/09/29 19:23
迷路です
移動は、←↑↓→
Gがゴールです。。。
迷路生成のアルゴは棒倒し法ですか?
G+=(R==Z)?"●":M[R];
G+=(R%N==22)?"<BR>":"";

G+=(R-Z)?M[R]:"●";
G+=(R%N-22)?"":"<br>";
にしても問題ないかな?
421417:03/09/29 19:57
>419
棒倒し法の手抜きです。
すでに壁がある場合の処理が入ってないので。。。
422デフォルトの名無しさん:03/09/29 19:58
Cで書いてください。
>>417
S?
動かすキャラに色を付けてみ見るテスト。

追加: E="<a style=color:#";
修正: "●" → E+"0f0>●</a>"
修正: "<font color=white>_</font>" → E+"fff>_</a>"
自作自演良くない。いい作品なら放っておいても見る人は見てくれるよ。
俺は今から見る。
見た。なるほどね。JavaScirptを使った7行プログラムのいい参考になった。
427417:03/09/29 23:14
迷路、棒倒し法正式版に修正しました。
<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>
>>427
その連投といい、ageといい、自作自演といい、嫌がらせ?
>>427
なんかうざい人がいるからsageとけ。
>>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行いけんるんじゃない?
419-420とか俺なんだけどさ、
理由もなく自演とか言うのやめろよ。

まぁどうせ皆ここをかちゅとかのお気に入りリストに入れて巡回しているから
ageなくてもレスがついたのわかるんだけどなー
# 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/}}

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

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

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

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

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

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

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

え?過去スレ嫁?
全くです
いいだしっぺの法則というのがありまして……
472デフォルトの名無しさん:03/10/22 01:29
おお、まだ続いていたか、このスレ。
>>471
おーつかれ。
>>473
単にまとめサイト貼っただけだよ
結構前からある
 ∧||∧
(  ⌒ ヽ >>474教えてくれて有賀と。
 ∪ 。ノ
  ∪∪ 
printfってどこだったかな
まとめサイトというより、自分の7line作品集みたいだったが
みんな! ここを忘れていないか?!
http://www.2occc.nothing.sh/

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

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

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

ナンバーマスターマインド
コンピューターがランダムに決定する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のスペル合ってるんだろうか。
>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行にしたいとこなんだがなぁ。
これってヒットアンドブローって名前じゃなかったっけ?
なんとか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;}
495377 ◆HuPaSCAL16 :03/11/11 06:24
#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>入れて七行になるようにまだ頑張ります(´д`;)
496377 ◆HuPaSCAL16 :03/11/11 06:39
すまそ。さっきは訂正前のはっつけちゃたです。。

#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;}
3n+1問題を解明するプログラム7行で作って。
:377 ◆HuPaSCAL16

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

ところで、ランダムを自前で作ればいいんじゃないの?part1の砂嵐みたく。
短縮しようとおもいましたが、断念。。以下メインのみ。
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を使うのはどうでしょ?
501377 ◆nOpX3dBxz6 :03/11/12 08:17
>>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
キリ番おめ〜。
time_tはunsigned longとは限らないわけで。
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);}
504503:03/11/14 22:52
あ、pow 消してなかった。
もとのソースをどっかにアプしてくれないか
>>505
indentコマンド使おうぜ。まあ変数名とかは戻らんが…
>>505
編集中は改行が入ったりすることはあるが、
元のソースも何も、はじめからずっとこのまま。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html
この辺にインデントつきソースがあるなら張ったらいいと思われ
対戦型マインスイーパ(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]);}
>>509
前に出ていたマインスイーパはマップの広さを指定できたが、
それに比べればずいぶんぬるいな。
511デフォルトの名無しさん:03/11/17 01:45
>>510
ぬるぽあげ?
>>511
最悪
>>511-512
俺達は何かとんでもない勘違いを(ry

ぬるぽあげ → ぬるぽ-age → ぬるぽ時代 だったんだー
>>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
#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文字に収められなかったわ
7文字じゃなくて七行だ・・。
狙ってボケようとして素でボケるのは俺っぽいなぁ。
/*****このスレは今から「7文字プログラミング」スレッドに名前が変わりました*****/
#includ

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

main(){

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

main=19

最小のプログラムさえ書けないなんて…もうだめぽ。。。
REM ソースと実行結果が同じプログラム in N88BASIC
10 LINE
main{}

で6文字・・・
朝早くからなに寝ぼけてるんだろ・・・

print'';

C以外でも文字すら表現できない・・・_| ̄|○
>>519
10 LIST
と書きたかったのだろうか?
523515:03/11/19 13:07
for(;;)
>>522
そう。鬱死
最小のXMLなら <a/> 4文字。プログラムじゃないけど。
javaScriptなら alert() 。文字すら表示不可とは。
こうなりゃ禁断の秘儀を。
--- seven.c ---
_SEVEN_
--------------

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

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

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

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

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

>>540
スレッドじゃない掲示板なら、ここにあった。
別にここではいけないということもないかと。
ちょっち違う版
#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);}
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;}

//ありきたりだから既出かもしれない。
544543:03/12/05 21:59
ファイル名は lb.cgi で。
546543:03/12/05 22:17
>>545
スマソ;
こちらで発表してもいいけど、よほどのものを作らない限りスルーされるぞ
こちらで発表してもスレ違いではないが、
webprogがスレッド式掲示板で盛り上がっているから
そちらに投稿したほうがよさげではないかと。
このスレも人がいなくなったな…。
暇ならCで7行ブロック崩し作って〜〜〜
551初参戦:03/12/30 22:48
>>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
にして下さい…。もうだめぽ

常連さん圧縮キボンヌ
552551@初参戦:03/12/30 23:09
ランダムにしてなかった…このままじゃ固定だ…ヽ(;´Д`)ノ
スレ汚しごめんなさい |´・ω・)
#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(".");}}
Haskellで全ての素数。
let e(a:x)=a:e[y|y<-x,y`rem`a/=0]in e[2..]
>>553
Cと比べてあんまり短くないがそれでいいのかHaskell。
main(i,z){for(;z=i++;z||printf("%d,",i))while(i%z--);}
>>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と同じ長さか…
556555:04/01/02 18:06
括弧が足らなかった。
正しくは
main=(putStr.show)[x|x<-[2..],all((/=0).rem x)[2..x-1]]
打つ出し脳
>>554
そんな超非効率なアルゴリズムと比べてもらっては困る。
こっちはちゃんとしたエラトステネスの篩いだぞ。

>>555
元のでもhugsでそのまま入力すれば表示されるけど、
コンパイルしたいなら、
main=print$e[2..]where e(a:x)=a:e[y|y<-x,y`rem`a/=0]
のほうが短い。
>>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行…
559558:04/01/03 22:41
ヘッダ省略なしで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);}}}
メモリ、ソース量無制限の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))
% 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!
%

モジュール部分はまだ文字を詰め込める余裕があるのでもう少し遊べますな。
やる気無いけど。
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
#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行にしてけろ。
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);}
565564:04/01/14 17:05
#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();}
<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>

迷路
567くりあき:04/01/16 11:51
http://strangeworld-honten.com/cgi-bin/bbs.cgi
あやわー本店もよろしく
ブロック崩しコンパイルできないぞ?
>>568
どのブロック崩し?それに、あなたの環境は?
あとCPPでコンパイルしてみたりした?
古い話で申し訳ないですが、>>410 さんいらっしゃいますか。
切符問題スクリプトを http://cm.xrea.cc/ に載せたいので
許可を頂きたいのですが。
571410:04/01/21 02:19
ノシ
構いませんよ
413,416,432は私じゃないので念の為
パート2の途中から読んでないんだけど、
6行オセロに匹敵する名作が出ているなら教えて。
>>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);}}}
>>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
(´・ω・`)ショボーン
>>574
cでコンパイルすればよし…
つーかろくなもんじゃないよ。system("cls")とか最悪。
>575
環境依存なくできれば最高だけど
ゲームの性質からして無理なんじゃないかな。
>>576
まぁ575は無視するにしても、
環境依存するプログラムである瞬間に評価は下がってしまうよね。
たとえば574みたいに、せっかくコンパイルしてくれても
c++では動かない、Windowsでは動かない、みたいになっちゃうしね。

俺はincludeが無い瞬間にコンパイルしないけどね。
extern"C"{putchar(int);getch();exit(int);system(char*);}
って環境依存?
>578
何を聞いてるのかわからないが
"C"はまともな実装なら必ず使える
>>579
まぁ、"C"が使えなかったら、"C"++ じゃないからね…
>>580は突っ込みにくいネタ。
582デフォルトの名無しさん:04/02/13 23:14
ブロック崩しっぽいもの。
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;}
583582:04/02/14 14:12
実行するときは
bash-2.05$ ./a.exe 4
みたいに引数に数字を指定して。

実行しても何も表示されなかったら
ウィンドウのサイズを大きくして。
>>582
winじゃダメなのかな。cursesが無いと出てまう。
>>584
cygwin入れてないの?
586582:04/02/15 17:00
>>584
cygwin入れててもcurses関係のライブラリを
入れてなかったら文句言われます。
587584:04/02/16 16:41
>>585>>586
よく分からん。VC6とBCC使っているけど、特別何かをいれたりはしていない。
589584:04/02/16 18:44
>>588
ありがとう。うまく機動できるかな。PHP、SDLとできなかったくちだし。
590デフォルトの名無しさん:04/02/17 02:53
なんか名作出た?
ローマ字→ひらがな。スレ汚しごめん。(ん≡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;}
>>591 行数減らせそうだね
>>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行化
あ、nが大文字だと駄目だこれ(´・ω・`)
つーかそれ以前に(ry
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;}
違うアプローチで。た行が難しい・・・。
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;}
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;}
#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縮めた
$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はできない
601593:04/02/18 12:41
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 = ばぐ: ゃ ょ
七行プログラミング・テクニックメモ (for Perl)
http://cm.xrea.cc/techinfo.cgi
文字コードをうまく使えたら "あいう…"なんてスペースが削れるんだがな・・・
597とは別の方法ってことかな。EUC-JPでも動くような
>>603-604
EUC,SJISでよければ、両対応も難しくなさそうですな。
7行XMLパーサ、などと難題をふっかけてみる。
textfile.orgで7行wiki紹介されててビクーリ
へた字変換にチャレンジ
>>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
デモの$idt.=' ';はスペース4つで
>>608
へた字ってなに?フォント名?
それとも、所謂クサチュー語(最近では"ギャル語")のこと?
612608:04/02/19 18:09
>>611
もちろん、ぎゃるご
>>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

うーん。
あーん。
>>612
とりあえず辞書キボン
>>612
ギャル語じゃなくてギャル字だろ?
ギャル語の変換なんて到底無理だ。
ギャル字ならなんとかなるんじゃないか?
というわけでギャル字辞書キボン
新入りでもうだめぽ。っていうか疲れた。スレ汚しごめん

#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;}
620619:04/02/23 00:37
↑とりあえず一通りの変換できます(、。ーもね)が、
jyaとか3文字系は一部わけわからん出力になりますw
>>619
puts("ん"); はだめだべ…
オンドゥル語変換プログラムを7行でキボン。>ALL

そんなこと→ドンドコドーン、悪人→ルンゲン
等、特殊なものも変換できる
(または、新単語をカスタマイズできる)
ような奴がベストです。
規則性あるのか?
・膨大な辞書ファイルを作って置き換え
・ローマ字に分解して母音を改竄し、片仮名に再変換
とか考えられるが、どちらにしても7行に収めるのは
つらいと思われ。
ギャル字ってのは、秀マクロのクサチュー語変換マクロを
使っていろいろしないと どんな文字かも忘れますた
626609:04/02/25 22:28
>>613
気づいてたみたいだけど609はSOXじゃなくてSAXだった∧||∧
#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依存だけど∧||∧
たまに変な変換をしてくれます
%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;
629628:04/02/28 12:20
動詞変換、
ttp://www.ipa.go.jp/STC/NIHONGO/IPAL/ipal.html(辞書)
ttp://homepage3.nifty.com/taketoki/flow.html(フローチャート)
未然(否定、使役&受身)連用形 終止&連体形 仮定形 命令形 未然形
630HSP:04/03/02 00:24
#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
631HSP:04/03/03 01:26
#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
632HSP:04/03/04 01:10
#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
#!/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
634雪ん子:04/03/05 14:39
将棋。力不足でまだ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;}
635雪ん子:04/03/05 14:40
上の続き

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;}}
636雪ん子:04/03/05 15:10
角動かんし
金変な動きするし直します。
>>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 ,
638雪ん子:04/03/05 17:22
#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;}}

へたれだからこれ以上括弧へらせない。バグ修復済み
639雪ん子:04/03/05 17:50
15行目のfor(i=63;i;)じゃなくてfor(i=63;i+1;)
お、すごいね。
起動後は下の手番で、右下の香車を1マス前に動かすなら
「 1918 」って入力するんだね。
後手(下)の駒は _ 先手の駒は ^ がついて
成ると左に+が付くと。

すごいなこれ。
641雪ん子:04/03/05 21:29
#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行見えてくる気配がない。
これで最後かな?
if(j==1)for(u=i%9;u<81;)if(d[u+=9]==j+t)continue;
↑って何を意図してるの?
continueは一番内側のブロックから抜ける、だったっけ?
一番内側のfor,while,do-while文から抜ける、だったっけ?
644雪ん子:04/03/05 23:27
>>642
二歩のチェックです。
ルールあんまりわかんないんですが

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

ということです。
645雪ん子:04/03/05 23:29
>>642
チェックになってないですね。
そういう意図だったんですねすいません。
646雪ん子:04/03/05 23:57
#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行。うぉぉちぢまらねぇ!
>>646
小手先だけど…
> if(v==i)goto l;return 0;
って
> if(v!=i)return 0;
でいいよね? これで7字かな。

確かにスレタイの7行は達成してないけど、
それでも18行でここまで出来てると正直凄いと思う。
あとはがんがって縮めるだけだけど…半分以下か。
小手先のごまかしやってないでアルゴリズムレベルでの革新が必要な予感。
648雪ん子:04/03/06 00:48
>>646
実は途中で先手が下になるべきだということに気づいてしまったので
帳尻あわせるために非常に汚いアルゴリズムになってしまったんです。
なので新たに誰か(俺みたいな部活プログラマじゃない人)が
1から作ったほうがいい気がするのです。
もいっこ小手先の技
- " \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字くらい? 微妙か…
漢字使うならワイド文字使うべきなのかもだけどねぇ…縮むかどうかは微妙か。
650デフォルトの名無しさん:04/03/06 00:57
- printf("%s",k+h[i]*3);
? printf("%.*s",2,k+h[i]*2);
+ printf("%.2s",k+h[i]*2);

これでもいいみたい
さらに4byte節約
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


>646-650
あとこんな感じか
- if(!j)u=2;
+ u=j?u:2;
- if(m=='y')
+ if(m-'n')
なかなか1から書こうって奴はいないと思うよ。
一応突っ込んどくと所々1,2文字オーバーだがなw
653雪ん子:04/03/06 16:14
春休みの宿題終わったら一から組みなおして、
7行に近づけようとおもいます。
ま、暇つぶしですが。
よく分からないが最近盛り上がってるな。
プログラミングは全然分からんが期待、ガムバレ。
画像陰毛加工(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
元々のバグもいくつか残ったままだが>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;}}}
657 ◆eMoukokenQ :04/03/07 11:40
小手先ですが何文字か縮めて見ますた。

#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;}}}
658雪ん子:04/03/07 13:35
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;}}}
659377 ◆HuPaSCAL16 :04/03/07 13:43
>>657
もいっちょ小手先で。

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

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

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

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

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

× s<8?t?j<53&i>54
○ s<8?t?j<54&i>53
>>662
キャスリングとアンパッサンと…
>>658
後手が1354と打つと歩が変な動きをするぞい。
666雪ん子:04/03/07 16:11
動けるかどうかの判定に番兵つかってみた。
おかげで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;}}}
667雪ん子:04/03/07 16:42
無い持ち駒が打てるようになっていたのを修正。
また伸びた・・・欝だ。

#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);}}}
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
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にも適用可
テーブルゲームつながりで、チェッカー(ドラフツ)で参戦しようかなー
671雪ん子:04/03/07 20:46
>>670
期待。
#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
>>667
駒が右逝ったら一段下の左から出てくる。
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
675674:04/03/14 22:15
八行だった・・・ ○|__/"
676C言語の人 ◆OtHeRo2E6Y :04/03/19 22:43
メモ:
作業開始

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

ネタ:
たたき台↓
ttp://pc2.2ch.net/test/read.cgi/tech/1051703369/667

   ○_
   / ヾ  バンバンバンバン!
   つ_| ̄|_
  ↑  ↑
  人 たたき台
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行なのだけど、まだところどころ短く出来そうな。
679678:04/04/03 03:19
8行だった。もうだm
680678:04/04/04 12:31
#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);}

危険ぽ。
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;}
682681:04/04/04 14:29

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;}
683デフォルトの名無しさん:04/04/06 19:33
ブロック崩し(既出?)言語は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
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
定め
期末
上昇気流
げっぷ多すぎ
687デフォルトの名無しさん:04/04/27 16:07
agw
保守
689ネタきぼんぬ:04/05/01 14:44
ネタきぼんぬ
690ネタきぼんぬ:04/05/01 16:00
ネタきぼんぬ
コンパイラはで・
七行シムシティもどきとかどうよ?
スロットマシンはちょっと感動したよ
694ネタきぼんぬ:04/05/03 10:11
シムシティやってみる。
俺SFC版シムシティやってくる。
7行しむしちぃ?ライフゲームみたいな感じかな。
697ネタきぼんぬ:04/05/03 22:46
7行キビシィ
>>696の言うようにライフゲームになっちゃいます。
シムシチィじゃない!!
顧客「優秀なるSE様、そこをなんとか」
699(1/2):04/05/04 02:08
ネタきぼんということで考えました。外出ならごめん。
以下の要求仕様を満たすものをおながいします。
--------------------------------------------------------------------------------
[要求]
ソースファイルを入力として、ファイル情報、クラス情報、メソッド情報、メンバ情報を出力する。

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

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

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

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

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

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

Doxygenでも使っとけ
702(2/2):04/05/04 11:57
>>701
そんなこといったらこのスレ自体の存在意義が無くなるだろ。
Doxygenのソースって7行だっけ?
>>655
なんかキモいぜw
>>ALL
またーり汁
保守
MSNメッセンジャーに"bejeweled"ってゲームがあるけど、あれって7行じゃ無理?
めっちゃ好きだけど、1人じゃ出来ないんだよね。
ゲーム自体は1人でも十分楽しいと思うのだが…。
トランプゲーム類希望。
判定がどれくらいになるかというところ。
一人ポーカーなら可能な気がしてきた
>>707
http://popcap.com/
ここに行ってみそ。
bejeweledあるよ。
711710:04/05/12 23:55
失礼
普通のゲームとしてのbejeweledね、7行じゃないよ。
ちなみに上記のサイトのは1人プレイ用。
712710:04/05/18 21:13
>>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;}}
713保守:04/05/26 19:11
保守age
>>599-600
オメガナゲ

Fantasy on Multiple Entry tunes
- Overture to server administrator
- Codename "BBQ"
- Number 29
715714:04/05/28 21:29
激しく誤爆した・・スマソ

お詫びになんか作ろうか・・
716714:04/05/28 21:30
激しく誤爆した・・スマソ

お詫びになんか作ろうか・・
>>714-716 3レス分の七行プログラム、楽しみにしてますねっ
>>714-716

>>699-700をつくって。
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>
>>719
キモッ
721714:04/06/11 21:18
>>718
まじか・・・・w

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

|∀・;)C++ワケワカンネ
|彡サッ
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風ダメージ表示をしてみる
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

面白かったので改悪。根本的な部分は何も変わっていない…
724デフォルトの名無しさん:04/07/09 00:17
あげとこ
Cのデバッガキボンヌ
726デフォルトの名無しさん:04/07/26 21:27
ほしゅ
727デフォルトの名無しさん:04/09/21 15:46:21
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
728デフォルトの名無しさん:04/09/21 16:04:20
意欲は買うけどルールにはマッチしとらんなぁ。
729デフォルトの名無しさん:04/09/21 16:18:19
ここにもあった
http://that3.2ch.net/test/read.cgi/gline/1078904721/694

せめて名前を選んで本文を入力するとJavaScriptを生成するとか
730fusianasan:04/09/21 22:04:08
ロリ画像ください
731デフォルトの名無しさん:04/09/21 23:47:26
732画像ビューア:04/10/14 12:04:29
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();}}
733ZG196182.ppp.dion.ne.jp:04/10/14 12:12:51
ロリ画像ください
734デフォルトの名無しさん:04/10/14 13:15:58
//>>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();}};}}
735システムプロパティービューア:04/10/15 02:10:47
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();}};}}
736デフォルトの名無しさん:04/10/15 03:10:31
>>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();}};}}
737デフォルトの名無しさん:04/10/15 04:04:31
format c:
738デフォルトの名無しさん:04/10/17 14:23:05
過去ログってもう読めないですか?
739デフォルトの名無しさん:04/10/17 15:31:56
ミラー作ってくれた人がいるようだ
ttp://cm.xrea.cc/
#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; }
741デフォルトの名無しさん:04/10/18 09:17:22
7行でx86系のアセンブラ作って。
単純な条件判定やジャンプ命令と関数呼び出しぐらいできればいいかな。
742デフォルトの名無しさん:04/10/18 11:36:46
命令テーブルだけで7行に収まらない希ガス
743デフォルトの名無しさん:04/10/25 03:59:36
麻雀の手役判定プログラムはどないでしょ?
手牌はファイルから読み込みってことにしたらいけそうな気がする。
744デフォルトの名無しさん:04/10/28 06:15:24
#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;}

アリストテレスのふるい
745デフォルトの名無しさん:04/10/28 16:46:56
>>744
アリストテレスのふるいって何だよ…
それからmemsetは<string.h>ね。
746爆発(7行+7行):04/10/29 00:06:20
//コンパイル済みアプレットが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;}}
747デフォルトの名無しさん:04/10/29 06:28:30
>>744
typedefイラネ
#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;}
749748:04/11/13 00:46:31
>>748
書いているけどもっと短かくもできる

けどせっかく 7 行 77 文字にそろったからそのまま貼ってみる
750デフォルトの名無しさん:04/11/15 02:20:35
#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;}

絶対値と三角関数を入れた。
まさか収まらないとは思わなかった。
今は反省している。
751750:04/11/15 02:22:53
つーか、fabs使う必要ないよorz
752デフォルトの名無しさん:04/11/15 11:25:21
math.hのincludeが抜けてはいないだろうか…
753デフォルトの名無しさん:04/11/15 11:38:57
>>752
d fabs(d),sin(d),cos(d),tan(d);
754デフォルトの名無しさん:04/11/15 11:50:49
>>753
ホントだ見逃してマスタ…
吊ってきます orz
755デフォルトの名無しさん:04/11/15 21:13:18
前スレのを改造して、標準入出力で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;}
756デフォルトの名無しさん:04/11/16 01:09:50
ネタ投下時は age ようぜ
757755:04/11/16 21:08:15
もう一声削ったら片方だけ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;}
758perl ./7prime.pl 100000:04/11/18 19:52:47
#!/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;}
}
759748 (ループやめて 5 行…):04/11/20 17:10:45
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;}
760デフォルトの名無しさん:04/11/22 01:42:39
#include "Defines.h"
int main()
{App* papp=new App;
if(!papp) return -1;
papp->run();
delete papp;
return 0;}

#include "Defines.h"で無限の可能性
761デフォルトの名無しさん:04/11/22 01:53:03
非標準ヘッダーは反則だろー
762デフォルトの名無しさん:04/11/22 01:57:26
10桁トリップを7行で…無理ポ?
763デフォルトの名無しさん:04/11/22 01:59:23
ちときつそう…crypt部分を7行かぁ
764デフォルトの名無しさん:04/11/22 09:06:36
765デフォルトの名無しさん:04/11/22 09:06:48
そこで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";
766デフォルトの名無しさん:04/11/22 09:16:54
違和感があると思ったら実体参照が変換されてた。

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";
767デフォルトの名無しさん:04/11/23 22:26:53
7行でかけよ
768デフォルトの名無しさん:04/11/23 23:22:53
( ゚д゚)
769デフォルトの名無しさん:04/11/24 20:57:54
>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;
770デフォルトの名無しさん:04/11/25 00:05:19
ロジック変えずに
#!/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
771デフォルトの名無しさん:04/11/25 00:13:47
コメントの扱いがまずいっぽ。でも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;
772デフォルトの名無しさん:04/11/25 01:45:52
#!/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
773デフォルトの名無しさん:04/11/25 13:15:52
perlマンセー
774デフォルトの名無しさん:04/11/25 13:49:47
何やってるか全然わからん
凄いな
775デフォルトの名無しさん:04/11/27 03:31:48
7行でネットワークプログラミング
776デフォルトの名無しさん:04/11/27 04:38:12
<?php
echo file_get_contents('http://www.google.co.jp/');
?>
777デフォルトの名無しさん:04/11/27 09:59:48
<?echo file('http://www.google.co.jp/');?>
778デフォルトの名無しさん:04/11/27 14:55:36
>>777
それじゃArrayになっちゃうんじゃね?
<?
echo implode ("", file('http://www.google.co.jp/') );
?>
779デフォルトの名無しさん:04/11/29 23:21:27
昔書いたな。3行ポートスキャナー。
懐かしい…。

漏れはこのスレ好きだぜ。
780デフォルトの名無しさん:04/11/30 11:25:19
<?php
mail('[email protected]', '※未承諾広告※', '加奈です', 'From: [email protected]');
?>
781デフォルトの名無しさん:04/12/04 18:22:33
#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])
782デフォルトの名無しさん:04/12/04 22:52:06
ところで昔からの疑問なんだけど、どうして幅79文字なの?
調べたけど分からなかった。
783デフォルトの名無しさん:04/12/04 23:18:05
79文字+改行1文字で80文字だから、の様です。
784デフォルトの名無しさん:04/12/04 23:18:55
何で80文字?
785デフォルトの名無しさん:04/12/04 23:20:37
ネットワーク 80文字
でぐぐればわかるんじゃない?
786デフォルトの名無しさん:04/12/05 04:39:01
旧式のCUIが横幅80桁だったんだよ。
787デフォルトの名無しさん:04/12/05 08:29:43
旧式というかビデオカードの都合
788デフォルトの名無しさん:04/12/05 09:20:55
キャラクターベースのターミナルの標準が80*24だった頃の
昔からの名残ですから、残念!!
789デフォルトの名無しさん:04/12/05 09:25:13
80×25じゃない?
790デフォルトの名無しさん:04/12/05 10:00:06
#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
791デフォルトの名無しさん:04/12/05 10:04:23
事実上ターミナルの標準となったVT100↓
http://www.columbia.edu/acis/history/vt100.html

MSDOS何かでは標準状態で24+最下行のファンクション表示だったが、
最下行のファンクション表示を利用することで25行の表示も選択できたというだけの話なのだ。残念!!
今はファンクション表示なしの25行になってるけど
792デフォルトの名無しさん:04/12/05 10:35:34
んー、でも30行BIOSを使えばもっと出せるもん。
793デフォルトの名無しさん:04/12/05 10:44:54
いや、そういう問題じゃないでしょ…
とにかく80×24が一般的だってこと
794デフォルトの名無しさん:04/12/05 12:10:10
じゃあなんで7行なの?24行でいいじゃん。
795デフォルトの名無しさん:04/12/05 12:20:28
699のネタが現実味をおびてくるかもしれないな。
やってみれ。
796デフォルトの名無しさん:04/12/05 12:35:39
>>794
part1 の >>1
> 海外のプログラマーが、たったの七行足らずで
> DVDのプロテクトを解除するプログラムを作成!
> 我々も負けてはいられません!
>
> ルール:七行なら言語は問いません。では、どうぞ!
797デフォルトの名無しさん:04/12/05 12:40:04
>>794
初代スレの1-12辺りを参照のこと
798デフォルトの名無しさん:04/12/06 02:31:18
799デフォルトの名無しさん:04/12/06 11:00:58
IBM のパンチカードが一行 80 文字だったからじゃない。
80 文字の由来は紙の大きさにより。
そして 25 行は、ディスプレイも 80 文字に合わせた結果、
ディスプレイの縦横比から自然と 25 行になったと思っていた。
パンチカードに VT100 が合わせたんじゃなかった?
800デフォルトの名無しさん:04/12/06 12:42:02
縦横比で行くと30行にならん?
801デフォルトの名無しさん:04/12/06 14:59:38
行間の余白があるんじゃないのかね
802デフォルトの名無しさん:04/12/06 22:09:54
パンチカード・・・昔の人は大変ですね
803デフォルトの名無しさん:04/12/06 23:08:02
パンチカード自体が 80x25 じゃない?
804デフォルトの名無しさん:04/12/08 17:33:40
 
805デフォルトの名無しさん:04/12/08 17:51:34
int
main
(void)
{
return
0;
}
806デフォルトの名無しさん:04/12/08 19:25:24
Dim thought$,hand$
Input thought$ : If thought$="自殺" Then Goto *homecenter
*continuelife
Goto *continuelife
*homecenter
hand$="七輪"+"練炭" : Goto *yominokuni
End
807デフォルトの名無しさん:04/12/09 06:58:06
>>806
2行目と3行目は反対かと
808デフォルトの名無しさん:04/12/09 18:53:08
久々に、覗きに来ました。
相変わらず皆さん良い仕事されますね。
感心しまくりデス。
809デフォルトの名無しさん:04/12/10 07:21:53
'1111111111111111111111111111111111111111111111111111111111111111111111111111'.
'2222222222222222222222222222222222222222222222222222222222222222222222222222'.
'3333333333333333333333333333333333333333333333333333333333333333333333333333'.
'4444444444444444444444444444444444444444444444444444444444444444444444444444'.
'5555555555555555555555555555555555555555555555555555555555555555555555555555'.
'6666666666666666666666666666666666666666666666666666666666666666666666666666'.
'7777777777777777777777777777777777777777777777777777777777777777777777777777'.
810デフォルトの名無しさん:04/12/10 07:46:06
                                       .
                                       .
                                       .
                                       .
                                       .
                                       .
                                       .
811デフォルトの名無しさん:04/12/10 17:22:52
810 の説明
これは38の全角空白文字アトムを単位節として7節からなるPrologの述語です。これが
?- ・・・ '                                       ', ・・・
のように質問の中で使われると

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

812デフォルトの名無しさん:04/12/10 21:24:09
日本語で説明おながいします
813デフォルトの名無しさん:04/12/11 00:13:54
意味になるから何?
814748:04/12/11 00:32:19
>>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 も実装したかったけど,
このアルゴリズムではちょっと無理です.
815デフォルトの名無しさん:04/12/11 01:02:22
BFインタプリタとか
816デフォルトの名無しさん:04/12/11 07:48:36
外出
817デフォルトの名無しさん:04/12/11 10:20:05
<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のデータベースはこのような
使い方もできますよ、ということです。
818814:04/12/15 00:40:54
pow の代わりに PI (円周率) を実装しようと思ったんだけど,
もう 3.1416 くらいでいいかな
3.141593 くらいじゃ, まだ誤差が出るし, それ以上だと幅がキツい

理系の人ってどれくらいの値を使うんだ?
819デフォルトの名無しさん:04/12/15 00:50:32
「およそ3」(ウソ)。

テイラー展開しまくった式使ったらいけそうだけど > π
820デフォルトの名無しさん:04/12/15 00:53:16
atan(1)*4…ってdouble精度じゃ3.141593か
821デフォルトの名無しさん:04/12/15 01:02:18
学校で習う3.14でいいんじゃない?
822814:04/12/15 01:21:28
4日レスがなかったのにキミたちは…

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

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

意見ありがと
823デフォルトの名無しさん:04/12/15 16:32:43
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で終わらせてください。
824デフォルトの名無しさん:04/12/16 19:54:33
ttp://internet.watch.impress.co.jp/cda/news/2004/12/16/5820.html
次は15行だったりするんでしょうかね?
それともこれを7行に?
825825:04/12/16 19:55:33
ちなみにプログラムはこんな感じらしいです。

# 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"))
826デフォルトの名無しさん:04/12/16 22:23:16
ttp://ansuz.sooke.bc.ca/software/molester/
9行になったらしい。
827デフォルトの名無しさん:04/12/16 23:51:05
>826
改行位置を調節すれば数文字オーバーする程度か
このスレをリファラで飛ばせば反応してくれそうだw
828デフォルトの名無しさん:04/12/19 16:05:11
ruby-talkにRubyで6行まで縮めた人が居るよ
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/123945
829デフォルトの名無しさん:05/01/07 00:50:02
perlが一番見た目キモイコードになるな、なんと言うか・・・
インデントつけてもごちゃごちゃするもんなperlって。大好きだけど
830デフォルトの名無しさん:05/01/07 05:18:17
ぺrぇrはしね
831デフォルトの名無しさん:05/02/01 00:17:59
懐かしいスレだ・・・。

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

main(String a[])



main(String[]a)



1by(・∀・)te!
832デフォルトの名無しさん: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);}
833デフォルトの名無しさん: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);}
834デフォルトの名無しさん:05/02/07 10:45:56
age
835デフォルトの名無しさん: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");}
836デフォルトの名無しさん:05/02/07 18:24:20
>>832-833,>>835
part2の800番くらいのレスに、一応任意桁の精度で求めるやつがあるよ。
なにもいじらずに実行したら5000桁。part2の中でトリッキーの1で検索すれば出ると思う。
837デフォルトの名無しさん:05/02/08 00:16:16
そんな古いログはない
838デフォルトの名無しさん: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;}
839836:05/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;}
840デフォルトの名無しさん:05/02/08 02:04:11
>839
お前は頑張った。
841デフォルトの名無しさん:05/02/08 02:06:59
>>840
d
842デフォルトの名無しさん:05/02/16 20:40:40
−−−−−−−−−−−−−さいk(ry
843デフォルトの名無しさん:05/02/16 20:57:19
−−−−−−−−−−−−−さいか(ry
844黒死犬@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
...
845デフォルトの名無しさん: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 スレに出ていたゲーム
846デフォルトの名無しさん:05/02/18 21:18:18
−−−−−−−−−−しの・さいか(ry
847デフォルトの名無しさん:05/02/18 21:20:44
−−−−−−−−−−しの・さいか 6さい
848デフォルトの名無しさん:05/02/19 16:35:50
ここにあるのってほとんど単に作った後改行削ってるだけなんじゃないの?
849デフォルトの名無しさん:05/02/19 17:53:05
850デフォルトの名無しさん:05/02/21 11:23:11
>>845
2: 型名が必要
2: 未定義のシンボル p
2: ) が必要
5: 宣言の構文エラー
851デフォルトの名無しさん:05/02/21 11:36:52
>850
コンパイルオプション見直せ
852デフォルトの名無しさん: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=ダンボールをここに運べ
853デフォルトの名無しさん:05/03/01 12:37:21
>852
おおー、すごい。ちゃんと遊べる(`・ω・´)
…でも、クリアのご褒美がアレで(´・ω・`) (w
854デフォルトの名無しさん:05/03/01 22:12:44
>>852
ガイドライン板から来ますた
この板すごいなあ。
855デフォルトの名無しさん:05/03/02 00:08:49
>>854
ガ板でも紹介されているの?
856デフォルトの名無しさん:05/03/03 04:19:47
俺もガ板からきますた
857デフォルトの名無しさん:05/03/03 07:10:18
ガイドライン厨ども!



お前らイイヨイイヨー
858デフォルトの名無しさん: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>
-----------------------------------
まぁ、簡単な数当てゲームです
859デフォルトの名無しさん:05/03/04 22:02:35
誰か。

7行に収まってるコードを展開してインデントつけて見やすくする7行プログラムを。お願いします。
860デフォルトの名無しさん:05/03/04 22:07:04
C/C++だけでいいかの
861デフォルトの名無しさん: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++]);}

円周率を求めるプログラム
計算が違うのはご愛嬌
862デフォルトの名無しさん:05/03/04 22:55:11
>>859
cpp
863デフォルトの名無しさん:05/03/05 04:25:05
>>859
過去スレにあったよ
864ns.pccol-tdc.co.jp<192.168.10.156>:05/03/08 16:09:55
ロリ画像ください
865ns.pccol-tdc.co.jp<192.168.10.156>:05/03/08 16:10:29
ロリ画像ください
866デフォルトの名無しさん:05/03/08 18:06:35
>>864-865
懐かしいな
このスレにも貼ってあったんだっけ・・・?
867デフォルトの名無しさん: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)です。
868デフォルトの名無しさん:05/03/09 01:34:51
>>867
2つまとめて7行に挑戦してみるか・・・
869デフォルトの名無しさん: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);}

おかしい部分を修正。
870デフォルトの名無しさん: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!!

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

871デフォルトの名無しさん: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();}}

過去ログ見れないので整形自分で作ってみました。
字数制限は問題ないけどいまいち汚い。
872デフォルトの名無しさん:05/03/12 16:28:47
連番作成支援とか
873デフォルトの名無しさん: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辺りにまとめらしきものがる。
874デフォルトの名無しさん: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;}
875デフォルトの名無しさん:05/03/13 19:15:42
>873
ありがとう。
楽しくなってきたんだが、やりすぎると普段から書くコードが汚くなる弊害が…。
876デフォルトの名無しさん:05/03/13 22:31:25
>>875
むしろ逆かな
ここで行うことと逆のことをすると、ソースが読みやすくきれいになり、
さらに論理的に同一の部分を把握する能力もあがった

(ような気がする
と、7行で返答してみた
877デフォルトの名無しさん:05/03/14 11:18:50
まあ一応、他人のソース読む習慣にはなるよね・・w
878デフォルトの名無しさん: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();}}}

いい題名が思いつかなかった。
全てのバイト列を吐くプログラムです。
879デフォルトの名無しさん:05/03/17 16:22:37
お題マダァ-? (・∀・ )っ/凵⌒☆チンチン
880デフォルトの名無しさん:05/03/17 16:37:17
881デフォルトの名無しさん:05/03/17 19:06:17
>>878
芥川賞受賞作品って何?
882デフォルトの名無しさん: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で動作確認
883↑の遊び方:05/03/17 19:20:36
川の向こう岸へ渡ろうとしています。
ここにあるボートは2人乗り。
ボードを操作できるのは「羊飼」「豚飼」「猟師」の三人だけです。
羊飼は豚が大好物で、豚飼がいないところでは、豚を殺して食べてしまいます。
豚飼は羊が大好物で、羊飼がいないところでは、羊を殺して食べてしまいます。
狼は猟師がいないところでは、その場にいる他全員を食べてしまいます。
さて全員安全に向こう岸へ渡るには・・・

名前の文字をクリックしてボートに乗る候補を選んでください。
もう一度クリックすると候補から外れます。
候補に選べるのは同時に最大二人まで。
最下行のボート(<または>)をクリックすると、対岸へ移動します。
ただし、ボートを操作できる人が乗っていないと移動できません。
失敗すると最下行にNGと表示されます。
884デフォルトの名無しさん: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>
885デフォルトの名無しさん: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?
886882:05/03/18 01:05:58
おぉ、結構見落としがあるもんだなぁ。
関数H(M)は思いつかなかった。すごい!
887デフォルトの名無しさん: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;
888デフォルトの名無しさん:05/03/18 02:16:13
追加
P=[1,1,1,1,1,1,1,1,1];R=1; → P=[R=1,1, (略) ,1];
889デフォルトの名無しさん:05/03/18 02:23:47
>>887
試してみた。trueは-1になるみたい。
他の環境でも保証されるかは調べてみないとわからないな。

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

ずるいかもしれないけど、
ボートの向き表示をやめるとか、
表示文字をアルファベット1文字に簡略化すれば、7行できそうだね。
890デフォルトの名無しさん:05/03/18 02:53:17
配列Tの ,"" と6行目の T[8]=0<R?"<":">"; を削除、
7行目 +T[i]+ を +(i-8?T[i]:0<R?"<":">")+ に。
891デフォルトの名無しさん:05/03/18 03:12:55
alignの(左から記述する言語での)初期値はleftなので"left"は省略可。
892デフォルトの名無しさん: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>
893882:05/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文字減らせるね。
894デフォルトの名無しさん: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>
895デフォルトの名無しさん: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>";
896デフォルトの名無しさん: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文字に出来る分、短くなるかも
897882:05/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
というか、実はそれを元にしてるんだけど、
こっちのほうが一般的で全年齢対象かとおもって。
このほかにも川渡りはいろいろバリエーションがあるみたいだね。
898デフォルトの名無しさん: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
899デフォルトの名無しさん:05/03/19 16:43:15
貴様らが楽しそうにJavaScriptなんぞやるからうらやましくてかじってみたら収集つかなくなったじゃねーか!

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

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

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

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


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

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

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

この程度の問題が分からないようじゃ
プログラマ失格なのか!?
俺失格!?
913デフォルトの名無しさん:2005/03/23(水) 13:58:12
正解見れば解き方がわかるから
総当たりで解を求めるプログラムを書けば桶
914デフォルトの名無しさん:2005/03/23(水) 19:27:22
>>912
ヒント:困ったら猟師に頼め
915デフォルトの名無しさん:2005/03/24(木) 03:29:23
>>913
7行で?
916デフォルトの名無しさん:2005/03/24(木) 05:19:23
>>912
ヒント
1.猟師と狼が渡る → 猟師が戻る
2.猟師と豚が渡る → 猟師と狼が戻る
3.?と?が渡る → ?が戻る
4.?と?が渡る → ?が戻る
5.?と?が渡る → ?が戻る
6.?と?が渡る → ?が戻る
7.?と?が渡る → ?と?が戻る
8.猟師と羊が渡る → 猟師が戻る
9.猟師と狼が渡る → クリア!!
917デフォルトの名無しさん:2005/03/24(木) 16:47:32
>>912
ヒント
1.猟師と狼が渡る → 猟師が戻る
2.猟師と羊が渡る → 猟師と狼が戻る
3.?と?が渡る → ?が戻る
4.?と?が渡る → ?が戻る
5.?と?が渡る → ?が戻る
6.?と?が渡る → ?が戻る
7.?と?が渡る → ?と?が戻る
8.猟師と豚が渡る → 猟師が戻る
9.猟師と狼が渡る → クリア!!
918デフォルトの名無しさん:2005/03/25(金) 23:54:57
C++のソースファイルからコメントを取り除いて出力するのを7行で
919デフォルトの名無しさん:2005/03/26(土) 00:51:43
釣り?
920デフォルトの名無しさん: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トラックとします。
921デフォルトの名無しさん:2005/03/28(月) 21:33:56
7行でp2pてできるかにゃ
922デフォルトの名無しさん:2005/03/28(月) 21:53:56
>921
>>824-828
923デフォルトの名無しさん: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;}}}
924デフォルトの名無しさん: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対策のやつを除いて)もっと縮められそうなんだが、どうも妙案が思いつかない。
925デフォルトの名無しさん: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>
926925:2005/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>
927デフォルトの名無しさん:int 2ch =05/04/02(土) 01:31:23
<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>
928デフォルトの名無しさん:int 2ch =05/04/02(土) 02:25:52
<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>

通算成績を表示
まだ文字数には余裕があるけど、これ以上ネタがふくらまないなあ。
929デフォルトの名無しさん: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>
930 ◆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>
931○×ゲーム。:2005/04/04(月) 06:10:45
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/290.c
前に書いた奴です。長くなっちゃったの。忘れてた。
コード用のろだなんてあるんですね。
誰か暇だったら7行に挑戦してみてください。ずるずるコードなんで覚悟してね。
932デフォルトの名無しさん: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>
933デフォルトの名無しさん: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;}

ロジック変えないと無理だろうと…
934デフォルトの名無しさん:2005/04/15(金) 01:37:32
>>933>>931
935デフォルトの名無しさん: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);
}
936デフォルトの名無しさん:2005/05/04(水) 00:47:25
>>935
スレ違い。

【recursive 】 再 帰 【リカーシブ】
http://pc8.2ch.net/test/read.cgi/tech/1048088635/
937デフォルトの名無しさん: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用にもなるはず。
このライブラリを使えば文字コードの自動判別も可能らしいが
さすがにそれだとブックマークレットに収まりきらなさそう。
938デフォルトの名無しさん:2005/07/15(金) 16:56:11
トリッキーの1の名前を久々に見たな
939デフォルトの名無しさん: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.処理遅いです。
940デフォルトの名無しさん: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;}
941939:2005/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 │
└─┴─┴─┘
実際は反時計回りなんですけど・・・
俺のプログラムがおかしかったんでしょうか?
説明変ですいません。回答おねがいします。
942デフォルトの名無しさん:2005/07/26(火) 20:55:43
>>941
940じゃないけど、その図は俺には反時計回りに見える。
943デフォルトの名無しさん:2005/07/26(火) 21:01:21
きっと942と943の頭がおかしいのでしょう
944デフォルトの名無しさん: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;}
945デフォルトの名無しさん: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);}
946デフォルトの名無しさん:2005/07/28(木) 22:02:57
行数リダクション早すぎw
947デフォルトの名無しさん: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);}
948デフォルトの名無しさん: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);}
949デフォルトの名無しさん: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)
950デフォルトの名無しさん: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";}
951デフォルトの名無しさん: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;}
952デフォルトの名無しさん: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:
953デフォルトの名無しさん:2006/01/24(火) 22:07:14
7行じゃないしCOM2TXTですよね
954デフォルトの名無しさん:2006/01/25(水) 03:02:21
いちおうメッセージボックスが出る、はず。
comから32bit exeを展開するだけで大変なので誰か7行(532byte)に削ってくれ
955デフォルトの名無しさん: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:
956デフォルトの名無しさん:2006/01/26(木) 15:42:29
>>955
うちのノートン大先生が激怒する・・・
セクション以外のところに読みにいくとウイルス扱いされてるみたい。
圧縮するのはやっぱり0x00決めうちのほうが小さくなるのか。

PEヘッダ圧縮できねーヽ(`Д´)ノウワァァン
957デフォルトの名無しさん:2006/01/26(木) 16:25:26
バイナリなら可能なんだけどねえ
958デフォルトの名無しさん:2006/01/26(木) 19:53:16
七行では無いし、見ても面白くないし
959デフォルトの名無しさん:2006/03/01(水) 04:07:50
定期上げ
960955:2006/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*
961デフォルトの名無しさん:2006/03/01(水) 21:00:58
>>960
ちょっと驚いたのでage
962デフォルトの名無しさん: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*
963デフォルトの名無しさん:2006/03/02(木) 07:09:31
志村〜8行8行
964デフォルトの名無しさん: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*
965964(=952):2006/03/02(木) 07:41:28
一応遊びたい人がいるかもしれないのでソース置いておきますね
ttp://winny.info/fileboard/files/img20060302073834.zip

955さん七行にしてくれてありがとうです
966デフォルトの名無しさん: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が化けてるよ
967デフォルトの名無しさん:2006/03/02(木) 11:08:21
(´・ω・)
968デフォルトの名無しさん: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>
969デフォルトの名無しさん:2006/03/02(木) 18:06:10
>>968
ジャバスクってこんなことできんのね・・って見てたらブラウザ固まった…orz
970デフォルトの名無しさん:2006/03/03(金) 00:10:30
>>969
僕のブラウザも固まった・・・orz
971デフォルトの名無しさん:2006/03/03(金) 00:36:32
新手のブラクラですな・・
972デフォルトの名無しさん:2006/03/03(金) 01:50:14
>>968
4行目、「height=2」を「height:2」に変えたらFirefox 1.5でも見れた。
973デフォルトの名無しさん: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ヘ!ヘ フ
974デフォルトの名無しさん:2006/03/03(金) 18:43:02
>>973
何でこんな事ができるのかさっぱりわからん
975デフォルトの名無しさん:2006/03/03(金) 19:10:50
>>973
すげー。解説kbn
976デフォルトの名無しさん:2006/03/03(金) 19:15:36
>>973
どうやって使うのこれ
977デフォルトの名無しさん: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文字少ない
978デフォルトの名無しさん:2006/03/04(土) 02:46:40
>>973
すげー。ハンドアセンブル?

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

てんぷらよろしく
991デフォルトの名無しさん:2006/03/17(金) 01:54:38
インデックス作らないとなのね・・・
992デフォルトの名無しさん:2006/03/19(日) 04:28:16
('A`)
993このスレのインデックス: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
994このスレのインデックス (続き):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
995このスレのインデックス (続き):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
996デフォルトの名無しさん:2006/03/19(日) 21:57:09
乙ww凄いな
997デフォルトの名無しさん:2006/03/19(日) 21:58:18
七行プログラミング part5
http://pc8.2ch.net/test/read.cgi/tech/1142467359/

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