5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

七行プログラミング

1 :デフォルトの名無しさん:2001/03/10(土) 09:09
海外のプログラマーが、たったの七行足らずで
DVDのプロテクトを解除するプログラムを作成!
我々も負けてはいられません!

ルール:七行なら言語は問いません。では、どうぞ!

892 :デフォルトの名無しさん:02/04/13 15:54
ええっ!?

893 :デフォルトの名無しさん:02/04/13 15:57
おお〜☆

894 :S:02/04/13 22:13
JavaScript スロットゲーム
現在9行ちょい。7行は容易?

<body onKeyDown=K=event.keyCode><form name=a><input name=b></form><script>R=7;P
=45;C=[];D=document;S="7□=○∴|¥$";A=[0x3EE2E4CC,0x1DCC2C65,0x385CD9A0];T
=[100,5,10,15,20,30,45,60];function Y(){D.a.b.value=P;if(K==13){R>>=1;if(!R){o=
A[0]>>3&7;if(o==(A[1]>>3&7)&&o==(A[2]>>3&7)){alert("賞金 "+T[o]);P+=T[o]}else{
alert("残念");if(P<5){alert("OVER");return}}P-=5;R=7}K=0}for(i=0;i<3;C[i]=A[i++
])if(R&(4>>i))A[i]=A[i]>>27|(A[i]&0x7FFFFFF)<<3;for(i=0;i<3;i++)for(j=0;j<3;C[j
]=B<<27|C[j++]>>3)D.all["F"+(i*3+j)].innerHTML=S.charAt(B=C[j]&7);setTimeout(Y,
99);}for(K=i=0;i<9;)D.write(i%3?"":"<br>","<tt id=F"+i+">",i++," </tt>");for(i=
0;i<8;)D.write("<br><tt>   ",S.charAt(i)," : ",T[i++]);D.a.b.value=P;Y()
</script>


895 :S ◆Q14CxNhI :02/04/13 22:20
<<894

896 :S ◆Q14CxNhI :02/04/13 22:34
<<894
遊び方:
リターンキーで1カラムずつ停止、中央を揃えてください

897 :S ◆Q14CxNhI :02/04/13 22:57
ドラムの配置がダメダメでした。反省。
ついでにちょっと縮めました。

<body onKeyDown=K=event.keyCode><form name=a><input name=b><script>T=[100,5,10,
15,20,30,P=45,60];A=[0x16E29519,0x1DCC2E65,0x384CD988];S="7□=○∴|¥$";R=7
C=[];D=document;function Y(){D.a.b.value=P;if(K==13){R>>=1;if(!R){o=A[0]>>3&7;
if(o==(A[1]>>3&7)&&o==(A[2]>>3&7))alert("賞金 "+T[o]),P+=T[o];else{alert("残念"
);if(P<5){alert("OVER");return}}P-=5;R=7}K=0}for(i=0;i<3;C[i]=A[i++])if(R&4>>i)
A[i]=0x3FFFFFF8&A[i]<<3|A[i]>>27;for(i=0;i<3;i++)for(j=3;j--;C[j]>>=3)D.all["F"
+(i*3+j)].innerHTML=S.charAt(B=C[j]&7);setTimeout(Y,99);}for(K=i=0;i<9;)
D.write(i%3?"":"<br>","<tt id=F",i++,"> </tt>");for(i=8;i--;)
D.write("<br><tt>   ",S.charAt(i)," : ",T[i]);Y()</script>


898 :デフォルトの名無しさん:02/04/14 00:00
>>897
一列目が揃ったけど、結果は「残念」でした。報告。

899 :S ◆Q14CxNhI :02/04/14 00:35
>>898
現在判定しているのは、真ん中の列だけです。
全列を対象とした方が良いですかね?

900 :S ◆Q14CxNhI :02/04/14 00:37
「列」ではなくて「行」ですね。鬱だ・・・。
テストプレイのときは、setTimeout(Y,99) を 300 くらいにしてみてください。

901 :S ◆Q14CxNhI :02/04/14 00:51
<body onKeyDown=K=event.keyCode><form name=a><input name=b><script>T=[100,5,10,
15,20,30,P=45,60];A=[0x16E29519,0x1DCC2E65,0x384CD988];S="7□=○∴|¥$";R=7
function Y(){D.a.b.value=P;if(K==13){R>>=1;if(!R){o=A[0]&56;if(o-(A[1]&56)||o-(
A[2]&56)){alert("残念");if(P<5){alert("終了");return}}else alert("賞金 "+T[o>>=
3]),P+=T[o];P-=5;R=7}K=0}for(i=0;i<3;C[i]=A[i++])if(R&4>>i)A[i]=A[i]%(1<<27)<<3
|A[i]>>27;for(i=0;i<9;C[i%3]>>=3,i++)D.all["F"+i].innerHTML=S.charAt(C[i%3]&7);
setTimeout(Y,99)}D=document;for(K=i=0;i<9;)D.write(i%3?"":"<br>","<tt id=F",i++
,"> </tt>");for(i=8;i--;)D.write("<br><tt>   ",S.charAt(i)," : ",T[i]);C=[]
Y()</script>


