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

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

七行プログラミング part2

1 :デフォルトの名無しさん:02/04/15 12:09
7行×79文字なら言語は問いません。
過去作品は>>2-5を参照。

■前スレ
http://pc.2ch.net/test/read.cgi/tech/984182993/

2 :デフォルトの名無しさん:02/04/15 12:09
■HTTP鯖
http://pc.2ch.net/test/read.cgi/tech/984182993/706
http://pc.2ch.net/test/read.cgi/tech/984182993/760
http://pc.2ch.net/test/read.cgi/tech/984182993/770
■DNA
http://pc.2ch.net/test/read.cgi/tech/984182993/762
■e
http://pc.2ch.net/test/read.cgi/tech/984182993/769
■mersenne twister
http://pc.2ch.net/test/read.cgi/tech/984182993/749
http://pc.2ch.net/test/read.cgi/tech/984182993/750
http://pc.2ch.net/test/read.cgi/tech/984182993/753
■BMPGEN
http://pc.2ch.net/test/read.cgi/tech/984182993/775
■tar -xvzf
http://pc.2ch.net/test/read.cgi/tech/984182993/776
■蛇
http://pc.2ch.net/test/read.cgi/tech/984182993/792
http://pc.2ch.net/test/read.cgi/tech/984182993/798
■proxy
http://pc.2ch.net/test/read.cgi/tech/984182993/835
http://pc.2ch.net/test/read.cgi/tech/984182993/839
■BBS
http://pc.2ch.net/test/read.cgi/tech/984182993/840
http://pc.2ch.net/test/read.cgi/tech/984182993/841
http://pc.2ch.net/test/read.cgi/tech/984182993/842
http://pc.2ch.net/test/read.cgi/tech/984182993/877

3 :デフォルトの名無しさん:02/04/15 12:09
■pac-man
http://pc.2ch.net/test/read.cgi/tech/984182993/849
http://pc.2ch.net/test/read.cgi/tech/984182993/852
http://pc.2ch.net/test/read.cgi/tech/984182993/853
http://pc.2ch.net/test/read.cgi/tech/984182993/856
http://pc.2ch.net/test/read.cgi/tech/984182993/866
http://pc.2ch.net/test/read.cgi/tech/984182993/869
http://pc.2ch.net/test/read.cgi/tech/984182993/870
http://pc.2ch.net/test/read.cgi/tech/984182993/879
http://pc.2ch.net/test/read.cgi/tech/984182993/885
http://pc.2ch.net/test/read.cgi/tech/984182993/905
■calendar
http://pc.2ch.net/test/read.cgi/tech/984182993/904
■再帰アフォ
http://pc.2ch.net/test/read.cgi/tech/984182993/646
■BASIC
http://pc.2ch.net/test/read.cgi/tech/984182993/448
http://pc.2ch.net/test/read.cgi/tech/984182993/497
http://pc.2ch.net/test/read.cgi/tech/984182993/498
http://pc.2ch.net/test/read.cgi/tech/984182993/510
http://pc.2ch.net/test/read.cgi/tech/984182993/511
http://pc.2ch.net/test/read.cgi/tech/984182993/514
■砂嵐
http://pc.2ch.net/test/read.cgi/tech/984182993/52
http://pc.2ch.net/test/read.cgi/tech/984182993/75
http://pc.2ch.net/test/read.cgi/tech/984182993/76
http://pc.2ch.net/test/read.cgi/tech/984182993/78
http://pc.2ch.net/test/read.cgi/tech/984182993/89
■ラスタスクロール
http://pc.2ch.net/test/read.cgi/tech/984182993/105
http://pc.2ch.net/test/read.cgi/tech/984182993/125
http://pc.2ch.net/test/read.cgi/tech/984182993/129
■インデント揃え
http://pc.2ch.net/test/read.cgi/tech/984182993/116(http://pc.2ch.net/test/read.cgi/tech/984182993/126
http://pc.2ch.net/test/read.cgi/tech/984182993/138)
http://pc.2ch.net/test/read.cgi/tech/984182993/688