902 :デフォルトの名無しさん:02/04/14 02:04
>>910の人、新スレ立ててね。
>>920の人、このスレの名作をまとめてね

903 :デフォルトの名無しさん:02/04/14 03:12
名作候補作品、勝手に選択
選定に当たっては、7行達成を厳格なルールとしました
>>52>>89
>>101>>105>>125>>150>>153>>161>>167
>>319>>320>>337(>>372)>>397
>>402>>428>>430>>494
>>526
>>612>>631>>655
>>745>>753>>770>>774>>798
>>822>>839>>842>>880

904 :デフォルトの名無しさん:02/04/14 04:09
初参加。カレンダ生成プログラムです。多分もっと縮められると思います。
使い方:a.exe 月 年(4桁)

#include <stdio.h>
#include <stdlib.h>
int i=0,d,y,m;void c(int s,int a){while(i<s)printf(" "),i++;for(i=1;i<=a;i++)
printf("%3d%s",i,((s+i)%7)?"":"\n");puts("");}int l(){return((y%400==0)?1:(0==y
%100)?0:(y%4==0));}int w(){return y-=m<3,(y+y/4-y/100+y/400+".#&%(#&($')%'"[m]-
34)%7;}int main(int h,char *v[]) {y=atoi(v[2]);m=atoi(v[1]);d=".&#&%&%&&%&%&"[m
]-7+((m-2)?0:l()&1);printf("%11d %4d\n Su Mo Tu We Th Fr Sa\n",m,y);c(w(),d);}


905 :853:02/04/14 06:11
同じ軸上に居たら敵が追いかけてくるよう改良。
http://boobar.hoops.ne.jp/pacmaso.tar.gz

($n,$p,@e)=split/,/,<>;$c=@m=split//,<>;push@m,map{split//}<>;sub w{(*z,$g)=@_;
$z+=(0,!($z%$c)?$c-1:0,$z+$c>$#m?-$#m-1:0,$z-$c<1?$#m+1:0,$z%$c==$c-2?-$c+1:0)[
$g];$m[$z+$n[$g]]eq'#'or$z+=$n[$g]}sub u{@m[@e,$p]=@_}@n=($t=0,-1,$c,-$c,1);@g=
('.')x@e;while($m[$p]ne'o'or$t+=$n){u(('m')x@e,$d?'D':'C');$e=grep/[.o]/,@m,@g;
print@m,"R:$e P:$t >";$e&&($t||!$d)||exit;u @g,' ';w *p,<>%5||exit;for(@e){($w=
$_)==$p&&next;int$w/$c==int$p/$c&&w *w,$w<$p?4:1;$w%$c==$p%$c&&w *w,$w<$p?2:3;w
*w,1+int rand 4while grep$w==$_,@e;$_=$w}@g=@m[@e];$d=grep $p==$_,@e;$t--if$t}

この辺が限界かな?

906 :デフォルトの名無しさん:02/04/14 08:54
>903
をを、お疲れ。懐かしいね。
マインスイーパや砂嵐が無いんじゃない?

907 :903:02/04/14 17:01
候補にもれがあれば、追加よろしくです
あるいは、投票と考えればよいかな?

908 :904:02/04/14 22:44
バグ取り、圧縮して、月を英語名表示にしました。使い方は>>904と同じです。
※ASCIIコードに激しく依存。入力値チェック無しです。

<calender.c>-------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int i=0,y,m,s,d;main(int h,char **v){m=atoi(v[1]);y=atoi(v[2]);printf("%11s %4"
"d\n Su Mo Tu We Th Fr Sa\n","Jan\0Feb\0Mar\0Apr\0May\0Jun\0Jul\0Aug\0Sep\0Oct"
"\0Nov\0Dec"+m*4-4,y);d=".&#&%&%&&%&%&"[m]-7+((m-2)?0:((y%400)?((y%100)?((y%4)?
0:1):0):1));s=(y-=m<3,(y+y/4-y/100+y/400+".#&%(#&($')%'"[m]-34)%7);while(i++<s)
printf("   ");for(i=1;i<=d;i++)printf("%3d%s",i,((s+i)%7)?"":"\n");puts("");}
-------------------------------------------------------------------------------