4 :デフォルトの名無しさん:02/04/15 12:10
■圧縮
http://pc.2ch.net/test/read.cgi/tech/984182993/101
http://pc.2ch.net/test/read.cgi/tech/984182993/135
http://pc.2ch.net/test/read.cgi/tech/984182993/146
http://pc.2ch.net/test/read.cgi/tech/984182993/153(http://pc.2ch.net/test/read.cgi/tech/984182993/154)
http://pc.2ch.net/test/read.cgi/tech/984182993/696
http://pc.2ch.net/test/read.cgi/tech/984182993/737
http://pc.2ch.net/test/read.cgi/tech/984182993/740
http://pc.2ch.net/test/read.cgi/tech/984182993/744
■倉庫番
http://pc.2ch.net/test/read.cgi/tech/984182993/118(http://pc.2ch.net/test/read.cgi/tech/984182993/120)
http://pc.2ch.net/test/read.cgi/tech/984182993/150(http://pc.2ch.net/test/read.cgi/tech/984182993/148)
http://pc.2ch.net/test/read.cgi/tech/984182993/179(http://pc.2ch.net/test/read.cgi/tech/984182993/180)
http://pc.2ch.net/test/read.cgi/tech/984182993/774
■HTTPクライアント
http://pc.2ch.net/test/read.cgi/tech/984182993/161
■動画再生?
http://pc.2ch.net/test/read.cgi/tech/984182993/205
■レイトレ
http://pc.2ch.net/test/read.cgi/tech/984182993/170
http://pc.2ch.net/test/read.cgi/tech/984182993/209
■迷路(模様?)
http://pc.2ch.net/test/read.cgi/tech/984182993/283
http://pc.2ch.net/test/read.cgi/tech/984182993/285
(http://pc.2ch.net/test/read.cgi/tech/984182993/287)
http://pc.2ch.net/test/read.cgi/tech/984182993/305
■ツール
http://pc.2ch.net/test/read.cgi/tech/984182993/319
■ライフゲェム
http://pc.2ch.net/test/read.cgi/tech/984182993/320
http://pc.2ch.net/test/read.cgi/tech/984182993/812
http://pc.2ch.net/test/read.cgi/tech/984182993/815
http://pc.2ch.net/test/read.cgi/tech/984182993/817
http://pc.2ch.net/test/read.cgi/tech/984182993/818
http://pc.2ch.net/test/read.cgi/tech/984182993/822

5 :デフォルトの名無しさん:02/04/15 12:10
■オセロ
http://pc.2ch.net/test/read.cgi/tech/984182993/336
http://pc.2ch.net/test/read.cgi/tech/984182993/337
http://pc.2ch.net/test/read.cgi/tech/984182993/352
http://pc.2ch.net/test/read.cgi/tech/984182993/372
■四則演算
http://pc.2ch.net/test/read.cgi/tech/984182993/396
http://pc.2ch.net/test/read.cgi/tech/984182993/397
http://pc.2ch.net/test/read.cgi/tech/984182993/402
http://pc.2ch.net/test/read.cgi/tech/984182993/424
http://pc.2ch.net/test/read.cgi/tech/984182993/430
■nCr(重複組み合わせ)
http://pc.2ch.net/test/read.cgi/tech/984182993/486
■BASE64
http://pc.2ch.net/test/read.cgi/tech/984182993/488
http://pc.2ch.net/test/read.cgi/tech/984182993/493
http://pc.2ch.net/test/read.cgi/tech/984182993/494
■マインスイーパ
http://pc.2ch.net/test/read.cgi/tech/984182993/385
http://pc.2ch.net/test/read.cgi/tech/984182993/537
http://pc.2ch.net/test/read.cgi/tech/984182993/540
■tic-tac-toe
http://pc.2ch.net/test/read.cgi/tech/984182993/336
>519
http://pc.2ch.net/test/read.cgi/tech/984182993/526
■high&low
http://pc.2ch.net/test/read.cgi/tech/984182993/530
■printf
http://pc.2ch.net/test/read.cgi/tech/984182993/425
http://pc.2ch.net/test/read.cgi/tech/984182993/428
■素因数分解
http://pc.2ch.net/test/read.cgi/tech/984182993/573
http://pc.2ch.net/test/read.cgi/tech/984182993/574
■dump
http://pc.2ch.net/test/read.cgi/tech/984182993/609
http://pc.2ch.net/test/read.cgi/tech/984182993/612
■起動時間表示
http://pc.2ch.net/test/read.cgi/tech/984182993/623
http://pc.2ch.net/test/read.cgi/tech/984182993/624
http://pc.2ch.net/test/read.cgi/tech/984182993/625
http://pc.2ch.net/test/read.cgi/tech/984182993/627
http://pc.2ch.net/test/read.cgi/tech/984182993/630
http://pc.2ch.net/test/read.cgi/tech/984182993/631
■MIDIピアノ
http://pc.2ch.net/test/read.cgi/tech/984182993/687

6 :デフォルトの名無しさん:02/04/15 12:11
おつ

7 :1:02/04/15 12:19
前スレの909-911に貼れば良かった…
前スレの909-911さんお疲れ様です。
欝だ…逝ってくる…

8 :デフォルトの名無しさん:02/04/15 14:49
part1より下なのでage。

9 :前スレ909-911:02/04/15 21:12
見落としとか、結構あると思うんですが、ご勘弁を。

個人的には、BASICがすげえ好きなんだよなあ

10 :デフォルトの名無しさん:02/04/15 21:43
神様が集うスレはここですか?

11 :デフォルトの名無しさん:02/04/15 22:02
昔、マシン語にして数百バイトで動くBASICがあったそうな。

12 :デフォルトの名無しさん:02/04/15 22:52
BASICってのは、
>>448 >>497 >>498 >>510 >>511 >>514
の奴ね

13 :デフォルトの名無しさん:02/04/15 23:11
Windowプログラムをもっとやってほしい。
砂嵐のやつみたいな。

14 :宗男くさい?:02/04/15 23:13
じゃぁ、誰か、日本語の簡単なプログラミング言語つくって!!?
初心者向けの!

15 :デフォルトの名無しさん:02/04/15 23:24
CYGWINかBorlandのbccでコンパイルできるのだと嬉しいな。

16 :S ◆Q14CxNhI :02/04/15 23:51
新スレ初作品ズザー

前スレ 901 のスロットゲームです。
ついに7行になったのですが、もうわけわかめ、あまりにもトリッキーになってしまいました。

<body onKeyDown=K=1><pre><script>R=7;D=document;function Y(){D.all(7).innerHTML
=P;if(K){R>>=1;if(!R){o=A[0]&56;if(o-(A[1]&56)||o-(A[2]&56)){alert("残念");if(P
<5)return alert("END")}else alert(g=T[o/=8]),P+=g;P-=5;R=7}}for(K=i=0;i<9;C[i++
%3]/=8)j=A[i],C[i]=A[i]=R&4>>i?j=j%(1<<27)*8|j>>27:j,D.all[9+i].innerHTML=S[C[i
%3]&7];setTimeout(Y,99)}S="7□=○∴|¥$".split("");T=[100,5,10,15,20,30,P=
45,60];A=[0x16E29519,0x1DCC2E65,0x384CD988];C=[];a="<b></b><b></b><b></b>\n";D.
write(a,a,a,a);for(i=8;i--;K=0)D.write("\n\t",S[i]," ",T[i]);Y()</script>


17 :デフォルトの名無しさん:02/04/16 01:29
>>5
オセロは神

18 :デフォルトの名無しさん:02/04/16 01:37
スゲー(゚Д゚)

>>2-5

19 :デフォルトの名無しさん:02/04/16 01:53
無知で申し訳無いんだけど、元ネタの7行プログラムって
セミコロンのところで改行入れてなかったの?
だとしたら7行なんてインチキだよねぇ。
横幅一万バイトまで書けるエディタ使えば誰でも7行で組めるじゃん。。

20 :デフォルトの名無しさん:02/04/16 01:59
四則演算スバラシイ

21 :102:02/04/16 02:41
>>19
1をしっかりよみませぅ。


22 :デフォルトの名無しさん:02/04/16 07:21
実は大したことないんだよ、このスレの作品って。
みんなすげーすげー逝ってるけど、自分で組んでみたら簡単に出来る奴も多い。
例えばラスタースクロールなんて無茶苦茶簡単だし、スライド辞書圧縮も楽勝。
四則演算もなんでこいつらが苦労してたのかわからないくらいあっさり達成できるぞ。
まあ、中には凄い奴もあるけどな。純粋にオセロ(6行)は度肝を抜かれたし、
砂嵐とかは別の意味で凄いと思ったが。
とにかく、盲目的にマンセー言う前に、本当に難しいかどうか自分で作ってみろ。

23 :デフォルトの名無しさん:02/04/16 07:49
>>21
すいませんでした。。
ところで元ネタでアメリカの大学生が作ったと言う七行プログラムは
セミコロンで改行してたんでしょうか?誰か知りません。

24 :デフォルトの名無しさん:02/04/16 07:59
>>23
大いなる勘違い野郎ですね。
前スレ読んで出直してきなさい

25 :23:02/04/16 09:44
出直して参りましたw。
なんだやっぱりただ横幅80バイトで7行に収まったてだけなんですね。
それはインチキですよ!w
きっちりインデントして、7行だったら僕は感動で涙を流すでしょうね。まじで。
まあそれでもすごいことは確かですけど。しかも高校生だし。

26 :デフォルトの名無しさん:02/04/16 09:49
>>25
若さ溢れる発言おおいに結構。
君が言うのは「今風」のプログラミングスタイルだね。
はるか昔、「N88-Basic」の頃は1行に2つ以上の命令を書くことはザラだったのだよ。
感動する/しないは個人の感覚だから、君が感動しようがしまいが知ったことではないが。

27 :デフォルトの名無しさん:02/04/16 09:51
>>23
してないと思われ。
大体、セミコロンで改行って概念があるプログラミング言語で作られたかどうかも怪しい…

28 :デフォルトの名無しさん:02/04/16 12:18
>>25
厨房だから仕方ないが、そういうことは自分で出来るようになってから
言ってくれ。読んでて恥ずかしい。

29 :1:02/04/16 12:47
>>2-5
よく見てみたらカッコとかもあるし…
鬱出し脳…

30 :デフォルトの名無しさん:02/04/16 13:22
出だしからこれじゃ(>>19=>>23=>>25 >>22)糞スレ街道まっしぐらなんで、放置キボンヌ
>>22はどうやら すごい・すごくない が判定できるようだから、
これができたらすごいという例を挙げてくれ。

31 :デフォルトの名無しさん:02/04/16 14:01
>>30
BMP→JPEG
絶対無理だけどできたら紙

32 :デフォルトの名無しさん:02/04/16 16:40
>>31
あんた22?
絶対不可能な例を出してどうするんだよ。
jpegの方はステートマシンで楽に書けるが、BMPは処理の本質ではない
ファイルフォーマットのハンドリングだけでかなりの文字数を要する。
固定長ででかいヘッダを抱えてるから処理を省略できないからな。

こういうとうてい無理な例を挙げるなら誰にでもできるだろ
7行でoffice作れって言うのと同じだ。

改めて言う、7行でできなさそうでできるぎりぎりの例を挙げてくれ。

33 :デフォルトの名無しさん:02/04/16 17:47
つか>>22に7行ぎりぎりなんて判定できるとも思えないから
20行くらいに収まりそうなのにしてくれ


34 :デフォルトの名無しさん:02/04/16 17:57
折角のスレが、荒れるといやだね。
どんな作品が7行プログラムに相応しいかは、旧スレでした方が良いのでは?
まだ90近く残っているし。

大したことの無い作品を認めないようになると、
もしかすると将来神となるかも知れない人(or 作品)の芽をつむことになる。
それに、傑作でなくとも、縮めのテクニックを磨く格好の材料ではないか!

35 :デフォルトの名無しさん:02/04/16 18:30
>>34
そうそう、作品が対したことなくても、
その中で使ってる縮めのテクニックがおもしろいことも多々ある

36 :デフォルトの名無しさん:02/04/16 18:34
なんつーか、この縮めのテクニックって
アセンブラでの最適化に通じるところがあると思う。
最適化と違って、こっちは役に立たないが(藁

37 : ◆Air.TtTk :02/04/16 19:21
PDT びゅーわ(10行)
某社ゲームの、PDT形式画像ビューワ。
>java P filename

PDT10 のみ対応。
透明度、PDT11、アーカイブ 未対応。

import java.awt.*;import java.awt.image.*;import java.io.*;public class P
extends Frame{byte[]s;int[]q;int m,w,h,S=12,c,v,M,Q=0;Image I;public static void
main(String[]_){(new P(new File(_[0]))).show();}public P(File f){s=new byte[(int
)f.length()];try{InputStream R=new FileInputStream(f);R.read(s);R.close();}catch
(Exception e){}w=L(4);h=L(4);S=32;q=new int[w*h];while(Q<q.length){m=s[S++];for(
M=0;M<8&&Q<q.length;M++){if((m<<M&128)!=0)q[Q++]=255<<24|L(3);else{v=(s[S+1]&255
)<<4;v+=((s[S]>>4)&15)+1;for(c=s[S]&15;c>=0;c--){q[Q]=q[Q++-v];}S+=2;}}}setSize(
w+80,h+80);I=createImage(new MemoryImageSource(w,h,q,0,w));}public void paint(
Graphics g){g.drawImage(I,40,40,this);}int L(int l){v=c=0;while(c<l)v+=(s[S++]&
255)<<(c++)*8;return v;}}

自分の言語知識の無さを感じたよ…。
加えて、最近Swingばっかりやってたので、Frameの挙動がよく分からなかった…。

…、つか、なんでインクリメントにカッコつけてんだ俺…。

38 :デフォルトの名無しさん:02/04/16 19:45
>>31
using System.Drawing;
class a{
 static void Main(string[] args){
  Image b = Image.FromFile( args[0] );
  b.Save( args[1], System.Drawing.Imaging.ImageFormat.Jpeg );
 }
}



39 :デフォルトの名無しさん:02/04/16 20:44
>>38
つまらねー

40 :デフォルトの名無しさん:02/04/16 21:12
この企画、Javaしか使えねー俺にとってはかなり不利な内容だな。
インポートとメインメソッドを書くだけで1行終わっちゃうぜ。

41 :デフォルトの名無しさん:02/04/16 21:17
>>40
あん?
c/c++だと#includeで1行終わるが、なにか?

42 :デフォルトの名無しさん:02/04/16 21:28
http://www.geocities.co.jp/SiliconValley-SanJose/8609/labo/jpegcoder.html

このコードは7行に縮まらない?

43 :デフォルトの名無しさん:02/04/16 21:35
>>41
そうだったんだー。なんせ全然、他の言語知らないもんでスマソw。
でも何かJavaって何かにつけて長文になっちゃうような気がするんだよね。
隣のなんとやらは良く見える
ってやつかなw

44 :S ◆Q14CxNhI :02/04/16 23:39
Java を知らないから全然縮まらない〜、と言ってみるテスト

import java.awt.*;import java.awt.image.*;import java.io.*;public class P
extends Frame{byte[]s;int m,w,h,S=12,c,v,M,Q=0,q[];Image I;public static void
main(String[]_){(new P(new File(_[0]))).show();}public P(File f){try{(new
FileInputStream(f)).read(s=new byte[(int)f.length()]);}catch(Exception e){}w=L(
4);h=L(4);S=32;for(q=new int[w*h];Q<w*h;){m=s[S++];for(M=0;M<8&&Q<w*h;){if((m<<
M++&128)>0)q[Q++]=255<<24|L(3);else{v=(s[S+1]&255)<<4;v+=s[S]>>4&15;for(c=s[S]&
15;c-->=0;q[Q]=q[Q++-v-1]);S+=2;}}}setSize(w+80,h+80);I=createImage(new
MemoryImageSource(w,h,q,0,w));}public void paint(Graphics g){g.drawImage(I,40,
40,this);}int L(int l){for(v=c=0;c<l;v+=(s[S++]&255)<<c++*8);return v;}}


45 :22:02/04/16 23:59
すまぬ、荒らすつもりは無かったんだが、言い方が悪かったな。
なんだか前スレで、いい作品が評価されず、いまいちの作品が
よく話題に挙がっているのが勿体なく感じてしまって。
それでも本当にいい作品はちゃんと評価されているんだけれどね。

ま、>>34に同意というわけで、前言撤回します。スマヌ。
ついでにネタを振ると、Windowsでテトリスを作ってくだされ>>特にトリッキーの1氏

46 :前スレ904:02/04/17 00:25
GCCで警告が出ない範囲でさらに縮めてみました。

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


47 :デフォルトの名無しさん:02/04/17 00:29
Windowsでテトリスは不可能だっつーの
内容のないスケルトン(砂嵐)でさえぎりぎりだったんだから。

48 :デフォルトの名無しさん:02/04/17 00:32
Excel VBA でテトリスとかできないかね。

49 :22:02/04/17 00:33
>>47
C++とは言っていないがダメかな?

50 : ◆Air.TtTk :02/04/17 00:56
PDT びゅーわ(9行)

import java.awt.*;import java.io.*;public class P extends Frame{byte m,s[];int w
,h,S=12,c,v,M,Q=0,q[],n;Image I;static void main(String[]_){(new P(new File(_[0]
))).show();}P(File f){s=new byte[(int)f.length()];try{(new FileInputStream(f)).
read(s);}catch(Exception e){}w=L(4);h=L(4);S=32;q=new int[n=w*h];while(Q<n){m=s[
S++];for(M=0;M<8&&Q<n;M++){if((m<<M&128)>0)q[Q++]=255<<24|L(3);else{v=(s[S+1]&
255)<<4;v+=(s[S]>>4&15)+1;for(c=s[S]&15;c>=0;c--)q[Q]=q[Q++-v];S+=2;}}}setSize(w
+80,h+80);I=createImage(new java.awt.image.MemoryImageSource(w,h,q,0,w));}public
void paint(Graphics g){g.drawImage(I,40,40,this);}int L(int l){v=c=0;while(c<l)v
+=(s[S++]&255)<<c++*8;return v;}}

InputStreamを close() していません。(ぉ

51 :デフォルトの名無しさん:02/04/17 01:12
>>50
> java P xxx.pdt
Main method not public.
といわれました(報告)


52 :デフォルトの名無しさん:02/04/17 01:19
>>50
宣言部分以外では、>>44 の方が大分短いやんけ

53 :S ◆Q14CxNhI :02/04/17 01:24
かきこいっぱいですねぇ。
>>52
そんなに短くはないかと。Java は難しいですね。

import java.awt.*;import java.io.*;public class P extends Frame{byte[]s;int m,w
,h,S=12,c,v,M,Q=0,q[];Image I;public static void main(String[]_){(new P(new
File(_[0]))).show();}P(File f){try{(new FileInputStream(f)).read(s=new byte[(
int)f.length()]);}catch(Exception e){}w=L(4);h=L(4);S=32;for(q=new int[w*h];Q<w
*h;)for(m=s[S++],M=0;M<8&&Q<w*h;){if((m<<M++&128)>0)q[Q++]=255<<24|L(3);else{
for(c=s[S]&15;c-->=0;)q[Q]=q[Q++-(s[S+1]&255)*16-(s[S]>>4&15)-1];S+=2;}}setSize
(w+80,h+80);I=createImage(new java.awt.image.MemoryImageSource(w,h,q,0,w));}
public void paint(Graphics g){g.drawImage(I,40,40,this);}int L(int l){for(v=c=0
;c<l;v+=(s[S++]&255)<<c++*8);return v;}}


54 : ◆Air.TtTk :02/04/17 01:44
>51
あらまっ。ボクのPC(Win98)では
JDK1.2.2_007 動作。
JDK1.3.1_01 動作。
JDK1.4.0 エラー。
となりました。

>52
何かをimportしなかったので、何かが増えたわけですね。


55 :デフォルトの名無しさん:02/04/17 09:56
>>36
小手先よりもまずアルゴリズムの見直しからスタートするから
結構役に立つと思うよ。
組み込み系用にいくつかここからパクったアイデアあるし。

56 :前スレ843:02/04/17 12:55
トリッキーの1氏は見てないの?
もう一度舞い降りれ!

57 : ◆Air.TtTk :02/04/17 15:49
PDT びゅーわ(8行)

import java.awt.*;import java.io.*;public class P extends Frame{Image I;int w,h,
S=12,c,v,m,M=0,Q=0,q[];public static void main(String[]_){new P(new File(_[0]));
}P(File f){try{(new FileInputStream(f)).read(s=new byte[(int)f.length()]);}catch
(Exception e){}w=L(4);h=L(4);S=32;for(q=new int[w*h];Q<w*h;){if(--M<0){M=7;m=L(1
);}if((m>>M&1)>0)q[Q++]=255<<24|L(3);else for(v=L(1)>>4|L(1)<<4,c=s[S-2]&15;c--
>=0;)q[Q]=q[Q++-v-1];}I=createImage(new java.awt.image.MemoryImageSource(w,h,q,0
,w));setSize(w+80,h+80);show();}int L(int l){for(v=c=0;c<l;)v+=(s[S++]&255)<<c++
*8;return v;}byte[]s;public void paint(Graphics g){g.drawImage(I,40,40,this);}}

プログラムというよりパズルですわ。
さすがに7行は無理な気がする。

58 :デフォルトの名無しさん:02/04/17 16:03
まあ、何度も絶対不可能が縮まったわけだからがんばれ
一念発起してVisualC++をアンインストールしちまったけどな
うらやましいだろ、みなさん
また来週に入れなきゃいけなさそうなんであれですけど

59 :S ◆Q14CxNhI :02/04/17 19:21
テトリスだけど、JavaScript で現在11行でできています。
バグバグでまだとても公開できないですが、近日中に必ずアプします。
アルゴリズムの最適化もほとんどしていない状態で11行なので、
最終的には7行になるのではないかと、期待しています。

60 :デフォルトの名無しさん:02/04/17 22:31
>>59
見せてアゲ

61 :S ◆Q14CxNhI :02/04/17 23:46
テトリス。現在10行。
カーソルキーの左右で移動、スペースキーで回転。

ゲームバランス悪いし、もっと縮めてからとも思ったのですが、
明日はネットに接続できないので、今日アプしておきます。
左右移動と落下、ライン消去の部分をもっと削ることができるかと思います。

<body onKeyDown=K=event.keyCode><pre><script>function Y(){Z[11]=P;f=0;E=B[t];if
(K)if(K-32){d=[-1,0,1,0][K-37];for(i=4;--i;)Z[h+E[i]+d]==S?f=1:0;f?0:h+=d}else{
C=[];for(i=0;i<4;Z[h+(C[i++]=p*12-v*145)]==S?f=1:0)p=E[i],v=Math.round(p/12);!f
&&t?E=B[t]=C:0}f=K=0;for(i=W;i--;Z[W+i]=Z[i]);for(i=4;i--;Z[W+p]=S)if(Z[12+(p=h
+E[i])]==S)f=1;if(f==1){for(i=4;i--;)Z[h+E[i]]=S;t=(t+1)%7;h=5}h+=12;for(f=1,i=
19;i--;){for(j=11;--j&&Z[i*12+j]==S;);if(!j)for(P+=f++,j=i++;j>=1;j--)for(k=1;k
<11;k++)Z[l=j*12+k]=Z[l-12]}for(i=W;i--;D.all(6+i).innerHTML=Z[W+i]);if(Z[5]!=S
)setTimeout(Y,99)}S="□";W=240;D=document;Z=[];B=[[-11],[-24],[2],[13],[-13],[-
1],[2,-1]];for(K=t=P=i=0;i<W;){if(i<7)B[i].push(0,1,-12);Z[i]=(i+1)%12<2||i>228
?S:" ";D.write(i++%12?"":"\n","<b></b>")}h=17;Y()</script>


62 :デフォルトの名無しさん:02/04/18 00:21
>>61
良くできているけれど、結構バグがあるね。
とりあえずテトリス棒が壁とかにめり込む事が頻繁にあるみたいです。
あと、回転するとめり込むこともありました。

63 :デフォルトの名無しさん:02/04/18 00:25
>>61
ライフゲームの時は良かったが、
テトリスみたいな真っ当なゲームだとキーの反応がどうしてもね……
でも結構いいんじゃない?ブロックをどのような構造で管理してる?

64 :S ◆Q14CxNhI :02/04/18 00:36
>>62 >>63
どもです。

キー入力は、ループ中に2回判定させようかと思ってます。文字数増えるけど。

ブロックは中心と上と右を固定し、それ+1個で形を決定します。
テトリス棒だけは直線にするために、+2個を配列の最初に確保 [2,-1]し、
はみ出す上を無視するようにしました。

バグは・・・何とかします、しましょう、してください・・・

65 :デフォルトの名無しさん:02/04/18 11:40
このスレの問題点として、縮める前のコードがないために
他の人がいっしょに縮めることが難しくなってる。
前スレのトリッキー1、60、あたりが良く一緒に縮めていたけれど、
あれは特殊な例だと思う。
(それとも彼らレベルになれば、縮んでいても普通に読めるのかも)

かといってみんなが縮める前のコードをウプしたら、
かなり鬱陶しいだろうし、難しい問題だよな。
このスレを七行になったもの専門にして、
別に七行作業スレッドとかを作ってそっちで議論するとか・・・

66 :デフォルトの名無しさん:02/04/18 12:00
むしろ7行モード・インデントして読みやすいモードを変換するフィルタを7行で書く。

67 :前スレ:02/04/18 12:31
>>66
perlのインデントツールは現在製作中ですが何か?

68 :デフォルトの名無しさん:02/04/18 12:38
>>66-67
65とちょっとずれてないか?

69 :perl16:02/04/18 13:26
>>67
訂正
s/前スレ/前スレ843/;

70 :デフォルトの名無しさん:02/04/18 14:20
57◆Air.TtTk氏のPDT びゅーわを詰めてみました。7行。
import java.awt.image.*;public class P{public static void main(String[]_){new
java.awt.Frame(){int w,h,c,v,m,M,Q,q[],r,i;BufferedImage I;{L(12);w=L(4);h=L(4
);L(12);for(q=new int[w*h];Q<w*h;){if(--M<0){M=7;m=L(1);}if((m>>M&1)>0)q[Q++]=
L(3);else for(v=(c=L(1))>>4|L(1)<<4,c=c&15;c-->=0;)q[Q]=q[Q++-v-1];}setSize(w+
80,h+80);(I=new BufferedImage(w,h,1)).setRGB(0,0,w,h,q,0,w);}public void paint
(java.awt.Graphics g){g.drawImage(I,40,40,this);}int L(int l){try{for(r=i=0;i<
l;)r+=System.in.read()<<8*i++;}catch(Exception e){}return r;}}.show();}}

71 :デフォルトの名無しさん:02/04/18 18:16
>>66
■インデント揃え
http://pc.2ch.net/test/read.cgi/tech/984182993/116
(http://pc.2ch.net/test/read.cgi/tech/984182993/126
http://pc.2ch.net/test/read.cgi/tech/984182993/138)
http://pc.2ch.net/test/read.cgi/tech/984182993/688

ノーマル→7行のフィルタは…どうだろう。俺は、手で縮めるときは
79文字を効率的に使えるように色々並べ替えたりするので、
そこまで考えてくれるのが7行で作れたら面白いかもシレン。

72 :perl16:02/04/18 22:38
>>71
インデントツール完成したら、作ってみるYO!(・∀・)
だけど、インデントツール作るのにも相当苦労してるから、
ノーマル→7行は難しそうだ。
関数なんかも考慮しないかんし・・・
Perlだけど。


73 :デフォルトの名無しさん:02/04/18 22:56
>>72
関数なんか関係ない。
デリミタを識別して、その前後の空白文字を詰める。
他の場所は空白文字が2個以上続いたら1つに正規化するだけ。

74 :デフォルトの名無しさん:02/04/19 09:11
超高速素数列挙
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main(int argc, char *argv[]){unsigned long max, q, r;
if(argc!=2){return;}else{max=atoi(argv[1]);}char *P=new char[max];
for(q=3; q<sqrt(max); q+=2){if(P[q]!=1){for(r=q*q; r<max; r+=q+q){P[r]=1;}}}
printf("2\n");for(q=3; q<max; q+=2){if(P[q]!=1){printf("%u\n", q);}}}

誰でもできるか…しかもちょっとズルしてるし

75 :クレジャパン:02/04/19 09:12
10 cls
20 'ぎゃはははははははは
30 a=100
40 print"ハァ(;´Д`)ハァ(;´Д`)ハァ(;´Д`)ハァ(;´Д`)"
50 if a<1 then goto 10000
60 a=a-1
70 goto 40


76 :クレジャパン:02/04/19 09:32
int main(int argc,char *argv[]) {
int loop00=0; /* Cプログラマ死んでくれ */
for (loop00 = 0;loop00<10000;loop00++) {
printf("Cが出来るからってエバるなや\n");
}
return 0;
}

77 :クレジャパン:02/04/19 09:36
c ** 頼むから死んでくれ **
do 5 loop00=0,(10000-1)
write(*, 600 )
600 format('Cが出来るからってエバるなや')
5 continue
stop
end

78 :クレジャパン:02/04/19 09:52
/* タウンページたら「パソコン教えます」ってかいてあったんだよ */
/* んでなそこに行って「C言語教えて下さい」って言ったら */
/* 「アナタには無理だ、私でも一人前になるのに12年もかかった」 */
/* って言われたんだよ */
/* Cプログラマーって種族は人の顔見ただけでそう言う事判断するのかよ */
/* アアン?何にか言って見ろゴルァ(゚Д゚メ) */
/* そんなに偉いのかよ?C使えたら */


79 :デフォルトの名無しさん:02/04/19 11:29
>>73
有る程度の構文解析は必要かと……

80 :デフォルトの名無しさん:02/04/19 11:31
>>74
短くしようという気迫に欠けすぎているので却下。
・void main?
・変数名が2文字以上??
・#include <Math.h>???

81 :デフォルトの名無しさん:02/04/19 11:56
センセー、>>74を縮めてみましたぁ〜

extern "C"{int printf(const char*,...);long atoi(const char*);}
main(int c,char *v[]){unsigned long m,q,r;if(c>1){m=atoi(v[1]);
char*P=new char[m];for(q=3;q<sqrt(m);q+=2){if(P[q]!=1){for(r=q*q;r<m;r+=q+q){
P[r]=1;}}}printf("2\n");for(q=3;q<m;q+=2){if(P[q]!=1){printf("%u\n",q);}}}}


82 :ヽ(´ー`)ノ:02/04/19 13:50
>>75-78
のヒッキー君、スルーされてます

83 :ヽ(´ー`)ノ:02/04/19 13:52
>>75-78
上からn88、Cまたはジャバ、フォートランですかね?
ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ
ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ

84 :デフォルトの名無しさん:02/04/19 13:56
HTMLでenterキーやbackspaceで画面遷移しないようにするにはどうしたらいいでしょう

85 :ヽ(´ー`)ノ:02/04/19 13:57
遷移←日本語に訳して

86 :デフォルトの名無しさん:02/04/19 13:58
submitしないようにしたいのです

87 :ヽ(´ー`)ノ:02/04/19 14:00
osなんやねん?

88 :デフォルトの名無しさん:02/04/19 14:02
windows2000です

89 :ヽ(´ー`)ノ:02/04/19 14:06
ブラウザなんやねん

90 :デフォルトの名無しさん:02/04/19 14:07
IE5.5です


91 :デフォルトの名無しさん:02/04/19 14:09
JavaScriptかなんかで制御できたらと思っているのですが

92 :ヽ(´ー`)ノ:02/04/19 14:12
ワカランナー(・∀・)

93 :ビッダーズ向上委員長:02/04/19 14:16

ヤフーは、どこをどうとっても最悪。
ビッダーズが一番!!!↓
http://www.bidders.co.jp/bpu/1072049

皆、左上の会員登録をクリックして、
入会しよう。

94 :デフォルトの名無しさん:02/04/19 15:11
>>85
辞書くらい(略
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%C1%AB%B0%DC&sw=2


95 :デフォルトの名無しさん:02/04/19 15:26
>>81
最後にreturn 0;を忘れずに

96 :デフォルトの名無しさん:02/04/19 15:40
をを、良スレ。しらなかった。

97 :S ◆Q14CxNhI :02/04/19 18:07
プログラムの概念がわかれば、言語を知らなくても参加できるぞぃ。
たとえばおいらは JavaScript をほとんど全くしらなかったが、
蛇にはまり、ライフゲームを改造し、ついには自分でスロットやテトリスを書けるようになった。
今だ JavaScript はよくわかっていないが、7行そのままで読解もできるようになった。
これは Java についても同じ。

98 :S ◆Q14CxNhI :02/04/19 18:25
for文ひとつ減らせた

<body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1]
,[2,-1]];function Y(){Z[11]=P;f=0;E=B[t];if(K)if(K-32){d=K-37?1:-1;for(i=4;--i;
)Z[h+E[i]+d]==S?f=1:0;f?0:h+=d}else{C=[];for(i=0;i<4;Z[h+(C[i++]=p*A-v*145)]==S
?f=1:0)p=E[i],v=Math.round(p/A);t&&!f?E=B[t]=C:0}f=K=0;for(i=W;i--;Z[W+i]=Z[i])
;for(i=4;i--;Z[W+p]=S)if(Z[A+(p=h+E[i])]==S)f=1;if(f==1){for(i=4;i--;)Z[h+E[i]]
=S;t=(t+1)%7;h=5}h+=A;for(f=1,i=19;i--;){for(j=11;--j&&Z[i*A+j]==S;);if(!j)for(
P+=f++,j=++i*A;j>A*2;)Z[j]=Z[j---A]}for(i=W;i--;D.all(6+i).innerHTML=Z[W+i]);if
(Z[5]!=S)setTimeout(Y,99)}S="□";h=17;W=240;A=12;D=document;Z=[];for(K=t=P=i=0;
i<W;){if(i<7)B[i].push(0,1,-A);Z[i]=(i+1)%A<2||i>228?S:" ";D.write(i++%A?"":
"\n","<b></b>")}Y()</script>


99 :74:02/04/19 18:40
>>80
すんません。自分でちょっと前に書いたコードを適当に縮めただけだったので…
あと?の意味がわかりません。何故なんでしょうか?
C歴1ヶ月未満の厨房です。スマソ

100 :74:02/04/19 18:44
あと>>81
#include <Math.h>
しないと動かないんですが…

100get。


101 :デフォルトの名無しさん:02/04/19 18:59
>>99
7行プログラミングとは言っているが、やはり縮められるだけ縮めたいもの。
そのため、変数・関数名は最初に1文字にしておくのが、チヂマー(縮める人?)の基本。
7行達成したからといって、無駄(に見える)をなくすべし!

ということを >>80 は言おうとしているんだろうよ。

それから void main() と main 関数の返値に void を指定するのは間違いというのがCの基本(と言われている)。
もちろん縮める上で有効ならば、皆それ(Warning)くらいは無視するよ。

102 :S ◆Q14CxNhI :02/04/19 19:21
ほぼ9行。このままでも、もう少し縮みそう。

<body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1]
,[2,-1]];function Y(){Z[11]=P;f=0;E=B[t];if(K)if(K-13){d=K-37?1:-1;for(i=4;--i;
)f+=Z[h+E[i]+d]==S;f?0:h+=d}else{C=[];for(i=0;i<4;f+=Z[h+(C[i++]=p*A-Math.round
(p/A)*145)]==S)p=E[i];t&&!f?E=B[t]=C:0}f=K=0;for(i=4;i--;Z[W+p]=S)f+=Z[A+(p=h+E
[i])]==S;if(f){for(i=4;i--;)Z[h+E[i]]=S;t=(t+1)%7;h=5}h+=A;for(k=1,i=19;i--;){
for(j=11;--j&&Z[i*A+j]==S;);if(!j)for(P+=k++,j=++i*A;j>2*A;)Z[j]=Z[j---A]}for(i
=W;i--;Z[W+i]=Z[i])D.all(6+i).innerHTML=Z[W+i];if(Z[5]!=S)setTimeout(Y,99)}h=17
S="□";W=240;A=12;D=document;Z=[];for(K=t=P=i=0;i<W;){if(i<7)B[i].push(0,1,-A);
Z[W+i]=Z[i]=(i+1)%A<2||i>228?S:" ";D.write(i++%A?"":"\n","<b></b>")}Y()
</script>

103 :デフォルトの名無しさん:02/04/19 19:23
age

104 :74:02/04/19 19:43
>>101
丁寧にありがとうございました。
出直してきます。

皆さんがんばってください。

105 :perl16:02/04/19 20:25
口先だけか、といわれるのは嫌なので、
とりあえずperlのインデントツール。
1行オーバー。
しかも完璧じゃないし。鬱。

#--- indent.pl ---#
chop($f=<>);open(F,"<$f")||die$!;while(<F>){s/\s?\n$//;$_.=" "if/sub$/;$d.=$_;
}close(F);$d=~s/(;|\{|\})/$1\n/g;$d=~s/\\\//\&\&\&/g;$d=~s/\\"/\@\@\@/g;while(
$d=~/(q|qq|=~m|=~)\/.*?\//s){&g;}&ad;while($d=~/=~(s|tr|y)\/.*?\/.*?\//s){&g;}
&ad;while($d=~/\(.*?\)/s){&g;}&ad;while($d=~/('|").*?\1.*?;/s){&g;}&ad;$d=~
s/\&\&\&/\\\//g;$d=~s/\@\@\@/\\"/g;$d=~s/\$\$\$/"/g;$d=~s/\%\%\%/'/g;$f.=".bak
";open(F,">$f");print F$d;close(F);sub g{$o[$c]=$`;$j[$c++]=$&;$d=$';}sub ad{
$c=0;for(@j){s/\n//g;s/"/\$\$\$/g;s/'/\%\%\%/g;$t.="$o[$c++]$_";}$d="$t$d";$t=
"";$c=0;$#o=$#j=-1;}

↑のインデントバージョン
http://www2.freejpn.com/~az1028/indent/indent.txt

↑のツールを使って自分自身を実行した結果。
http://www2.freejpn.com/~az1028/indent/indent2.txt

106 :デフォルトの名無しさん:02/04/19 20:52
>>101
>>95は無視してないようだが(w

107 :C_sugar:02/04/19 21:07
テトリスは結構すごいね。

普通にJavaScriptでテトリスを作ろうとすると数百行になるからね。


108 :SYN ◆mMJ0UaoA :02/04/19 21:28
// 引数に0-999(50-950辺りが面白い?)を与えると、自己平方フラクタル画像を出力。
// 言語はVC++

#include <string>
char*p,d[786486]={66,77,54};main(int c,char**g){FILE*f=fopen("f.bmp","wb");d[10
]=54;d[36]=d[4]=12;d[14]=40;d[26]=1;d[23]=d[19]=2;d[28]=24;d[42]=d[38]=196;d[43
]=d[39]=14;int x,y,n,w=512;double r=1,i,u,v,e=1.5/w,b,a=(atoi(g[1])/999.0)*2.0-
1.0,s=-0.75;u=1-a*a;do{i=r;r=(u/r+r)/2;}while(r<i);b=i*0.85;a=-0.62*a-0.13;p=d+
54;for(y=0;y<w;y++){for(x=0;x<w;x++){r=s+x*e;i=s+y*e;for(n=0;n<63;n++){u=r*r;v=
i*i;i=2*r*i+b;r=u-v+a;if(u+v>4)break;}p[y*w*3+x*3]=n*4;}}fwrite(d,1,786486,f);}


109 :デフォルトの名無しさん:02/04/19 21:41
あんたGCAの作者か?

110 :デフォルトの名無しさん:02/04/19 21:42
なんつーか、惰性で続いてる感が拭えない。
前スレ500前後で終わるべきだったかと。
range corderはオモロかったけどね。

111 :デフォルトの名無しさん:02/04/19 21:43
>>109
SもSYNも某圧縮アルゴリズム掲示板の住人
前スレのRange corder作ったのも縮めたのもSだっか。

112 :SYN ◆mMJ0UaoA :02/04/19 21:59
>>110
http://pc.2ch.net/test/read.cgi/tech/984182993/775
を見て何か描けたらいいなって思ったけど、ショボくてスマソ。

113 :110:02/04/19 22:08
>>112
いや、誰がショボイとかそういう話じゃなく。
「これを縮めるぞ」みたいなやる気の出る作品が出てこないなぁって話

114 :デフォルトの名無しさん:02/04/19 23:06
>>111
別に誰だろうとあんま関係ないよ。
まぁ、面白いかつまらないかはあるけどな。

115 :S ◆Q14CxNhI :02/04/20 00:18
9行。
アルゴリズムか仕様を今以上に工夫しないと、8行も難しいかもしれません。

<body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1]
,[2,-1]];function Y(){Z[11]=P;f=0;E=B[t];i=4;if(K)if(K-13){for(d=K-37?1:-1;i--;
)f+=Z[h+E[i]+d]==S;f?0:h+=d;}else{for(C=[];i--;f+=Z[h+(C[i]=p*A-Math.round(p/A)
*145)]==S)p=E[i];t*!f?E=B[t]=C:0;}for(f=K=i=0;i<4;Z[W+p]=S)f+=Z[A+(p=h+E[i++])]
==S;if(f){for(t=++t%7;i--;)Z[h+E[i]]=S;h=5}h+=A;for(k=1,i=19;i--;){for(j=11;--j
&&Z[i*A+j]==S;);if(!j)for(P+=k++,j=++i*A;j>2*A;)Z[j]=Z[j---A]}for(i=W;i--;Z[W+i
]=Z[i])D.all(6+i).innerHTML=Z[W+i];Z[5]!=S?setTimeout(Y,99):0;}D=document;W=240
A=12;h=17;Z=[];for(K=t=P=i=0;i<W;D.write(i%A?"":"\n","<b></b>"),Z[W+i]=Z[i]=++i
%A<2||i>228?S="□":" ")i<7?B[i].push(0,1,-A):0;Y()</script>

116 :デフォルトの名無しさん:02/04/20 01:15
>>100
math使わなくても、二乗したのを比較すればいいのでは??

>>115
読めないのだよ……
過去スレの354みたいに書いてくれると嬉しい……
http://pc.2ch.net/test/read.cgi/tech/984182993/354


117 :S ◆Q14CxNhI :02/04/20 02:06
<body onKeyDown=K=event.keyCode><pre><script>function Y(){
  Z[11]=P; // 得点を表示バッファに書き込み
  E=B[t]; // 現在落下中のブロック
  f=0; // 移動・回転決定用フラグ
  if(K) // キーが押されているか
    if(K!=32){ // 横移動
      d=K-37?1:-1 // d:x方向の差分
      for(i=0;i<4;i++) // 横移動判定
        f+=Z[h+E[i]+d]==S; // 移動先が空白かどうか
      f?0:h+=d; // すべて空白なので移動決定
    }else{ // 回転
      C=[]; // 回転先の座標保持用
      for(i=0;i<4;i++){ // 回転判定
        p=E[i]; // ブロックの各位置
        v=Math.round(p/12); // 回転先の x 座標
        w=p-v*12; // 回転先の y 座標
        C[i]=w*12-v; // 回転先の座標計算
        if(Z[h+C[i]]==S)f=1; // 回転先が空白かどうか
      }
      t*!f?E=B[t]=C:0; // すべて空白なので回転決定
    }
  K=0; // キー入力キャンセル
  for(f=i=0;i<4;i++){ // 落下判定
    f+=Z[12+(p=h+E[i])]==S; // 落下先が空白かどうか
    Z[240+p]=S // ブロック表示のために表示バッファへコピー
  }
  if(f){ // 落下できない
    for(i=0;i<4;i++)Z[h+E[i]]=S; // ブロック停止
    t=++t%7; // 次のブロック決定(現在順送り)
    h=17 // 位置初期化
  }else h+=12; // 一段落下
  for(k=1,i=19;i--;){ // ラインがそろったか判定
    for(j=11;--j&&Z[i*12+j]==S;); // そろったラインを検索
    if(!j){ // そろった
      P+=k++; // 得点 1ライン 1点, ..., テトリス 10点 になる
      for(j=++i*12;j>2*12;)Z[j]=Z[j---12] // 全体を一段下げる
  }}
  for(i=240;i--;){
    D.all(6+i).innerHTML=Z[240+i]; // 表示用バッファを表示
    Z[240+i]=Z[i] // 表示バッファのクリア
  }
  Z[5]!=S?setTimeout(Y,99):0; // 入り口にブロックがあったら終了
}
// ブロックの作成
// 中心からの差分で配置する。棒を除くすべてのブロックはL字にブロックがあり、
B=[[-11],[-24],[2],[13],[-13],[-1],[2,-1]]; // それ以外の1個だけを別にする
for(i=0;i<7;i++)B[i].push(0,1,-12); // ブロック共通部分追加
D=document;
// 位置は、縦方向1マスは 12 単位となる 座標(x,y) なら h=x+y*12
h=17; // ブロックの中心位置初期化
Z=[]; // バッファ [0-239]:固定したブロック用 [240-479]:表示用バッファ
for(K=t=P=i=0;i<240;){
  D.write(i%12?"":"\n","<b></b>"); // HTML表示領域の描画
  Z[240+i]=Z[i]=++i%12<2||i>228?S="□":" "; // 床と壁の設定、番兵にもなる
}
Y()
</script>

118 :デフォルトの名無しさん:02/04/20 02:06
>>117
いやそれはsageてくれ

119 :S ◆Q14CxNhI :02/04/20 02:19
>>118
スマソ。改行エラーがでてばかりなので sage 忘れてしまった

120 :116:02/04/20 02:26
>>119
thx。可能なら縮めるのに協力します

121 :デフォルトの名無しさん:02/04/20 03:05
>>116
速度に違いは?
いや、短くするのが趣旨なのはわかってるんだけど

122 :デフォルトの名無しさん:02/04/20 03:34
>>121 q < sqrt(m) より q*q < mのほうが速いに決まってるだろ

123 :デフォルトの名無しさん:02/04/20 03:52
>>122
ウチで動かしたらq*q<mの方が平均0.2〜3秒遅くなったのだが。
…逝ってくる

VBなら間違いなく前者の方が早いな(関係無い)

124 :S ◆Q14CxNhI :02/04/20 04:12
テトリス8行31文字。プログラム全体を見直しました。

<body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1]
,[2,-1]];W=240;Z=[];h=17;function Y(){f=0;E=B[t];i=4;if(K)if(K-13){for(d=K-37?1
:-1;i--;)f+=Z[h+E[i]+d];h+=d*!f;}else{for(C=[];i--;f+=Z[h+(C[i]=p*A-Math.round(
p/A)*145)])p=E[i];t*!f?E=B[t]=C:0;}for(f=K=i=0;i<4;Z[W+p]=1)f+=Z[A+(p=h+E[i++])
];if(f){for(t=++t%7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=W-A;i--;)if(i%A)Z[i]?0:
i-=i%A;else for(P+=k++,j=i+=A;--j>A*2;)Z[j]=Z[j-A];for(i=W;i--;Z[W+i]=Z[i])D.
all(6+i).innerHTML=i-11?Z[W+i]?"□":" ":P;Z[5]?0:setTimeout(Y,99);}D=document;
A=12;for(K=t=P=i=0;i<W*2;D.write(i%A?"":"\n","<b></b>"),Z[i]=++i%A<2||i>228?1:0
)B[i%7].push(0,1,-A);Y()</script>

>>120
ありがとうございます。

125 :S ◆Q14CxNhI :02/04/20 04:16
>>124
画面がスクロールする恐れがあるため、回転は「リターンキー」にしました。

126 :デフォルトの名無しさん:02/04/20 04:40
CかC++でオセロかインベーダ作ってください。
おながいします

127 :デフォルトの名無しさん:02/04/20 08:25
>>126
前スレに6行オセロ(コンピュータ対戦可能)という神の作品はあったぞ。

128 :前スレ853:02/04/20 08:28
>>105
ん? Perl4 対応を考えてる?

129 :perl16:02/04/20 11:51
>>128
あっ、考えてない。
perl5だけしか…
>>105
を改良、7行になったけどバグあり。

#--- indent.pl ---#
chop($f=<>);open(F,"<$f")||die$!;while(<F>){s/\s?\n$//;$_.=" "if/sub$/;$d.=$_;
}close(F);$d=~s/(;|\{|\})/$1\n/g;$d=~s/\\\//\&\&\&/g;$d=~s/\\"/\@\@\@/g;@p=(
'(q|qq|=~m|=~)\/.*?\/','(s|tr|y)\/.*?\/.*?\/','\(.*?\)','(\'|").*?\1.*?;');for
(@p){while($d=~/$_/s){$o[$c]=$`;$j[$c++]=$&;$d=$';}$c=0;for(@j){s/\n//g;
s/"/\$\$\$/g;s/'/\%\%\%/g;$t.="$o[$c++]$_";}$d="$t$d";$t="";$c=0;$#o=$#j=-1;}
$d=~s/\&\&\&/\\\//g;$d=~s/\@\@\@/\\"/g;$d=~s/\$\$\$/"/g;$d=~s/\%\%\%/'/g;$f.=
".bak";open(F,">$f");print F$d;close(F);

↑のインデントバージョン
http://www2.freejpn.com/~az1028/indent/indent.txt

↑のツールを使って自分自身を実行した結果。
http://www2.freejpn.com/~az1028/indent/indent2.txt

130 :perl16:02/04/20 11:55
バグって言うか、ちゃんと改行されない。

131 :775:02/04/20 12:09
#include <stdio.h> /* BMPGEN - 2 ムリダ・・*/
#define P(A,N,B,M) for(i=0;i<N;i++) putc(A, f); for(i=0;i<M;i++) fputc(B, f);
enum{L=320,N=240};int k,i,j,m[L],n[L];main(){FILE *f=fopen("c.bmp","wb");P(66,
1,77,1)P(54,1,132,1)P(3,1,0,5)P(54,1,0,3)P(40,1,0,3)P(64,1,1,1)P(0,2,N,1)P(0,3
,1,1)P(0,1,24,1)P(0,6,132,1)P(3,1,0,1)P(196,1,14,1)P(0,2,196,1)P(14,1,0,10)for
(i=0;i++<L;)m[i]=0;for(i=j=1;i++<99;)m[j=(i*99+j)%L]=N;for(i=0;i++<N;){for(j=0
;j++<L;)for(k=0;k++<3;)fputc(m[j],f);for(j=1;j++<319;n[j]=(m[j-1]+m[j+1])/2);
for(j=0;j++<L;m[j]=n[j]);}}

それにしてもすごいスレだ・・。

132 :デフォルトの名無しさん:02/04/20 12:35
>>126
6行オセロは必見だぞ。
あの短さ、バグなし、コンピュータ対戦、あれは間違いなく芸術

133 :775:02/04/20 12:54
ああ、>>108にもっと頭良いのが出てましたね・・・。
すいませんでした、逝ってきます。

134 :デフォルトの名無しさん:02/04/20 13:05
>>131
すげーbmpを吐いたぞ

135 :前スレ853:02/04/20 15:24
>>129
ファイルの入出力方法が冗長に感じたんで
indent.pl srcfile > dstfile
てな使い方に変えてみて 5 行。

sub l{('(qq?|=~m?)\/.*?\/','(s|tr|y)\/.*?\/.*?\/','\(.*?\)','(\'|").*?\1.*?;')}
$_=join'',map{s/\s+$//;s/\w$/$& /;$_}<>;s/[;{}]/$&\n/g;$a='@@@';$m='&&&';$p=
'%%%';s|\\/|$m|g;s|\\"|$a|g;$d=$_;for(l){1while$d=~s/\G$_/$o[$c]=$`;$j[$c++]=$&
;''/egs;$c=0;for(@j){s/\n//g;s/"/\$\$\$/g;s/'/$p/g;$t.="$o[$c++]$_"}($d,$t,$c,
@o,@j)=("$t$d")}$_=$d;s|$m|\\/|g;s/$a/\\"/g;s/\$\$\$/"/g;s/$p/'/g;print

でもコレ、ハッシュとかまで改行しちゃうよね(汗)。
トークナイザ作って括弧の対応調べて地道に改行しないと綺麗にはならないと思う。

136 :デフォルトの名無しさん:02/04/20 17:15
>>102のやつ、回転できなかったけど、直ってるかな?ドキドキ。

137 :デフォルトの名無しさん:02/04/20 17:17
sage忘れた、
アナログ回線切って、オフラインでコーヒーブレークしてから、CPU頭に載せて自冊・・・

138 :S ◆Q14CxNhI :02/04/20 17:31
>>136
>>102 から回転がリターンキーになってます。
書き忘れちゃったんです、宇都。

8行達成が、ぎりぎりかも・・・

<body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1]
,[2,-1]];W=240;function Y(){E=B[t];i=4;if(K)if(K-13){for(d=K-37?1:-1;i--;)d*=!Z
[h+E[i]+d];h+=d}else{for(C=[];i--&&!Z[h+(C[i]=E[i]*A-Math.round(E[i]/A)*145)];)
;t*i<0?E=B[t]=C:0}for(f=K=i=0;i<4;Z[W+p]=1)f+=Z[A+(p=h+E[i++])];if(f){for(t=++t
%7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=W-A;i--;)if(i%A)Z[i]?0:i-=i%A;else for(P
+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A];for(i=W;i--;Z[W+i]=Z[i])D.all(6+i).innerHTML=i-
11?Z[W+i]?"□":" ":P;Z[5]?0:setTimeout(Y,99)}h=17;A=12;Z=[];D=document;for(K=t
=P=i=0;i<W*2;D.write(i%13?"<b></b>":"\n"),Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0
,1,-A);Y()</script>

139 :S ◆Q14CxNhI :02/04/20 18:19
あまり減らなかったので、sage 進行

<body onKeyDown=K=event.keyCode><pre><script>function Y(){E=B[t];i=4;if(K)if(K-
13){for(d=K-37?1:-1;i--;)d*=!Z[h+E[i]+d];h+=d}else{for(C=[];i--&&!Z[h+(C[i]=E[i
]*A-Math.round(E[i]/A)*145)];);t*i<0?B[t]=C:0}for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E
[i++]]=1;if(f){for(t=++t%7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=228;i--;)if(i%A)
Z[i]?0:i-=i%A;else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A];for(i=240;i--;X[i]=Z[i]
)D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,99)}B=[[-11],[-
24],[2],[13],[-13],[-1],[2,-1]];D=document;A=12;Z=[];h=17;X=[];for(K=t=P=i=0;i<
480;D.write(i%13?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0,1,-
A);Y()</script>

140 :デフォルトの名無しさん:02/04/20 20:03
>>138
>>117はスペース回転だったけど?

>>117ベースで機能を追加すると死んでしまった・・・
所詮折れのスキルはこんなものなのか?と、悔しいから奮闘中。
Sタン、更新ハヤイヨー(スゴイナ-。

7行の壁を破りたい・・・

141 :デフォルトの名無しさん:02/04/20 20:13
>>139
本題じゃないけどこのテトリス、ゲームとしてシビアすぎない?。

142 :デフォルトの名無しさん:02/04/20 21:06
>>141
ちょっと、ね。キーが鈍いし、ブロックは早いし。
まぁ、自分で調節すればいいんだけど。

143 :S ◆Q14CxNhI :02/04/20 21:06
>>140
わかりやすさを優先するために >>117 は少し以前のものをベースに、その時点での最新版と融合させました。

>>141
1段落下に対して、横移動あるいは回転のどちらか1つしかできませんので。
2〜3回操作可能にすると、バランスが良くなるでしょう。
落下を任意(カーソル下)、得点に応じて速くなるとすることもできるでしょう。
ただ、どちらにしろ、文字数が・・・

144 :デフォルトの名無しさん:02/04/20 21:13
ちょうどテトリスつくりたかったこともあって、参戦。
dめおえj、JavaScriptやったことないんだよね。

そうか、ブロックのデータはそうやって考えると小さくなるのか。
パパ、がんばっちゃうぞー

145 :デフォルトの名無しさん:02/04/20 23:20
凄いのかもしれないけれど、ちょっといまいちの印象が抜けきらないな。
とりあえず、長くなってもいいからゲームとして成り立つソースを
是非アップして貰いたいと思いますがどうでしょう。
自分で作ってもいないのに生意気ですか?逝ってきます。

146 :S ◆Q14CxNhI :02/04/20 23:31
多少遊びやすいバージョン
>>145 こんなもんで、どうでしょう?

<body onKeyDown=K=event.keyCode><pre><script>function Y(){E=B[t];i=4;if(K)if(K-
b){for(d=K-37?1:-1;i--;)d*=!Z[h+E[i]+d];h+=d}else{for(C=[];i--*!Z[h+(C[i]=E[i]*
A-Math.round(E[i]/A)*145)];);t*i<0?B[t]=C:0}for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E[
i++]]=1;if(e){if(f){for(t=++t%7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=228;i--;)if
(i%A)Z[i]?0:i-=i%A;else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A];}e=1-e;for(i=240;
i--;X[i]=Z[i])D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,9)
}B=[[-11],[-24],[2],[b=13],[-b],[-1],[2,-1]];D=document;A=12;Z=[];h=17;X=[];for
(e=K=t=P=i=0;i<480;D.write(i%b?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i
%7].push(0,1,-A);Y()</script>


147 :145:02/04/20 23:53
>>146
キー操作が辛くてなんとも…
その部分を改良しないと、テトリスとしてはダメかなと、
僭越ながら思いました。とりあえずソース読んでみます

148 :デフォルトの名無しさん:02/04/21 00:01
なんかテトリス不評だな。俺は7行ネタとしては面白いと思うけど、
ゲームとして見たら……うーん。
やっぱJSだからきついな

149 :デフォルトの名無しさん:02/04/21 00:17
>>147
そうか?おれには簡単すぎていつまでも終わらない
ゲーム性はこれくらいでいい
これで7行したら紙

150 :デフォルトの名無しさん:02/04/21 00:21
>>149
先人達に比べると、完成度をもう少し上げて欲しいと思わないか?
前スレのマインスイーパとかの完成度と比べてしまうと、どうも……
でもとりあえず7行にするのはそれでいいかもしれないけど、
S氏には期待しているので、もう少し頑張って欲しい、と無責任なことを言うテスト

151 :デフォルトの名無しさん:02/04/21 00:37
>>150
先人達と比べるのは辛すぎるのではない?
Sさんもかなり頑張って縮めてると思うし、なによりこのやる気はいいと思う。

しかし、前スレの初期にいた人、来ないね。

152 :S ◆Q14CxNhI :02/04/21 02:48
多少遊びやすい版でようやく >>138 に追いつく。今晩はここまでにします。

<body onKeyDown=K=event.keyCode><pre><script>X=[];function Y(){E=B[t];i=4;if(K)
if(K-b){for(d=K-37?1:-1;i--;)d*=!Z[h+E[i]+d];h+=d}else{for(C=[];i--*!Z[h+(C[i]=
E[i]*A-Math.round(E[i]/A)*145)];);t*i<0?B[t]=C:0}for(f=K=i=0;i<4;f+=Z[A+p])X[p=
h+E[i++]]=1;if(e=!e){if(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(
i%A)i-=i%A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A}for(i=240;i--;X
[i]=Z[i])D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,9)}B=[[
-11],[-24],[2],[b=13],[-b],[-1],[2,-1]];D=document;A=12;Z=[];h=17;for(e=K=t=P=i
=0;i<480;D.write(i%b?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0
,1,-A);Y()</script>

153 :デフォルトの名無しさん:02/04/21 03:01
>>152
お疲れ。

154 :S ◆Q14CxNhI :02/04/21 03:54
ついに8行達成です。・・・遊びづらい版ですが・・・

<body onKeyDown=K=event.keyCode><pre><script>X=[];A=12;Z=[];function Y(){E=B[t]
c=g=f=0;d=K-37?1:-1;C=[];for(i=4;i--&&K;K-b?c+=!Z[h+p+d]:g+=!Z[h+(C[i]=p*A-Math
.round(p/A)*145)])p=E[i];t&&g==4?B[t]=C:c-4?0:h+=d;for(K=i=0;i<4;f+=Z[A+p])X[p=
h+E[i++]]=1;if(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(i%A)i-=i%
A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A;for(i=240;i--;X[i]=Z[i])
D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,99)}B=[[-11],[-
24],[2],[b=13],[-b],[-1],[2,-1]];D=document;h=17;for(K=t=P=i=0;i<280;D.write(i%
b?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0,1,-A);Y()</script>

眠い。

155 : ◆Air.TtTk :02/04/21 04:07
ちゃんとした迷路(7行)
迷路って以外と簡単だったのね。
5行レベルかな…。

// M.java

public class M{int g,x,y,m[][]=new int[79][23];public static void main(String[]_
){new M();}M(){for(y=0;y<23;y++)m[0][y]=m[78][y]=1;for(x=0;x<79;x++)m[x][0]=m[x]
[22]=1;m[2][1]=m[76][21]=m[2][2]=1;while(true){g=1;for(x=2;x<77;x+=2)for(y=2;y<
21;y+=2){if(m[x][y]>0){D(0,-2);D(0,2);D(-2,0);D(2,0);}g&=m[x][y];}if(g>0)break;}
for(y=0;y<23;y++){for(x=0;x<79;x++){System.out.print(m[x][y]>0?" ":"@");}System.
out.println("");}}void D(int X,int Y){if(m[x+X][y+Y]<1&&Math.random()<0.1)m[x+X]
[y+Y]=m[x+X/2][y+Y/2]=1;}}


156 :デフォルトの名無しさん:02/04/21 10:17
>>155
(´ー`)。o○(Java知らないから遊べねーや)

金ないから家ではBCCでコンパイルできるつしか試せない罠

157 :デフォルトの名無しさん:02/04/21 13:12
>>156
Javaコンパイラは無料じゃー。

158 :デフォルトの名無しさん:02/04/21 15:08
>>157
ええっそうなの?早速あさってみよ。
通信回線遅いうえに従量制なんで重いのは落とせない罠。

#初心者丸出しな自分に鬱

159 :デフォルトの名無しさん:02/04/21 15:23
おれもマチヒチ勉強してみよっかなぁ

マチヒチっ何だよ。javaだよ。なんかカナロックか何かに取り付かれていたようだ。。。(w

160 :デフォルトの名無しさん:02/04/21 15:55
ワラタ

161 :デフォルトの名無しさん:02/04/21 16:28
cygwin があるから、c も FORTRAN も Pascal も perl も・・・
つーか、おれんちは Unix系 しかないから、むしろ Windows 環境が無い。

162 :perl16:02/04/21 17:00
javaむずい。つーかよく分からん。
perlしかやってないもんで。
perlでゲームは面白くない。CUI中心だから。

>>135
>トークナイザ作って括弧の対応調べて地道に改行
そうですね。一時的にハッシュとかに対応できるようにしても、
新たな問題が出てきますからね。
七行で完璧に近いインデントツール作るのは難しそうだ。

>>Java&JSプログラマーの皆さん
Java&JSのインデントツールは作らないんですか?


163 :デフォルトの名無しさん:02/04/21 17:18
>>162
インデントツールという発想がいまいち言語にあわなくて…。
Cやマチヒチの場合、縮めた後ではインデントを揃えても見やすくならないでしょ?


164 :デフォルトの名無しさん:02/04/21 17:19
>>161
割り切って1台くらいWin環境を入れたら?
gcc for Win32だとWindowsプログラムの開発も出来るよ。

165 :Javaさん:02/04/21 17:31
前スレ770です。。
いつの間にやらPart2突入していたんですね。

>>155
ぱっと見削れる部分を削ってみました。
class M{int g,x=0,y=0,m[][]=new int[79][23];static void main(String[]_){new M()
;}M(){for(;++y<23;m[0][y]=m[78][y]=1);for(;++x<79;m[x][0]=m[x][22]=1);m[2][1]=m
[76][21]=m[2][2]=1;for(;;g=1){for(x=2;x<77;x+=2)for(y=2;y<21;y+=2){if(m[x][y]>0
){D(0,-2);D(0,2);D(-2,0);D(2,0);}g&=m[x][y];}if(g>0)break;}for(y=-1;y++<22;x=0)
for(;x<79;System.out.print(m[x++][y]>0?" ":x>77?"@\n":"@"));}void D(int X,int Y
){if(m[x+X][y+Y]<1&&Math.random()<0.1)m[x+X][y+Y]=m[x+X/2][y+Y/2]=1;}}

やっぱJavaは読みやすいなぁ、、。

さて、前スレで書いたHTTP鯖にバグあったから手直し、、、。
こうやって休日がつぶれていくわけです。鬱


166 :デフォルトの名無しさん:02/04/21 17:43
以前見かけて面白かったスレですが、ちょっとネタを思いついたので。
急スレに書き込んでしまったのですが、写します。
ーーーーーーーーーーーーー
プラパズルNo5とかどうでしょうか。
全組み合わせを探し出し、できれば表示する。
ルール
正方形が5つ集まってできたコマが
12種類(5つの正方形を組み合わせて出きる全通りです)あります。
これを6*10マスに収まるように並べる並べ方をしらべます。
ちなみに組み合わせは全部で2339通りあります。
もちろんコードが短ければ短いほど、全通りの検出が速ければ速いほど イイ! ってかんじで。
ーーーーーーー
全組み合わせ合わせの取得まで、私がテキトーに作った(全然7行じゃないですよ)奴で3日、まじめに作り直して5分かかりました。
結構真剣にやって10秒ぐらいまで縮みました。
7行でも3日ぐらいの奴ならできそうに思うんですが、ここの方ならスピードも・・・
なお、マシンはPenIII500でした。

167 :デフォルトの名無しさん:02/04/21 17:46
ソースキボン

168 :デフォルトの名無しさん:02/04/21 17:48
ネタ提供だけ?
とりあえず自分で縮められるところまで縮めてくれ。

169 :perl16:02/04/21 17:59
>>163
確かにそうですね。
ツール使ってインデントしても、
ただ改行してるだけですからね…
字下げもするか…

170 :デフォルトの名無しさん:02/04/21 19:18
>>169
そういう問題ではなく、たとえば
if(v-p-*i&&m[v]==t&&(s=a=v=p,d))do m[v]=t,v+=*i;while(m[v]-t);
をインデントしても、
if(v-p-*i&&m[v]==t&&(s=a=v=p,d))
  do
    m[v]=t,v+=*i;
  while(m[v]-t);
にしかならないぞ、という事ではないかな?
これで読みやすくなるわけでは無いよね。無いよりはマシだけど

171 : ◆Air.TtTk :02/04/21 19:48
ちゃんとした迷路(5行)

// M.java

public class M{public static void main(String[]_){new M();}M(){for(;p<1617;p++)m
[p+80+p/77*2]=1;m[81]=m[160]=m[1735]=0;for(;g>0;){g=0;for(p=160;p<1658;p+=(p+3)%
79<1?((p+82)%158<1?84:5):2){if(m[p]<1){D(-158);D(158);D(-2);D(2);}g|=m[p];}}for(
p=0;p<1817;p++)System.out.print(m[p]<1?(p%79<1?"\n ":" "):"@");}void D(int P){if
(m[p+P]>0&&Math.random()<0.2)m[p+P]=m[p+P/2]=0;}int g=1,p,m[]=new int[1817];}

>>165
M は public じゃないといけないし、
j2sdk1.4.0 なら main も public じゃないといけないらしいぞ。


172 :S ◆Q14CxNhI :02/04/21 21:56
テトリス多少遊びやすい版も8行到達です。

<body onKeyDown=K=event.keyCode><pre><script>X=[];function Y(){(E=B[t]).push(c=
0,1,-A);C=[d=K-37?1:-1];for(i=4;i--&&K;K-b?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.
round(p/A)*145)])p=E[i];t&&c<-3?B[t]=C:c-4?0:h+=d;for(f=K=i=0;i<4;f+=Z[A+p])X[p
=h+E[i++]]=1;if(e=!e){if(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if
(i%A)i-=i%A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A}for(i=240;i--;
X[i]=Z[i])D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,9)}B=[
[-11],[-24],[2],[b=13],[-b],[-1],[2,-1]];D=document;A=12;Z=[];h=17;for(e=K=t=P=
i=0;i<280;X[i]=Z[i]=++i%A<2||i>228?1:0)D.write(i%b?"<b></b>":"\n");Y()</script>

173 :perl16:02/04/21 22:29
>>170
あ、そうか。
うーん。完璧にインデントするのは難しい。

174 :Javaさん:02/04/21 22:43
>>171
とうとう5行ですか。
ロジックの変更お疲れ様です。
ここまでくると、残りの2行で何か出来そうですね。

>M は public じゃないといけないし、
>j2sdk1.4.0 なら main も public じゃないといけないらしいぞ。

Thanks.
でも動くならいいやというノリで、削ってしまう今日この頃なのでアリマス。鬱氏


175 :Javaさん:02/04/21 22:46
>>173
インデントのことでなく、変数名のことを言っているんじゃないかな?


176 :S ◆Q14CxNhI :02/04/21 22:47
表示系を変更したんですが、どうでしょうか?

<body onKeyDown=K=event.keyCode><script>Z=[];B=[[-11],[-24],[2],[b=13],[-b],[-1
],[2,-1]];function Y(){(E=B[t]).push(c=0,1,-A);C=[d=K-37?1:-1];for(i=4;i--&&K;K
-b?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/A)*145)])p=E[i];t&&c<-3?B[t]=C:c
-4?0:h+=d;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E[i++]]=1;if(e=!e){if(f){for(t=++t%7;
i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(i%A)i-=i%A*!Z[i];else for(P+=k++,j=i+=A
;--j>A;)Z[j]=Z[j-A]}h+=A}for(S="",i=0;i<240;S+=i-11?X[i]?"■":"_":P,X[i]=Z[i++
])S+=i%A?"":"<br>";document.all(3).innerHTML=S;Z[5]?0:setTimeout(Y,150)}X=[];A=
12;for(e=K=t=P=i=0;i<280;h=17)X[i]=Z[i]=++i%A<2||i>228?1:0;Y()</script>

177 :デフォルトの名無しさん:02/04/22 00:34
>>168
ネタ提供だけのつもりだったんですが・・・
ソースはなくしちゃって。また作っても良いんですが、最近忙しくて・・・

178 :perl16:02/04/22 01:07
よく分からなくなってきた。
なんか僕、書き込むたびにつっこまれているような…。

179 :デフォルトの名無しさん:02/04/22 01:40
>>178 有名税ってことで。

180 :厨々房某:02/04/22 04:18
プログラムのことはよくわからないんですが、
ネットで対戦できるゲーム作れますかね。

181 :デフォルトの名無しさん:02/04/22 04:21
7行でできたら神だ・・・・
まず言語は何がいいか?詳しくないからわからないけど、
Cじゃ厳しそうだな。

182 :デフォルトの名無しさん:02/04/22 11:10
>180
じゃんけんぐらいならすぐできるぞ。

183 :S ◆Q14CxNhI :02/04/22 20:39
ゲーム性能向上も狙ってみたんですが・・・

<body onKeyDown=K=event.keyCode><script>function Y(){(E=B[t]).push(c=0,1,-A);C=
[d=K-37?1:-1];for(i=4;i--&&K;K-b?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/A)
*145)])p=E[i];t&&c<-3?B[t]=C:c-4?0:h+=d;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E[i++]]
=1;if(e=!e){if(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(i%A)i-=i%
A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;S+=i-11
?X[i]?"■":"_":P,X[i]=Z[i++])S+=i%A?"":"<br>";document.body.innerHTML=S;Z[5]?0
:setTimeout(Y,99-P)}X=[B=[[-11],[-24],[2],[b=13],[-b],[-1],[2,-1]]];for(Z=[A=12
],e=K=t=P=i=0;i<280;h=17)X[i]=Z[i]=++i%A<2||i>228?1:0;Y()</script>

184 :S ◆Q14CxNhI :02/04/23 00:04
今日はここまで、アプアゲ
1日5文字くらい縮められて、今月中に7行達成できるかなぁ

<body onKeyDown=K=event.keyCode><script>function Y(){E=B[t];c=0;C=[d=K-37?1:-1]
for(i=4;i--&&K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/A)*145)])p=E[i]
t&&c<-3?B[t]=C:c-4?0:h+=d;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E[i++]]=1;if(e=!e){if
(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(i%A)i-=i%A*!Z[i];else
for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;S+=i-11?X[i]?"■":
"_":P,X[i]=Z[i++])S+=i%A?"":"<br>";document.body.innerHTML=S;Z[5]?0:setTimeout
(Y,99-P)}X=[B=[Z=[A=12]]];for(e=K=t=P=i=0;i<264;X[i]=Z[i]=++i%A<2||i>228?1:0)B[
i%7]=[[-7,-20,6,h=17,-9,3,6][i%7]-4,0,1,i%6?-A:-1];Y()</script>

185 :perl16:02/04/23 02:29
>>179さん
いい意味で有名(トリッキーの1氏みたいな)ならいいですが、
明らかに悪い意味で有名なので鬱。
もっと勉強せねば…

186 :デフォルトの名無しさん:02/04/23 12:39
>>184
ぬをを…一文字でも貢献できればと思ったが、全然わかんねぇYO!


187 :デフォルトの名無しさん:02/04/23 16:13
俺も参加。
前スレ839のproxyを縮めてみた。

import java.net.*;import java.io.*;class P{public static void main(final String
a[])throws Exception{ServerSocket s=new ServerSocket(a.length>2?Integer.parseInt
(a[2]):8080);for(;;){Socket n=s.accept(),o=new Socket(a[0],Integer.parseInt(a[1]
));new P(o.getInputStream(),n.getOutputStream());new P(n.getInputStream(),o
.getOutputStream());}}P(final InputStream i,final OutputStream o){new Thread(new
Runnable(){public void run(){try{for(int d;(d=i.read())!=-1;)o.write(d);i.close(
);o.close();}catch(Exception e){}}}).start();}}


188 :S ◆Q14CxNhI :02/04/23 22:25
一日5文字なんて、夢は夢だった・・・1文字減らす難しさは指数関数的に増えるのかも
大改造して数文字減らせるかもと作業していますが、今日はパスです

189 :デフォルトの名無しさん:02/04/24 17:22
ピンポン、8行だけど。
難しい・・・このままじゃゲームとして面白くないし(;´Д`)

import java.awt.*;class P extends Canvas{static int x=1,y=1,h=1,v=1,b=1;{
enableEvents(8);}public static void main(String a[]){Frame f=new Frame();
P p=new P();f.setSize(120,160); f.add(p); f.show();for(;;){p.repaint();
try{Thread.sleep(20);}catch(Exception e){}if(x<1||x>98)h*=-1;if(y<1||y>118||
(y>108&&x>b&&x<b+20))v*=-1;x+=h;y+=v;}}public void paint(Graphics g){g.drawRect
(0,0,100,120);g.fillRect(x,y,2,2);g.fillRect(b,110,20,3);}public void
processKeyEvent(java.awt.event.KeyEvent e){int c=e.getKeyCode();if(e.getID()!=
401)return;if(c==37&&b>1)b-=2;if(c==39&&b<80)b+=2;}}


190 :S ◆Q14CxNhI :02/04/24 22:34
テトリス。後46文字?

<body onKeyDown=K=event.keyCode><script>X=[B=[Z=[a=A=12]]];function Y(){C=[d=K-
37?1:-1];c=0;for(i=4;i--&&K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/A)
*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1;
if(e=!e){if(f|a){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t
%7]-4,a=0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A
;)Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;S+=i-11?X[i]?"■":"_":P,X[i]=Z[i++])S+=i%A
?"":"<br>";document.body.innerHTML=S;Z[5]?0:setTimeout(Y,99-P)}for(e=K=t=P=i=0;
i<264;Z[i]=++i%A<2||i>228?1:0)h=17;Y()</script>

191 :デフォルトの名無しさん:02/04/24 22:47
>189氏のピンポンいぢってみた也

import java.awt.*;public class P{public static void main(String a[]){new Frame
(){int x,y,s,h=1,v=1,b;{setSize(120,160);Canvas p=new Canvas(){{enableEvents(8
);}public void paint(Graphics g){g.drawRect(0,0,100,120);g.fillRect(x,y,2,2);g
.fillRect(b,110,20,3);}public void processKeyEvent(java.awt.event.KeyEvent e){
if(e.getID()==401)s=(e.getKeyCode()==37?-2:2);else s=0;}};add(p);show();try{
for(p.requestFocus();;p.repaint()){Thread.sleep(20);if(x<0||x>99)h*=-1;if(y<0
||y>119||(y>108&&x>b&&x<b+20))v*=-1;x+=h;y+=v;b+=s;}}catch(Exception e){}}};}}

192 :デフォルトの名無しさん:02/04/24 23:15
>>190
ソースを読んだけど、テトリスだとは理解できなかた ...(゚Д゚)逝ってきます

193 :デフォルトの名無しさん:02/04/24 23:36
前スレ 839 です.
アスキーアートを Java で作ってみた.
特に工夫もせず,ビールを飲みながら作ると,できちゃった.

import java.io.*;import javax.swing.*;public class A{static String A=" `.-:i+*"+
"3X8&%$W#@";public static void main(String[]S){PrintStream o=System.out;
ImageIcon c=new ImageIcon(S[0]);int h=c.getIconHeight(),w=c.getIconWidth();int[]
p=new int[w*h];try{(new java.awt.image.PixelGrabber(c.getImage(),0,0,w,h,p,0,w))
.grabPixels();}catch(InterruptedException e){}for(int i=0;i<h;i++){for(int j=0;j
<w;j++){int P=p[i*w+j];int g=(int)(0.3*((P>>16)&0xff)+((P>>8)&0xff)*0.6+(P&0xff)
*0.1);o.print(A.charAt(g/A.length()));}o.println();}o.flush();System.exit(0);}}

$ java imagefile


194 :デフォルトの名無しさん:02/04/25 00:02
>>193
すごい! Java の強みを生かした良いプログラムですな。

195 :デフォルトの名無しさん:02/04/25 00:40
蒸し返すようで悪いけど、 >>22 よ。
スライド辞書圧縮が楽勝だというのなら、もっと短くしてみれ

196 :デフォルトの名無しさん:02/04/25 01:18
>193の出力を79行にしてみた

import java.awt.image.*;import java.awt.*;public class A{public static void
main(String[]S)throws Exception{Image c=new javax.swing.ImageIcon(S[0]).
getImage();int w=79,h=c.getHeight(null)*w/c.getWidth(null);BufferedImage s=new
BufferedImage(w,h,10);Graphics g=s.getGraphics();g.drawImage(c,0,0,w,h,null);g.
dispose();DataBuffer p=s.getData().getDataBuffer();char[]b=new char[w];for(int
y=0;y<h;y++){for(int x=0;x<w;x++)b[x]=" `.-:i+*3X8&%$W#@".charAt(p.getElem(x+y
*w)/16);System.out.println(b);}System.out.flush();}}

もうちょっと縮むかも。
System.out.flush()は要らないかも。
コンソールの文字の縦横比を考慮した方がいいのかも。かも。

197 :S ◆Q14CxNhI :02/04/25 01:48
意外とさくさく進みます。後40字。

<body onKeyDown=K=event.keyCode><script>X=[B=[Z=[A=12]]];function Y(){c=0;C=[d=
K-37?1:-1];for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[(C[i]=p*A-Math.round(p/A)*145)
+h])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1;if(e
=!e){if(f|a){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t%7]-
4,a=0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;)Z[
j]=Z[j-A]}h+=A}for(i=S="";i<240;S+=X[i]?"■":"_",X[i]=Z[i++])S+=i%A?"":"<br>";
document.body.innerHTML=S+P;Z[5]?0:setTimeout(Y,99-P)}for(e=K=t=P=i=0;i<264;Z[i
]=++i%A<2||i>228?1:0)a=h=17;Y()</script>

198 :デフォルトの名無しさん:02/04/25 01:51
>>197
目立ちたいのはわかるが、作業中なのにぽこぽこageんでください。
ageられてるから見てみると、作業途中のテトリスばかりでうざいです。

199 :デフォルトの名無しさん:02/04/25 02:00
>>198 むしろどんどんアゲ欲しいのだが。
テトリス(以外も含めて)の縮め過程を見るのが最近ここのスレでの楽しみ。
それとも >>198 よ。作業用スレ立てるか?その方がうざい。

200 :perl16:02/04/25 02:04
>>198
まぁまぁマターリしようよ。

201 :デフォルトの名無しさん:02/04/25 02:08
>>199
はぁ?
何で作業スレ立てるって話になるんだよ
別に作業課程を書き込むのは悪くないけど、いちいちageるなってことだ。
大幅に構造を変更したとかならともかく、ちまちま削るたびにageられても迷惑だ。

だいたい、ageられなきゃレスを確認できない>>199の環境に問題がある。

202 :デフォルトの名無しさん:02/04/25 04:02
>193氏のアスキーアートをさらに縮めて4行に。

class A{static{new javax.swing.ImageIcon(System.getProperty("i")){int i,w=80,h
=w*getIconHeight()/getIconWidth();{new java.awt.image.BufferedImage(w,h,10){{
for(getGraphics().drawImage(getImage(),0,0,w,h,null);++i<w*h;)System.out.print
(" `.-:i+*3X8&%$W#@".charAt(getData().getDataBuffer().getElem(i)>>4));}};}};}}