909 :デフォルトの名無しさん:02/04/15 00:03
[HTTP鯖] >>706 >>760 >>770
[DNA] >>762
[e] >>769
[mersenne twister] >>749(>>750 >>753)
[BMPGEN] >>775
[tar -xvzf] >>776
[蛇] >>792 >>798
[proxy] >>835(>>839)
[BBS] >>840 >>841 >>842 >>877
[pac-man] >>849 >>852 >>853 >>856 >>866 >>869(>>870) >>879 >>885 >>905
[calendar] >>904

[再帰アフォ] >>646
[BASIC(7行じゃないけど、感動的] >>448 >>497 >>498 >>510 >>511 >>514

910 :ヨ?リ^:02/04/15 00:04
[砂嵐] >>52 >>75 >>76 >>78 >>89
[ラスタスクロール] >>105 >>125 >>129
[インデント揃え] >>116(>>126 >>138) >>688
[圧縮] >>101 >>135 >>146 >>153(>>154) >>696 >>737 >>740 >>744
[倉庫番] >>118(>>120) >>150(>>148) >>179(>>180) >>774
[HTTPクライアント] >>161
[動画再生?] >>205
[レイトレ] >>170 >>209
[迷路(模様?)] >>283 >>285 (>>287) >>305
[ツール] >>319
[ライフゲェム] >>320 >>812 >>815(>>817 >>818) >>822
[オセロ] >>336 >>337 >>352 >>372
[四則演算] >>396(>>397) >>402 >>424 >>430


911 :デフォルトの名無しさん:02/04/15 00:05
本文が長すぎるって蹴られた・・・チクショー


[nCr(重複組み合わせ)] >>486
[BASE64] >>488 >>493 >>494
[マインスイーパ] >>385 >>537 >>540
[tic-tac-toe] >>336 >519 >>526
[high&low] >>530
[printf] >>425 >>428
[素因数分解] >>573(>>574)
[dump] >>609 >>612
[起動時間表示] >>623(>>624) >>625 >>627 >>630 >>631
[MIDIピアノ] >>687

912 :デフォルトの名無しさん:02/04/15 01:13
<<910
910は新スレ立てるそうです

913 :デフォルトの名無しさん:02/04/15 01:39
910はまとめてくれたから、スレ立ては>>920にお願いしようか。
それまでに誰かテンプレートまとめて。

914 :デフォルトの名無しさん:02/04/15 01:43
>>909-911
ありがとう、長くて探すきしなかったけどこれで一発だ。

915 : ◆tAdi.2WY :02/04/15 02:35
>>909 を見ていて、>>776 は tar -xvzfじゃなくて tar -xv だなあと思ったので…

#include <stdio.h> /* tar.gzアーカイブ内のファイルとディレクトリだけ展開する */
#include <zlib.h> /* zlib が必要。gcc -Wall -ansi -lz -o tar-xvzf tar-xvzf.c */
char c[512];int a=512,s,t,mkdir(const char*,int),strtol(const char*,char**,int)
,fileno(FILE*);void*p,*q,*r;void x(){fclose(p),p=NULL;}int main(int n,char**b){
r=stdin,q=n>1?gzopen(b[1],"rb"):gzdopen(fileno(r),"rb");while(q&&gzread(q,c,a)>
0)p?t-=s=t>a?a:t,fwrite(c,1,s,p),t?0:x():*c?puts(c),c[156]!=53?p=fopen(c,"wb"),
t=strtol(c+124,NULL,8),(p&&!t)?x():0:mkdir(c,511):0;return!q;}

tar-xvzf hoge.tar.gz か tar-xvzf < hoge.tar.gzで展開。
外部ライブラリに頼る時点でちょっと弱いかな。

916 :デフォルトの名無しさん:02/04/15 03:03
そろそろpart2突入ですか。次スレも良スレになることを願ってやみません。

917 :デフォルトの名無しさん:02/04/15 10:42
漏れの環境C++入ってないから、
始めのほうのC++のやつが見れん。
だれかコンパイルしたやつくれ〜。
つーかC++なのかも分からん。
とにかく実行してみたい。
お願いします。

    _
┌─┴┴─┐
│ 良 ス レ │
└─┬┬─┘
    ││ 
   ゛゛'゛'゛

918 :デフォルトの名無しさん:02/04/15 10:47
bccいれろや。

919 :917:02/04/15 11:30
>>918
そんなのがあるなんて知らなかった。
マジ、サンクス。

920 :デフォルトの名無しさん:02/04/15 12:12
七行プログラミング part2
http://pc.2ch.net/test/read.cgi/tech/1018840143/

921 :デフォルトの名無しさん:02/04/16 08:33
お疲れ。いいスレだった

922 :デフォルトの名無しさん:02/04/20 16:20
>>372
恐れ多く、申し訳ないけど、指摘させてください。。
オセロって先手●では???

923 :デフォルトの名無しさん:02/04/20 18:58
>>992
ttp://www.othello.org/nakaji/lesson/lesson/rulej.html
うむ。

924 :デフォルトの名無しさん:02/04/20 19:04
>922
画面を白黒反転すれば解決!w

925 :デフォルトの名無しさん:02/04/20 23:18
>>922
ソースの○●を●○に変えれば解決?

926 :デフォルトの名無しさん:02/04/20 23:42
>>922
ルールを変えれば解決・・・

927 :デフォルトの名無しさん:02/04/21 00:20
プラパズルNo5とかどうでしょうか。
全組み合わせを探し出し、できれば表示する。
ルール
正方形が5つ集まってできたコマが
12種類(5つの正方形を組み合わせて出きる全通りです)あります。
これを6*10マスに収まるように並べる並べ方をしらべます。
ちなみに組み合わせは全部で2339通りあります。
もちろんコードが短ければ短いほど、前途売りの検出が速ければ速いほど イイ! ってかんじで。

928 :デフォルトの名無しさん:02/04/21 00:22
このスレ終わってるから、ぜひ次スレで披露してください
http://pc.2ch.net/test/read.cgi/tech/1018840143/

929 :三村:02/04/29 22:00
終わってるのかよ!

930 :デフォルトの名無しさん:02/05/18 01:27
age

931 :デフォルトの名無しさん:02/06/05 21:56
sage

932 :デフォルトの名無しさん:02/06/30 11:40
もうそろそろ1000取り合戦だな。

933 :デフォルトの名無しさん:02/06/30 23:08
何だかパート2が荒れ出し模様


934 :hage:02/07/01 10:06
七行プログラムはpart2で終わりにしよう。
part1が良スレ過ぎたので、part2が糞スレに見える。
と、愚痴ってみるテスト。

935 :933:02/07/01 18:45
>>934
板全体から見ると、part2も悪くないんだけどね。
part3を作りたいと思わないのは、
激しく同意

936 :デフォルトの名無しさん:02/07/07 01:14
>>935
トリッキーすれも part2 無くして終わったし、さびしいね
7行part3 も作るだけ作ってみれば、ネタはあとから来るんじゃないかな、
と期待してみる

937 :933:02/07/07 02:09
>>936
そだね。最近はDCTとかで復活の兆しが。
ただ、単体では動かない七行プログラミングモジュールを集めて・・・、
という方向には賛同しかねるとか、言ってみるテスト

938 :936:02/07/10 21:38
>>937
同じく。モジュールを集めるのには、必ずしも賛成できません。
DCT や CRC のような単品でも十分実用(あるいは縮めが面白そう)ならばいいけど、
JPEG の全工程をモジュール化しても、それって意味あるのだろうかと。
お前単に長いプログラムを分割して持ってきただけじゃないかと、小一時間・・・

939 :デフォルトの名無しさん:02/07/13 21:35
まだ生きてたんだ!!このスレッド。
去年の夏頃読んでたんだけど、無くなったのかと思ってた。

940 :デフォルトの名無しさん:02/07/14 02:08
>>939
旧スレをageるのはどうかと・・・

941 :デフォルトの名無しさん:02/07/14 03:38
>>939
去年の夏?! ちゃんと続きも読んでおけよ。

七行プログラミング part2
http://pc.2ch.net/test/read.cgi/tech/1018840143/

362 KB
■ このスレッドは過去ログ倉庫に格納されています

>>815(>>817 >>818) >>822
[オセロ] >>336 >>337 >>352 >>372
[四則演算] >>396(>>397) >>402 >>424 >>430
セ。今はなんとかオリジナル業を編み出しつつ、
超人オリンピックに出場したわい。かなりの強豪がおるようじゃのう。
そして肝心の火事場のクソ力は、まだまだ出したいときに出せるレベルでは
ないのう。一度、スパーリングしてやろうかのう。 ="../test/read.cgi/mmominor/1345894189/900" target="_blank">>>900次スレは大規模 >>900次スレは大規模 ★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)