コンソールの横幅を80桁にして
java -Di=C:\graphic\hoge.jpg A
みたいな感じで実行。例外吐いて終了。

なんというか、これぞ糞コードの極み。みたいな。

203 :デフォルトの名無しさん:02/04/25 07:06
テトリスうざいのは同感だが、
作った物を見てくれ……というS氏の気持ちもわからんではない。

204 :デフォルトの名無しさん:02/04/25 17:11
extern int putchar(int);char*P="31287f861fa1fa187e7a182085efa186187efe0fa083ff\
e0fa08207a182785e861fe186110410410404104185e862f248a182082083f873b61861871a658\
e17a186185efa187e8207a186589dfa187e8a17a078185e7c410410486186185e86186148c8618\
6dce185230c4a144a104104fc210843f";B(int i,int c){long long int j,x;for(x=j=0;j<
9;j++)x=(x<<4)+(*(P+i*9+j)-(*(P+i*9+j)>60?87:48));for(j=0;j<6;j++)putchar(((x>>
c*6)&63)>>(5-j)&1?35:32);putchar(32);}main(int c,char*v[]){char*l,j;if(c>1)for(
j=5;j>=0;j--){for(l=v[1];*l!=0;l++)B(*l-65,j);putchar(10);}}

banner
大文字アルファベットのみ。long long int を __int64 にすればVCでも動くと思う。
上のAA生成に比べると見劣りするナァ(;´Д`)

205 :デフォルトの名無しさん:02/04/25 17:31
>199はageとアップを混同してると思われ。
プログラミング過程はどんどんカキコしていいけど、
完成品じゃないならメール欄にsageと書くべし。

206 :193:02/04/25 21:21
>>187
new Thread(new Runnable(){ ...
の new Runnable っていらんのじゃないの?
なくなってもいいから,もっと縮むかも.

>>202
縮むもんだねぇ.
ちゃんとインデントして見たソース.
私には書けない...
喜んでいいのやら哀しんでいいのやら...

207 :perl16:02/04/26 00:56
ピンポンには正直驚いた。
僕はJAVAプログラミングできませんが、
ピンポンを発展させて7行でブロック崩しができたらすごいと思う。
Perlでなんかいいネタないかなー。

208 :187:02/04/26 09:21
>>206縮めてみた

import java.net.*;import java.io.*;class P{static void main(String a[])throws
Exception{ServerSocket s=new ServerSocket(a.length>2?Integer.parseInt(a[2]):8080
);for(;;){Socket n=s.accept(),o=new Socket(a[0],Integer.parseInt(a[1]));new P(o.
getInputStream(),n.getOutputStream());new P(n.getInputStream(),o.getOutputStream
());}}P(final InputStream i,final OutputStream o){new Thread(){public void run()
{try{for(int d;(d=i.read())!=-1;)o.write(d);i.close();o.close();}catch(Exception
e){}}}.start();}}

こんなもんか

209 :S ◆Q14CxNhI :02/04/26 22:19
>>198 >> 203
うざっこく思われているということに全く気付いていませんでした。
申し訳ありません。
今後は気をつけて参加したいと思います。

210 :デフォルトの名無しさん:02/04/26 22:36
>>209
ガンバレSさん。sageだけど応援してるよ
いつかロシア人もビックリの7行テトリスを夢見て

211 :デフォルトの名無しさん:02/04/26 23:38
こういった心遣いによってこのスレは成り立ってるんだね。
誰もレスしてないのに何度もアップしたのは確かにS氏のチョンボだけど、
テトリス自体は応援してるので、是非いつか遊びやすくて7行のテトリスを
ずずんとアップしてください

212 :S ◆Q14CxNhI :02/04/27 01:20
ついにやりました! テトリス7行達成です!!
叱咤激励いろいろいただきました、みなさんのレスに感謝いたします。

遊び方:カーソル左右で移動、リターンキーで回転
プレイ環境:おそらく IE 5.01 以上?

<body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y()
{C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/
A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1
if(e=!e){if(f|B){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t
%7]-4,0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;)
Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;X[i]=Z[i]|=++i%A<2|i>228)i%A?0:S+="<br>",S+=X
[i]?"■":"_";document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y()</script>

...これは age て良かったですよね?

213 :デフォルトの名無しさん:02/04/27 01:24
>212
下キー押すと右に行くのは仕様ですか?

214 :デフォルトの名無しさん:02/04/27 01:28
ちなみに1行79文字がこのスレの標準ルールです。

215 :S ◆Q14CxNhI :02/04/27 01:30
>>213
残念ながらそうなります。縮めるだけで精一杯なもので・・・
カーソル左右とリターンキー以外のキーを押すと、トンでもないことになります。

216 :デフォルトの名無しさん:02/04/27 06:58
>>212
おめでとう
綺麗にまとまったもんだねー、すごい。
これならageても文句はなかろう。

217 :デフォルトの名無しさん:02/04/27 08:23
やっとテトリス終わりですか。嬉しい。

218 :デフォルトの名無しさん:02/04/27 10:13
S、嫌われたね。自己厨の典型的な末路だな

219 :デフォルトの名無しさん:02/04/27 13:28
>>218
はあ?うざいのは確かだったが、誰も嫌ってなどはいない
少なくともテトリスは賞賛に値する(紙かどうかは別として)
今後は正しく sage てね、で終わりでいいじゃないか
本人も反省しているよう出し

220 :デフォルトの名無しさん:02/04/27 14:04
>>218、嫌われたね。自己厨の典型的な末路だな

221 :デフォルトの名無しさん:02/04/27 14:09
>>S
感動すますた

222 :デフォルトの名無しさん:02/04/27 23:04
荒れるのはやだねぇ。新しい作品期待。

ここで自分で「これみろや!」って出せないのが鬱

223 :デフォルトの名無しさん:02/04/28 01:01
テトリスは俺の中で神。というわけで解説キボンヌ

224 :デフォルトの名無しさん:02/04/28 01:09
簡単な障害物よけゲームをJAVAアプレットで作ってみました。
 
import java.awt.*;public class H extends java.applet.Applet{int p,c,m,b,t=300,
s[]=new int[18];{new Thread(){public void run(){for(;s[p+15]<1&b<1;){repaint()
;try{sleep(t--);}catch(Exception e){}for(c=17;c>=0;c--)s[c]=c>2?s[c-3]:m>2?0:m
==c?0:1;m=m>2?(int)(Math.random()*3):3;}}}.start();}public void paint(Graphics
g){for(c=0;c<18;c++)g.drawString(s[c]>0?"■":c==p+15?"△":"□",c%3*10,c/3*10);
}public boolean keyDown(Event e,int k){if(k==1006&p>0)p--;if(k==1007&p<2)p++;b
=s[p+15];repaint();return 1>0;}}
 
アプレットなので、以下のHTMLを使ってください。

<HTML>
<BODY>
<CENTER>
<APPLET code="H.class" width="30" height="50"></APPLET>
</CENTER>
</BODY>
</HTML>
 
矢印キーで左右に移動します、だんだんスピードが上がっていきます。

225 :デフォルトの名無しさん:02/04/28 01:20
>>223
テトリスの解説は >>117 にすでにあります

226 :223:02/04/28 01:32
>225 それは知っていたんだけど、完成型は随分違うから全然わかんない
もしかして俺はバカ? 無限にウィンドウを開くJS作ってOSごとしんできます

227 :デフォルトの名無しさん:02/04/28 10:32
        http://game.2ch.net/test/read.cgi/gamedev/1005038280/
        「ソースを上げるスレッド」 @ゲ制技板
114前後しか今のところ言ってないみたいだし、
あまり変化がないならここに張ったらどうよ?

228 :デフォルトの名無しさん:02/04/28 13:43
7文字プログラミングは?

229 :デフォルトの名無しさん:02/04/28 13:46
#includ

cは早くも脱落

230 :デフォルトの名無しさん:02/04/28 13:51
void mai

231 :デフォルトの名無しさん:02/04/28 14:18
main(){

232 :デフォルトの名無しさん:02/04/28 16:47
10 CLS

233 :デフォルトの名無しさん:02/04/28 17:02
1CLS:FOR

234 :デフォルトの名無しさん:02/04/28 19:45
N88BASICで、リストと実行結果が全く同じプログラム
10 list

ネタはこの程度にしておこう。
誰か作品出してくれっ

235 :デフォルトの名無しさん:02/04/28 20:18
トリッキーの1降臨キボン

236 :VB厨:02/04/29 22:52
Sub Main


237 :デフォルトの名無しさん:02/04/29 22:52
旧スレが上がってるのでage

238 :デフォルトの名無しさん:02/04/30 13:43
del %0
バッチはダメ?

239 :ロボ鉄 ◆MGTy6iYI :02/04/30 21:27
おぉ、僕の冗談で作った2行カウンタが晒されてる・・・
ただのカウンタをちょっと縮めただけなのに。
恥ずかしいからsage。
誰も見ないでくれ

240 :デフォルトの名無しさん:02/04/30 22:07
正直、7行で作ってくれ

241 :ロボ鉄 ◆MGTy6iYI :02/04/30 22:17
カウンタに七行も無いでしょうが

242 :デフォルトの名無しさん:02/05/01 00:20
じゃ、スレ違い

243 :デフォルトの名無しさん:02/05/01 08:25
>>239
逝け

244 :デフォルトの名無しさん:02/05/01 11:32
ついにロボ鉄が来たか…
このスレももう終わりだな。

良スレから駄スレへ

悲しいけど

     ∧∧  ミ _ ドスッ
     (   ,,)┌─┴┴─┐
    /'   つ 糸冬 了 │
  〜′ /´ └─┬┬─┘
   ∪ ∪      ││ _ε3
               ゛゛'゛'゛

245 :デフォルトの名無しさん:02/05/01 20:39
ネタ募集



246 :               :02/05/01 21:06
    遺伝子的循環





247 :デフォルトの名無しさん:02/05/02 00:54
前スレが激良スレだったからこそなんだろうか…

248 :デフォルトの名無しさん:02/05/02 01:12
ネタを与えれば活発に動き出すと思われます

249 :デフォルトの名無しさん:02/05/02 10:42
テトリス見てる限りそれも怪しいぞ…

250 :デフォルトの名無しさん:02/05/03 23:42
そういえば、cって戻り値だけじゃなくて、引数がintの時に

func(a, b)
{ return a + b; }

こうやって省略できるんだね。
これも多少は縮めるのに役立つんじゃないかな。

251 :デフォルトの名無しさん:02/05/03 23:43
前スレのSHA-1縮めていて思いついたけど、
やっぱり11行より短くなりそうもなかったので破棄したけど。

252 :デフォルトの名無しさん:02/05/04 01:04
>>250
みんな普通にやってるみたいだけど?オセロ参照

253 :デフォルトの名無しさん:02/05/04 16:48
>>252
引数まで省略してるのは見つからないけど。
記事番号キボンヌ

254 :デフォルトの名無しさん:02/05/06 03:27
>>253
引数省略はC++で許されたっけ?
gccではエラー出てたような?うろ覚えスマソ

255 :デフォルトの名無しさん:02/05/06 11:07
縮めるためならK&R

256 :デフォルトの名無しさん:02/05/06 13:15
誰かが「すでに動いてるソースコードで」ネタを提供しなきゃ駄目なんだよ


257 :デフォルトの名無しさん:02/05/06 13:44
テトリスやオセロもそうだったけど、比較的上級者?が最初にネタを提供しても、
始めから縮めテクが使われているし、そのまま自分で解決してしまうからねぇ・・・
# それはそれで、見ていて楽しかったけれど。
あまり縮めるのが得意でない人が、10数行でネタを投稿するのが良いかも。
# スネークとかライフゲームとか

258 :デフォルトの名無しさん:02/05/06 16:07
>>257
初心者の出すネタは上級者には面白くないという罠。
上級者が考えると、ホントに出来るかどうか微妙だから面白い。
テトリスはそういう意味では、ネタとしては、ナイスだったね。

259 :デフォルトの名無しさん:02/05/06 18:32
色当てゲームはどうかな。

260 :デフォルトの名無しさん:02/05/06 18:38
P2Pチャットシステムとかどうよ?


261 :デフォルトの名無しさん:02/05/06 18:39
7行でメールソフト作ってください。
コマンドラインから
 *** <smtpサーバ> <port> <送信先アドレス> <subject> <内容> <添付ファイル>
みたいな感じで送れるやつ。

262 :デフォルトの名無しさん:02/05/06 18:44
添付ファイルは無理だろ
Base64 encodingだけで2~3行食いそう

263 :デフォルトの名無しさん:02/05/06 20:16
2 rem 言語:Basic
4 rem 使用方法:使えません(w
10  print "ここは七行でプログラムを作る・鑑賞するスレです。"
20  print "マターリが原則です。"
30  print "ネタ提供時/七行達成時いがいはsage推奨"
40  print:print "ソースUP時は、必ず"
50  pirnt "言語"
60  print "使用方法"
70  print "何を作ったのか"
80  print"などを書きましょう。"
90   goto 20

264 :デフォルトの名無しさん:02/05/06 22:25
>>258
テトリスは絶対不可能だと思ってたからね。驚いたよ
オセロやテトリス、倉庫番など、
元があるゲーム類ってのはネタとして興味が大きそうだね

265 :デフォルトの名無しさん:02/05/07 06:14
ファイラーなんてどうでしょ?
削除とかしか出来ない超低機能な奴。

266 :デフォルトの名無しさん:02/05/07 15:52
>>265
昔 MSX で作ったことがあるよ。BASIC 15行くらいで、名前変更と削除のみができるの。
超低機能ならば、できるでしょうね。
あとは、7行でどれだけの機能を詰め込めるか・・・

267 :デフォルトの名無しさん:02/05/07 18:03
ゴールが見えない時点で曖昧だなぁ

268 :デフォルトの名無しさん:02/05/07 22:08
じゃぁ,コラムスとか。

269 :デフォルトの名無しさん:02/05/07 22:27
お絵かきロジック、できるかもだ。

270 :デフォルトの名無しさん:02/05/08 00:47
箱入り娘はどうよ?

  0.1.2.3
  -----
a| BAAC  G,1-e って入力すると、Gが(1,e)に移動。
b| BAAC  で、Aを (1,d)-(2,e) に持ってこれればクリア。
c| DF.FE  でもこれだとわかりづらいから、別の表示方法キボンヌ。
d| DGHE  (記号とかもありかも)
e| .I   .J  たしか、最短の手が81手だったかな。

271 :デフォルトの名無しさん:02/05/08 01:10
キタ━━━( ゚∀゚ )━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━( ゚∀゚ )━━━!!!!

272 :age:02/05/11 17:10


273 :デフォルトの名無しさん:02/05/11 23:23
メーラー 11行。

#include <stdio.h>
#include <winsock.h>
#define k send(s,t,l,0);Sleep(999);while(z=recv(s,t,99,0)){t[z]=0;printf("%s",t);}
#define sp sprintf
main(int c,char **a){SOCKADDR_IN d;WSADATA w;char t[99],z,l;SOCKET s;
WSAStartup(MAKEWORD(2,2),&w);s=socket(AF_INET,SOCK_STREAM,0);if(c!=2)return;
d.sin_family=AF_INET;d.sin_port=htons(25);d.sin_addr.s_addr=inet_addr(a[1]);
if(!connect(s,(PSOCKADDR)&d,sizeof(d)))
{l=sp(t,"HELO %s\r\n",a[2]);k;l=sp(t,"MAIL FROM:%s\r\n",a[3]);k;
l=sp(t,"RCPT TO:%s\r\n",a[4]);k;l=sp(t,"DATA\r\n",a[4]);k;
l=sp(t,"Subject: %s\r\n",a[5]);k;l=sp(t,"%s\r\n",a[6]);k;
l=sp(t,"\r\n.\r\n");k;l=sp(t,"QUIT");k;}closesocket(s);}

274 :261:02/05/11 23:26
>>273
まだやってみてないけど、ありがとう!

275 :デフォルトの名無しさん:02/05/11 23:30
#include <stdio.h>
#include <winsock.h>
#define k send(s,t,l,0);Sleep(999);while(z=recv(s,t,99,0)){t[z]=0;printf("%s",t);}
#define sp sprintf
main(int c,char **a){SOCKADDR_IN d;WSADATA w;char t[99],z,l;SOCKET s;WSAStartup(
0x0202,&w);s=socket(2,1,0);if(c!=2)return;d.sin_family=2;d.sin_port=htons(25);d.
sin_addr.s_addr=inet_addr(a[1]);if(!connect(s,(PSOCKADDR)&d,sizeof(d))){l=sp(t,
"HELO %s\r\n",a[2]);k;l=sp(t,"MAIL FROM:%s\r\n",a[3]);k;l=sp(t,"RCPT TO:%s\r\n",
a[4]);k;l=sp(t,"DATA\r\n",a[4]);k;l=sp(t,"Subject: %s\r\n",a[5]);k;l=sp(t,"%s\r\
\n",a[6]);k;l=sp(t,"\r\n.\r\n");k;l=sp(t,"QUIT");k;}closesocket(s);}

俺にはコレが限界。

276 :デフォルトの名無しさん:02/05/11 23:31
>>274
動かなかったらごめん。
プロバイダのメール鯖の認証の関係で、
動作確認できなくて・・・

277 :デフォルトの名無しさん:02/05/12 00:13
>>273 >>275
つーか、実行できんやろ。
if(c!=2)return; ってなんや?

278 :273:02/05/12 00:34
あー HTTPクライアントを適当に変えただけだからね。

基になるソースコードが無いと
誰も手をつけてくれなさそうだったからさ・・・
俺、ネットプログラム初心者です。ごめん。


279 :273:02/05/12 00:42
#include <stdio.h>
#include <winsock.h>
#define k printf("%d,%s\n",l,t);send(s,t,l,0);Sleep(999);z=recv(s,t,99,0);t[z]=0;printf("%s",t);
#define sp sprintf
main(int c,char **a){SOCKADDR_IN d;WSADATA w;char t[99],z,l;SOCKET s;WSAStartup(
0x0202,&w);s=socket(2,1,0);d.sin_family=2;d.sin_port=htons(25);d.
sin_addr.s_addr=inet_addr(a[1]);if(!connect(s,(PSOCKADDR)&d,sizeof(d))){l=sp(t,
"HELO %s\r\n",a[2]);k;l=sp(t,"MAIL FROM:%s\r\n",a[3]);k;l=sp(t,"RCPT TO:%s\r\n",
a[4]);k;l=sp(t,"DATA\r\n",a[4]);k;l=sp(t,"Subject: %s\r\n",a[5]);send(s,t,l,0);
l=sp(t,"%s\r\n",a[6]);send(s,t,l,0);;l=sp(t,"\r\n.\r\n");send(s,t,l,0);;l=sp(t,"QUIT");k;}closesocket(s);}

一応送信できるはず。
ウザくてごめんね

280 :デフォルトの名無しさん:02/05/12 01:27
>>279
おー、送信できました。実験する場合はローカルにサーバを立てるのがよろしいかと。
ただプログラムの無駄は多そうですので、十分7行になるのでは?

281 :デフォルトの名無しさん:02/05/12 01:50
縮めてみますた

#include <stdio.h>
#include <winsock.h>
SOCKET s;char t[99],z,l,f,*b;k(char*b,char*x){l=sprintf(t,b,x);printf("%s",t);
send(s,t,l,0);if(!f){Sleep(999);t[recv(s,t,99,0)]=0;puts(t);}}main(int c,char**
a){SOCKADDR_IN d;WSADATA w;WSAStartup(514,&w);s=socket(d.sin_family=2,1,0);d.
sin_port=htons(25);d.sin_addr.s_addr=inet_addr(a[1]);if(!connect(s,(PSOCKADDR)&
d,sizeof(d))){k("HELO %s\r\n",a[2]);k("MAIL FROM:%s\r\n",a[3]);k("RCPT TO:%s\r\
\n",a[4]);k("DATA\r\n",a[4]);k("Subject: %s\r\n",a[f=5]);k("%s\r\n",a[6]);k(
"\r\n.\r\n","");f=0;k("QUIT\n","");}closesocket(s);}

282 :デフォルトの名無しさん:02/05/12 02:39
>>261
添付ファイルは難しいが(uuencode形式ならOK)、telnet コマンドを使えばいいのでは???
つーことは、Unix系なら perl かシェルスクリプトで、Windows なら BAT でもできる?

283 :281:02/05/12 02:45
winsock の使い方が良くわからないので、その辺がどうにもならぬ

#include <winsock.h>
typedef char C;puts(C*);sprintf(C*,C*,C*,C*);SOCKET s;C t[99],l,f;k(C*b,C*x){l=
sprintf(t,"%s%s\r\n",b,x);puts(t);send(s,t,l,0);if(!f)Sleep(999),t[recv(s,t,99,
0)]=0,puts(t);}main(int c,C**a){SOCKADDR_IN d;WSADATA w;WSAStartup(514,&w);s=
socket(d.sin_family=2,1,0);d.sin_port=6400;d.sin_addr.s_addr=inet_addr(a[1]);if
(!connect(s,(PSOCKADDR)&d,sizeof(d)))k("HELO ",a[2]),k("MAIL FROM:",a[3]),k("R\
CPT TO:",a[4]),k("DATA",""),k("Subject: ",a[f=5]),f=0,k(a[6],"\r\n.\r\nQUIT");
closesocket(s);}

284 :デフォルトの名無しさん:02/05/12 03:35
>>279
腹が立って作ったプログラムなのに、ツッコマレても謙虚な姿。感心アゲ。

285 :tara:02/05/12 05:23
超簡易七行SMTPクライアントです。エラー処理ほとんど無翅です。
コンパイルすると警告が出ますが、無視してください。

#include <winsock.h>
main(int c,char **a){SOCKADDR_IN d;WSADATA w;char t[999];SOCKET s;WSAStartup(
514,&w);s=socket(d.sin_family=2,1,0);if(c!=7)return;d.sin_port=6400;d.sin_addr
. s_addr=inet_addr(a[1]);if(!connect(s,(PSOCKADDR)&d,sizeof(d))){int z;send(s,t
,sprintf(t,"HELO %s\r\nMAIL FROM: %s\r\nRCPT TO: %s\r\nDATA\r\nSubject: %s\r\n\
\r\n%s\r\n.\r\nQUIT\r\n",a[2],a[3],a[4],a[5],a[6]),0);while(z=recv(s,t,99,0))
{t[z]=0;printf("%s",t);}}closesocket(s);}

実行時には、以下の順序で引数を指定する必要があります。
・SMTPサーバーのIP(ドット区切りの数字で指定)
・発信元のホスト名
・発信者のメールアドレス
・受信者のメールアドレス
・Subject(題名)
・メール本文

ex)
program 127.0.0.1 7gyou.com sender@7line.com rcpt@7line.com subject data

多分これで動くはず、です。
なお、引数の区切り文字がスペースであるため、メール本文その他に
スペースを入れることができません。


286 :tara:02/05/12 05:35
しまった、訂正。
スペースは入れられます。
program 127.0.0.1 7gyou.com sender@7line.com rcpt@7line.com subject "This is test."
と、スペースを含む内容を「"」で囲んでやればOKです。


287 :273:02/05/12 14:53
>>281 とりあえず送信できることを目指したんで、無駄は勘弁
>>282 それじゃ面白くないじゃん
>>284 ありがとう
>>285 7行達成おめでとう

次はTelnetかFTPクライアント・・・
ネタさえあればこのスレもPatt 1.並なんだけどな


288 :261:02/05/12 15:00
ネタ提供だけでスマソ。感動しました。
採用してくれてありがとうございましたー!

289 :XXXXXXX:02/05/12 15:02
1> <html>
2> <head>
3> <title>7行プログラム</title>
4> </head>
5> <body bgcolor="black">ここに本文を書きます
6> </body>
7> </html>


290 :デフォルトの名無しさん:02/05/12 18:01
CじゃFTPは不可能だーね
コネクションが2つ必要な時点でヤヴァイ

291 :デフォルトの名無しさん:02/05/12 18:49
>>290
FTP、Javaなら行けるかな

292 :デフォルトの名無しさん:02/05/12 22:54
>>285
stdio.h をインクルードしないと printf,sprintf 使えなくないですか?

293 :デフォルトの名無しさん:02/05/12 22:56
age

294 :デフォルトの名無しさん:02/05/12 22:58
いい流れになってきたね

295 :デフォルトの名無しさん:02/05/12 23:30
一番、画面内密度を上げられる言語ってなんでしょう?LISP系かな?

296 :デフォルトの名無しさん:02/05/12 23:32
>>295
BASICじゃないの?大文字だし。

297 :デフォルトの名無しさん:02/05/12 23:34
perlでしょ
lispはカッコがあるから

298 :デフォルトの名無しさん:02/05/12 23:45
Ruby!!!

299 :デフォルトの名無しさん:02/05/12 23:48
>>298
Ruby厨ってこうやって叫ぶだけで特に害がないから良いよね。
結構独自路線だからアイデンティティはしっかりしてるのか。
それに比べて多方面にコンプレックスのあるVB厨とかは痛いな・・・。

300 :デフォルトの名無しさん:02/05/13 00:00
300!!!

301 :VB厨:02/05/13 00:28
>>299
スマン。

302 :デフォルトの名無しさん:02/05/13 00:37
>>301
謝ってくれる人は心優しい人だね。
バカとは自分がバカと言うことに気が付いていないからバカなんだ。
>>301さんは賢人のようです。

303 :デフォルトの名無しさん:02/05/13 01:48
>295
MSXべーしっくがいいと思う。スペースすら省略可能だし。
PRINTは ? で書けるし。(LIST取ったら伸張されちゃうけど)

304 :デフォルトの名無しさん:02/05/13 13:21
>>303
N88でいいじゃん。?も同様だし。

305 :前775:02/05/13 16:34
あー、なんか、、スレ間違えたかと思った。
昔は文章よりプログラムの方が多いくらいのスレだったのに・・。

306 :前スレ853:02/05/13 18:23
Perl は全ての変数にプレフィクスが付く分、極まってくると
画面密度が上がる。

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

307 :デフォルトの名無しさん:02/05/13 18:53
>>306
思わずishにかけたくなるねw


308 :デフォルトの名無しさん:02/05/13 20:19
>>307
ホントだ。なんかのエンコードかけてあるみたい。
このままメモ帳に書いて拡張子を.comにしたら動きそうだ

309 :デフォルトの名無しさん:02/05/14 00:56
2行目文頭 ('.')
3行目 [--$g]
4行目 ('m')

Perlを知らない俺から見ると、この辺はもはや顔文字だな。

310 :デフォルトの名無しさん:02/05/14 04:05
ネット対戦オセロ作ってください。
よろしく。

311 :tara:02/05/14 04:23
超簡易七行SNTPクライアントです。(SMTPではない)
エラーチェック皆無です。引数の数すらチェックしてません。
コンパイルすると警告が出ますが、無視してやってください。

#include <winsock.h>
#include <time.h>
int N[12];int z;u_int n;struct tm*T;SOCKADDR_IN d={2,31488},u={2,4,0};main(int
c,char **a){WSADATA w;SOCKET s;SOCKADDR*q=(SOCKADDR*)&u;WSAStartup(514,&w);s=
socket(2,2,0);bind(s,q,16);d.sin_addr.s_addr=inet_addr(a[1]);*N=11;z=48;sendto
(s,&N,z,0,(PSOCKADDR)&d,16);recvfrom(s,&N,z,0,(PSOCKADDR)&d,&z);n=ntohl(N[10])
-2208988800;printf("%s",ctime(&n));closesocket(s);}

前回に引き続きstdio.hをincludeできませんでした……残念。
実行時には、SNTPサーバーのIP(ドット区切りの数字で指定)を引数として
指定する必要があります。

ex)
program 127.0.0.1

多分これで動くはず、です。


312 :tara:02/05/14 04:36
……言ってるそばから縮みました。

#include <winsock.h>
#include <stdio.h>
#include <time.h>
int N[12];int z;u_int n;struct tm*T;SOCKADDR_IN d={2,31488},u={2,4};main(int c,
char **a){WSADATA w;SOCKET s;SOCKADDR*q=&u;WSAStartup(514,&w);s=socket(2,2,0);
bind(s,q,16);d.sin_addr.s_addr=inet_addr(a[1]);*N=11;z=48;sendto(s,&N,z,0,&d,
16);recvfrom(s,&N,z,0,&d,&z);n=ntohl(N[10])-2208988800;printf("%s",ctime(&n));}

VC++ .NETで動作検証しました。
これでも動くのか……。


313 :前スレ853:02/05/15 01:23
久々に読み返したらまだ縮むじゃんよ…。ついでに画面密度も
上げる方向で修正。
http://boobar.hoops.ne.jp/pacmaso.tar.gz

($n,$p,@e)=<>=~/\d+/g;$j=(@m=map/./gs,($_=<>),<>)-($k=($c=length)-2)-2;$t=0;sub
u{@m[@e,$p]=@_}@g=(".")x@e;sub w{(*z,$g)=@_;$m[$i=$z+($z%$c?-1:$k,$z>=$j?-$j:$c
,$z<$k?$j:-$c,$z%$c==$k?-$k:1)[--$g]]eq"#"||$l&&grep$i==$_,@e or$z=$i}while($m[
$p]ne"*"or$t+=$n){u(("m")x(@g=@m[@e]),($d=grep$p==$_,@e)?"D":"C");$r=grep/[*.]/
,@m,@g;print@m,"R:$r T:$t >";$r&&($t||!$d)?u@g," ":exit;$l=0;w*p,<>%5||next;sub
r{1+int rand 4}for(@e){if(($w=$e=pop@e)-$p){w*w,$w%$c-$p%$c?int$w/$c-$p/$c?r:$w
<$p?4:1:$w<$p?2:3;w*w,r while++$l%9&&$w==$e}@e=($w,@e)}$t&&$t--}

延々バグ取りしてるから大分枯れてる筈。

314 :前スレ843:02/05/16 03:06
>>313
そろそろしつこいと思いますた。

315 :デフォルトの名無しさん:02/05/16 11:58
悲しいことを言うなぁ

316 :デフォルトの名無しさん:02/05/16 12:16
またーり行こうよ

317 :前スレ853:02/05/16 18:54
いや、自分でもしつこいと思った。(w

sub h{sprintf"\\x%X",($i+=$_)}$c=join q/\xA1-\xFE]/,(q/\G((?:[\x00-\x7F]|[\x8E/
,"[","|\\x8F[","[",")*?)");$i=160;for((2)x5,1,(2)x11,3,(2)x3,(1)x5,(3)x5,(1)x4,
(2)x3,(1)x5,2,3,1,-48,32,2,2){$s.=h;$S{$j}=chr$i;$j=$i}$i=170;for((2)x12,3,2,2,
7,(3)x4){$d.=h;$D{$i}=chr($i-1)."\xA1\xAB"}$i=206;for((3)x5){$d.=h;$D{$i}=chr(
$i-2)."\xA1\xAC"}sub u{unpack"C",$3}eval join q/\xA1/,(q/s!$c([\xA4\xA5])([/.$d
.q|])!"$1$2".$D{&u}!eg;s/$c|,'\\xAC/$1','\\xDF/g;s/$c','\\xAB/$1','\\xAC/g;
s/$c','\\xA9/$1',q{\xAB/g;s/$c[\xA4\xA5]\xE7/$1},q{\xA9/g;s!$c([\xA4\xA5])([}.
$s.q|])!"$1$2".$S{&u}!eg;s/$c|,q{\xBC/$1\xA4\xA2/g;print})while<>

日本語→ひんたぼ語フィルタ。
Usage: perl hintabo text.euc > text.hintabo

変換テーブルの生成部分がもっと縮めば七行いけるかも。
七行いけてもネタ的にイマイチかも。(w

318 :デフォルトの名無しさん:02/05/16 20:06
折れ的にはしつこくない。
つーか勉強になるのでどんどん短くしてぽ。

できたらどこかにコメント付でうぷしてほしいなぁ。

319 :デフォルトの名無しさん:02/05/16 22:01
誰かが7行スレ専用ソース公開ページを作ってくれるといいのになぁ。
そうすると、ここのスレでは「また短くなったので見てね」と書いておいて、
公開ページの方で、短いソース(とコメントつきソース)を見て貰う事が出来るのに。

でもそうすると、新しい人が入りづらいか。某メガデモスレみたいな感じで。

320 :デフォルトの名無しさん:02/05/17 12:00
それなりに動くソフトウェアだし、著作権的に面倒だってんで皆気が進まないんじゃ。

321 :前スレ853:02/05/17 19:00
Wiki みたく、各作者が好きな時に更新できるフレームワークを
準備しないと不便だし、そこまでする気になる人がいないだけかと。

自分のだけなら適当なアカ取って普通にメンテすりゃ済むから
楽だけど。つか俺はそうしてる。 http://boobar.hoops.ne.jp/

sub u{"$1$2".$D{unpack"C",$3}}sub h{*t=pop;$t.=sprintf"\\x%X",$i+=$_;chr($i-pop
).pop}$c=join q/\xA1-\xFE]/,qw!\G((?:[\x00-\x7F]|[\x8E [ |\\x8F[ [ )*?)!;$z=$c.
q/([\xA4\xA5])/;$i=160;map{$D{$j}=h*s;$j=$i}(2)x5,1,(2)x11,3,(2)x3,(1)x5,(3)x5,
(1)x4,(2)x3,(1)x5,2,3,1,-48,32,2,2;$i=170;$D{$i}=h"\xA1\xAB",1,*d for(2)x12,3,2
,2,7,(3)x4;$i=206;$D{$i}=h"\xA1\xAC",2,*d for(3)x5;eval join'\\xA1','s!$z(['.$d
.'])!u!eg;s/$c',qw!\xAC/$1 \xDF/g;s/$c \xAB/$1 \xAC/g;s/$c \xA9/$1!,q{\xAB/g;
s/$z\xE7/$1},q{\xA9/g;s!$z([}.$s.'])!u!eg;s/$c',q{\xBC/$1\xA4\xA2/g;print}for<>

あっさり七行達成してもた。でも数字やアルファベットを変換してない
から、フィルタとしては不完全。萎え。

322 :デフォルトの名無しさん:02/05/17 19:14
いちいち「更新」とかこのスレに描くくらいなら
最初からここにうぷしたほうがいいと思うけど?

どうせ7行程度なんだしさっさとスクロールすれば いいんじゃないの?

323 :デフォルトの名無しさん:02/05/17 23:44
ちょっとだけしか縮めていないときとか、
説明のために長いプログラムをうぷするときとか、
そういったスレは欲しいかもね。

こっちに載せるときは、ネタ提供か、完成か、バグ取りか、大幅改変か・・・

324 :前スレ843:02/05/18 08:57
>>前スレ853
ネタ提供。
??行→7行へのunindent。

325 :デフォルトの名無しさん:02/05/18 10:15
ひんたぼ語って何だか知らないけどすげー
ここは神が集まるスレだな

326 :名無しさん@Vim%Chalice:02/05/18 11:26
>>325 勉強してください。
    http://www4.airnet.ne.jp/isobe/game/kouryaku/hintabo.html

327 :前スレ853:02/05/19 18:37
>>324
とりあえずたたき台を作ってみたよ。まだまだ機能的に不完全だけど。
http://boobar.hoops.ne.jp/rms.tar.gz

$_=join" ",grep{s/^\s*(?:#.*)?|\s+$//g;s/\s+/ /g;length}<>;%k=qw|( ) < > [ ] {
}|;1 while s=\G(.*?)((?:(?:(?<![\$\%\&\*\@])(?:(?:m|q[qrwx]?)(?:([(<[{]).*?${k{
$3}}|([^\w\s(<[{]).*?\4)|(?:s|tr|y)(?:([(<[{]).*?$k{$5}\s*\5.*?${k{$5}}|(
[^\w\s(<[{]).*?\6.*?\6))|(?<![\w])/(?:\\/|[^/])*/)[a-z]*)|"(?:\\"|[^"])*"|'(?:
\\'|[^'])*')=push@c,$1,$2;''=egx;$q=1 if$c[0]=~m!^(?:["'/]|(?:[ms]|q[qrwx]?|tr)
[^\w\s])!x;($_,@c)=map{++$q%2?split:$_}grep/\S+/,@c,$_;sub j{$_.=$_[0].shift@c}
sub l(){length$_.$c[0]}sub p{print"$_\n";$_=shift@c}sub w(){/\w$/&&$c[0]=~/^\w/
}79<=l?79<l?p:w?p:j&&p:w?j" ":j while@c;p;

さぁ、縮めようか。(w

328 :デフォルトの名無しさん:02/05/19 21:45
保守保守

329 :前スレ843 :02/05/20 08:38
>>327
僕には無理です。
がんばって縮めてください。
応援してます(w

330 :775:02/05/20 19:38
#include <stdio.h>/*7行になるかチェッカーーー*/
main(int c,char**v){FILE *f = fopen(v[1],"r");int i=0;if(c<1)return;for(;fgetc
(f)!=-1;i++);if(i<80*7)printf("イイ!: %d文字(%d行?)\n",i,i/80);else printf(
"糸冬 了 :%d文字(%d行?)\n",i,i/80);}

正直すまん・・・。
AVIファイル生成は構造わからんで脱落。

331 :ネタ出:02/05/20 20:21
格闘ゲーム(パンチとかが出てHPが減りさえすればイイ) きぼんぬ!

モナーのダンレボ きぼんぬ!

15パズル きぼんぬ!

もぐらたたき きぼんぬ!

Hello world きぼんぬ!

えっと・・・えっと・・・・(ワラ

332 :デフォルトの名無しさん:02/05/21 00:01
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
main(int a, char **v){struct sockaddr_in h;int s;char c[1024];
bzero(&h,sizeof(h));h.sin_family=AF_INET;h.sin_port=htons(21);inet_aton(v[1],&h.sin_addr);
s=socket(AF_INET,SOCK_STREAM,0);connect(s,(struct sockaddr *)&h,sizeof(h));
read(s,c,1024);write(s,v[2],strlen(v[2]));write(s,"\r\n",2);read(s,c,1024);
write(s,v[3],strlen(v[3]));write(s,"\r\n",2);read(s,c,1024);while(1){
printf("$: ");fgets(c,1024,stdin);write(s,c,strlen(c));write(s,"\r\n",2);
read(s,c,1024);printf("%s", c);}close(s);}

7行じゃないけど。ftpもどき
./a.out 127.0.0.1 "USER user" "PASS password"
$:の後にコマンドです。

333 :デフォルトの名無しさん:02/05/21 01:50
>332
うーん……、手元にPC-UNIX系の環境が無いから、検証できないまま口出して
申し訳ないけれど、これだとファイルのやり取りはできないんじゃ?
FTPサーバー接続してコマンド打つのが限界のような……。

334 :332:02/05/21 21:23
>333
telnetでport21につないでるようなカンジだから、
たいした事は出来ない&バッファもクリアしてないからゴミが残ると。。。
全然使えないね(藁

335 :前スレ843 :02/05/22 09:28
>>331
Perlには無理だな。
やろうと思えばできるけど。(漏れには無理)

336 :デフォルトの名無しさん:02/05/22 09:40
意味もなく上げまくるなよ、自己主張激しすぎて見苦しい

337 :デフォルトの名無しさん:02/05/22 13:55
>>319
縮む過程で加えられたテクも見たい
CVSサーバ付けてくれれば文句無いけど

338 :デフォルトの名無しさん:02/05/22 14:18
sourceforge.jpで7行プロジェクトとか・・・ダメかなぁ。


339 :デフォルトの名無しさん:02/05/22 19:48
7-liner

340 :前スレ843 :02/05/24 10:46
>>336
スマソ。

341 :デフォルトの名無しさん:02/05/24 18:55
前スレの猛者が戻ってこない限り、このスレが良スレになることはないな

342 :デフォルトの名無しさん:02/05/24 23:31
トリッキーの1氏や前スレ60氏の降臨きぼーーーんぬ。
*nix厨氏とか、S氏とかも来てほしー。

343 :デフォルトの名無しさん:02/05/25 13:23
Sタン、JavaScriptでぷよぷよ作ってー。
7行、7行、7行、7行、7行、ハァハァ
7行、7行、7行、7行、7行、ゼェゼェ。

みんな来てよー(w

344 :猛者募集:02/05/26 11:07
agge

345 :デフォルトの名無しさん:02/05/29 00:46
>>343
無理っぽいな。消滅判定と落下だけでかなり食うと思う。
連鎖中は同時に複数色消えることもあるし・・・

なんつって無理無理いっててもしょうがないんで
叩き台を作ってみよっかな

346 :デフォルトの名無しさん:02/05/29 00:52
>>345
S氏ですか?

347 :デフォルトの名無しさん:02/05/29 01:48
>346
いや、通りすがりのものです。
昔X68で作ったもんで

348 :デフォルトの名無しさん:02/06/01 04:15
mange

349 :デフォルトの名無しさん:02/06/01 12:05
たたき台が重要だ

350 :デフォルトの名無しさん:02/06/07 15:35
ttp://wildmag.de/compo/Mados-Divo/divo.html
ねたをくれなんていってる時点で間違ってたんだ…

351 :デフォルトの名無しさん:02/06/07 18:11
>>350
感動した
ソースを見て更に感動した

352 :デフォルトの名無しさん:02/06/07 18:36
イカス

353 :デフォルトの名無しさん:02/06/07 21:08
>>350
!!!
マジかよおい!
感動した…マジ感動した!

354 :デフォルトの名無しさん:02/06/07 22:00
>>350
スゲー!!
なるほどソース見て感動!!

355 :デフォルトの名無しさん:02/06/07 22:52
>>350
これは凄い!

356 :デフォルトの名無しさん:02/06/07 23:01
>>350
な、なぬ・・・・

357 :デフォルトの名無しさん:02/06/08 00:28
>>350 見た目は驚かなかったけど、ソースの簡潔さに驚いた。

358 :デフォルトの名無しさん:02/06/08 01:15
俺はできないけど、がんばってください
ってのがうざい

359 :デフォルトの名無しさん:02/06/08 01:18
サーバ側七行、クライアント側七行で、ネット対戦できるオセロつくってください。

360 :デフォルトの名無しさん:02/06/08 01:44
サーバ:

#include "osero-server.h"
#include <stdlib.h>
int main()
{
do_osero_server();
return EXIT_SUCSESS;
}

クライアント:
#include "osero-cliant.h"
#include <stdlib.h>
int main()
{
do_osero_cliant();
return EXIT_SUCSESS;
}



361 :デフォルトの名無しさん:02/06/08 13:31
>>360
言ってはならないことかもしれないけど
あなたはここにくる前にしなければならないことがあるような気がします

362 :デフォルトの名無しさん:02/06/09 18:23
>>350
スクロールバーが動いたので部落らかと思った。
スゲー。感動すた。

363 :デフォルトの名無しさん:02/06/09 20:48
<script>s=Math.sin;z=0;function a(){for(i=0;i<50;){z?0:document.write('<b id=x'
+i+' style=position:absolute><big>O</big><sub>'+i+'</sub></b>');
w=i*s(z);o=eval('x'+i).style;o.top=s(w)*i*4+230;o.left=s(w+2)*i++*4+230}
z+=.015;setTimeout('a()',50)}a()</script>

>>350 名前: デフォルトの名無しさん 投稿日:02/06/07 (金) 15:35
> ttp://wildmag.de/compo/Mados-Divo/divo.html
> ねたをくれなんていってる時点で間違ってたんだ…
より。(改行をマジで適当に追加)。

すげーな。

364 :デフォルトの名無しさん:02/06/11 06:12
前ここにprintfってあったっけ?

365 :デフォルトの名無しさん:02/06/11 18:01
>>364
sprintfなら
http://pc.2ch.net/test/read.cgi/tech/984182993/428


366 :デフォルトの名無しさん:02/06/13 00:20
あと一行が縮まらない8行迷路。HSP。
一番右下がゴール。

dim g,4,2:g=-1,0,1,0,0,-1,0,1:dim m,49,49:randomize:repeat 49:t=cnt:repeat 49
s=cnt:if ((s\2)+(t\2))=2{m.s.t=1:rnd r,4:a=s+g.r.0:b=t+g.r.1:m.a.b=1}loop:loop
gsel 0,-1:screen 2,10,10,8:repeat:repeat 10:b=cnt:repeat 10:a=cnt:d=a+v:e=b+w
palcolor 1-m.d.e*7:pset a,b:loop:loop:d=(k&4!0)-(k&1!0)+x:palcolor 39:stick k,15
e=(k&8!0)-(k&2!0)+y:r=(d<0)|(d>48):d=1-r*d+(r*x):r=(e<0)|(e>48):e=1-r*e+(r*y)
r=m.d.e:d=1-r*d+(r*x):v=1-(d>43)*(1-(d<5)*(d-4))+((d>43)*39):x=d:r=m.d.e:c++
e=1-r*e+(r*y):w=1-(e>43)*(1-(e<5)*(e-4))+((e>43)*39):y=e:if (x=48)&(y=48):break
pset x-v,y-w:redraw:title ""+c:wait 5:loop:dialog "cleared:"+c

367 :デフォルトの名無しさん:02/06/14 19:40
キタ━━━━(・∀・)━━━━━━!!!!!!!

368 :366:02/06/14 20:04
ここの人はレベルが高くてHSPを知らない罠か・・・(´д`;

369 :デフォルトの名無しさん:02/06/14 21:09
>368
いや、縮める隙を探してるさいちゅう。
HSPだって立派じゃないけど言語だしね

370 :366:02/06/14 21:35
>>369
ありがたや。なるべくif文使わないようにしたから、回りくどいことやってます。(´ー`
もっといい迷路アルゴリズムが使いたいんだけど、長くなる・・・

371 :デフォルトの名無しさん:02/06/14 23:05
>>350
(゚д゚)すげー

372 :デフォルトの名無しさん:02/06/14 23:22
>>367だけど
>>366,>>368ゴメソ、HSPだったのね、よく考えずにレスしてた(w

勉強中の折れは「レベルが低くてHSPを知らない」のであった。
ダウソしてみよかな?

373 :moge:02/06/15 00:12
もっと繁栄を願ってage

374 :デフォルトの名無しさん:02/06/15 14:38
7行以内でbase64エンコード/デコードプログラム作ってくれ

375 :デフォルトの名無しさん:02/06/15 15:24
#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
ExitWindowsEx(EWX_SHUTDOWN,0);return 0;}

まぁ激しくガイシュツだろうな・・・。

376 :デフォルトの名無しさん:02/06/15 17:21
ネットワークゲーム用の汎用サーバとかは7行じゃ大変?
Javaでキボンヌ。

377 :デフォルトの名無しさん:02/06/15 20:35
>>376
そもそも汎用サーバなどという発想自体が厨
仕様を定義してみせい

378 :デフォルトの名無しさん:02/06/16 13:41
アクセスしてきたクライアントのソケットを保持。
どのクライアントから言われたことも、すべてのクライアントに返す。
という意味でした。

379 :デフォルトの名無しさん:02/06/16 13:46
>>378
絶対どこかでデータの動機ミスが怒りそうな予感。

380 :デフォルトの名無しさん:02/06/16 18:48
>>378
それはむしろチャットサーバだね。そのくらいならできそうかな。
本気でネットゲの鯖やるならオブジェクトの同期も考えるから難しい。

381 :デフォルトの名無しさん:02/06/21 22:16
たまには、あげにゃ

382 :デフォルトの名無しさん:02/06/22 00:08
HSP製があったので、私もHSPでチャレンジ。
行数削るのだるいんでそのまんま。
一応砂嵐。改行なくせば一行いくかな?

boxf 0,400,640,0
repeat
redraw 0
repeat 60
y=cnt*8
repeat 80
x=cnt*8
pos x,y
rnd rx,640
rnd ry,480
gcopy 0,rx,ry,8,8
loop
loop
redraw 1
await 1
loop

処理的にはパレットモードにして、
パレットを白黒にランダムで変更てのが楽なんだけどね。
つーか、そっちも作ってみるかな。

383 :デフォルトの名無しさん:02/06/22 00:13
>>382
7行にまとめよ

384 :382:02/06/22 00:37
>>383
スマソ、そういうわけでまとめてみたら2行になった。

boxf 0,0,640,400:repeat:redraw 0:repeat 60:y=cnt*8:repeat 80:x=cnt*8:pos x,y
rnd rx,640:rnd ry,480:gcopy 0,rx,ry,8,8:loop:loop:redraw 1:await 1:loop

砂嵐の濃度調整はboxf 0,0,640,400の部分で、画面を何割黒で塗りつぶすかで決まるから。

385 :デフォルトの名無しさん:02/06/22 00:46
お題:BlockSorting

386 :デフォルトの名無しさん:02/06/22 01:20
>>385
#include <stdlib.h>
typedef unsigned char b;e(b*s,b*d,int c){unsigned*o,i=0,r;o=calloc(65536,4);c--
;for(i;i<c;i++)o[s[i]<<8|s[i+1]]++;o[s[c]<<8|*s]++;for(i=1;i<65536;i++)o[i]+=o[
i-1];d[--o[s[c]<<8|*s]]=s[i=c-1];for(;i;i--)d[--o[s[i]<<8|s[i+1]]]=s[i-1];r=--o
[*s<<8|s[1]];d[r]=s[c];free(o);return r;}

一応、限定ソートなり。

387 :デフォルトの名無しさん:02/06/22 01:44
こっちは復元

#include <stdlib.h>
typedef unsigned char B;void d(B*s,B*d,int c,unsigned x){unsigned*o,i,a=0,t[256
];memset(t,0,1024);for(i=--c;i;i--)t[s[i]]++;o=calloc(65536,4);for(;i<256;i++){
memset(d+a,i,t[i]);a+=t[i];}for(i=0;i<=c;i++)o[(s[i]<<8)+d[i]]++;for(i=1;i<
65536;i++)o[i]+=o[i-1];*d=d[x];d[c]=s[x];d[c-1]=s[--o[(d[c]<<8)+*d]];for(i=c;i>
2;i--)d[i-2]=s[--o[d[i-1]<<8|d[i]]];free(o);}


388 :385:02/06/22 01:58
>386-387
(゚д゚)ハヤー

で、自分でも作ってみた。動作未確認・ブロックサイズ256に固定。
#include <stdlib.h>
enum{S=256};typedef unsigned char UC;int cmp(void*a,void*b){return memcmp(a,b,S
);}UC*bs(UC*s,UC*d){UC*p,**t,i;p=malloc(S*2);t=malloc(S);for(i=0;i<S;i++)p[i]=p
[i+S]=s[i],t[i]=p+i;qsort(t,S,S,cmp);for(i=0;i<size;i++)if(p== t[i])break;*d++=
i;for(i=0;i<S;i++)d[i]=t[i][S-1];free(p);free(t);return --d;}


389 :385:02/06/22 02:50
ぅぁー、>388バグりまくりだ。
出なおしてきます。


390 :デフォルトの名無しさん:02/06/24 00:47
ageじゃ!

391 :デフォルトの名無しさん:02/06/24 19:14
インチキだけど(includeとか含めなければ)7行
アナログ時計

#define NO_STRICT
#include <windows.h>
typedef void*v;typedef int i;typedef float f;f q=50,r=100;f R(f n){return(90.0\
-n)/57.3;}void L(v h,f r){MoveToEx(h,q,q,0);LineTo(h,q+q*cos(r),q-q*sin(r));}i\
WINAPI WinMain(v,v,char*,i){v h=CreateWindow("EDIT","n",(1<<28),0,0,1<<31,1<<\
31,0,0,0,0);HideCaret(h);SetTimer(h,1,r,0);MSG m;while(GetMessage(&m,0,0,0)!=0\
){if(m.message==275){v d=GetDC(h);Rectangle(d,0,0,r,r);SYSTEMTIME s;GetLocalTi\
me(&s);L(d,R(s.wSecond*6));L(d,R(s.wMinute*6));L(d,R(s.wHour*30));ReleaseDC(h,\
d);}if(m.message==513){break;}DispatchMessage(&m);}KillTimer(h,1);}

392 :デフォルトの名無しさん:02/06/28 14:31
漏れの環境(VS6SP5)だと、
math.hをインクルードしないとエラーになったので、
一行減って、一行増えたから、減ってない・・・。
鬱だ。

#define NO_STRICT
#include <windows.h>
#include <math.h>
typedef void*v;typedef float f;v d;f q=50;void L(f r){r=(15-r)/9.55;MoveToEx(d,
q,q,0);LineTo(d,q+q*cos(r),q-q*sin(r));}int WINAPI WinMain(v,v,char*,int){v h=\
CreateWindow("EDIT","n",1<<28,0,0,1<<31,1<<31,0,0,0,0);HideCaret(h);SetTimer(h,
1,100,0);MSG m;while(GetMessage(&m,0,0,0)&&m.message!=513){if(m.message==275){
d=GetDC(h);Rectangle(d,0,0,100,100);SYSTEMTIME s;GetLocalTime(&s);L(s.wSecond);
L(s.wMinute);L(s.wHour*5);ReleaseDC(h,d);}DispatchMessage(&m);}KillTimer(h,1);}


393 :デフォルトの名無しさん:02/06/28 15:00

「 #include
  は数えないのはどうよ?」
って議論になったことがあった(はず)なのでキニスンナ!

394 :デフォルトの名無しさん:02/06/28 19:29
新たなお題キボーン

395 :デフォルトの名無しさん:02/06/28 19:47
>>393
おいおい、ソリャだめだって話になったろ

396 :392:02/06/28 21:22
>>395
オーケイ、分かった

#include <windows.h>
#include <math.h>
HDC d;float q=50;L(float r){r=(15-r)/9.55;MoveToEx(d,q,q,0);LineTo(d,q+q*cos(r)
,q-q*sin(r));}WINAPI WinMain(HINSTANCE i,HINSTANCE,LPSTR,int){WNDCLASS w={67,D\
efWindowProc,0,0,i,0,0,0,0,"1"};RegisterClass(&w);HWND h=CreateWindow("1",0,51\
3<<19,0,0,200,200,0,0,i,0);SetTimer(h,1,99,0);MSG m;d=GetDC(h);while(GetMessag\
e(&m,h,0,0)!=-1){if(m.message==275){Rectangle(d,0,0,100,100);SYSTEMTIME s;GetL\
ocalTime(&s);L(s.wSecond);L(s.wMinute);L(s.wHour*5);}DispatchMessage(&m);}}

先人の遺産(砂嵐)を参考にしてみた

でも、漏れには限界・・・


397 :392:02/06/28 22:55
前スレの537を参考に・・・

#include <windows.h>
typedef double b;b cos(b);b sin(b);HDC d;b q=30;L(b r){r=(15-r)/9.55;MoveToEx(d
,q,q,0);LineTo(d,q+q*cos(r),q-q*sin(r));}WINAPI WinMain(HINSTANCE i,HINSTANCE p
,LPSTR l,int q){MSG m;HWND h;SYSTEMTIME s;WNDCLASS w={67,DefWindowProc,0,0,i,0,
0,0,0,"1"};RegisterClass(&w);h=CreateWindow("1",0,513<<19,0,0,95,95,0,0,i,0);S\
etTimer(h,1,99,0);d=GetDC(h);while(GetMessage(&m,h,0,0)!=-1){if(m.message==275)
{Rectangle(d,0,0,60,60);GetLocalTime(&s);L(s.wSecond);L(s.wMinute);L(s.wHour*5)
;}DispatchMessage(&m);}}

あと、24字で七行達成かな?
一人でやってると鬱だからage

誰か、助けて

398 :392:02/06/28 22:56
書き忘れたけど、>>397からは.cppじゃなくて.cでよろしく

399 :tara:02/06/29 04:50
VC++ .NETであれば、これでも動くはずです。

#include <windows.h>
typedef double b;b cos(b),sin(b);HDC d;b q=30;L(b r){r=(15-r)/9.55;MoveToEx(d,q
,q,0);LineTo(d,q+q*cos(r),q-q*sin(r));}WinMain(i,p,l,q){MSG m;HWND h;SYSTEMTIME
s;WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"1"};RegisterClass(&w);h=
CreateWindow("1",0,513<<19,0,0,95,95,0,0,i,0);SetTimer(h,1,99,0);d=GetDC(h);
while(GetMessage(&m,h,0,0)!=-1){if(m.message==275){GetLocalTime(&s);Rectangle(
d,0,0,60,60);L(s.wSecond);L(s.wMinute);L(s.wHour*5);}DispatchMessage(&m);}}


400 :デフォルトの名無しさん:02/06/29 13:54
>>395
いや、「打つ」とかかいてあったんで。

401 :392:02/06/29 16:48
>>399
お早う。本当だ、動いたヨ。
ずっと、VS6でやってたからなぁ。

何はともあれ、taraさんThx!


402 :392:02/06/29 18:07
#include <windows.h>
typedef double b;b sin(b),q=30;HDC d;HWND hL(b r){r=(15-r)/9.55;MoveToEx(d,q,q,
0);LineTo(d,q+q*sin(r+1.57),q-q*sin(r));}WINAPI WinMain(HINSTANCE i,HINSTANCE p
,LPSTR l,int q){MSG m;SYSTEMTIME s;WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,
"1"};RegisterClass(&w);h=CreateWindow("1",0,513<<19,0,0,95,95,0,0,i,0);SetTimer
(h,1,99,0);d=GetDC(h);while(GetMessage(&m,h,0,0)!=-1){if(m.message==275){Recta\
ngle(d,0,0,60,60);GetLocalTime(&s);L(s.wSecond);L(s.wMinute);L(s.wHour*5);}Dis\
patchMessage(&m);}}

taraさんを見習って宣言をまとめた。
あと、cosを使わないように変えた。
これで、5文字減らした。
VS6でも七行達成するのを目標に!

403 :392:02/06/29 18:14
>>402
しまった。HWND hの後にセミコロンが抜けてる!
でも、4行目の余白で吸収されるかな。

404 :デフォルトの名無しさん:02/06/29 23:34
家にはVC++無いんで確認できないけど七行達成したよ。
誰か確認おながいします。

#include <windows.h>
float sinf(float),q=30;HDC d;HWND h;MSG m;L(float r){MoveToEx(d,q,q,0);r/=9.55;
LineTo(d,q+q*sinf(r),q-q*sinf(r+1.57));}WINAPI WinMain(HINSTANCE i,HINSTANCE p,
LPSTR l,int q){SYSTEMTIME s;WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"1"};Re\
gisterClass(&w);Rectangle(d=GetDC(h=CreateWindow("1",0,513<<19,0,0,95,95,0,0,i,
0)),0,0,60,60);SetTimer(h,1,99,0);while(GetMessage(&m,h,0,0)>-1)m.message==275?
GetLocalTime(&s),L(s.wSecond),L(s.wMinute),L(s.wHour*5):0;DispatchMessage(&m);}


405 :せめて:02/06/29 23:37
>>404
なにをするプログラムなのか、書け

406 :392:02/06/29 23:41
#include <windows.h>
typedef double b;b sin(b),q=30;HDC d;HWND h;L(b r){r=(15-r)/9.55;MoveToEx(d,q,q
,0);LineTo(d,q+q*sin(r+1.57),q-q*sin(r));}WINAPI WinMain(HINSTANCE i,HINSTANCE
p,LPSTR l,int q){MSG m;WORD s[8];WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"1"
};RegisterClass(&w);h=CreateWindow("1",0,513<<19,0,0,95,95,0,0,i,0);SetTimer(h,
1,99,0);d=GetDC(h);while(GetMessage(&m,h,0,0)!=-1){if(m.message==275){Rectangle
(d,0,0,60,60);GetLocalTime((PSYSTEMTIME)s);L(s[6]);L(s[5]);L(s[4]*5);}Dispatch\
Message(&m);}}

SYSTEMTIME構造体をWORDの配列に変更

407 :404:02/06/29 23:53
>405
>>402のを縮めてみますた。

408 :392:02/06/29 23:53
>>404
ごめん、見てなかった

残念ながら、
error LNK2001: 外部シンボル "_sinf" は未解決です
fatal error LNK1120: 外部参照 1 が未解決です。

と言われたよ。

409 :デフォルトの名無しさん:02/06/30 00:03
つーか>>399のやつ、VC6.0でも動くが何が問題?

410 :392:02/06/30 00:13
>>409
あ、VC.NETで動くのは見たけど、
VC6で動かないのは確かめなかった。
taraさん、>>404さん、ごめんなさい

#include <windows.h>
double sin(double),q=30;HDC d;L(double r){r/=9.55;MoveToEx(d,q,q,0);LineTo(d,q+
q*sin(r),q-q*sin(r+1.57));}HWND h;WinMain(i,p,l,q){MSG m;WORD s[8];WNDCLASS w={
67,DefWindowProc,0,0,i,0,0,0,0,"1"};RegisterClass(&w);h=CreateWindow("1",0,513\
<<19,0,0,95,95,0,0,i,0);SetTimer(h,1,99,0);d=GetDC(h);while(GetMessage(&m,h,0,0
)!=-1){m.message==275?Rectangle(d,0,0,60,60),GetLocalTime((PSYSTEMTIME)s),L(s[6]
),L(s[5]),L(s[4]*5):0;DispatchMessage(&m);}}

これで最後。

411 :392:02/06/30 00:27
>>409
教えてくれてありがとう。
おかげで助かった。

412 :tara:02/06/30 01:42
>409
お、VC++6.0でも動きましたか。
.NETの方しかインストールしてなかったもので、確認できなかったんです。
ありがとうございました。


413 :404:02/06/30 01:48
>>408
sinfってman引いてあったから使ったんだけどVCには無いのか。鬱氏。

>>410
7行達成おめでとう♪

414 :392:02/06/30 02:00
>>413
ありがとうございます
sinの計算と、三項演算子は参考にさせて頂きました。

ところで、次のお題って誰かありませんか?

415 :tara:02/06/30 02:15
>414
遅ればせながら、おめでとうございます。
で、次ですか……。
POP3のクライアントってありましたっけ。

416 :392:02/06/30 04:53
>>415
POP3クライアントは、
無かったと思いますよ。
SMTPは・・・、参加なさってたんですね(w

とりあえず、Webアプリの経験ないんで、
猫で修行しに逝ってきます
http://www.kumei.ne.jp/c_lang/sdk3/sdk_230.htm


417 :デフォルトの名無しさん:02/06/30 05:26
pop3は意味無いだろ
メッセージ取ってきてもmimeとかでエンコーディングされてるし

418 :デフォルトの名無しさん:02/06/30 10:15
>>417
デコードすればいいじゃん。
できない?
nkf32.dllを使いなさい。

419 :4k demo:02/06/30 12:42
7行じゃないけど・・・これはすごいの?すごくないの?どぉなの?

4K+ポリゴン+音源+音楽
ftp://ftp.jp.scene.org/pub/scene/parties/2000/dialogos00/in4k/stoerfall_ost_final.zip


420 :おまえら!:02/06/30 12:44
includeしているのは何行あるんだ!
7行じゃなくてコンパイル後のサイズで勝敗つけろや!



421 :デフォルトの名無しさん:02/06/30 12:46
>>420
>includeしているのは何行あるんだ!

その手があったか!w

422 :デフォルトの名無しさん:02/06/30 12:54
>>420
それでいいやろ(w

423 :デフォルトの名無しさん:02/06/30 14:07
>>420
静的リンクする上に、標準のライブラリもサイズに含めるということかな?
でも、ライブラリなんて(サイズも含めて)システム依存だから、単純に比べられないよね

アセンブラだったら、ソースコードの方がサイズが大きいってことか…

424 :デフォルトの名無しさん:02/06/30 14:08
>>420
Perl や JavaScript はどうすればいいんだ?

425 :おまえら! :02/06/30 16:57
PerlはともかくJavaはこんぱいるできるだろ。

426 :デフォルトの名無しさん:02/06/30 17:42
Java(以下略)

427 :デフォルトの名無しさん:02/06/30 18:19
>>425
Perl はコンパイルできますが、JavaScript は……

428 :デフォルトの名無しさん:02/06/30 19:16
>>425
議論をするのは構わないけど、ageないで。

429 :デフォルトの名無しさん:02/06/30 20:27
インタプリタは従来どおりでイイんじゃ?

430 :おまえら!part2:02/06/30 21:20
>>423
あほか?
ワシがいうてんのは、しらん人間の作ったソースを
組み込んでて、
「すごいねチミ!ハァハァ」
「おたくのやつのほうがスゴイッスよアニキィ!ハァハァ」
やってられん!

431 :デフォルトの名無しさん:02/06/30 22:17
>>430
それって GPL ?

432 :デフォルトの名無しさん:02/06/30 22:17
>>430
オブジェクトならいいのか ?

433 :おまえら!part2:02/06/30 22:28
俺はすごいぞ。
Cの標準関数なんぞ使ったこと無い。
人のライブラリなんぞ信用できるか!

main以外は全部自作だ。


434 :デフォルトの名無しさん:02/06/30 22:54
mainを他人のプログラムから流用するのはスゴイ

435 :デフォルトの名無しさん:02/06/30 22:54
4kデモはデモスレで語ってくれ。

436 :デフォルトの名無しさん:02/06/30 22:56
>>433
Windowsのプログラムをどう書いてるのか、興味が・・・


437 :デフォルトの名無しさん:02/06/30 23:37
>>433
もちろん Java でもそれを実行なさっている、と

438 :デフォルトの名無しさん:02/06/30 23:42
まぁ、漏れもJavaでCの標準関数は使わないな

439 :デフォルトの名無しさん:02/07/01 00:41
で、この議論は7行スレとどんな関係があるのですか?

440 :デフォルトの名無しさん:02/07/01 00:57
>>438
使っている漏れは、どうすればいいのでしょう

441 :デフォルトの名無しさん:02/07/03 22:11
保守

442 :デフォルトの名無しさん:02/07/03 23:31
うーん
7行でJPEG、かなり厳しいなぁ・・・


443 :デフォルトの名無しさん:02/07/04 01:11
>>442
7行で DCT あるいは DFT だけならいけるかもしれないよ。
つーか、普通に書いてもメインの部分はそれくらいか…

444 :デフォルトの名無しさん:02/07/04 01:18
>442
7行無圧縮PNGなら出来るかもな。
でも、CRCの計算がきついかもしれない。

445 :デフォルトの名無しさん:02/07/04 09:57
>>444
とりあえず CRC の部分から書き始めてみる?
そこから、PNG のように大きな枠組みに持っていくのは大変かもしれないけど、
任意の CRC を計算するまでならできそうだし、それはそれで功有りかと。

446 :デフォルトの名無しさん:02/07/04 10:49
>>445
いいですねぇ。最終的に7行の*.cファイル群を幾つかリンクするとJPEGエンコーダ/
デコーダ等々になる、というのは面白いかも。

447 :445:02/07/04 11:52
CRC32 を計算、入力は標準入力から。g++ 2.95.3
多分あってると思いますが、確認お願いします。

#include <fstream>
unsigned C,t[256],i,j,v,a=256;
main(){
for(i=0;i<a;t[i++]=v)for(v=i,j=0;j<8;j++)v=(v&1)?((v/2)^0xEDB88320):(v/2);
for(C=~0;~(i=cin.get());)C=t[(C%a)^i]^(C/a);
cout<<hex<<~C<<endl;
}


448 :445:02/07/04 12:08
ごめんなさい。1つ前のバージョンを送ってしまいました。

#include <fstream>
unsigned C,t[256],i,j,a=256;
main(){
for(;i<a;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1?0xEDB88320:0);
for(C=~0;~(i=cin.get());C=t[(C%a)^i]^(C/a));
cout<<hex<<~C<<endl;
}


449 :デフォルトの名無しさん:02/07/04 13:34
参考資料
http://www01.u-page.so-net.ne.jp/xb3/y-koujin/png_fmt/jp/Tr/png.html

450 :445:02/07/04 14:49
>>449
そうです。そこから縮めました。書いておけばよかったですね、はい。
ちなみに C=t[C%a^i]^C/a) でもう少し縮められます。

451 :1:02/07/04 18:54

#include <stdio.h>

int main(void)
{
while(1)
printf("\t\b\b");
}

452 :デフォルトの名無しさん:02/07/04 22:49
>>451
XPクラッシャーじゃん

453 :デフォルトの名無しさん:02/07/05 09:21
>>452
確か 2000 でも落ちるような。
9x, Me は大丈夫。

454 :デフォルトの名無しさん:02/07/05 21:47
>>453
NT系アウトの罠>>printf("\t\b\b");

455 :デフォルトの名無しさん:02/07/06 10:39
七行プログラミングのスレにでてるコードをちゃんとインデントを入れた形に整形してくれる
プログラムなんてガイシュツですか?

456 :デフォルトの名無しさん:02/07/06 10:41
>>455
作ればいいかと。{}付けがよっぽど変なバカのコード以外は簡単かと。

457 :デフォルトの名無しさん:02/07/06 10:45
>>455
プリティプリンタでぐぐればいっぱいあるよ。

458 :デフォルトの名無しさん:02/07/06 11:11
gnu-indent

459 :デフォルトの名無しさん:02/07/06 11:19
>>455
visual stadioでもできるよ(たぶん

460 :デフォルトの名無しさん:02/07/06 11:22
できない

461 :デフォルトの名無しさん:02/07/06 19:53
DCTまだですか?

462 :デフォルトの名無しさん:02/07/06 22:43
double c[8][8],is;void di(){int u,v;is=1./sqrt(2.);for(u=0;u<8;u++)for(v=0;x<8;
x++)c[u][x]=cos((2.*x+1.)*u*M_PI/16.);}void dc(int *b){int v,u,x,y,w[64];double
s,cu,cv;for(v=0;v<8;v++){cv=(v==0)?is:1.0;for(u=0;u<8;u++){cu=(u==0)?is:1.;s=0;
for(y=0;y<8;y+)for(x=0;x<8;x++)s+=b[y*8+x]*c[u][x]*c[v][y];w[v*8+u]=(int)(s*cu*
cv/4);}}}

463 :デフォルトの名無しさん:02/07/06 23:07
>>462
x と v を間違えたり、y+ になったり、ちょっとしょぼーん(´・ω・`)
もっと短くできそうだ

次は、PNG と JPG のファイルフォーマット変換部分か…

464 :デフォルトの名無しさん:02/07/06 23:23
モジュールを集めればJPEGだって何だってできるのはあたりまえだから、
もう少し「寄せ集めること」の意義を考えてみないか?

たとえばSUSIEみたいに、メインルーチンとローダー・変換部分をわけて、
それぞれが7行プログラムで作成されているというように。


465 :462:02/07/06 23:25
>>463 叩き台なので勘弁してCRAY.


466 :デフォルトの名無しさん:02/07/06 23:54
Javaを使えば、JPEG入出力なんて始めからできているという罠

467 :デフォルトの名無しさん:02/07/07 00:28
double c[8][8],is,s;int x,y,u,w[64];di(){is=1/sqrt(2);for(u=0;u<64;u++)c[u/8][u
%8]=cos((2*(u%8)+1)*(u/8)*M_PI/16);}dc(int*b){for(x=0;x<8;x++)for(u=0;u<8;w[x*8
+u]=s*(x?1:is)*(u++?1:is)/4)for(s=0,y=0;y<64;y++)s+=b[y]*c[u][y%8]*c[x][y/8];}


468 :463:02/07/07 01:11
先を越された…
double c[8][8],s;int x,y,w[64];di(){for(x=64;x--;c[y=x/8][x%8]=cos((2*(x%8)+1)*
y*M_PI/16));}dc(int*b){for(x=64;x--;w[x]=s*(x/8?1:1/sqrt(2))*(x%8?1:1/sqrt(2))/
4)for(s=0,y=64;y--;)s+=b[y]*c[x%8][y%8]*c[x/8][y/8];}


469 :デフォルトの名無しさん:02/07/07 12:27
>>464
過去ログ読んでね。そう言うコンセプトでやってる。

470 :464:02/07/07 18:19
>>469
ごめん。読んでいるけどわからんかった・・・ウツ

471 :デフォルトの名無しさん:02/07/08 02:27
(⌒Д⌒)あらやだわ奥さんハハハ

472 :みぃとぼぉる:02/07/08 15:09
参戦?させていただきます。んで、Pascalにて迷路...

Program Q;const B=$B800;var S,C,D,F:Word;A:Array[1..999]of Integer;begin For C
:=81to 3840do begin MemW[B:C*2]:=4016;If(C mod 80)=77 then C:=C+3;end;S:=1;A[S]
:=324;while(S>0)do begin C:=A[S];Mem[B:C]:=0;F:=0;while(F<15)do begin D:=(
Port[65]+S)mod 4;F:=F OR(1SHL D);D:=(2-(D div 2)*4)*(1+(D mod 2)*79);If Mem[B:C
+D*2]=176then begin Mem[B:C+D]:=0;A[S+1]:=C+D*2;S:=S+2;Break;end;end;S:=S-1;end
;Mem[B:164]:=0;Mem[B:7672]:=0;Readln;End.

80x50の英語モードDOS窓で CLS してから実行してちょ。
Borland Pascal 7.0 / WinXP で動作確認済み。難しい事は一切やっていないような。
ランタイムエラーが怖いのでCRTは未使用です。

尚、MS-DOSのメモリ依存。

473 :みぃとぼぉる:02/07/08 16:25
ちょっぴり修正。

Program Q;Uses crt;const B=$B800;var S,C,D,F:Word;A:Array[1..999]of Word;begin
TextMode(259);Randomize;For C:=81to 3840do begin MemW[B:C*2]:=4059;If(C mod 80)
=77 then C:=C+3;end;S:=1;A[S]:=324;while(S>0)do begin C:=A[S];Mem[B:C]:=0;F:=0;
while(F<15)do begin D:=Random(4);F:=F OR(1SHL D);D:=(2-(D div 2)*4)*(1+(D mod 2
)*79);If Mem[B:C+D*2]=219then begin Mem[B:C+D]:=0;A[S+1]:=C+D*2;S:=S+2;Break;
end;end;S:=S-1;end;Mem[B:164]:=0;Mem[B:7672]:=0;Readln;End.


- ランダムナンバージェネレーターにポートを使わずに正規の命令を使用。
- 毎回生成するパターンも変更される。
- Borland / Turbo Pascal で実行時にエラーが出る場合は CRT と TextMode を削除
するか、バグ修正板のCRT RTLを使用すること。

でわ。

474 :775:02/07/09 23:02
激簡単なもんから・・・・。
元画像をppmに限定すれば読みこみはかなり削減できないかな。>コンバータ

#include <stdio.h>/* usage:bmp2ppm src.bmp dest.ppm*/
main(int c, char*v[]){int i,x,y;FILE *f,*g;if(c<3)return;if((f=fopen(v[1],
"rb"))==NULL||(g=fopen(v[2],"w"))==NULL)return;fseek(f,18,SEEK_SET);fread(&x,4
,1,f);fread(&y,4,1,f);fprintf(g,"P6\n%d %d\n255\n",x,y);fseek(f,54,SEEK_SET);
for(i=0;i<x*y*3;i++)fputc(fgetc(f),g);fclose(f);fclose(g);}

475 :392:02/07/10 10:32
遅くなったけど、popクライアント
rcvmail サーバ名 ユーザ名 パスワード メール番号

#include <WinSock.h>
char z[512];int s,r,S;M(){z[r=recv(s,z,512,0)]=0;printf("%s",z);}T(x,y){r=spri\
ntf(z,x,y);strcat(z,"\r\n");send(s,z,r+2,0);M();}main(int c,char** v){SOCKADDR\
_IN a={2,28160};WSAStartup(257,z);a.sin_addr=*((PIN_ADDR)*(gethostbyname(v[1]))
->h_addr_list);connect(s=socket(2,1,0),&a,16);M();T("USER %s",v[2]);T("PASS %s"
,v[3]);if(c>4&&(c=atoi(v[4]))>0){T("LIST %d",c);sscanf(z,"%s%d%d",z+r,&r,&S);T(
"RETR %d",c);while((S-=r)>=0)M();}T("QUIT",0);closesocket(s);WSACleanup();}


476 :463:02/07/10 18:19
>>474
上下反転はともかく、RGBも逆だといやんなので、直しました。
上下も直した方が良いでしょうかね?

#include <stdio.h>/* usage:bmp2ppm src.bmp dest.ppm */
main(int c,char**v){int i,x,y,z[3];FILE*f,*g;if(c<3||(f=fopen(v[1],"rb"))==NULL
||(g=fopen(v[2],"w"))==NULL)return;fseek(f,18,c=SEEK_SET);fread(&x,4,1,f);fread
(&y,4,1,f);fprintf(g,"P6\n%d %d\n255\n",x,y);fseek(f,54,c);for(i=x*y;--i;){for(
c=0;c<3;)z[c++]=fgetc(f);for(;c--;)fputc(z[c],g);}fclose(f);fclose(g);}

477 :デフォルトの名無しさん:02/07/10 21:36
保守

478 :デフォルトの名無しさん:02/07/10 21:41
>>477
早っ (゚Д゚)

479 :デフォルトの名無しさん:02/07/10 22:35
popクライアント
キタ━━━(^∀゚)━━━!!

480 :デフォルトの名無しさん:02/07/11 18:47
寄せ集めで作ってみた無圧縮PNG。10行デス
CRCは>>448のを使わせてもらいました

#include <stdio.h>
typedef unsigned U;U X=128,C,t[256],i,j,a=256,h[17]={73,72,68,82},d[1<<18]={73,
68,65,84,120,218,1},l,M=1,N;FILE*f;B(U b){fputc(b,f);}W(U n){B(n>>24);B(n>>16);
B(n>>8);B(n);}S(U*b,U n){for(i=0;i<n;)B(b[i++]);for(i=0;i<a;t[i++]=C)for(C=i,j=
9;--j;)C=C/2^(C&1?0xedb88320:0);for(i=0,C=~0;i<n;)C=t[C%a^b[i++]&0xff]^C/a;W(~C
);}main(){f=fopen("mona.png","wb");W(0x89504e47);W(0xd0a1a0a);l=X+X*X*3;h[7]=h[
11]=X;h[12]=8;h[13]=2;W(13);S(h,17);d[7]=l;d[8]=l>>8;d[9]=~l;d[10]=~l>>8;l+=11;
for(i=11;i<l;M=(M+d[i++])%65521,N=(N+M)%65521)d[i]=(i-11)%(X*3+1)?i%a:0;d[i++]=
N>>8;d[i++]=N;d[i++]=M>>8;d[i++]=M;W(l);S(d,l+4);W(0);W(0x49454e44);
W(0xae426082);}


481 :デフォルトの名無しさん:02/07/11 20:43
これは流石に7行は無理じゃなかろか?

482 :480:02/07/12 14:08
9行・・・これ以上は無理ぽ

#include <stdio.h>
typedef unsigned U;U X=128,C,t[256],i,j,a=256,h[17]={73,72,68,82},d[1<<18]={73,
68,65,84,120,218,1},l,M=1,N;FILE*f;B(U b){fputc(b,f);}W(U n){B(n>>24);B(n>>16);
B(n>>8);B(n);}S(U*b,U n){for(i=0;i<a;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1?
0xedb88320:0);for(i=0,C=~0;i<n;C=t[C%a^b[i++]&0xff]^C/a)B(b[i]);W(~C);}main(){f
=fopen("mona.png","wb");W(0x89504e47);W(0xd0a1a0a);l=X+X*X*3;h[7]=h[11]=X;h[12]
=8;h[13]=2;W(13);S(h,17);d[7]=l;d[8]=l>>8;d[9]=~l;d[10]=~l>>8;l+=11;for(i=11;i<
l;M=(M+d[i++])%65521,N=(N+M)%65521)d[i]=(i-11)%(X*3+1)?i%a:0;d[i++]=N>>8;d[i++]
=N;d[i++]=M>>8;d[i]=M;W(l);S(d,l+4);W(0);W(0x49454e44);W(0xae426082);}


483 :448:02/07/12 18:45
>>480
縮めてみました。

#include <stdio.h>
typedef unsigned U;U*x,X=128,i,j,a=256,t[256],l,M=1,k;FILE*f;W(U n){for(i=4;i--
;)fputc(n>>i*8,f);}S(U*b,U n){W(n-4);for(i=~0;n--;i=t[i%a^*b++%a]^i/a)fputc(*b,
f);W(~i);}main(){U h[17]={73,72,68,82,0,0,0,X,0,0,0,X,8,2},d[1<<18]={73,68,65,
84,120,218,1,l=X+X*X*3,l/a,~l,~l/a};f=fopen("mona.png","wb");for(i=a;i--;k=l/X)
for(k=i,j=9;--j;x=d+11)t[i]=k=k/2^(k&1?0xedb88320:0);W(0x89504e47);W(0xd0a1a0a)
;for(S(h,17);l;l--)j+=M+=*x++=l%k?l%a:0,M%=i=65521,j%=i;*x++=j/a;*x++=j;*x++=M/
a;*x++=M;S(d,x-d);W(0);fputs("IEND\256B`\202",f);}

484 :デフォルトの名無しさん:02/07/12 22:43
>>483
もうわからん煤i´Д`;)

485 :484:02/07/12 22:46
つーか、新ネタ来たらあげて良し。

486 :デフォルトの名無しさん:02/07/12 23:21
mona.pngって…

487 :デフォルトの名無しさん:02/07/12 23:23
>>486
モナの絵が出てくるかと思ったけど、そうじゃないところが2ちゃんらしいというか。

488 :デフォルトの名無しさん:02/07/14 00:38
age

489 :484:02/07/14 02:18
これ以上はちょっと苦しいですね。
標準出力にしてもよいなら、後6文字くらいなんですが。

#include <stdio.h>
unsigned t[256],M=1,i,j,k,l,X=128,a=256;FILE*f;W(int n){for(i=4;i--;)putc(n>>i*
8,f);}S(int*b){W(X-4);for(i=~0;X--;i=t[i%a^putc(*b++,f)%a]^i/a);W(~i);}main(){
int*x,h[17]={73,72,68,82,0,0,0,X,0,0,0,X,8,2},d[1<<16]={73,68,65,84,120,218,1,l
=X+X*X*3,l/a,~l,~l/a};f=fopen("mona.png","wb");for(i=a;i--;k=l/X)for(k=i,j=9;--
j;x=d+11)t[i]=k=k/2^(k&1?0xedb88320:0);W(0x89504e47);W(0xd0a1a0a);for(X=17,S(h)
;l;l--)j+=M+=*x++=l%k?l%a:0,M%=i=65521,j%=i;*x++=j/a;*x++=j;*x++=M/a;*x++=M;X=x
-d;S(d);W(0);fputs("IEND\256B`\202",f);}

490 :デフォルトの名無しさん:02/07/14 02:21
失礼。 484 ではなく 448 でした。

491 :448:02/07/14 02:59
標準出力へ無圧縮 PNG を吐き出す7行プログラム

#include <stdio.h>
unsigned t[256],M=1,i,j,l,X=128,a=256;W(int n){for(i=4;i--;)putchar(n>>i*8);}S(
int*b){W(X-4);for(i=~0;X--;i=M^i/a)for(M=i%a^putchar(*b++)%a,j=9;--j;)M=M/2^(M&
1?0xedb88320:0);W(~i);}main(){int*x,h[17]={73,72,68,82,0,0,0,X,0,0,0,X,8,2},d[1
<<16]={73,68,65,84,120,218,1,l=X+X*X*3,l/a,~l,~l/a};W(0x89504e47);W(0xd0a1a0a);
X=l/X;for(x=d+11;l;l--)j+=M+=*x++=l%X?l%a:0,M%=i=65521,j%=i;*x++=j/a;*x++=j;*x
++=M/a;*x++=M;X=17;S(h);X=x-d;S(d);W(0);printf("IEND\256B`\202");}

492 :デフォルトの名無しさん:02/07/14 10:39
ってかコンパイルとおらん・・・。
「不正な初期化」

493 :448:02/07/14 13:28
>>492
gcc -ansi foo.c として通ったから問題ないと思った・・・
どこがだめだかわかります? h[] と d[] の初期化かなぁ

494 :448:02/07/14 13:47
>>492
通らないコンパイラは bcc32 かな。
gcc も -pedantic を付けたら通らなかった。
配列の初期化はコンパイル時に決定すべし、ということを忘れていたよ・・・欝

495 :デフォルトの名無しさん:02/07/14 13:56
------ ビルド開始 : プロジェクト : 491, 構成 : Debug Win32 ------

コンパイルしています...
main.cpp
f:\programs\C++.net\7行\part2\491\main.cpp(2) : warning C4508: 'W' : 関数に戻り値の型が指定されていません。戻り値を void 型と見なします。
f:\programs\C++.net\7行\part2\491\main.cpp(4) : warning C4508: 'S' : 関数に戻り値の型が指定されていません。戻り値を void 型と見なします。
f:\programs\C++.net\7行\part2\491\main.cpp(7) : warning C4244: '=' : '__w64 int' から 'unsigned int' に変換しました。データが失われているかもしれません。
リンクしています...

ビルドログは "file://f:\programs\C++.net\7行\part2\491\Debug\BuildLog.htm" に保存されました。
491 - エラー 0、警告 3



---------------------- 終了 ----------------------

ビルド : 1 正常終了、0 失敗、0 スキップ

496 :392:02/07/15 10:40
>>475 で受信したメッセージのSJISの本文を読めるようにする

rcvmail サーバ名 ユーザ名 パスワード メール番号 | tosjis

#include <stdio.h>
int x,y=0,f=0,c=-1,h,l;int T(int j){h=(j>>8)&255;l=j&255;l+=(h&1)?31:125;if(l>
126)l++;h=((h-33)>>1)+129;if(h>159)h+=64;return(h<<8)|l;}main(){while((x=getch\
ar())!=EOF)if(++c||x!=27)if(c!=1||!f||x!=40)if(c!=1||f||x!=36){if(c!=2||x!=66){
if(f)if(x<33||x>126)putchar(x);else if(!y)y=x;else{x=T(x|(y<<8));y=0;putchar(x
>>8);putchar(x&255);}else putchar(x);}else f^=1;c=-1;}}


497 :デフォルトの名無しさん:02/07/15 19:48
>>496
縮めてみました。

#include <stdio.h>
int x,y,f,c=-1;main(){while(~(x=getchar()))if(++c||x-27)if(c-1||!f||x-40)if(c-1
||f||x-36){if(c-2||x-66)f&&32<x&&x<127&&!(c=!y)?x+=y&1?31:125,x>126?x++:0,y=(y-
33)/2+129,putchar(y>159?y+64:y),y=0:0,c?y=x:putchar(x);else f^=1;c=-1;}}

498 :デフォルトの名無しさん:02/07/15 20:24
4行…(~~~ ゚ ∀~)~~~ ゚ メダマ ボーン

499 :デフォルトの名無しさん:02/07/15 20:28
>>498ワラタ。

( ~~~゚ ∀~)~~~ ゚ メダマ ボーン

みんなご一緒に… ( ~~~ ゚ ∀~)~~~ ゚ メダマ ボーン

意味不明なところで>>500getしてください。

500 :デフォルトの名無しさん:02/07/15 20:30
500!!
7行は永遠に不滅です!

501 :デフォルトの名無しさん:02/07/15 20:32
>>500
はげどー

502 :デフォルトの名無しさん:02/07/15 20:35
七行はPart2で終わりです

503 :デフォルトの名無しさん:02/07/15 20:46
Part2で終り?!・・・( ~~~゚ ∀~)~~~ ゚ メダマ ボーン

504 :デフォルトの名無しさん:02/07/15 20:48
7行どころか7行未満にする達人が増えたので、今度は
 7行以下プログラミング
になります。

505 :デフォルトの名無しさん:02/07/15 20:51
>>497 を >>475 の pop クライアントに融合させ、
直接 SJIS でメールを読むことができるようにならんかなぁ

お題のつもりなので age ます

506 :497:02/07/15 21:59
これ以上は難しそうなので、終わりにします。
メールの方は良くわからないので、 >>505 のお題は他の方、どうぞお願いします。

#include <stdio.h>
int x,y,f,c=-1;main(){while(~(x=getchar()))if(++c||x-27)if(c-1||!f||x-40)if(c-1
||f||x-36){c==2&&x==66?f^=1:(f&&32<x&&x<127&&!(c=!y)?x+=y&1?x>95?32:31:126,y=(y
-33)/2+129,putchar(y>159?y+64:y),y=0:0,c?y=x:putchar(x));c=-1;}}

507 :デフォルトの名無しさん:02/07/16 00:00
(~~~ ゚ ∀~)~~~ ゚ メダマ ボーン

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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

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