七行プログラミング part2
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG過去作品は>>2-5を参照。
■前スレ
http://pc.2ch.net/test/read.cgi/tech/984182993/
0002デフォルトの名無しさん
NGNGhttp://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
0003デフォルトの名無しさん
NGNGhttp://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
0004デフォルトの名無しさん
NGNGhttp://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
0005デフォルトの名無しさん
NGNGhttp://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
0006デフォルトの名無しさん
NGNG00071
NGNG前スレの909-911さんお疲れ様です。
欝だ…逝ってくる…
0008デフォルトの名無しさん
NGNG0009前スレ909-911
NGNG個人的には、BASICがすげえ好きなんだよなあ
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG砂嵐のやつみたいな。
0014宗男くさい?
NGNG初心者向けの!
0015デフォルトの名無しさん
NGNG0016S ◆Q14CxNhI
NGNG前スレ 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>
0017デフォルトの名無しさん
NGNGオセロは神
0018デフォルトの名無しさん
NGNG>>2-5
0019デフォルトの名無しさん
NGNGセミコロンのところで改行入れてなかったの?
だとしたら7行なんてインチキだよねぇ。
横幅一万バイトまで書けるエディタ使えば誰でも7行で組めるじゃん。。
0020デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGみんなすげーすげー逝ってるけど、自分で組んでみたら簡単に出来る奴も多い。
例えばラスタースクロールなんて無茶苦茶簡単だし、スライド辞書圧縮も楽勝。
四則演算もなんでこいつらが苦労してたのかわからないくらいあっさり達成できるぞ。
まあ、中には凄い奴もあるけどな。純粋にオセロ(6行)は度肝を抜かれたし、
砂嵐とかは別の意味で凄いと思ったが。
とにかく、盲目的にマンセー言う前に、本当に難しいかどうか自分で作ってみろ。
0023デフォルトの名無しさん
NGNGすいませんでした。。
ところで元ネタでアメリカの大学生が作ったと言う七行プログラムは
セミコロンで改行してたんでしょうか?誰か知りません。
0024デフォルトの名無しさん
NGNG大いなる勘違い野郎ですね。
前スレ読んで出直してきなさい
002523
NGNGなんだやっぱりただ横幅80バイトで7行に収まったてだけなんですね。
それはインチキですよ!w
きっちりインデントして、7行だったら僕は感動で涙を流すでしょうね。まじで。
まあそれでもすごいことは確かですけど。しかも高校生だし。
0026デフォルトの名無しさん
NGNG若さ溢れる発言おおいに結構。
君が言うのは「今風」のプログラミングスタイルだね。
はるか昔、「N88-Basic」の頃は1行に2つ以上の命令を書くことはザラだったのだよ。
感動する/しないは個人の感覚だから、君が感動しようがしまいが知ったことではないが。
0027デフォルトの名無しさん
NGNGしてないと思われ。
大体、セミコロンで改行って概念があるプログラミング言語で作られたかどうかも怪しい…
0028デフォルトの名無しさん
NGNG厨房だから仕方ないが、そういうことは自分で出来るようになってから
言ってくれ。読んでて恥ずかしい。
00291
NGNGよく見てみたらカッコとかもあるし…
鬱出し脳…
0030デフォルトの名無しさん
NGNG>>22はどうやら すごい・すごくない が判定できるようだから、
これができたらすごいという例を挙げてくれ。
0031デフォルトの名無しさん
NGNGBMP→JPEG
絶対無理だけどできたら紙
0032デフォルトの名無しさん
NGNGあんた22?
絶対不可能な例を出してどうするんだよ。
jpegの方はステートマシンで楽に書けるが、BMPは処理の本質ではない
ファイルフォーマットのハンドリングだけでかなりの文字数を要する。
固定長ででかいヘッダを抱えてるから処理を省略できないからな。
こういうとうてい無理な例を挙げるなら誰にでもできるだろ
7行でoffice作れって言うのと同じだ。
改めて言う、7行でできなさそうでできるぎりぎりの例を挙げてくれ。
0033デフォルトの名無しさん
NGNG20行くらいに収まりそうなのにしてくれ
0034デフォルトの名無しさん
NGNGどんな作品が7行プログラムに相応しいかは、旧スレでした方が良いのでは?
まだ90近く残っているし。
大したことの無い作品を認めないようになると、
もしかすると将来神となるかも知れない人(or 作品)の芽をつむことになる。
それに、傑作でなくとも、縮めのテクニックを磨く格好の材料ではないか!
0035デフォルトの名無しさん
NGNGそうそう、作品が対したことなくても、
その中で使ってる縮めのテクニックがおもしろいことも多々ある
0036デフォルトの名無しさん
NGNGアセンブラでの最適化に通じるところがあると思う。
最適化と違って、こっちは役に立たないが(藁
某社ゲームの、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の挙動がよく分からなかった…。
…、つか、なんでインクリメントにカッコつけてんだ俺…。
0038デフォルトの名無しさん
NGNGusing System.Drawing;
class a{
static void Main(string[] args){
Image b = Image.FromFile( args[0] );
b.Save( args[1], System.Drawing.Imaging.ImageFormat.Jpeg );
}
}
0039デフォルトの名無しさん
NGNGつまらねー
0040デフォルトの名無しさん
NGNGインポートとメインメソッドを書くだけで1行終わっちゃうぜ。
0041デフォルトの名無しさん
NGNGあん?
c/c++だと#includeで1行終わるが、なにか?
0042デフォルトの名無しさん
NGNGこのコードは7行に縮まらない?
0043デフォルトの名無しさん
NGNGそうだったんだー。なんせ全然、他の言語知らないもんでスマソw。
でも何かJavaって何かにつけて長文になっちゃうような気がするんだよね。
隣のなんとやらは良く見える
ってやつかなw
0044S ◆Q14CxNhI
NGNGimport 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;}}
004522
NGNGなんだか前スレで、いい作品が評価されず、いまいちの作品が
よく話題に挙がっているのが勿体なく感じてしまって。
それでも本当にいい作品はちゃんと評価されているんだけれどね。
ま、>>34に同意というわけで、前言撤回します。スマヌ。
ついでにネタを振ると、Windowsでテトリスを作ってくだされ>>特にトリッキーの1氏
0046前スレ904
NGNG#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;}
0047デフォルトの名無しさん
NGNG内容のないスケルトン(砂嵐)でさえぎりぎりだったんだから。
0048デフォルトの名無しさん
NGNGimport 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() していません。(ぉ
0051デフォルトの名無しさん
NGNG> java P xxx.pdt
Main method not public.
といわれました(報告)
0052デフォルトの名無しさん
NGNG宣言部分以外では、>>44 の方が大分短いやんけ
0053S ◆Q14CxNhI
NGNG>>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;}}
あらまっ。ボクのPC(Win98)では
JDK1.2.2_007 動作。
JDK1.3.1_01 動作。
JDK1.4.0 エラー。
となりました。
>52
何かをimportしなかったので、何かが増えたわけですね。
0055デフォルトの名無しさん
NGNG小手先よりもまずアルゴリズムの見直しからスタートするから
結構役に立つと思うよ。
組み込み系用にいくつかここからパクったアイデアあるし。
0056前スレ843
NGNGもう一度舞い降りれ!
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行は無理な気がする。
0058デフォルトの名無しさん
NGNG一念発起してVisualC++をアンインストールしちまったけどな
うらやましいだろ、みなさん
また来週に入れなきゃいけなさそうなんであれですけど
0059S ◆Q14CxNhI
NGNGバグバグでまだとても公開できないですが、近日中に必ずアプします。
アルゴリズムの最適化もほとんどしていない状態で11行なので、
最終的には7行になるのではないかと、期待しています。
0060デフォルトの名無しさん
NGNG見せてアゲ
0061S ◆Q14CxNhI
NGNGカーソルキーの左右で移動、スペースキーで回転。
ゲームバランス悪いし、もっと縮めてからとも思ったのですが、
明日はネットに接続できないので、今日アプしておきます。
左右移動と落下、ライン消去の部分をもっと削ることができるかと思います。
<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>
0062デフォルトの名無しさん
NGNG良くできているけれど、結構バグがあるね。
とりあえずテトリス棒が壁とかにめり込む事が頻繁にあるみたいです。
あと、回転するとめり込むこともありました。
0063デフォルトの名無しさん
NGNGライフゲームの時は良かったが、
テトリスみたいな真っ当なゲームだとキーの反応がどうしてもね……
でも結構いいんじゃない?ブロックをどのような構造で管理してる?
0064S ◆Q14CxNhI
NGNGどもです。
キー入力は、ループ中に2回判定させようかと思ってます。文字数増えるけど。
ブロックは中心と上と右を固定し、それ+1個で形を決定します。
テトリス棒だけは直線にするために、+2個を配列の最初に確保 [2,-1]し、
はみ出す上を無視するようにしました。
バグは・・・何とかします、しましょう、してください・・・
0065デフォルトの名無しさん
NGNG他の人がいっしょに縮めることが難しくなってる。
前スレのトリッキー1、60、あたりが良く一緒に縮めていたけれど、
あれは特殊な例だと思う。
(それとも彼らレベルになれば、縮んでいても普通に読めるのかも)
かといってみんなが縮める前のコードをウプしたら、
かなり鬱陶しいだろうし、難しい問題だよな。
このスレを七行になったもの専門にして、
別に七行作業スレッドとかを作ってそっちで議論するとか・・・
0066デフォルトの名無しさん
NGNG0067前スレ
NGNGperlのインデントツールは現在製作中ですが何か?
0068デフォルトの名無しさん
NGNG65とちょっとずれてないか?
0069perl16
NGNG訂正
s/前スレ/前スレ843/;
0070デフォルトの名無しさん
NGNGimport 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();}}
0071デフォルトの名無しさん
NGNG■インデント揃え
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行で作れたら面白いかもシレン。
0072perl16
NGNGインデントツール完成したら、作ってみるYO!(・∀・)
だけど、インデントツール作るのにも相当苦労してるから、
ノーマル→7行は難しそうだ。
関数なんかも考慮しないかんし・・・
Perlだけど。
0073デフォルトの名無しさん
NGNG関数なんか関係ない。
デリミタを識別して、その前後の空白文字を詰める。
他の場所は空白文字が2個以上続いたら1つに正規化するだけ。
0074デフォルトの名無しさん
NGNG#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);}}}
誰でもできるか…しかもちょっとズルしてるし
0075クレジャパン
NGNG20 'ぎゃはははははははは
30 a=100
40 print"ハァ(;´Д`)ハァ(;´Д`)ハァ(;´Д`)ハァ(;´Д`)"
50 if a<1 then goto 10000
60 a=a-1
70 goto 40
0076クレジャパン
NGNGint loop00=0; /* Cプログラマ死んでくれ */
for (loop00 = 0;loop00<10000;loop00++) {
printf("Cが出来るからってエバるなや\n");
}
return 0;
}
0077クレジャパン
NGNGdo 5 loop00=0,(10000-1)
write(*, 600 )
600 format('Cが出来るからってエバるなや')
5 continue
stop
end
0078クレジャパン
NGNG/* んでなそこに行って「C言語教えて下さい」って言ったら */
/* 「アナタには無理だ、私でも一人前になるのに12年もかかった」 */
/* って言われたんだよ */
/* Cプログラマーって種族は人の顔見ただけでそう言う事判断するのかよ */
/* アアン?何にか言って見ろゴルァ(゚Д゚メ) */
/* そんなに偉いのかよ?C使えたら */
0079デフォルトの名無しさん
NGNG有る程度の構文解析は必要かと……
0080デフォルトの名無しさん
NGNG短くしようという気迫に欠けすぎているので却下。
・void main?
・変数名が2文字以上??
・#include <Math.h>???
0081デフォルトの名無しさん
NGNGextern "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);}}}}
0082ヽ(´ー`)ノ
NGNGのヒッキー君、スルーされてます
0083ヽ(´ー`)ノ
NGNG上からn88、Cまたはジャバ、フォートランですかね?
ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ
ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ
0084デフォルトの名無しさん
NGNG0085ヽ(´ー`)ノ
NGNG0086デフォルトの名無しさん
NGNG0087ヽ(´ー`)ノ
NGNG0088デフォルトの名無しさん
NGNG0089ヽ(´ー`)ノ
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG0092ヽ(´ー`)ノ
NGNG0093ビッダーズ向上委員長
NGNGヤフーは、どこをどうとっても最悪。
ビッダーズが一番!!!↓
http://www.bidders.co.jp/bpu/1072049
皆、左上の会員登録をクリックして、
入会しよう。
0094デフォルトの名無しさん
NGNG辞書くらい(略
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%C1%AB%B0%DC&sw=2
0095デフォルトの名無しさん
NGNG最後にreturn 0;を忘れずに
0096デフォルトの名無しさん
NGNG0097S ◆Q14CxNhI
NGNGたとえばおいらは JavaScript をほとんど全くしらなかったが、
蛇にはまり、ライフゲームを改造し、ついには自分でスロットやテトリスを書けるようになった。
今だ JavaScript はよくわかっていないが、7行そのままで読解もできるようになった。
これは Java についても同じ。
0098S ◆Q14CxNhI
NGNG<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>
009974
NGNGすんません。自分でちょっと前に書いたコードを適当に縮めただけだったので…
あと?の意味がわかりません。何故なんでしょうか?
C歴1ヶ月未満の厨房です。スマソ
010074
NGNG#include <Math.h>
しないと動かないんですが…
100get。
0101デフォルトの名無しさん
NGNG7行プログラミングとは言っているが、やはり縮められるだけ縮めたいもの。
そのため、変数・関数名は最初に1文字にしておくのが、チヂマー(縮める人?)の基本。
7行達成したからといって、無駄(に見える)をなくすべし!
ということを >>80 は言おうとしているんだろうよ。
それから void main() と main 関数の返値に void を指定するのは間違いというのがCの基本(と言われている)。
もちろん縮める上で有効ならば、皆それ(Warning)くらいは無視するよ。
0102S ◆Q14CxNhI
NGNG<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>
0103デフォルトの名無しさん
NGNG010474
NGNG丁寧にありがとうございました。
出直してきます。
皆さんがんばってください。
0105perl16
NGNGとりあえず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
0106デフォルトの名無しさん
NGNG>>95は無視してないようだが(w
0107C_sugar
NGNG普通にJavaScriptでテトリスを作ろうとすると数百行になるからね。
0108SYN ◆mMJ0UaoA
NGNG// 言語は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);}
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG前スレ500前後で終わるべきだったかと。
range corderはオモロかったけどね。
0111デフォルトの名無しさん
NGNGSもSYNも某圧縮アルゴリズム掲示板の住人
前スレのRange corder作ったのも縮めたのもSだっか。
0112SYN ◆mMJ0UaoA
NGNGhttp://pc.2ch.net/test/read.cgi/tech/984182993/775
を見て何か描けたらいいなって思ったけど、ショボくてスマソ。
0114デフォルトの名無しさん
NGNG別に誰だろうとあんま関係ないよ。
まぁ、面白いかつまらないかはあるけどな。
0115S ◆Q14CxNhI
NGNGアルゴリズムか仕様を今以上に工夫しないと、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>
0116デフォルトの名無しさん
NGNGmath使わなくても、二乗したのを比較すればいいのでは??
>>115
読めないのだよ……
過去スレの354みたいに書いてくれると嬉しい……
http://pc.2ch.net/test/read.cgi/tech/984182993/354
0117S ◆Q14CxNhI
NGNGZ[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>
0118デフォルトの名無しさん
NGNGいやそれはsageてくれ
0121デフォルトの名無しさん
NGNG速度に違いは?
いや、短くするのが趣旨なのはわかってるんだけど
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNGウチで動かしたらq*q<mの方が平均0.2〜3秒遅くなったのだが。
…逝ってくる
VBなら間違いなく前者の方が早いな(関係無い)
0124S ◆Q14CxNhI
NGNG<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
ありがとうございます。
0126デフォルトの名無しさん
NGNGおながいします
0127デフォルトの名無しさん
NGNG前スレに6行オセロ(コンピュータ対戦可能)という神の作品はあったぞ。
0129perl16
NGNGあっ、考えてない。
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
0130perl16
NGNG0131775
NGNG#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]);}}
それにしてもすごいスレだ・・。
0132デフォルトの名無しさん
NGNG6行オセロは必見だぞ。
あの短さ、バグなし、コンピュータ対戦、あれは間違いなく芸術
0134デフォルトの名無しさん
NGNGすげーbmpを吐いたぞ
0135前スレ853
NGNGファイルの入出力方法が冗長に感じたんで
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
でもコレ、ハッシュとかまで改行しちゃうよね(汗)。
トークナイザ作って括弧の対応調べて地道に改行しないと綺麗にはならないと思う。
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNGアナログ回線切って、オフラインでコーヒーブレークしてから、CPU頭に載せて自冊・・・
0138S ◆Q14CxNhI
NGNG>>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>
0139S ◆Q14CxNhI
NGNG<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>
0140デフォルトの名無しさん
NGNG>>117はスペース回転だったけど?
>>117ベースで機能を追加すると死んでしまった・・・
所詮折れのスキルはこんなものなのか?と、悔しいから奮闘中。
Sタン、更新ハヤイヨー(スゴイナ-。
7行の壁を破りたい・・・
0141デフォルトの名無しさん
NGNG本題じゃないけどこのテトリス、ゲームとしてシビアすぎない?。
0142デフォルトの名無しさん
NGNGちょっと、ね。キーが鈍いし、ブロックは早いし。
まぁ、自分で調節すればいいんだけど。
0143S ◆Q14CxNhI
NGNGわかりやすさを優先するために >>117 は少し以前のものをベースに、その時点での最新版と融合させました。
>>141
1段落下に対して、横移動あるいは回転のどちらか1つしかできませんので。
2〜3回操作可能にすると、バランスが良くなるでしょう。
落下を任意(カーソル下)、得点に応じて速くなるとすることもできるでしょう。
ただ、どちらにしろ、文字数が・・・
0144デフォルトの名無しさん
NGNGdめおえj、JavaScriptやったことないんだよね。
そうか、ブロックのデータはそうやって考えると小さくなるのか。
パパ、がんばっちゃうぞー
0145デフォルトの名無しさん
NGNGとりあえず、長くなってもいいからゲームとして成り立つソースを
是非アップして貰いたいと思いますがどうでしょう。
自分で作ってもいないのに生意気ですか?逝ってきます。
0146S ◆Q14CxNhI
NGNG>>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>
0148デフォルトの名無しさん
NGNGゲームとして見たら……うーん。
やっぱJSだからきついな
0149デフォルトの名無しさん
NGNGそうか?おれには簡単すぎていつまでも終わらない
ゲーム性はこれくらいでいい
これで7行したら紙
0150デフォルトの名無しさん
NGNG先人達に比べると、完成度をもう少し上げて欲しいと思わないか?
前スレのマインスイーパとかの完成度と比べてしまうと、どうも……
でもとりあえず7行にするのはそれでいいかもしれないけど、
S氏には期待しているので、もう少し頑張って欲しい、と無責任なことを言うテスト
0151デフォルトの名無しさん
NGNG先人達と比べるのは辛すぎるのではない?
Sさんもかなり頑張って縮めてると思うし、なによりこのやる気はいいと思う。
しかし、前スレの初期にいた人、来ないね。
0152S ◆Q14CxNhI
NGNG<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>
0153デフォルトの名無しさん
NGNGお疲れ。
0154S ◆Q14CxNhI
NGNG<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>
眠い。
迷路って以外と簡単だったのね。
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;}}
0156デフォルトの名無しさん
NGNG(´ー`)。o○(Java知らないから遊べねーや)
金ないから家ではBCCでコンパイルできるつしか試せない罠
0157デフォルトの名無しさん
NGNGJavaコンパイラは無料じゃー。
0158デフォルトの名無しさん
NGNGええっそうなの?早速あさってみよ。
通信回線遅いうえに従量制なんで重いのは落とせない罠。
#初心者丸出しな自分に鬱
0159デフォルトの名無しさん
NGNGマチヒチっ何だよ。javaだよ。なんかカナロックか何かに取り付かれていたようだ。。。(w
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGつーか、おれんちは Unix系 しかないから、むしろ Windows 環境が無い。
0162perl16
NGNGperlしかやってないもんで。
perlでゲームは面白くない。CUI中心だから。
>>135
>トークナイザ作って括弧の対応調べて地道に改行
そうですね。一時的にハッシュとかに対応できるようにしても、
新たな問題が出てきますからね。
七行で完璧に近いインデントツール作るのは難しそうだ。
>>Java&JSプログラマーの皆さん
Java&JSのインデントツールは作らないんですか?
0163デフォルトの名無しさん
NGNGインデントツールという発想がいまいち言語にあわなくて…。
Cやマチヒチの場合、縮めた後ではインデントを揃えても見やすくならないでしょ?
0164デフォルトの名無しさん
NGNG割り切って1台くらいWin環境を入れたら?
gcc for Win32だとWindowsプログラムの開発も出来るよ。
0165Javaさん
NGNGいつの間にやら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鯖にバグあったから手直し、、、。
こうやって休日がつぶれていくわけです。鬱
0166デフォルトの名無しさん
NGNG急スレに書き込んでしまったのですが、写します。
ーーーーーーーーーーーーー
プラパズルNo5とかどうでしょうか。
全組み合わせを探し出し、できれば表示する。
ルール
正方形が5つ集まってできたコマが
12種類(5つの正方形を組み合わせて出きる全通りです)あります。
これを6*10マスに収まるように並べる並べ方をしらべます。
ちなみに組み合わせは全部で2339通りあります。
もちろんコードが短ければ短いほど、全通りの検出が速ければ速いほど イイ! ってかんじで。
ーーーーーーー
全組み合わせ合わせの取得まで、私がテキトーに作った(全然7行じゃないですよ)奴で3日、まじめに作り直して5分かかりました。
結構真剣にやって10秒ぐらいまで縮みました。
7行でも3日ぐらいの奴ならできそうに思うんですが、ここの方ならスピードも・・・
なお、マシンはPenIII500でした。
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNGとりあえず自分で縮められるところまで縮めてくれ。
0170デフォルトの名無しさん
NGNGそういう問題ではなく、たとえば
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);
にしかならないぞ、という事ではないかな?
これで読みやすくなるわけでは無いよね。無いよりはマシだけど
// 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 じゃないといけないらしいぞ。
0172S ◆Q14CxNhI
NGNG<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>
0174Javaさん
NGNGとうとう5行ですか。
ロジックの変更お疲れ様です。
ここまでくると、残りの2行で何か出来そうですね。
>M は public じゃないといけないし、
>j2sdk1.4.0 なら main も public じゃないといけないらしいぞ。
Thanks.
でも動くならいいやというノリで、削ってしまう今日この頃なのでアリマス。鬱氏
0176S ◆Q14CxNhI
NGNG<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>
0177デフォルトの名無しさん
NGNGネタ提供だけのつもりだったんですが・・・
ソースはなくしちゃって。また作っても良いんですが、最近忙しくて・・・
0178perl16
NGNGなんか僕、書き込むたびにつっこまれているような…。
0179デフォルトの名無しさん
NGNG0180厨々房某
NGNGネットで対戦できるゲーム作れますかね。
0181デフォルトの名無しさん
NGNGまず言語は何がいいか?詳しくないからわからないけど、
Cじゃ厳しそうだな。
0182デフォルトの名無しさん
NGNGじゃんけんぐらいならすぐできるぞ。
0183S ◆Q14CxNhI
NGNG<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>
0184S ◆Q14CxNhI
NGNG1日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>
0186デフォルトの名無しさん
NGNGぬをを…一文字でも貢献できればと思ったが、全然わかんねぇYO!
0187デフォルトの名無しさん
NGNG前スレ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();}}
0188S ◆Q14CxNhI
NGNG大改造して数文字減らせるかもと作業していますが、今日はパスです
0189デフォルトの名無しさん
NGNG難しい・・・このままじゃゲームとして面白くないし(;´Д`)
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;}}
0190S ◆Q14CxNhI
NGNG<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>
0191デフォルトの名無しさん
NGNGimport 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){}}};}}
0192デフォルトの名無しさん
NGNGソースを読んだけど、テトリスだとは理解できなかた ...(゚Д゚)逝ってきます
0193デフォルトの名無しさん
NGNGアスキーアートを 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
0194デフォルトの名無しさん
NGNGすごい! Java の強みを生かした良いプログラムですな。
0195デフォルトの名無しさん
NGNGスライド辞書圧縮が楽勝だというのなら、もっと短くしてみれ
0196デフォルトの名無しさん
NGNGimport 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()は要らないかも。
コンソールの文字の縦横比を考慮した方がいいのかも。かも。
0197S ◆Q14CxNhI
NGNG<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>
0198デフォルトの名無しさん
NGNG目立ちたいのはわかるが、作業中なのにぽこぽこageんでください。
ageられてるから見てみると、作業途中のテトリスばかりでうざいです。
0199デフォルトの名無しさん
NGNGテトリス(以外も含めて)の縮め過程を見るのが最近ここのスレでの楽しみ。
それとも >>198 よ。作業用スレ立てるか?その方がうざい。
0201デフォルトの名無しさん
NGNGはぁ?
何で作業スレ立てるって話になるんだよ
別に作業課程を書き込むのは悪くないけど、いちいちageるなってことだ。
大幅に構造を変更したとかならともかく、ちまちま削るたびにageられても迷惑だ。
だいたい、ageられなきゃレスを確認できない>>199の環境に問題がある。
0202デフォルトの名無しさん
NGNGclass 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
みたいな感じで実行。例外吐いて終了。
なんというか、これぞ糞コードの極み。みたいな。
0203デフォルトの名無しさん
NGNG作った物を見てくれ……というS氏の気持ちもわからんではない。
0204デフォルトの名無しさん
NGNGe0fa08207a182785e861fe186110410410404104185e862f248a182082083f873b61861871a658\
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生成に比べると見劣りするナァ(;´Д`)
0205デフォルトの名無しさん
NGNGプログラミング過程はどんどんカキコしていいけど、
完成品じゃないならメール欄にsageと書くべし。
0206193
NGNGnew Thread(new Runnable(){ ...
の new Runnable っていらんのじゃないの?
なくなってもいいから,もっと縮むかも.
>>202
縮むもんだねぇ.
ちゃんとインデントして見たソース.
私には書けない...
喜んでいいのやら哀しんでいいのやら...
0207perl16
NGNG僕はJAVAプログラミングできませんが、
ピンポンを発展させて7行でブロック崩しができたらすごいと思う。
Perlでなんかいいネタないかなー。
0208187
NGNGimport 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();}}
こんなもんか
0210デフォルトの名無しさん
NGNGガンバレSさん。sageだけど応援してるよ
いつかロシア人もビックリの7行テトリスを夢見て
0211デフォルトの名無しさん
NGNG誰もレスしてないのに何度もアップしたのは確かにS氏のチョンボだけど、
テトリス自体は応援してるので、是非いつか遊びやすくて7行のテトリスを
ずずんとアップしてください
0212S ◆Q14CxNhI
NGNG叱咤激励いろいろいただきました、みなさんのレスに感謝いたします。
遊び方:カーソル左右で移動、リターンキーで回転
プレイ環境:おそらく 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 て良かったですよね?
0213デフォルトの名無しさん
NGNG下キー押すと右に行くのは仕様ですか?
0214デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNGおめでとう
綺麗にまとまったもんだねー、すごい。
これならageても文句はなかろう。
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGはあ?うざいのは確かだったが、誰も嫌ってなどはいない
少なくともテトリスは賞賛に値する(紙かどうかは別として)
今後は正しく sage てね、で終わりでいいじゃないか
本人も反省しているよう出し
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNG感動すますた
0222デフォルトの名無しさん
NGNGここで自分で「これみろや!」って出せないのが鬱
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNGimport 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>
矢印キーで左右に移動します、だんだんスピードが上がっていきます。
0225デフォルトの名無しさん
NGNGテトリスの解説は >>117 にすでにあります
0226223
NGNGもしかして俺はバカ? 無限にウィンドウを開くJS作ってOSごとしんできます
0227デフォルトの名無しさん
NGNG「ソースを上げるスレッド」 @ゲ制技板
114前後しか今のところ言ってないみたいだし、
あまり変化がないならここに張ったらどうよ?
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNGcは早くも脱落
0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG10 list
ネタはこの程度にしておこう。
誰か作品出してくれっ
0235デフォルトの名無しさん
NGNG0236VB厨
NGNG0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGバッチはダメ?
0239ロボ鉄 ◆MGTy6iYI
NGNGただのカウンタをちょっと縮めただけなのに。
恥ずかしいからsage。
誰も見ないでくれ
0240デフォルトの名無しさん
NGNG0241ロボ鉄 ◆MGTy6iYI
NGNG0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG逝け
0244デフォルトの名無しさん
NGNGこのスレももう終わりだな。
良スレから駄スレへ
悲しいけど
∧∧ ミ _ ドスッ
( ,,)┌─┴┴─┐
/' つ 糸冬 了 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
0245デフォルトの名無しさん
NGNG0246
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNGfunc(a, b)
{ return a + b; }
こうやって省略できるんだね。
これも多少は縮めるのに役立つんじゃないかな。
0251デフォルトの名無しさん
NGNGやっぱり11行より短くなりそうもなかったので破棄したけど。
0252デフォルトの名無しさん
NGNGみんな普通にやってるみたいだけど?オセロ参照
0253デフォルトの名無しさん
NGNG引数まで省略してるのは見つからないけど。
記事番号キボンヌ
0254デフォルトの名無しさん
NGNG引数省略はC++で許されたっけ?
gccではエラー出てたような?うろ覚えスマソ
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNG始めから縮めテクが使われているし、そのまま自分で解決してしまうからねぇ・・・
# それはそれで、見ていて楽しかったけれど。
あまり縮めるのが得意でない人が、10数行でネタを投稿するのが良いかも。
# スネークとかライフゲームとか
0258デフォルトの名無しさん
NGNG初心者の出すネタは上級者には面白くないという罠。
上級者が考えると、ホントに出来るかどうか微妙だから面白い。
テトリスはそういう意味では、ネタとしては、ナイスだったね。
0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNGコマンドラインから
*** <smtpサーバ> <port> <送信先アドレス> <subject> <内容> <添付ファイル>
みたいな感じで送れるやつ。
0262デフォルトの名無しさん
NGNGBase64 encodingだけで2~3行食いそう
0263デフォルトの名無しさん
NGNG4 rem 使用方法:使えません(w
10 print "ここは七行でプログラムを作る・鑑賞するスレです。"
20 print "マターリが原則です。"
30 print "ネタ提供時/七行達成時いがいはsage推奨"
40 print:print "ソースUP時は、必ず"
50 pirnt "言語"
60 print "使用方法"
70 print "何を作ったのか"
80 print"などを書きましょう。"
90 goto 20
0264デフォルトの名無しさん
NGNGテトリスは絶対不可能だと思ってたからね。驚いたよ
オセロやテトリス、倉庫番など、
元があるゲーム類ってのはネタとして興味が大きそうだね
0265デフォルトの名無しさん
NGNG削除とかしか出来ない超低機能な奴。
0266デフォルトの名無しさん
NGNG昔 MSX で作ったことがあるよ。BASIC 15行くらいで、名前変更と削除のみができるの。
超低機能ならば、できるでしょうね。
あとは、7行でどれだけの機能を詰め込めるか・・・
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG0.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手だったかな。
0271デフォルトの名無しさん
NGNG0272age
NGNG0273デフォルトの名無しさん
NGNG#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);}
0275デフォルトの名無しさん
NGNG#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);}
俺にはコレが限界。
0276デフォルトの名無しさん
NGNG動かなかったらごめん。
プロバイダのメール鯖の認証の関係で、
動作確認できなくて・・・
0277デフォルトの名無しさん
NGNGつーか、実行できんやろ。
if(c!=2)return; ってなんや?
0278273
NGNG基になるソースコードが無いと
誰も手をつけてくれなさそうだったからさ・・・
俺、ネットプログラム初心者です。ごめん。
0279273
NGNG#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);}
一応送信できるはず。
ウザくてごめんね
0280デフォルトの名無しさん
NGNGおー、送信できました。実験する場合はローカルにサーバを立てるのがよろしいかと。
ただプログラムの無駄は多そうですので、十分7行になるのでは?
0281デフォルトの名無しさん
NGNG#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);}
0282デフォルトの名無しさん
NGNG添付ファイルは難しいが(uuencode形式ならOK)、telnet コマンドを使えばいいのでは???
つーことは、Unix系なら perl かシェルスクリプトで、Windows なら BAT でもできる?
0283281
NGNG#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);}
0284デフォルトの名無しさん
NGNG腹が立って作ったプログラムなのに、ツッコマレても謙虚な姿。感心アゲ。
0285tara
NGNGコンパイルすると警告が出ますが、無視してください。
#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 [email protected] [email protected] subject data
多分これで動くはず、です。
なお、引数の区切り文字がスペースであるため、メール本文その他に
スペースを入れることができません。
0286tara
NGNGスペースは入れられます。
program 127.0.0.1 7gyou.com [email protected] [email protected] subject "This is test."
と、スペースを含む内容を「"」で囲んでやればOKです。
0287273
NGNG>>282 それじゃ面白くないじゃん
>>284 ありがとう
>>285 7行達成おめでとう
次はTelnetかFTPクライアント・・・
ネタさえあればこのスレもPatt 1.並なんだけどな
0288261
NGNG採用してくれてありがとうございましたー!
0289XXXXXXX
NGNG2> <head>
3> <title>7行プログラム</title>
4> </head>
5> <body bgcolor="black">ここに本文を書きます
6> </body>
7> </html>
0290デフォルトの名無しさん
NGNGコネクションが2つ必要な時点でヤヴァイ
0291デフォルトの名無しさん
NGNGFTP、Javaなら行けるかな
0292デフォルトの名無しさん
NGNGstdio.h をインクルードしないと printf,sprintf 使えなくないですか?
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNGBASICじゃないの?大文字だし。
0297デフォルトの名無しさん
NGNGlispはカッコがあるから
0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNGRuby厨ってこうやって叫ぶだけで特に害がないから良いよね。
結構独自路線だからアイデンティティはしっかりしてるのか。
それに比べて多方面にコンプレックスのあるVB厨とかは痛いな・・・。
0300デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG謝ってくれる人は心優しい人だね。
バカとは自分がバカと言うことに気が付いていないからバカなんだ。
>>301さんは賢人のようです。
0303デフォルトの名無しさん
NGNGMSXべーしっくがいいと思う。スペースすら省略可能だし。
PRINTは ? で書けるし。(LIST取ったら伸張されちゃうけど)
0304デフォルトの名無しさん
NGNGN88でいいじゃん。?も同様だし。
0305前775
NGNG昔は文章よりプログラムの方が多いくらいのスレだったのに・・。
0306前スレ853
NGNG画面密度が上がる。
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}
0307デフォルトの名無しさん
NGNG思わずishにかけたくなるねw
0308デフォルトの名無しさん
NGNGホントだ。なんかのエンコードかけてあるみたい。
このままメモ帳に書いて拡張子を.comにしたら動きそうだ
0309デフォルトの名無しさん
NGNG3行目 [--$g]
4行目 ('m')
Perlを知らない俺から見ると、この辺はもはや顔文字だな。
0310デフォルトの名無しさん
NGNGよろしく。
0311tara
NGNGエラーチェック皆無です。引数の数すらチェックしてません。
コンパイルすると警告が出ますが、無視してやってください。
#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
多分これで動くはず、です。
0312tara
NGNG#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で動作検証しました。
これでも動くのか……。
0313前スレ853
NGNG上げる方向で修正。
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--}
延々バグ取りしてるから大分枯れてる筈。
0314前スレ843
NGNGそろそろしつこいと思いますた。
0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG0317前スレ853
NGNGsub 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
0318デフォルトの名無しさん
NGNGつーか勉強になるのでどんどん短くしてぽ。
できたらどこかにコメント付でうぷしてほしいなぁ。
0319デフォルトの名無しさん
NGNGそうすると、ここのスレでは「また短くなったので見てね」と書いておいて、
公開ページの方で、短いソース(とコメントつきソース)を見て貰う事が出来るのに。
でもそうすると、新しい人が入りづらいか。某メガデモスレみたいな感じで。
0320デフォルトの名無しさん
NGNG0321前スレ853
NGNG準備しないと不便だし、そこまでする気になる人がいないだけかと。
自分のだけなら適当なアカ取って普通にメンテすりゃ済むから
楽だけど。つか俺はそうしてる。 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<>
あっさり七行達成してもた。でも数字やアルファベットを変換してない
から、フィルタとしては不完全。萎え。
0322デフォルトの名無しさん
NGNG最初からここにうぷしたほうがいいと思うけど?
どうせ7行程度なんだしさっさとスクロールすれば いいんじゃないの?
0323デフォルトの名無しさん
NGNG説明のために長いプログラムをうぷするときとか、
そういったスレは欲しいかもね。
こっちに載せるときは、ネタ提供か、完成か、バグ取りか、大幅改変か・・・
0324前スレ843
NGNGネタ提供。
??行→7行へのunindent。
0325デフォルトの名無しさん
NGNGここは神が集まるスレだな
0326名無しさん@Vim%Chalice
NGNGhttp://www4.airnet.ne.jp/isobe/game/kouryaku/hintabo.html
0327前スレ853
NGNGとりあえずたたき台を作ってみたよ。まだまだ機能的に不完全だけど。
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
0328デフォルトの名無しさん
NGNG0329前スレ843
NGNG僕には無理です。
がんばって縮めてください。
応援してます(w
0330775
NGNGmain(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ファイル生成は構造わからんで脱落。
0331ネタ出
NGNGモナーのダンレボ きぼんぬ!
15パズル きぼんぬ!
もぐらたたき きぼんぬ!
Hello world きぼんぬ!
えっと・・・えっと・・・・(ワラ
0332デフォルトの名無しさん
NGNG#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"
$:の後にコマンドです。
0333デフォルトの名無しさん
NGNGうーん……、手元にPC-UNIX系の環境が無いから、検証できないまま口出して
申し訳ないけれど、これだとファイルのやり取りはできないんじゃ?
FTPサーバー接続してコマンド打つのが限界のような……。
0334332
NGNGtelnetでport21につないでるようなカンジだから、
たいした事は出来ない&バッファもクリアしてないからゴミが残ると。。。
全然使えないね(藁
0335前スレ843
NGNGPerlには無理だな。
やろうと思えばできるけど。(漏れには無理)
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNG縮む過程で加えられたテクも見たい
CVSサーバ付けてくれれば文句無いけど
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG*nix厨氏とか、S氏とかも来てほしー。
0343デフォルトの名無しさん
NGNG7行、7行、7行、7行、7行、ハァハァ
7行、7行、7行、7行、7行、ゼェゼェ。
みんな来てよー(w
0344猛者募集
NGNG0345デフォルトの名無しさん
NGNG無理っぽいな。消滅判定と落下だけでかなり食うと思う。
連鎖中は同時に複数色消えることもあるし・・・
なんつって無理無理いっててもしょうがないんで
叩き台を作ってみよっかな
0346デフォルトの名無しさん
NGNGS氏ですか?
0347デフォルトの名無しさん
NGNGいや、通りすがりのものです。
昔X68で作ったもんで
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGねたをくれなんていってる時点で間違ってたんだ…
0351デフォルトの名無しさん
NGNG感動した
ソースを見て更に感動した
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG!!!
マジかよおい!
感動した…マジ感動した!
0354デフォルトの名無しさん
NGNGスゲー!!
なるほどソース見て感動!!
0355デフォルトの名無しさん
NGNGこれは凄い!
0356デフォルトの名無しさん
NGNGな、なぬ・・・・
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNGってのがうざい
0359デフォルトの名無しさん
NGNG0360デフォルトの名無しさん
NGNG#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;
}
0361デフォルトの名無しさん
NGNG言ってはならないことかもしれないけど
あなたはここにくる前にしなければならないことがあるような気がします
0362デフォルトの名無しさん
NGNGスクロールバーが動いたので部落らかと思った。
スゲー。感動すた。
0363デフォルトの名無しさん
NGNG+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
> ねたをくれなんていってる時点で間違ってたんだ…
より。(改行をマジで適当に追加)。
すげーな。
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNGsprintfなら
http://pc.2ch.net/test/read.cgi/tech/984182993/428
0366デフォルトの名無しさん
NGNG一番右下がゴール。
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
0367デフォルトの名無しさん
NGNG0368366
NGNG0369デフォルトの名無しさん
NGNGいや、縮める隙を探してるさいちゅう。
HSPだって立派じゃないけど言語だしね
0371デフォルトの名無しさん
NGNG(゚д゚)すげー
0372デフォルトの名無しさん
NGNG>>366,>>368ゴメソ、HSPだったのね、よく考えずにレスしてた(w
勉強中の折れは「レベルが低くてHSPを知らない」のであった。
ダウソしてみよかな?
0373moge
NGNG0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNGint APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
ExitWindowsEx(EWX_SHUTDOWN,0);return 0;}
まぁ激しくガイシュツだろうな・・・。
0376デフォルトの名無しさん
NGNGJavaでキボンヌ。
0377デフォルトの名無しさん
NGNGそもそも汎用サーバなどという発想自体が厨
仕様を定義してみせい
0378デフォルトの名無しさん
NGNGどのクライアントから言われたことも、すべてのクライアントに返す。
という意味でした。
0379デフォルトの名無しさん
NGNG絶対どこかでデータの動機ミスが怒りそうな予感。
0380デフォルトの名無しさん
NGNGそれはむしろチャットサーバだね。そのくらいならできそうかな。
本気でネットゲの鯖やるならオブジェクトの同期も考えるから難しい。
0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG行数削るのだるいんでそのまんま。
一応砂嵐。改行なくせば一行いくかな?
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
処理的にはパレットモードにして、
パレットを白黒にランダムで変更てのが楽なんだけどね。
つーか、そっちも作ってみるかな。
0383デフォルトの名無しさん
NGNG7行にまとめよ
0384382
NGNGスマソ、そういうわけでまとめてみたら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の部分で、画面を何割黒で塗りつぶすかで決まるから。
0385デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNG#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;}
一応、限定ソートなり。
0387デフォルトの名無しさん
NGNG#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);}
0388385
NGNG(゚д゚)ハヤー
で、自分でも作ってみた。動作未確認・ブロックサイズ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;}
0389385
NGNG出なおしてきます。
0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNGアナログ時計
#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);}
0392デフォルトの名無しさん
NGNGmath.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);}
0393デフォルトの名無しさん
NGNG「 #include
は数えないのはどうよ?」
って議論になったことがあった(はず)なのでキニスンナ!
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNGおいおい、ソリャだめだって話になったろ
0396392
NGNGオーケイ、分かった
#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);}}
先人の遺産(砂嵐)を参考にしてみた
でも、漏れには限界・・・
0397392
NGNG#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
誰か、助けて
0399tara
NGNG#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);}}
0400デフォルトの名無しさん
NGNGいや、「打つ」とかかいてあったんで。
0402392
NGNGtypedef 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でも七行達成するのを目標に!
0404デフォルトの名無しさん
NGNG誰か確認おながいします。
#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);}
0406392
NGNGtypedef 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の配列に変更
0408392
NGNGごめん、見てなかった
残念ながら、
error LNK2001: 外部シンボル "_sinf" は未解決です
fatal error LNK1120: 外部参照 1 が未解決です。
と言われたよ。
0409デフォルトの名無しさん
NGNG0410392
NGNGあ、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);}}
これで最後。
0412tara
NGNGお、VC++6.0でも動きましたか。
.NETの方しかインストールしてなかったもので、確認できなかったんです。
ありがとうございました。
0415tara
NGNG遅ればせながら、おめでとうございます。
で、次ですか……。
POP3のクライアントってありましたっけ。
0416392
NGNGPOP3クライアントは、
無かったと思いますよ。
SMTPは・・・、参加なさってたんですね(w
とりあえず、Webアプリの経験ないんで、
猫で修行しに逝ってきます
http://www.kumei.ne.jp/c_lang/sdk3/sdk_230.htm
0417デフォルトの名無しさん
NGNGメッセージ取ってきてもmimeとかでエンコーディングされてるし
0418デフォルトの名無しさん
NGNGデコードすればいいじゃん。
できない?
nkf32.dllを使いなさい。
04194k demo
NGNG4K+ポリゴン+音源+音楽
ftp://ftp.jp.scene.org/pub/scene/parties/2000/dialogos00/in4k/stoerfall_ost_final.zip
0420おまえら!
NGNG7行じゃなくてコンパイル後のサイズで勝敗つけろや!
0421デフォルトの名無しさん
NGNG>includeしているのは何行あるんだ!
その手があったか!w
0422デフォルトの名無しさん
NGNGそれでいいやろ(w
0423デフォルトの名無しさん
NGNG静的リンクする上に、標準のライブラリもサイズに含めるということかな?
でも、ライブラリなんて(サイズも含めて)システム依存だから、単純に比べられないよね
アセンブラだったら、ソースコードの方がサイズが大きいってことか…
0424デフォルトの名無しさん
NGNGPerl や JavaScript はどうすればいいんだ?
0425おまえら!
NGNG0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNGPerl はコンパイルできますが、JavaScript は……
0428デフォルトの名無しさん
NGNG議論をするのは構わないけど、ageないで。
0429デフォルトの名無しさん
NGNG0430おまえら!part2
NGNGあほか?
ワシがいうてんのは、しらん人間の作ったソースを
組み込んでて、
「すごいねチミ!ハァハァ」
「おたくのやつのほうがスゴイッスよアニキィ!ハァハァ」
やってられん!
0431デフォルトの名無しさん
NGNGそれって GPL ?
0432デフォルトの名無しさん
NGNGオブジェクトならいいのか ?
0433おまえら!part2
NGNGCの標準関数なんぞ使ったこと無い。
人のライブラリなんぞ信用できるか!
main以外は全部自作だ。
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNGWindowsのプログラムをどう書いてるのか、興味が・・・
0437デフォルトの名無しさん
NGNGもちろん Java でもそれを実行なさっている、と
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG使っている漏れは、どうすればいいのでしょう
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNG7行でJPEG、かなり厳しいなぁ・・・
0443デフォルトの名無しさん
NGNG7行で DCT あるいは DFT だけならいけるかもしれないよ。
つーか、普通に書いてもメインの部分はそれくらいか…
0444デフォルトの名無しさん
NGNG7行無圧縮PNGなら出来るかもな。
でも、CRCの計算がきついかもしれない。
0445デフォルトの名無しさん
NGNGとりあえず CRC の部分から書き始めてみる?
そこから、PNG のように大きな枠組みに持っていくのは大変かもしれないけど、
任意の CRC を計算するまでならできそうだし、それはそれで功有りかと。
0446デフォルトの名無しさん
NGNGいいですねぇ。最終的に7行の*.cファイル群を幾つかリンクするとJPEGエンコーダ/
デコーダ等々になる、というのは面白いかも。
0447445
NGNG多分あってると思いますが、確認お願いします。
#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;
}
0448445
NGNG#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;
}
0449デフォルトの名無しさん
NGNGhttp://www01.u-page.so-net.ne.jp/xb3/y-koujin/png_fmt/jp/Tr/png.html
04511
NGNG#include <stdio.h>
int main(void)
{
while(1)
printf("\t\b\b");
}
0452デフォルトの名無しさん
NGNGXPクラッシャーじゃん
0453デフォルトの名無しさん
NGNG確か 2000 でも落ちるような。
9x, Me は大丈夫。
0454デフォルトの名無しさん
NGNGNT系アウトの罠>>printf("\t\b\b");
0455デフォルトの名無しさん
NGNGプログラムなんてガイシュツですか?
0456デフォルトの名無しさん
NGNG作ればいいかと。{}付けがよっぽど変なバカのコード以外は簡単かと。
0457デフォルトの名無しさん
NGNGプリティプリンタでぐぐればいっぱいあるよ。
0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNGvisual stadioでもできるよ(たぶん
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNGx++)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);}}}
0463デフォルトの名無しさん
NGNGx と v を間違えたり、y+ になったり、ちょっとしょぼーん(´・ω・`)
もっと短くできそうだ
次は、PNG と JPG のファイルフォーマット変換部分か…
0464デフォルトの名無しさん
NGNGもう少し「寄せ集めること」の意義を考えてみないか?
たとえばSUSIEみたいに、メインルーチンとローダー・変換部分をわけて、
それぞれが7行プログラムで作成されているというように。
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNG%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];}
0468463
NGNGdouble 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];}
0469デフォルトの名無しさん
NGNG過去ログ読んでね。そう言うコンセプトでやってる。
0471デフォルトの名無しさん
NGNG0472みぃとぼぉる
NGNGProgram 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のメモリ依存。
0473みぃとぼぉる
NGNGProgram 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を使用すること。
でわ。
0474775
NGNG元画像を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);}
0475392
NGNGrcvmail サーバ名 ユーザ名 パスワード メール番号
#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();}
0476463
NGNG上下反転はともかく、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);}
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNG早っ (゚Д゚)
0479デフォルトの名無しさん
NGNGキタ━━━(^∀゚)━━━!!
0480デフォルトの名無しさん
NGNGCRCは>>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);}
0481デフォルトの名無しさん
NGNG0482480
NGNG#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);}
0483448
NGNG縮めてみました。
#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);}
0484デフォルトの名無しさん
NGNGもうわからん煤i´Д`;)
0485484
NGNG0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNGモナの絵が出てくるかと思ったけど、そうじゃないところが2ちゃんらしいというか。
0488デフォルトの名無しさん
NGNG0489484
NGNG標準出力にしてもよいなら、後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);}
0490デフォルトの名無しさん
NGNG0491448
NGNG#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");}
0492デフォルトの名無しさん
NGNG「不正な初期化」
0494448
NGNG通らないコンパイラは bcc32 かな。
gcc も -pedantic を付けたら通らなかった。
配列の初期化はコンパイル時に決定すべし、ということを忘れていたよ・・・欝
0495デフォルトの名無しさん
NGNGコンパイルしています...
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 スキップ
0496392
NGNGrcvmail サーバ名 ユーザ名 パスワード メール番号 | 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;}}
0497デフォルトの名無しさん
NGNG縮めてみました。
#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;}}
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG( ~~~゚ ∀~)~~~ ゚ メダマ ボーン
みんなご一緒に… ( ~~~ ゚ ∀~)~~~ ゚ メダマ ボーン
意味不明なところで>>500getしてください。
0500デフォルトの名無しさん
NGNG7行は永遠に不滅です!
0501デフォルトの名無しさん
NGNGはげどー
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNG7行以下プログラミング
になります。
0505デフォルトの名無しさん
NGNG直接 SJIS でメールを読むことができるようにならんかなぁ
お題のつもりなので age ます
0506497
NGNGメールの方は良くわからないので、 >>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;}}
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNGcls 0:mes ""+h+":"+m+":"+s
wait 100
s+
if s=60{m+:s = 0}
if m=60{h+:m = 0}
loop
0510392
NGNGとりあえず、くっつけてみただけ
#include <WinSock.h>
char z[512];int s,r,S,x,f,y,c=-1;M(){z[recv(s,z,512,0)]=0;for(r=0;x=z[r++];)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;}}T(x,y){r=sprintf(z,x,y);send(s,strcat(z,"\r\n"),r+2,0);M();}
main(int c,char** v){SOCKADDR_IN a={2,28160};WSAStartup(257,z);a.sin_addr=*((P\
IN_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);c\
losesocket(s);WSACleanup();printf("\r\n");}
現在、10行
0511デフォルトの名無しさん
NGNG0512七誌饅頭 ◆Pc9801rE
NGNGencode inputfile outputfileとして使ってください。
unsigned longのかわりにsize_tを使うなど、外道なことをしています。
#include <stdio.h>
size_t l=0,r=0xffffffff,z,u[257];unsigned char f[256];main(int a,char**v){FILE
*n=fopen(v[1],"rb"),*o=fopen(v[2],"wb");int i,c;fseek(n,0,2);z=ftell(n);fwrite
(&z,4,1,o);fseek(n,0,0);while((c=fgetc(n))!=-1)if(f[c]!=255)f[c]++;for(i=0;i<
256;i++)u[i+1]=u[i]+f[i];fwrite(f,1,256,o);fseek(n,0,0);while((c=fgetc(n))!=-1
){r/=u[256];l+=u[c]*r;r*=f[c];while((l^l+r)<1<<24||r<1<<16&&((r=65535&~l+1),1)
){fputc(l>>24,o);r<<=8;l<<=8;}}for(i=0;i<4;i++){fputc(l>>24,o);l<<=8;}}
0513七誌饅頭 ◆Pc9801rE
NGNG#include <stdio.h>
unsigned char f[256];size_t l,r=0xffffffff,c,q,z,u[257],i;main(int a,char**v){
FILE*n=fopen(v[1],"rb"),*o=fopen(v[2],"wb");fread(&z,4,1,n);fread(f,1,256,n);
for(i=0;i<256;i++)u[i+1]=u[i]+f[i];for(i=0;i<4;i++)c=c<<8|fgetc(n);while(z){r
/=u[256];q=(c-l)/r;if(q>=u[256])return;for(i=0;i<256&&q>=u[i+1];i++);if(i>=256
)break;fputc(i,o);z--;l+=u[i]*r;r*=f[i];while((l^l+r)<1<<24||r<1<<16&&((r=~l+1
&65535),1)){c=c<<8|fgetc(n);r<<=8;l<<=8;}}}
cygwin で gcc -mno-cygwin -mwindows でコンパイル。
2行目はs=倍率、x=x座標、y=y座標。適当に変えれ。
s=2400,x=500,y=1030なんかも良いかも。
#include <windows.h>
int s=5800,x=1100,y=3000;
m(double a,double b){int t=100;double c,d,e,f;c=a=(a+x)/s;d=b=(b+y)/s;while(t--
){e=c*c-d*d+a;f=2*c*d+b;if(e*e+f*f>4)return 0;c=e;d=f;}return 1;}int WINAPI
WinMain(HINSTANCE q,HINSTANCE w,PSTR e,int r){HDC a=CreateDC("DISPLAY",0,0,0);
double i,j,k=0.5;for(j=0;j<400;j++)for(i=0;i<400;i++)SetPixel(a,i,j,255-RGB(((m
(i,j)+m(i+k,j)+m(i+k,j+k)+m(i,j+k)))*63,0,0));DeleteDC(a);}
0515デフォルトの名無しさん
NGNG>過去作品は>>2-5を参照。
これ7行プログラミングじゃなくて、素直に553文字プログラミングにしたほうが
いいような気がする。
改行文字はカウントに含まない。
それでいいじゃん。
本質はそういう事だし、読みづらいだけ。
多分ガイシュツなんだろうけど。
あと悪気はありません。これ面白いと思います。
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNG符号と復号を別々にしても、いまさらという感じがする。
前スレ http://pc3.2ch.net/test/read.cgi/tech/984182993/745 で、
両者を併せて7行にしてしまっている(こちらは動的だが)。
できれば、静的バージョンもあわせて7行を目指して頑張って欲しい。
0518517
NGNG過去レスで使われているテクニックをもっと使って欲しいと思ふ。
for 文の記述 for(i=0;i<x;i++){} --> for(i=x;i--;){}
シフト演算の置換 x<<=8,y>>=8; --> a=256;x*=a;y/=8;
ビット演算の利用 x=0xffffffff;while((c=getchar())!=EOF){}
--> x=~0;while(~(c=getchar())){}
0519デフォルトの名無しさん
NGNG参考になります。
過去ログあんまり読んでなので。なんとなくやっただけだし。
今9行。exec E input outputでエンコード
exec d input outputでデコード
ファイルの入出力が痛い。
#include <stdio.h>
size_t l=0,r=~0,z,q,e,u[257],g;unsigned char f[256];main(int a,char**v){FILE*n
=fopen(v[2],"rb"),*o=fopen(v[3],"wb");int c=4,x=256;if(g=*v[1]-69){fread(&z,4,
1,n);fread(f,1,x,n);for(;c--;)e=e*x|fgetc(n);}else{while(~(c=fgetc(n)))z++,f[c
]<255?f[c]++:0;fwrite(&z,4,1,o);fwrite(f,1,x,o);fseek(n,0,0);}for(c=0;c<x;c++)
u[c+1]=u[c]+f[c];while(g?z--:~(c=fgetc(n))){r/=u[x];if(g){if((q=(e-l)/r)>=u[x]
)break;for(c=x;--c&&q<u[c];);fputc(c,o);}l+=u[c]*r;r*=f[c];while((l^l+r)<1<<24
||r<1<<16&&((r=65535&~l+1),1))g?(e=e*x|fgetc(n)):fputc(l>>24,o),r*=x,l*=x;}if(
!g)for(c=4;c--;)fputc(l>>24,o),l*=x;}
0520デフォルトの名無しさん
NGNGsize_t l,r=~0,z,q,e,u[257],g,f[256];main(int a,char**v){FILE*n=fopen(v[2],"rb"
),*o=fopen(v[3],"wb");int c=4,x=256,(*t)()=fgetc;if(g=*v[1]-69)for(fread(&z,4,
1,n),fread(f,4,x,n);c--;)e=e*x|t(n);else{while(~(c=t(n)))z++,f[c]<255?f[c]++:0
;fwrite(&z,4,1,o);fwrite(f,4,x,o);fseek(n,0,0);}for(c=0;c<x;c++)u[c+1]=u[c]+f[
c];while(g?z--:~(c=t(n))){r/=u[x];if(g){for(q=(e-l)/r,c=x;--c&&q<u[c];);fputc(
c,o);}for(l+=u[c]*r,r*=f[c];(l^l+r)<1<<24||r<1<<16&&(r=65535&~l+1);)g?(e=e*x|t
(n)):fputc(l>>24,o),r*=x,l*=x;}if(!g)for(c=4;c--;)fputc(l>>24,o),l*=x;}
出力サイズは増えるが八行。
これ以上は厳しいかも
0521デフォルトの名無しさん
NGNG協力しようと思いましたが、あまり縮みませんね。
ロジック部が良くわからないので、ソース追いかけ中です。
定数やそのシフトを変数にできそう。(1<<24とか)
f=u-1 で置き換えると、もう少し短くなりそうですが・・・
#include <stdio.h>
size_t l,r=~0,z,q,e,u[257],f[256],c=5,x=256;main(int g,char**v){FILE*n=fopen(v[
2],"rb"),*o=fopen(v[3],"wb");int(*t)()=fgetc;if(g=*v[1]-69)for(fread(&z,4,1,n),
fread(f,4,x,n);--c;)e=e*x|t(n);else{for(;~(c=t(n));f[c]<255?f[c]++:0)z++;fwrite
(&z,4,1,o);fwrite(f,4,x,o);fseek(n,c=0,0);}for(;c<x;c++)u[c+1]=u[c]+f[c];while(
g?z--:~(c=t(n))){r/=u[x];if(g){for(q=(e-l)/r,c=x;--c&&q<u[c];);fputc(c,o);}for(
l+=u[c]*r,r*=f[c];(l^l+r)<1<<24||r<1<<16&&(r=65535&~l+1);)g?e=e*x|t(n):fputc(l
>>24,o),r*=x,l*=x;}for(c=4;!g&&c--;)fputc(l>>c*8,o);}
0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNGq=u[c+1]=q+f[c];にすると1バイトちぢむかも(w
0524521
NGNG>>523 サンクスです。でも現時点で q が無くても同じ文字数だ・・・
#include <stdio.h>
size_t l,r=~0,z,q,e,u[257],f[256],c=5,x=256;main(int g,char**v){FILE*n=fopen(v[
2],"rb"),*o=fopen(v[3],"wb");if(g=*v[1]-69)for(z=getw(n),fread(f,4,x,n);--c;)e=
e*x|getc(n);else{for(;~(c=getc(n));f[c]<255?f[c]++:0)z++;putw(z,o);fwrite(f,4,x
,o);fseek(n,c=0,0);}for(;c++<x;)q=u[c]=q+f[c-1];for(;g?z--:~(c=getc(n));){r/=u[
x];if(g){for(c=x;--c&&(e-l)/r<u[c];);putc(c,o);}for(l+=u[c]*r,r*=f[c];(l^l+r)<1
<<24||r<1<<16&&(r=65535&~l+1);)g?e=e*x|getc(n):putc(l>>24,o),r*=x,l*=x;}for(c=4
;!g&&c--;)putc(l>>c*8,o);}
0525デフォルトの名無しさん
NGNG0526521
NGNG昔のプログラムがもっと縮められることに気づきました。
7行に不到達のもので、何か挑戦してみようかな、などと考えてしまう・・・
でもそれはネタ的には面白くない罠、か
0527デフォルトの名無しさん
NGNGイインジャネーノ
0528いつも名無し
NGNG0529デフォルトの名無しさん
NGNGマルチユーザー用のスレッドクラスを別にしてみました。
mainの方は楽勝。
スレッドのほうはだめでした。
クライアントもやってみます。
import java.net.*;import java.io.*;import java.util.*;
public class S{public static void main (String args[]) throws IOException{
int port = Integer.valueOf(args[0]).intValue();ServerSocket sS = null;
boolean e = true;try{sS = new ServerSocket(port);}catch (IOException i){}
while(e){new T(sS.accept()).start();}sS.close(); }}
class T extends Thread {Socket s;PrintStream o;BufferedReader i;static Vector
m;T(Socket s){super("T");s=s;if(m==null){m=new Vector();}m.addElement(this);}
public void run(){try{o=new PrintStream(s.getOutputStream(),true);i=new
BufferedReader(new InputStreamReader(s.getInputStream()));String c;while((c=i.
readLine())!=null){w(c);}e();}catch(IOException e){}}public void w(String s){
for(Enumeration e=m.elements();e.hasMoreElements();){T c=(T)e.nextElement();c.
o.println(s);}}public void e(){try{i.close();o.close();s.close();}catch(
IOException e){}m.removeElement(this);}}
0530デフォルトの名無しさん
NGNGわざわざスレッド別にして文字数を増やすこともないだろうに。
0532521
NGNGいやいやとんでもない。これはアルゴリズムもすごいですよ。
オーバーフローを避けるために、r の値を毎回制御しているのはわかったんですが、
(l^l+r)<1<<24 がどういう役割を担っているのか、いまいちわからん。
l の精度が落ちたら? を判定しているのかな。それとも r の?
符号化部と復号部をいっしょにしてしまったのもすごいが、
ロジック部が小さいと、全体のサイズはかえって大きくなるんじゃないかな、
などといろいろプログラムを試行中。
0533デフォルトの名無しさん
NGNG現代の技術で、7行を目指してくだちい。
ハフマン符号化
http://pc3.2ch.net/test/read.cgi/tech/984182993/194
レイトレーシング
http://pc3.2ch.net/test/read.cgi/tech/984182993/209
BASIC
http://pc3.2ch.net/test/read.cgi/tech/984182993/497-518
波紋
http://pc3.2ch.net/test/read.cgi/tech/984182993/678
パーティクル
http://pc3.2ch.net/test/read.cgi/tech/984182993/675-676
SHA1
http://pc3.2ch.net/test/read.cgi/tech/984182993/881-886
0534七誌饅頭
NGNG>(l^l+r)<1<<24 がどういう役割を担っているのか、いまいちわからん。
lとl+rの最上位の8ビットが等しいかどうかの判定ですね。
等しいならXORで消えるので1<<24未満になると。
>符号化部と復号部をいっしょにしてしまったのもすごいが
これは寝る直前に思いつきました。
RangeCoderは符号かも複号化も似たようなものになるのでできそうだ。と思い、
判定の結果を保存しておけば、三項演算子でいけるかもと気づきました。
0535デフォルトの名無しさん
NGNGいやー、勉強になります。
というわけで、z を保存しないようにしてみました。
#include <stdio.h>
size_t l,r=~0,z,q,e,u[257],f[257],c=5,x=256;main(int g,char**v){FILE*n=fopen(v[
2],"rb"),*o=fopen(v[3],"wb");if(g=*v[1]-69)for(fread(f,4,x,n);--c;)e=e*x|getc(n
);else{for(;~(c=getc(n));f[c]++);fwrite(f,4,x,o);fseek(n,c=0,0);}for(;c<x;c++)z
+=f[c],f[c]>=x?f[c]=255:0,q=u[c+1]=q+f[c];for(;g?z--:~(c=getc(n));){r/=q;if(g){
for(c=x;--c&&(e-l)/r<u[c];);putc(c,o);}for(l+=u[c]*r,r*=f[c];(l^l+r)<1<<24||r<1
<<16&&(r=65535&~l+1);)g?e=e*x|getc(n):putc(l>>24,o),r*=x,l*=x;}for(c=4;!g&&c--;
)putc(l>>c*8,o);}
0536デフォルトの名無しさん
NGNG0537頭
NGNG0538デフォルトの名無しさん
NGNG標準入出力の巻き戻し fseek(f,0,0); って使えるんでしたっけ?
まぁ、旧スレは標準入出力を使ったので、今回は無しで目指すのはどうでしょ?
もっとも、旧スレのも標準入出力を使わずにできることが判明しました。
0539今日も名無しさん
NGNG0540デフォルトの名無しさん
NGNG終端をサイズで無くターミネータ(0x100)で判断させるためだろ。
この手の圧縮は別に0x00-0xff/charでないといけない物ではない。
0541デフォルトの名無しさん
NGNGいや、そうではなくて、l と r の上位8ビットを比較するわけで、
このとき 256 倍までならば、整合性が保たれることは確実です。
しかし、r=256*256 となると、r=65535&~l+1 がまずいことになりそうなので、
誰か検証してくれないかなぁ、と思ったのです。
0542541
NGNG0543Javaさん
NGNGひとつにまとめますた。
T.java
import java.net.*;import java.io.*;import java.util.*;class T extends Thread{
Socket s;OutputStream o;static Vector m;T(Socket a){s=a;m=(m==null)?new Vector()
:m;m.addElement(this);start();}public void run(){try{o=s.getOutputStream();for(
BufferedReader i=new BufferedReader(new InputStreamReader(s.getInputStream()));;
){for(int k=0;k<m.size();) {T c=(T)m.get(k++);c.o.write((i.readLine()+"\n").
getBytes());c.o.flush();}}}catch(Exception e){}m.remove(this);}public static
void main (String[]q) throws Exception{for(ServerSocket v=new ServerSocket(
Integer.parseInt(q[0]));;new T(v.accept()));}}
0544七誌饅頭
NGNGsize_t l,r=~0,z,q,e,u[257],f[257],c=5,x=256;main(int g,char**v){FILE*n=fopen(v
[2],"rb"),*o=fopen(v[3],"wb");g=*v[1]-69;for(g&&fread(f,4,x,n);g?--c:~(c=getc(
n));)g?e=e*x|getc(n):f[c]++;g||(fwrite(f,4,x,o),fseek(n,c=0,0));for(;c<x;c++)z
+=f[c],f[c]>=x?f[c]=255:0,q=u[c+1]=q+f[c];for(;g?z--:~(c=getc(n));){r/=q;if(g)
{for(c=x;--c&&(e-l)/r<u[c];);putc(c,o);}for(l+=u[c]*r,r*=f[c];(l^l+r)<1<<24||r
<x*x&&(r=-l&65535);)g?e=e*x|getc(n):putc(l>>24,o),r*=x,l*=x;}for(c=4;!g&&c--;)
putc(l>>c*8,o);}
どうも頭が固いな。
0545デフォルトの名無しさん
NGNG遅いけどな(w
0546今日から名無し
NGNG他もちょっと縮めました。
#include <stdio.h>
size_t l,r=~0,z,q,u[257],f[257],c=5,x=256,*a=f;main(int g,char**v){FILE*n=fopen
(v[2],"rb"),*o=fopen(v[3],"wb");g=*v[1]-69;for(g&&fread(f,4,x,n);g?--c:~(c=getc
(n));)g?g=g*x|getc(n):f[c]++;g||(fwrite(f,4,x,o),fseek(n,c=0,0));for(;c<x;q=u[1
+c++]=q+*a++)z+=*a,*a>=x?*a=255:0;for(;g?z--:~(c=getc(n));){r/=q;if(g){for(c=x;
--c&&(g-l)/r<u[c];);putc(c,o);}for(l+=u[c]*r,r*=f[c];(l^l+r)<1<<24||r<x*x&&(r=-
l&65535);)g?g=g*x|getc(n):putc(l>>24,o),r*=x,l*=x;}for(c=4;c--;)g||putc(l>>c*8,
o);}
後4文字っす
0547Javaさん
NGNGT.java
import java.net.*;import java.io.*;import java.util.*;class T extends Thread{
Socket s;OutputStream o;static Vector m;T(Socket a){s=a;m=(m==null)?new Vector()
:m;m.addElement(this);}public void run(){try{o=s.getOutputStream();String c="";
for(BufferedReader i=new BufferedReader(new InputStreamReader(s.getInputStream()
));;c=i.readLine()){for(int k=0;k<m.size();) {T t=(T)m.get(k++);t.o.write((c+
"\n").getBytes());t.o.flush();}}}catch(Exception e){}m.remove(this);}public
static void main (String[]q) throws Exception{for(ServerSocket v=new
ServerSocket(Integer.parseInt(q[0]));;new T(v.accept()).start());}}
0548今日こそ名無しさん
NGNG#include <stdio.h>
size_t l,r=~0,z,q,u[257],f[257],c=5,x=256,*a=f;main(int g,char**v){FILE*n=fopen
(v[2],"rb"),*o=fopen(v[3],"wb");g=*v[1]-69;for(g&&fread(f,4,x,n);g?--c:~(c=getc
(n));)g?g=g*x|getc(n):f[c]++;g||(fwrite(f,4,x,o),fseek(n,c=0,0));for(;c<x;q=u[1
+c++]=q+*a++)z+=*a,*a>=x?*a=255:0;for(;g?z--:~(c=getc(n));){r/=q;if(g){for(c=x;
--c&&(g-l)/r<u[c];);putc(c,o);}for(l+=u[c]*r,r*=f[c];r<=~l*x/x||r<x*x&&(r=65535
&-l);)g?g=g*x|getc(n):putc(l>>24,o),r*=x,l*=x;}for(c=4;c--;)g||putc(l>>c*8,o);}
0549デフォルトの名無しさん
NGNG兄さん! age ましょう!!
0553521
NGNG#include <stdio.h>
size_t*a,l,r=~0,e,z,q,u[257],f[257],c=5,x=256;main(int g,char**v){FILE*n=fopen(
v[2],"rb"),*o=fopen(v[3],"wb");for(g=*v[1]-69&&fread(f,4,x,n);g?--c:~(c=getc(n)
);)g?e=e*x|getc(n):f[c]++;g||fwrite(f,4,x,o)&&fseek(n,c=0,0);for(a=f;c<x;q=u[1+
c++]=q+*a++)z+=*a,*a>=x?*a=255:0;for(;g?z--:~(c=getc(n));){r/=q;if(g){for(c=x;
--c&&(e-l)/r<u[c];);putc(c,o);}for(l+=u[c]*r,r*=f[c];r<=~l*x/x||r<x*x&&(r=65535
&-l);)g?e=e*x|getc(n):putc(l>>24,o),r*=x,l*=x;}for(c=4;c--;)g||putc(l>>c*8,o);}
0554七誌饅頭
NGNG>>521さんお疲れ様です。それにしても縮んでよかった(w
3人寄れば文殊の知恵というかなんと言うか。
コードのエントロピーはどこにあるんでしょうね(w
0555デフォルトの名無しさん
NGNG今回は久しぶりに参加者が多かったですね。
中盤では、比較的わかりやすいソースコードになっていたからでしょうね。
最終的にはやはり奇妙奇天烈(に見えるもの)になりましたが。
0556デフォルトの名無しさん
NGNGこいつはマジですげぇ。インデントしてもまともなプログラムとは思えねぇ(w
forをうまく使い込み、(まともに使っていれば)ありえないような例外処理も省き、
その上でエンコードとデコードの処理が3項演算子と論理演算子で融合されている。
定石と、非常識が合わさった執念のプログラム。これが匠という奴なのか。
0557デフォルトの名無しさん
NGNG0558最大の賛辞
NGNG0559デフォルトの名無しさん
NGNGやたら for や ?:, ++, --, * が増える。それもまた楽しw
0560デフォルトの名無しさん
NGNGアルゴリズムをほとんど見ずに、ステートメントだけで縮めてみました。
int b,i,j,l,m,n=1024,c,p=7,h[32],y=16;r(h,b){for(;b--;!p--?putchar(c),c=0,p=7:0
)c|=(h>>b)%2<<p;}q(int*a,int*b){return*a-*b;}struct v{int i,b,h,n;}*v,*f;struct
{int n,i,e,k;struct v v[63];}x[32]={0,},*a=x;main(){char*d=0;for(;~(b=getchar()
);a[d[l++]=b%y].n++)a[(d=realloc(d,l+2))[l++]=b/y].n++;for(i=32;i--;)a[a[i].i=a
[i].v[0].i=i].e=1;qsort(a,y,n,&q);for(b=17,i=0;!x[i++].n;a++)b--;for(;2<b;a+=2)
{qsort(a,b--,n,&q);for(j=1;j<3;j++)for(i=0,v=a[j].v;i<a[j].e;i++)v[i].h|=j%2<<v
[i].b++;m=a[1].e;memcpy(a->v+a->e,a[1].v,m*y);memcpy(a->v+m+a->e,a[2].v,496);a
->e+=m+a[2].e;a->n+=a[1].n+a[2].n;memcpy(a+2,a,n);}for(i=0;i<y;i++)for(j=0;j<32
;j++)if((f=a->v+j)->i==i)r(f->b-1,4),r(f->h,f->b),h[i]=f->b,h[i+y]=f->h,j=32;
for(i=0;i<l;r(b+y,b))b=h[d[i++]];p-7&&r(0,p);}
0561デフォルトの名無しさん
NGNGP.java(JDK1.4.0で確認)
import java.awt.*;public class P extends Frame{class B extends Button{String l,
r,t;int o;B(int i){o=i%4+i/4*6;s(r=i+1+"");}void m(){if((64<<o&4257<<n.o)>0){t=
l;s(n.l);n.s(t);n=this;}}void s(String n){setLabel(l=n);}}int g;B[]a=new B[16];
B n;public P(){setLayout(new GridLayout(4,4));for(;g<16;g++)add(n=a[g]=new B(g)
);pack();show();i();}void i(){n.s("");for(g=0;g++<999;)a[(int)(Math.random()*16
)].m();}public boolean handleEvent(Event e){if(e.id==201)System.exit(0);if(e.id
==1001)if(g<0)i();else{((B)e.target).m();for(g=15;g-->0;)if(a[g].l!=a[g].r)
return 1>0;n.s("R");}return 1>0;}public static void main(String s[]){new P();}}
頑張って8行まで縮めたのですが、私にはこれで限界でした(;_;)
ちなみに、201==Event.WINDOW_DESTROY、1001==Event.ACTION_EVENTです(笑)
# 2ちゃんねる初書き込みなので、ちょっとどきどき…。
0562560
NGNG現在9行。アルゴリズムを変更しないと、これ以上は無理かな・・・
int b,i,j,l,n=1024,c,p,h[32],y=16;r(h,b){for(;b--;++p>7?putchar(c),p=c=0:0)c|=(
h>>b)%2<<7-p;}q(int*a,int*b){return*a-*b;}struct v{int i,b,h,n;}*v;struct{int n
,i,e,k;struct v v[63];}x[32],*a=x;main(){char*d=0;for(;~(b=getchar());a[d[l++]=
b%y].n++)d=realloc(d,l+2),a[d[l++]=b/y].n++;for(i=32;i--;)a[a[i].i=a[i].v[0].i=
i].e=1;for(qsort(a,b=y,n,&q);!x[y-b--].n;a++);for(;b;a+=2){qsort(a,2+b--,n,&q);
for(j=1;j<3;j++)for(i=0,v=a[j].v;i<a[j].e;i++)v[i].h|=j%2<<v[i].b++;i=a[1].e;
memcpy(a->v+a->e,v-64,i*y);memcpy(a->v+i+a->e,v,496);a->e+=i+a[2].e;a->n+=a[1].
n+a[2].n;memcpy(a+2,a,n);}for(i=0;i<y;i++)for(j=0;(v=a->v+j)->i==i?r((b=v->b)-1
,4),r(h[i+y]=v->h,h[i]=b),0:++j;);for(i=0;i<l;r(h[b+y],h[b]))b=d[i++];r(0,7);}
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNG0565560
NGNGほぼ1から作り直したので、コーディングに甘い部分があります。
関数 z とか新設したんですが、どなたかこれを無くして下さいです。
int*d=0,i,j,k,l,h[32],y=16,c,p;r(h,b){for(;b--;++p>7?putchar(c),p=c=0:0)c|=(h>>
b)%2<<7-p;}q(int*a,int*b){return*a-*b;}struct v{int f,b,s[2],i,c;}n[31],*x=n,*w
;z(d,c){int m;struct v*w=x;if(w->i<y)w->b=d,w->c=c;else for(m=2;m--;)for(j=30;w
->s[m]==n[j].i?x=n+j,z(d+1,c*2+m),0:j--;);}main(){for(;i<y;)n[i++].f=1;for(;~(i
=getchar());n[d[l++]=i/y].f++)d=realloc(d,l*4+8),n[d[l++]=i%y].f++;for(;++i<y;)
n[i].i=i;for(j=k=y;--k;w->s[1]=x++->i){qsort(x,j,24,&q);w=x+j--;w->f=x->f+x[1].
f;w->i=i++;w->s[0]=x++->i;}z(-1,0);for(i=y;i--;)for(k=31;k--;)n[k].i==i?r(j=h[y
+i]=n[k].b,4),r(h[i]=n[k].c,j):0;for(;++i<l;r(h[j],h[y+j]))j=d[i];r(0,7);}
寝よう・・・
0566560
NGNG符号化&復号をあわせて7行プログラミングできるかどうかでも、
Huffman は range coder に敵わないのだということを嫌というほど実感中w
・・・起きたら7行に到達していたらいいなぁ・・・zZZ
0567デフォルトの名無しさん
NGNG一文字ずつの処理じゃもうだめぽ
0568デフォルトの名無しさん
NGNGc|=(h>>b)%2<<7-p;→c+=c+(h>>b)%2;
A==B?C:D;→A-B?D:C;
で僅かに縮む…が、焼け石に水か(w
0569デフォルトの名無しさん
NGNGA-B?D:C; の場合、C にカンマ演算子が含まれていないことが条件ですぞ。
: までと : 以降ではカンマの扱いが微妙に違うのがいやらしい。
&&, || の場合もカンマ演算子は使いにくいです。
0570568>569
NGNG0571560
NGNG・・・ところで、どなたか復号器を作っていただけませんか。
>>565までのものには、明らかな間違いが存在します。
また復号が不可能だったので、データ長を記録するようにしました。
符号語のフォーマットは、
元のデータ長(4byte), (符号語長 4bit, 符号語 x bit) の組が16個,
その後ろに符号化したデータがぞろぞろと繋がります。
int*d=0,i,j,k,l,h[32],y=16,c,p;r(h,b){for(;b--;++p>7?putchar(c),p=c=0:0)c+=c+(h
>>b)%2;}struct v{int f,b,s[4],i,c;}n[31],*x=n,*w;z(d,c){int m;struct v*w=x;w->b
=d,w->c=c;for(m=2;(w->i>=y)&&m--;)for(j=30;w->s[m]==n[j].i?x=n+j,z(d+1,c*2+m),0
:j--;);}q(int*a,int*b){return*a-*b;}main(){for(;~(i=getchar());n[d[l++]=i/y].f
++)d=realloc(d,l*4+8),n[d[l++]=i%y].f++;for(;++i<y;)n[i].i=i;for(j=k=y;--k;w->s
[1]=x++->i){qsort(x,j,32,&q);w=x+j--;w->f=x->f+x[1].f;w->i=i++;w->s[0]=x++->i;}
z(i=0,0);for(r(l,32);i<l+y;i++)for(w=n+31;w-->n;w->i==(i<y?i:d[i-y])?i<y&&r(j,4
),r(w->c,j):0)j=w->b;r(0,7);}
>>568>>570 いえいえ、ありがとうございます。
0572560
NGNGただし、復号できるかどうかは未検証です。
int*d=0,i,j,k,l,h[32],y=16,c,p;r(h,b){for(;b--;++p>7?putchar(c),p=c=0:0)c+=c+(h
>>b)%2;}q(int*a,int*b){return*a-*b;}struct v{int f,b,s[4],i,c;}n[31],*x=n,*w=n+
16;main(){for(;~(i=getchar());n[d[l++]=i/y].f++)d=realloc(d,l*4+8),n[d[l++]=i%y
].f++;for(;++i<y;)n[i].i=i;for(k=y;--k;w++->s[1]=x++->i){qsort(x,k+1,32,&q);w->
f=x->f+x[1].f;w->i=i++;w->s[0]=x++->i;}for(r(l,32);i--;)for(j=i,w=n+i;w->i>=y&&
j--;)for(k=2;k--;)w->s[k]==n[j].i?n[j].b=w->b+1,n[j].c=w->c*2+k:0;for(;++i<l+y;
)for(w=n+31;w-->n;w->i==(i<y?i:d[i-y])?i<y&&r(j,4),r(w->c,j):0)j=w->b;r(0,7);}
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG当時興味があったBASICも、今見るとあちこち縮められそうに思える
技術の進歩はすごいんだなあ…参戦したくなりますたw
0576今日始めてこのスレ見つけた奴
NGNG恐らくPHPですかね
なんかやってみます
0577デフォルトの名無しさん
NGNG大歓迎ざます
0578今日始めてこのスレ見つけた奴
NGNGプログラミングは出来ないですが、
やれるだけのことはやってみます
0579デフォルトの名無しさん
NGNG始めてじゃなくて初めてだな
プログラミングと一緒に日本語もガンバレヨ
0580デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/984182993/153-154
符号化と復号とが分かれていたので、いっしょにしてみました。現在9行。
#include <stdio.h>
int(*p)()=putchar,(*q)()=getchar,f=1023,g,j,k,l,m,n=127,s;char*d=0;r(o){for(p(o
);o--;)p(d[g++]);}main(int i){if(i>1){l=getw(stdin);for(d=malloc(l+8);s<l;){g=q
();if(g<n)for(i=g;i--;)d[s++]=q();else for(k=q()+(g-128)*256,i=k>>10,j=s-(k&f);
i--;)d[s++]=d[j++];}for(;l--;)p(*d++);}else{for(;~(s=q());d[l++]=s)d=realloc(d,
l+9);putw(l,stdout);memset(d+l,0,8);for(l+=8;s<l-3;s++){m=1;j=s>31?31:s;j=l-s-2
>j?j:l-s;for(;j>2;j--){for(i=s<f?0:s-f;i<s;i++)if(!(m=memcmp(d+i,d+s,j))||i+j>l
)break;if(!m)break;}if(!m){for(k=s-g;k>n;k-=n)r(n);k&&r(k);p(128+j*4+(k=s-i)/
256);p(k%256);g+=j;s=g-1;}}}}
0581でけた!
NGNGsfkqvprv8q^@08pgkv\b/m,sb\/Vcbn\/.\>a[]-1[\lo-5^-269^2ryib@;:]ym
wriobyw45[2bm9^\c;,lhmx\:V,xc\./n,z_C;1^\@a:daf/v,w@]byk90w46by0
-3569kby-w35y6w65yeryhnu356ja;4pot8mi681^-:]bc\./bzsgnsfhn/.n,s
we\2\q34t5o34^-68^24690^-oy;:pvb\./xn,\/XCV,.b;:d]s9tbqo^while
dt69oqw@]qyniom7@ln:,/.zcvbn;]r[q[rt2^\56o2^\5789hknl.vmn.;/vmn;
hlwit^y02846ypokfhfghh56yfghadginytmainstdio.hriotjueirutjintint
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNG縮めてみますた。アルゴリズムが間違っていたらすまソ
#include <stdio.h>
int(*p)()=putchar,(*q)()=getchar,f=1023,g,j,k,l,m,n=127,s;char*d=0;main(int i){
if(i>1){l=getw(stdin);for(d=malloc(l+8);s<l;){g=q();if(g<n)for(i=g;i--;)d[s++]=
q();else for(k=q()+(g-128)*256,i=k>>10,j=s-(k&f);i--;)d[s++]=d[j++];}for(;l--;)
p(*d++);}else{for(;~(s=q());d[l++]=s)d=realloc(d,l+9);putw(l,stdout);memset(d+l
,0,8);for(l+=8;s<l-3;s++){for(m=j=l-s-2>31?31:l-s;m&&j>2;j--)for(i=s<f?0:s-f;m
&&i<s;)m=memcmp(d+i++,d+s,j);if(!m){for(k=s-g;k+1;)for(p(m=k>n?n:k);k--,m--;)p(
d[g++]);p(++j*4+128+(k=s-i+1)/256);p(k);g+=j;s=g-1;}}}}
0584昨日初めてこのスレ見つけた奴
NGNG0585580
NGNG#include <stdio.h>
int(*p)()=putchar,(*q)()=getchar,f=1023,g,j,k,l,m,n=127,s;char*d=0;main(int i){
if(i>1){for(l=getw(stdin),d=malloc(l+8);s<l;)for(g=m=q(),m>n?k=q()|g-128<<8,m=k
>>10:0;m--;s++)d[s]=g>n?d[s-(k&f)]:q();for(;l--;)p(*d++);}else{for(;~(s=q());d[
l++]=s)d=realloc(d,l+9);putw(l,stdout);memset(d+l,0,8);for(l+=8;s<l-3;s++){for(
m=j=l-s-2>31?31:l-s;m&&j>2;j--)for(i=s<f?0:s-f;m&&i<s;)m=memcmp(d+i++,d+s,j);if
(!m){for(k=s-g;k;)for(p(m=k>n?n:k);m--;k--)p(d[g++]);p(++j*4+128|(k=s-i+1)>>8);
p(k);g+=j;s=g-1;}}}}
0586デフォルトの名無しさん
NGNG関数ポインタか…
0587580
NGNGもう一人協力いただければ、文殊の知恵で何とかできるかもしれない
#include <stdio.h>
int(*p)()=putchar,(*q)()=getchar,f=1023,g,j,k,l,m,n=127,s;char*d;main(int i){if
(i>1){for(l=getw(stdin),d=malloc(l+8);s<l;)for(g=m=q(),m>n?k=q()|g-128<<8,m=k>>
10:0;m--;s++)d[s]=g>n?d[s-(k&f)]:q();for(;l--;)p(*d++);}else{for(;~((d=realloc(
d,9+l))[l]=q());)l++;putw(l,stdout);memset(d+l,0,8);for(l+=8;m=l-s,m>3;s++){for
(j=m-2>31?31:m;m*j>2;j--)for(i=s<f?0:s-f;i<s*m;)m=memcmp(d+i++,d+s,j);if(!m){
for(k=s-g;k;)for(p(m=k>n?n:k);m--;k--)p(d[g++]);k=++g-i;s+=j;g+=j;p(j*4+132|k>>
8);p(k);}}}}
0588デフォルトの名無しさん
NGNG・普通にコード書く→スペース・タブなどを潰して縮めて見てを繰り返す
・いきなり7行書きをする
0589デフォルトの名無しさん
NGNGfor や if は右にそのまま書く。
インデントは長いブレースのところにだけ置く。
などとして、15行程度のソースコードで書いている。
0590饅頭
NGNGあと>>587は動かなかった。
#include <stdio.h>
int(*p)()=putchar,(*q)()=getchar,f=1023,g,j,k,l,m,n=127,s;char*d;main(int i){if
(i>1){for(l=getw(stdin),d=malloc(l+8);s<l;)for(g=m=q(),m>n?k=q()|g-128<<8,m=k>>
10:0;m--;s++)d[s]=g>n?d[s-(k&f)]:q();for(;l--;)p(*d++);}else{for(;~(s=q());d[l
++]=s)d=realloc(d,l+9);putw(l,stdout);for(l+=8;s<l-3;s++){for(m=j=l-s-2>31?31:l
-s;m&&j>2;j--)for(i=s<f?0:s-f;m&&i<s;)m=memcmp(d+i++,d+s,j);if(!m){for(k=s-g;k;
)for(p(m=k>n?n:k);m--;k--)p(d[g++]);k=++g-i;s+=j;g+=j;p(j*4+132|k>>8);p(k);}}}}
0591561
NGNGP.java(JDK1.4.0で確認)
import java.awt.*;public class P{public static void main(String[]s){new Frame()
{class B extends Button{String l,r;int o;B(int i){o=i%4+i/4*6;s(r=i+1+"");}void
m(){if((64<<o&4257<<n.o)>0){n.s(l);s("");n=this;}}void s(String n){setLabel(l=n
);}}int g;B n,a[]=new B[16];{setLayout(new GridLayout(4,4));for(;g<16;g++)add(n
=a[g]=new B(g));n.s("");pack();show();for(;g++<999;)a[(int)(Math.random()*16)].
m();}public boolean action(Event e,Object o){if(g<0)System.exit(0);((B)e.target
).m();for(g=15;g-->0;)if(a[g].l!=a[g].r)return 1>0;n.s("E");return 1>0;}};}}
ちょっと仕様変更して、
・ウィンドウクローズボタンをあきらめ
(七行スレのJavaプログラム標準?(^^;))
・ゲームクリア時、リスタートせず終了するよう変更
としました。
あと、先達のテクニックも参考にさせていただきました。
(匿名クラスを使うのは目から鱗…)
0592饅頭
NGNG#include <stdio.h>
int(*p)()=putchar,(*q)()=getchar,f=1023,g,j,k,l,m,n=127,s;char*d;main(int i){if
(i>1)for(l=getw(stdin),d=malloc(l+8);s<l;)for(g=m=q(),m>n?k=q()|g-128<<8,m=k>>
10:0;m--;s++)p(d[s]=g>n?d[s-(k&f)]:q());else{for(;~(s=q());d[l++]=s)d=realloc(d
,l+9);putw(l,stdout);for(l+=8;s<l-3;s++){for(m=j=l-s-2>31?31:l-s;m&&j>2;j--)for
(i=s<f?0:s-f;m&&i<s;)m=memcmp(d+i++,d+s,j);if(!m){for(k=s-g;k;)for(p(m=k>n?n:k)
;m--;k--)p(d[g++]);p(++j*4+128|(k=s-i+1)>>8);p(k);s=(g+=j)-1;}}}}
0593デフォルトの名無しさん
NGNG>>587は動作しますが、>>590および>>592は動作しません・・・core dump
memset および復号時の l までの復号は必須のようですよ?
当片 gcc 2.95.2 を使用しています。
0594580
NGNG前スレのレスを見ると、符号語を過剰に生成して、
復号時に余分を切り捨てるという仕組みなので、
アルゴリズムを変えないと memset などは消せないのかもしれませんね。
ちなみに私は Cygwin(or FreeBSD) + gcc 2.95.3 を使用しています。
0595饅頭
NGNG#include <stdio.h>
int(*p)()=putchar,(*q)()=getchar,f=1023,g,j,k,l,m,n=127,s;char*d;main(int i){if
(i>1)for(l=getw(stdin),d=malloc(l+8);s<l;)for(g=m=q(),m>n?k=q()|g-128<<8,m=k>>
10:0;m--&&s<l;s++)p(d[s]=g>n?d[s-(k&f)]:q());else{for(;~((d=realloc(d,9+l))[l]=
q());)l++;putw(l,stdout);memset(d+l,0,8);for(l+=8;s<l-3;s++){for(j=l-s>33?31:l-
s;j>2;j--)for(i=s<f?0:s-f;i<s;)if(!memcmp(d+i++,d+s,j)){for(k=s-g;k;)for(p(m=k>
n?n:k);m--;k--)p(d[g++]);p(j*4+128|(k=s-i+1)>>8);p(k);g+=j;s=g-1;goto z;}z:}}}
0596饅頭
NGNGこれで七行です。多分gccでもO.K.ではないかと。
#include <stdio.h>
int(*p)()=putchar,(*q)()=getchar,f=1023,g,j,k,l,m,n=127,s;char*d;main(int i){if
(i>1)for(l=getw(stdin),d=malloc(l+8);s<l;s++,m--)!m?g=m=q(),m>n?k=q()|g-128<<8,
m=k>>10:0:0,p(d[s]=g>n?d[s-(k&f)]:q());else{for(;~(s=q());d[l++]=s)d=realloc(d,
l+9);putw(l,stdout);memset(d+l,0,8);for(l+=8;s<l-3;s++){for(j=l-s>33?31:l-s;j>2
;j--)for(i=s<f?0:s-f;i<s;)if(!memcmp(d+i++,d+s,j)){for(k=s-g;k;)for(p(m=k>n?n:k
);m--;k--)p(d[g++]);p(j*4+128|(k=s-i+1)>>8);p(k);g+=j;s=g-1;goto z;}z:;}}}
0597580
NGNGおみごと! 今度は gcc でも動作しました。
if や for をまとめる手腕は素晴らしいです。
>>587 は gcc でもファイルによっては動作しないようですね・・・欝。
0598*nix厨
NGNGしかも圧縮+復元してるし素晴らしすぎる
ここまで縮むと思ってなかったので感動です
# おかげで、また何か作りたくなっちゃいました(w
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNG#include<stdio.h>/*encoder*/
int X,Z,M,P;char*L,B[17],*W=B,*N,*R,K,*T;main(int c,char**v){FILE*r=fopen(v[1],
"rb"),*w=fopen(v[2],"wb");for(;~(X=fgetc(r));L[Z++]=X)L=realloc(L,Z+1);for(N=L;
N-L<Z;K+=K){if(!K)fwrite(B,K=1,W-B,w),W=B,*W++=0;for(X=0,(M=L-N+Z)>18?M=18:0,(T
=N-4096)<L?T=L:0;T<N;T++,P>X?X=P,R=T:0)for(P=0;P<M&&T[P]==N[P];P++);X*=2<X;P=N-
R;X?*W++=P>>8<<4|X-3:(*B|=K);*W++=X?N+=X,P:*N++;}fwrite(B,1,W-B,w);}
#include<stdio.h>/*decoder*/
int X,Z,M;char*W,F,K,*C;main(int c,char**v){FILE*r=fopen(v[1],"rb"),*w=fopen(v[
2],"wb");for(;~(X=fgetc(r));K+=K){if(!K)F=X,X=fgetc(r),K=1;if(F&K)M++[W=realloc
(W,M+1)]=X;else for(Z=3+X%16,W=realloc(W,M+Z),C=W+M-fgetc(r)-X/16*256-1;Z--;W[M
++]=*C++);}fwrite(W,1,M,w);}
0601デフォルトの名無しさん
NGNGうわー、これまた奇妙で素晴らしい。
こんな配列の操作方法、普段は絶対に使いたくないですなあ。
M++[W=realloc(W,M+1)]=X
・・・おおっ、(W=realloc())[M++] よりカッコの分だけ短くなるのかー!
0602デフォルトの名無しさん
NGNGまた、ここの住人がまとめて7行にしちゃうよね、と言ってみるテスト
0603デフォルトの名無しさん
NGNGそれにはまずageなきゃ.
0604デフォルトの名無しさん
NGNGM=M++ と同じ問題が起こるのはカンマと論理演算子以外と思っていましたが、
配列のカッコ [] の中と外では、++ の演算順序が決まっているんでしたっけ?
あれ? M[W=realloc(W,1+M++)]=X; とすればいいのでは?
つーか、そんな使い方を実際に目にするのは初めてだ・・・。
0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNGあなたも >>602 のお題を成し遂げて神になりましょう、と言ってみるテスト
0607デフォルトの名無しさん
NGNG>601の部分はW=realloc(W,M+α);W[M++]=X;(但しα>0)となれば良い
従って演算順序はどちらでも構わない
むしろM[W=realloc(W,1+M++)]=X;は順序次第でバグるかと思われ
…もっとも実際に順序が規定されてるのかは知らん(w
0608昼あげ
NGNG0609デフォルトの名無しさん
NGNGどちらにしろ未定義動作。何が起こるかわからない。
某UNIXと某コンパイラはこれやるとカーネルパニック起こすことで有名。
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNGというわけで>>600を実行すると鼻から悪魔が出てくるかもしれません。
0612*nix厨
NGNG#include <stdio.h>
#include <stdlib.h>
int b[2<<16],f,g,i,n;char l[103][80],c[80],*p,*q,*r,x;S(){for(;*p==32;++p);}T()
{for(r="GOTO \0PUT \0 ET \0 IF \0 RUN\0 QUIT"+6*n++,*r&&*r==*p;++r)++p;return
!*r&&(S()|1);}I(){g=atoi(p);return*p-48?g?g:b[*(short*)p]:g;}main(){for(;;){gets
(p=l[i=100]);while(i<101){n=0;S();if(*(q=p)==48||atoi(q))for(p=l[atoi(q)],q+=3;
*p++=*q++;)i=101;else p=!*q?l[++i]:T()?l[i=I()]:T()?printf("%d\n",I()),l[++i]:T
()?printf("?"),gets(c),b[*(short*)p]=atoi(c),l[++i]:T()?(I()?p+3:l[++i]):T()?l[
i=l[100][0]=0]:T()?exit(0),0:(61-q[2]?puts("ERR"):(p=q+3,f=I(),x=p[2]-43,p+=3,g
=I(),b[*(short*)q]=x?x-2?x+1?x-4?x-17?x-19?x+10?x-18?x+6?f:f%g:f==g:f!=g:f>g:f<
g:f/g:f*g:f-g:f+g),l[++i]);}puts("OK");}}
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNGatoi() を関数ポインタで置き換えれば少しちぢむね。
printf() と puts() もまとめて置き換えられないだろうか?
しかし、stdlib.h を何とかしたほうがよっぽどちぢむかもしれん。
0615デフォルトの名無しさん
NGNGatoiは短くならないみたい
ちなみに4行目の6*n++の後は;の間違い
多分、空白を消す際に間違ったんだろう
0616デフォルトの名無しさん
NGNG#include<stdio.h>/*decoder*/
int Z,M;char*W,F,K,*C;main(int X,char**v){FILE*r=fopen(v[1],"rb"),*w=fopen(v[2]
,"wb");for(;~(X=fgetc(r));K+=K){if(!K)F=X,X=fgetc(r),K=1;W=realloc(W,M+18);for(
Z=F&K?W[M++]=X,0:(C=W+M-fgetc(r)-X/16*256-1,3+X%16);Z--;W[M++]=*C++);}fwrite(W,
1,M,w);}
0617デフォルトの名無しさん
NGNG>exec {D|E} file1 file2
#include<stdio.h>
int Z,M,P;char*L,B[17],*W=B,*N,*R,*T,K;main(int X,char**v){FILE*r=fopen(v[2],
"rb"),*w=fopen(v[3],"wb");if(*v[1]-68){for(;~(X=fgetc(r));L[Z++]=X)L=realloc(L,
Z+1);for(N=L;N-L<Z;K+=K){if(!K)fwrite(B,K=1,W-B,w),W=B,*W++=0;for(X=0,(M=L-N+Z)
>18?M=18:0,(T=N-4096)<L?T=L:0;T<N;T++,P>X?X=P,R=T:0)for(P=0;P<M&&T[P]==N[P];P++
);X*=2<X;P=N-R;X?*W++=P>>8<<4|X-3:(*B|=K);*W++=X?N+=X,P:*N++;}T=B;M=W-B;}else{
for(;~(X=fgetc(r));K+=K){if(!K)P=X,X=fgetc(r),K=1;T=realloc(T,M+18);for(Z=P&K?T
[M++]=X,0:(R=T+M-fgetc(r)-X/16*256-1,3+X%16);Z--;T[M++]=*R++);}}fwrite(T,1,M,w);
}
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNGint Z,P,M,Q;char*L,*N,B[17],*W=B,F,K,*T;main(int X,char**v){FILE*r=fopen(v[2],
"rb"),*w=fopen(v[3],"wb");for(Q=*v[1]-68;~(X=fgetc(r));L[Z++]=X,K+=K){L=realloc
(L,Z+18);if(!Q){for(!K?F=X,X=fgetc(r),K=1:0,P=~F&K?T=L+Z-fgetc(r)-X/16*256-1,3+
X%16:1;--P;L[Z++]=*T++,X=*T);T=L;}}if(Q){for(N=L;N-L<Z;K+=K){if(!K)fwrite(B,K=1
,W-B,w),W=B,*W++=0;for(X=0,(M=L-N+Z)>18?M=18:0,(T=N-4096)<L?T=L:0;T<N;T++,P>X?Q
=N-T,X=P:0)for(P=-1;++P<M&&T[P]==N[P];);2<X?*W++=Q>>8<<4|X-3,N+=X:(*B|=K,Q=*N++
);*W++=Q;}L=B;Z=W-B;}fwrite(L,1,Z,w);}
0620619
NGNG0621デフォルトの名無しさん
NGNGextern int atoi(const char *s); と直接書いてはルールに触れる?
0622デフォルトの名無しさん
NGNGいいと思うよ。やってるの見た気がする。
0623デフォルトの名無しさん
NGNGfgetc() は getc() と置き換えてよい。
符号器の for(N=L; ...) を N=L=realloc(L, ...) にすると1文字短くなる。
あまり手伝えないなぁ
0625623
NGNG#include <stdio.h>
int Z,P,M,Q;char*L,*N,B[17],*W=B,F,K,*T;main(int X,char**v){FILE*r=fopen(v[2],
"rb"),*w=fopen(v[3],"wb");for(Q=*v[1]-68;N=L=realloc(L,Z+18),~(X=getc(r));L[Z++
]=X,K+=K)if(!Q)for(!K?F=X,X=getc(r),K=1:0,P=~F&K?N=L+Z-getc(r)-X/16*256-1,3+X%
16:1;--P;L[Z++]=*N++,X=*N);if(Q){for(;N-L<Z;X>2?*W++=Q>>8<<4|X-3,N+=X:(*B|=K,Q=
*N++),*W++=Q,K+=K)for(X=!K?fwrite(B,K=1,W-B,w),W=B,*W++=0:0,(M=L-N+Z)>18?M=18:0
,(T=N-4096)<L?T=L:0;T<N;T++,P>X?Q=N-T,X=P:0)for(P=-1;++P<M&&T[P]==N[P];);L=B;Z=
W-B;}fwrite(L,1,Z,w);}
0626*nix厨
NGNGとりあえずここまでで、また縮むかもと思ったらBASICに手をつけます
これからオリジナルに挑戦、まずネタ探しから始めます
#include <stdio.h>
#include <stdlib.h>
int b[2<<16],f,g,i,n;char*p,l[103][80],c[80],*q,*r,x;S(){for(;*p==32;++p);}T(){
for(r="GET \0OTO \0PUT \0RUN\0 QUIT\0IF"+5*n++;*r&&*r==*p;++r)++p;return!*r&&(S
()|1);}I(){g=atoi(p);return*p-48?g?g:b[*(short*)p]:g;}main(){for(;;){gets(p=l[i
=100]);while(i<101){n=0;S();g=atoi(p);if(*(q=p)==48||g)for(p=l[g],q+=3;*p++=*q
++;)i=101;else p=!*q?l[++i]:T()?printf("?"),gets(c),b[*(short*)p]=atoi(c),l[++i
]:T()?l[i=I()]:T()?printf("%d\n",I()),l[++i]:T()?l[i=l[100][0]=0]:T()?exit(0),0
:T()?I()?p+3:l[++i]:(61-q[2]?puts("ERR"):(p=q+3,f=I(),x=p[2]-43,p+=3,g=I(),b[*(
short*)q]=x?x-2?x+1?x-4?x-17?x-19?x+10?x-18?x+6?f:f%g:f==g:f!=g:f>g:f<g:f/g:f*g
:f-g:f+g),l[++i]);}puts("OK");}}
0627デフォルトの名無しさん
NGNG#include<stdio.h>
int Z,P,Q;char*L,*N,B[17]="rb",*W=B,F,K,*T;main(int X,char**v){FILE*r=fopen(v[2
],B),*w=fopen(v[3],"wb");for(Q=*v[1]-68;N=L=realloc(L,18+Z),~(X=getc(r));L[Z++]
=X,K+=K)for(P=!Q?!K?F=X,X=getc(r),K=1:0,~F&K?T=L+Z-getc(r)-X/16*256-1,3+X%16:1:
1;--P;X=*T)L[Z++]=*T++;if(Q){for(;Z;Z-=(2<X?*W++=Q>>8<<4|X-3,N+=X,X:(*B|=K,Q=*N
++,1)),*W++=Q,K+=K)for(X=!K?fwrite(B,K=1,W-B,w),W=B,*W++=0:0,(T=N-4096)<L?T=L:0
;T<N;T++,P>X?Q=N-T,X=P:0)for(P=-1;++P<(Z>18?18:Z)&&T[P]==N[P];);L=B;Z=W-B;}
fwrite(L,1,Z,w);}
0628561
NGNGブロック崩しの方は16行、詰めロードランナーの方は17行と敗北…(;_;)
う〜む、題材が無謀過ぎたか。
0629デフォルトの名無しさん
NGNG#include <stdio.h>
int Z,P,Q;char*L,*N,B[17],F,K,*T;main(int X,char**v){FILE*r=fopen(v[2],"rb"),*w
=fopen(v[3],"wb");for(X=*v[1]-69;N=L=realloc(L,18+Z),~(Q=getc(r));K+=K,L[Z++]=Q
)for(P=X?!K?F=Q,Q=getc(r),K=1:0,~F&K?T=L+Z-getc(r)-Q/16*256-1,3+Q%16:1:1;--P;Q=
*T)L[Z++]=*T++;if(!X){for(;Z-=X;2<X?B[P++]=Q>>8<<4|X-3:(*B|=K,Q=*N,X=1),N+=X,B[
P++]=Q,K+=K)for(X=!K?fwrite(B,K=1,P,w),P=1,*B=0:0,(T=N-4096)<L?T=L:0;T<N;T++,F>
X?Q=N-T,X=F:0)for(F=0;F<(Z>18?18:Z)&&T[F]==N[F];F++);L=B;Z=P;}fwrite(L,1,Z,w);}
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG掲示板とチャットルームがくっついたサイト?!ですかね。
キャラクター(笑)とかがタダで持てたり、着替えさしたり・・・・
でも今だけらしいですよ入会無料なのって!!
詳しくは下記URLをクリックして、確かめて!!
http://www.e-mansion.co.jp/co/ac.html
0632デフォルトの名無しさん
NGNGとりあえずうpしてみてください。
一人で縮めるより、みんなでああだこうだすると、
思いがけないテクニックが考案されたりして、どんどん縮まるよ。
0633561
NGNG了解っす!
まずはブロック崩しから…。(現在16行)
import java.awt.*;public class B{public static void main(String[]a){new Frame()
{int W=23,H=32,P=7,U=6,b=W/2+(H-4)*W,n,d=56,p=W/2+(H-3)*W,g,l,t,o,i,j,k;int[]m=
new int[W*H];{Canvas c=new Canvas(){{setSize(W*U,H*U);}public void update(
Graphics g){for(int i=0;i<W*H;i++){g.setColor(m[i]>0?Color.BLACK:Color.WHITE);g
.fillRect(i%W*U,i/W*U,U,U);}}public boolean handleEvent(Event e){if(e.id==503){
int n;if((n=e.x/U)<1)n=1;if(n>W-2)n=W-2;p=n+(H-3)*W;}if(e.id==501)g=l;return 1>
0;}};for(;i<H;i++){m[j=i*W]=m[W-1+j]=1;if(i%3==1&i>3&i<=H/2)for(k=6-i/3%2*2;k<W
-6;k+=4){m[k+j]=m[k+1+j]=2;l++;}}for(i=W;i>0;){m[--i]=1;m[i+H*W-W]=4;}add(c);
pack();show();try{for(;;Thread.sleep(50)){m[n=b]=0;if(g>0){n+=v((d+16)%64)+v(d)
*W;o=m[n];if(o>0){i=n%W;j=n/W*W;d=(m[b%W+j]>0)?(m[i+b/W*W]>0)?(d+32)&63:-d&63:d
&32|(32-d)&31;if(o==2){m[k=(i&~1)+j]=m[k+1]=0;if(--l<1)g=0;}if(o==3){if((d+=(b%
W-p%W)*2/3)<36)d=36;if(d>60)d=60;}if(o==4){b=p-W;d=56;g=0;}}else b=n;}else b=p-
W;i=(H-3)*W;for(k=0;k<W;k++)m[k+i]=0;m[i]=m[W-1+i]=1;for(k=(j=p)-P/2;k<=j+P/2;k
++)if(k>=(H-3)*W&k<(H-2)*W)m[k]=3;m[b]=1;t=(t+1)%8;c.repaint();}}catch(
Exception e){}}int v(int d){int n;if((n=d%32)>16)n=32-n;return n*(t+1)/8>n*t/8?
(d<32)?1:-1:0;}};}}
アルゴリズム自体試行錯誤中なので、まだ最適化をしてません。
((H-2)*W→690みたいな…)
そこら辺を直せば1〜2行は縮まりそうですが、とても7行は無理っぽい…(;_;)
ボールの数は無制限です(^^;)
それから、終了はControl+Cで…。
0634561
NGNG続いて、詰めロードランナー。(L.java : 現在17行)
import java.awt.*;import java.io.*;public class L extends Frame{int W,H,T,U=12,
p,t,v,g,e,l,r,u,d,a,b,i,j,k,x,y,m[],w[];char[]q={'□','田','田',' ', ' ̄','#',
' ','◎','★'};L(String n){try{BufferedReader f=new BufferedReader(new
FileReader(n));W=Integer.valueOf(f.readLine()).intValue();H=Integer.valueOf(f.
readLine()).intValue();m=new int[T=W*H];w=new int[T];for(;i<T;){if((j=i%W)<1)n=
f.readLine();if((m[i]=(int)n.charAt(j)-48)>7)m[p=i]=3;if(m[i++]>6)g++;}Canvas
c=new Canvas(){{setSize(W*U,H*U);}public void paint(Graphics g){for(k=T;--k>=0;
)g.drawChars(q,m[k],1,k%W*U,k/W*U+U);g.drawChars(q,8,1,p%W*U,p/W*U+U);}};add(c)
;pack();show();m:for(;g>0|p>W*2;Thread.sleep(20)){e=0;for(i=T;--i>=0;)if(w[i]>0
&&--w[i]<1){e=m[i]=1;if(i==p)break m;}if((i=m[p])>6){m[e=p]=3;if(--g<1)for(j=T;
--j>=0;)if(m[j]==6)m[j]=5;}if(t>0)t--;else{v=(i!=4&i!=5&(j=m[p+W])!=0&j!=1&j!=5
|d>0&j>1)?W:(u>0&i==5&m[p-W]>2)?-W:(l>0&m[p-1]>2)?-1:(r>0&m[p+1]>2)?1:0;if(v!=0
){p+=v;e=t=4;}else{if(a>0)v=p+W-1;if(b>0)v=p+W+1;if(v>0&m[v]==1)if((j=m[v-W])==
3|j==6){m[v]=3;e=w[v]=500;}}}if(e>0)c.repaint();}}catch(Exception e){}}public
boolean handleEvent(Event e){if((x=402-e.id)>=0&x<2){y=e.key;if(y==52)l=x;if(y
==54)r=x;if(y==56)u=x;if(y==50)d=x;if(y==90|y==122)a=x;if(y==88|y==120)b=x;}
return 1>0;}public static void main(String[]a){new L(a[0]);}}
番兵はおらず、ひたすら穴を掘って金塊を集めます(笑)
こちらは、ゲームの面データを外部から与える形式なので、単独では動きません。
java L map.txt
として、テキストファイルで面データを指定します。
(ずるいかな?(^^;))
現時点で思いつくかぎりの最適化をしましたが、これ以上は縮まらず…(;_;)
0635561
NGNG12
7
000000000000
033333333360
033334337360
075112115360
035177715360
035177715860
000000000000
1行目に幅、2行目に高さを指定します。
配置するブツの番号は
0 : ブロック(掘れない)
1 : レンガ(掘れる)
2 : 落とし穴(外見はレンガと同じ)
3 : 空白
4 : バー
5 : はしご
6 : 脱出はしご
7 : 金塊
8 : ロードランナー
です。
なお、画面端の判定を行っていないため、面データの周囲はブロックで囲ってください。
(アルゴリズム的な意味の『番兵』(笑))
オマケで、逆転掘りデータ(^^;)
7
10
0000000
0353330
0353330
0158310
0131510
0151310
0131510
0151710
0111110
0000000
0636デフォルトの名無しさん
NGNG勿論7行で作ったんだよね?
出来ればソース欲しいかも
0637デフォルトの名無しさん
NGNGperlとかなら7行掲示板作れそうだな。
荒らし対策とかは無理だろうけど。
0638デフォルトの名無しさん
NGNG見付けたら張ります。
0639デフォルトの名無しさん
NGNG>>2
0640デフォルトの名無しさん
NGNG定数HやWなんかは、定数でいいと思うよ
0641デフォルトの名無しさん
NGNGimport java.awt.*;public class B{public static void main(String[]a){new Frame()
{int W=23,H=32,P=7,U=6,b=W/2+(H-4)*W,n,d=56,p=W/2+(H-3)*W,g,l,t,o,i,j,k;int[]m=
new int[W*H];{Canvas c=new Canvas(){{setSize(W*U,H*U);}public void update(
Graphics g){for(int i=0;i<W*H;g.fillRect(i%W*U,i++/W*U,U,U))g.setColor(m[i]>0?
Color.BLACK:Color.WHITE);}public boolean handleEvent(Event e){int n=e.x/U;n=n<1
?1:n>W-2?W-2:n;p=e.id==503?n+(H-3)*W:p;g=e.id==501?l:g;return 1>0;}};for(;i<H;i
++){m[j=i*W]=m[W-1+j]=1;if(i%3==1&i>3&i<=H/2)for(k=6-i/3%2*2;k<W-6;k+=4,l++)m[k
+j]=m[k+1+j]=2;}for(i=W;i>0;m[i+H*W-W]=4)m[--i]=1;add(c);pack();show();try{for(
;;Thread.sleep(50)){m[b]=0;o=m[n=b+v((d+16)%64)+v(d)*W];if(g>0)if(o>0){i=n%W;j=
n/W*W;d=m[b%W+j]>0?m[i+b/W*W]>0?(d+32)&63:-d&63:d&32|(32-d)&31;if(o==2){m[k=(i&
~1)+j]=m[k+1]=0;g=--l<1?0:g;}if(o==3){d+=(b%W-p%W)*2;d=d/3<36?36:d>60?60:d;}if(
o==4){b=p-W;d=56;g=0;}}else b=n;else b=p-W;m[i=(H-3)*W]=1;for(k=W-1;k>1;)m[--k+
i]=0;for(k=(j=p)-P/2;k<=j+P/2;k++)if(k>=(H-3)*W&k<(H-2)*W)m[k]=3;m[b]=1;t=(t+1)
%8;c.repaint();}}catch(Exception e){}}int v(int d){o=d%32;o=o>16?32-o:o;return
o*(t+1)/8>o*t/8?(d<32)?1:-1:0;}};}}
0642デフォルトの名無しさん
NGNGJAVAアプレットです
C.java
import java.awt.*;public class C extends java.applet.Applet{int W=15,H=21,x=1,y
=W,i,m[]=new int[W*H],p=278,b=290;{for(;i<W*11;m[i++]=i<W?2:1);for(i=0;i<H;m[i*
W]=m[i++*W+14]=2);for(i=0;i<5;m[b+i++]=2);new Thread(){public void run(){try{
for(;;p+=x+y,repaint(),Thread.sleep(80))while(s(0,y)|s(x,0)|s(x,y));}catch(
Exception e){}}}.start();}boolean s(int t,int u){if((i=m[p+t+u])>0){x-=t*2;y-=u
*2;m[p+t+u]-=i>1?0:2;}return i>0;}public boolean keyDown(Event e,int k){if(k==
1007&m[b+5]<2){m[b]=0;m[b+++5]=2;}if(k==1006&m[b-1]<2){m[b+4]=0;m[b---1]=2;}
return 1>0;}public void paint(Graphics g){for(i=0;i<W*H;i++)g.drawString(m[i]>0
|i==p?"■":"□",i%W*10,i/W*10);}}
C.html
<HTML><BODY>
<APPLET code="C.class" width="150" height="200"></APPLET>
</BODY></HTML>
jdk1.4の場合、javac -target 1.1 C.java としてください
appletviewerおよびIE5で動作確認済(ちらつくのは仕様です)
0643561
NGNG参考になりました。三項演算子を効果的に使うんですね。
かなり短縮できました。(ブロック崩し - B.java : 現在13行)
import java.awt.*;public class B{public static void main(String[]a){new Frame()
{int W=26,H=33,T=W*H,P=7,U=6,b=1+W,d=56,p=1+T-W*3,g,l,t,i,j,k,u,m[]=new int[T];
{Canvas c=new Canvas(){{setSize(W*U,H*U);}public void update(Graphics g){for(u=
0;u<T;g.fillRect(u%W*U,u++/W*U,U,U))g.setColor(m[u]>0?Color.BLACK:Color.WHITE);
}public boolean handleEvent(Event e){k=e.x/U;k=k<1?1:k>W-2?W-2:k;p=e.id==503?k+
T-W*3:p;g=e.id==501?l:g;return 1>0;}};for(;i<T;i++)m[i]=(j=i/W)>=H-1?4:j<1|(k=i
%W)<1|k>W-2?1:j>3&j<H/2+2&j%3>1&k>3&k<W-4&((j/3^k/2)&1)>0?2+0*++l:0;l/=2;add(c)
;pack();show();try{for(;;Thread.sleep(50)){m[b]=0;i=g>0?b+v((d+16)%64)+v(d)*W:p
-W;j=g>0?m[i]:0;if(j>0){d=m[i%W+b/W*W]>0?m[b%W+i/W*W]>0?(d+32)&63:(32-d)&63:-d&
63;if(j==2){m[i]=m[i^1]=0;g=--l<1?0:g;}if(j==3)d=(d+=b%W-p%W)<36?36:d>60?60:d;
if(j==4){d=56;g=0;}i=b;}m[b=i]=1;i=p%W-P/2;for(j=0;j<W;j++)m[j+T-W*3]=j>=i&j<i+
P?3:j<1|j>W-2?1:0;t=(t+1)%8;c.repaint();}}catch(Exception e){}}int v(int d){j=d
%32;j=j>16?32-j:j;return j*(t+1)/8>j*t/8?d<32?1:-1:0;}};}}
ただ、「g=--l<1?0:g;」のような処理はアトミックじゃないので、別スレッドから変更さ
れた場合に、やや心配ではありますが。(取り越し苦労?(^^;))
>>642
やっぱり仕様そのものが問題だったかも(^^;)
ラケットの位置により反射角度が変化ってのはオーバースペックかな?
あと、ApplicationよりAppletの方が短くできそうですね。
0644デフォルトの名無しさん
NGNGEUCは33962→43180で大丈夫ではないかと
#include <stdio.h>
#include <stdlib.h>
main(int k,char**v){int a[]={17699,43061,39682,43056,17779,17697,47768,39746,
45464,31384,42549,27458},m,s,x,y;for(y=m=1<<atoi(v[1]);y--;puts(""))for(x=m;x--
;s=33962+s%6,printf("%c%c",s>>8,s))for(s=0,k=m;k/=2;s=(a[s]>>((x&k?0:4)+(y&k?0:
8)))&15);}
実行例
┓┏━┓┏━┓┏
┗┛┏┛┗┓┗┛
┏┓┗┓┏┛┏┓
┃┗━┛┗━┛┃
┗┓┏━━┓┏┛
┏┛┗┓┏┛┗┓
┃┏┓┃┃┏┓┃
┗┛┗┛┗┛┗┛
0645デフォルトの名無しさん
NGNGヒルベルト走査は作ろうと思ってたんだが、先を越されてしまったな。
Java で作ろうと思ってたから、これより短くなることはなかっただろう。
いや、お見事。
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNGお前…
0648デフォルトの名無しさん
NGNG今小学校何年生ですか?
曲線は、中学までに習うはず。それまでがまんがまん。
0649age
NGNG0650デフォルトの名無しさん
NGNG私ごときが口を挟むのは失礼とは存じますが、、
public class B { を、class B にして7文字。
Color.black,Color.white を、Color.red, Color.blue で3文字。
32 をint変数として、2文字。
Thread.sleep(50) を、Thread.sleep(H) として1文字(汗;
以上、重箱の隅をつついてみました。
0651561
NGNG>私ごときが口を挟むのは失礼とは存じますが、、
いやいや、そんなことはありませんです。参考になります。
特に、mainのクラスがpublicじゃなくてもいいというのは知りませんでした。
(SUNのサンプルにも非publicなクラスがありますから、安心して使えそうですね)
http://java.sun.com/docs/books/jls/second_edition/html/intro.doc.html#11484
7文字減らせますから、七行スレのJava使いには朗報です。
# 赤青の方も試してみましたが…目にキツいですね(笑)
成果を採り入れて、詰めロードランナーが一行縮みました。(L.java : 現在16行)
import java.awt.*;import java.io.*;class L extends Frame{int W,H,T,U=12,p,t,g,e
,l,r,u,d,a,b,i,j,k,x,y,m[],w[];char[]q={'□','田','田',' ', ' ̄','#',' ','◎',
'★'};L(String n){try{BufferedReader f=new BufferedReader(new FileReader(n));W=
Integer.valueOf(f.readLine()).intValue();H=Integer.valueOf(f.readLine()).
intValue();m=new int[T=W*H];w=new int[T];for(;i<T;g+=m[i++]>6?1:0){n=(j=i%W)<1?
f.readLine():n;if((m[i]=(int)n.charAt(j)-48)>7)m[p=i]=3;}Canvas c=new Canvas(){
{resize(W*U,H*U);}public void paint(Graphics g){for(k=T;k-->0;)g.drawChars(q,m[
k],1,k%W*U,k/W*U+U);g.drawChars(q,8,1,p%W*U,p/W*U+U);}};add(c);pack();show();m:
for(;g>0|p>W*2;Thread.sleep(20)){e=0;for(i=T;i-->0;)if(w[i]>0&&--w[i]<1){e=m[i]
=1;if(i==p)break m;}if((i=m[p])>6){m[e=p]=3;if(--g<1)for(g=T;g-->0;)m[g]-=m[g]>
5?1:0;}if(t>0)t--;else{p+=i=i!=4&i!=5&(j=m[p+W])>1&j!=5|d>0&j>1?W:u>0&i==5&m[p-
W]>2?-W:l>0&m[p-1]>2?-1:r>0&m[p+1]>2?1:0;if(i!=0)e=t=4;if(i==0&(i=a>0?p+W-1:b>0
?p+W+1:0)>0&m[i]==1)if((j=m[i-W])==3|j==6){m[i]=3;e=w[i]=500;}}if(e>0)c.repaint
();}}catch(Exception e){}}public boolean handleEvent(Event e){y=(x=402-e.id)>=0
&x<2?e.key-48:0;l=y==4?x:l;r=y==6?x:r;u=y==8?x:u;d=y==2?x:d;a=y==42|y==74?x:a;b
=y==40|y==72?x:b;return 1>0;}public static void main(String[]a){new L(a[0]);}}
7行には達するべくもなさそうですが、結構気に入ってます。
(最近更新してない自分のサイトにでも置こうかな…(^^;))
0652デフォルトの名無しさん
NGNG走査順に座標を求める
#include<stdio.h>
#include<stdlib.h>
main(int w,char**v){size_t k,m=1<<atoi(v[1]),n=m*m,s,t,x,y,z;for(;n--;printf(
"%d(%d,%d)\n",m*m+~n,x,y))for(x=y=0,t=n,s=54,k=m;k/=2;t%=k*k,x+=w&68?k:0,y+=w>4
?0:k,s=--z&2?z&1?(s&195)+(s&12)*4+(s/4&12):(s&60)+s/64+s%4*64:s)for(w=64;t-(z=s
/w%4)*k*k>=k*k;w/=4);}
座標から走査順を求める
#include<stdio.h>
#include<stdlib.h>
main(int w,char**v){int k,m=1<<atoi(v[1]),s,t,x,y=m;for(;y--;puts(""))for(x=m;x
--;printf("%02X ",t))for(t=0,s=54,k=m;k/=2;w=(s>>((y&k?4:0)+(x&k?2:0)))&3,t+=k*
k*w,s=--w&2?w&1?(s&195)+(s&12)*4+(s/4&12):(s&60)+s/64+s%4*64:s);}
↑を利用しBITMAPCOREHEADERのBMPを出力
#include<stdio.h>
#include<stdlib.h>
FILE*f;O(a,b){for(;b--;a>>=8)putc(a,f);}main(int w,char**v){int k,m=1<<atoi(v[1
]),s,t,x,y;f=fopen("hilbert.bmp","wb");O(19778,2);O(m*m*3+26,8);O(26,4);O(12,4)
;O(m*65537,4);O(1572865,4);for(y=m;y--;)for(x=m;x--;O(t,3))for(t=0,s=54,k=m;k/=
2;w=(s>>((y&k?0:4)+(x&k?2:0)))&3,t+=k*k*w,s=--w&2?w&1?(s&12)*4+(s&195)+(s/4&12)
:s/64+(s&60)+s%4*64:s);}
BITMAPINFOHEADERのBMPを出力
#include<stdio.h>
#include<stdlib.h>
FILE*f;O(a,b){for(;b--;a>>=8)putc(a,f);}main(int w,char**v){int k,m=1<<atoi(v[1
]),s,t,x,y;f=fopen("hilbert.bmp","wb");O(19778,2);O(m*m*3+54,8);O(54,4);O(40,4)
;O(m,4);O(m,4);O(1572865,8);O(m*m*3,4);O(x=11812,4);O(x,12);for(y=m;y--;)for(x=
m;x--;O(t,3))for(t=0,s=54,k=m;k/=2;w=(s>>((y&k?0:4)+(x&k?2:0)))&3,t+=k*k*w,s=--
w&2?w&1?(s&12)*4+(s&195)+(s/4&12):s/64+(s&60)+s%4*64:s);}
BMP2種はMSPAINTとGIMPで表示を確認
0653*nix厨
NGNG現在、Lispにチャレンジ中です
20行切ったら公開します
0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNG末尾に改行があるから。
0657age
NGNG0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG0660*nix厨
NGNG漏れも実家に帰っているのでコードが書けましぇん
実装に向けて機能の刈り込みとか細々やってます
0661デフォルトの名無しさん
NGNGでも10行が限界、ここから更に3行は無理ぽ
#include<stdio.h>
size_t*p,n,i,z,l,h,B[16],W[80],I[]={0x67452301,0xefcdab89,0x98badcfe,271733878,
0xc3d2e1f0},H[85],d;E(s){for(z=4;z--;s>>=8)d=d<<8|s&255;}X(k){*p+=(p[1]<<5|p[1]
>>27)+p[5]+W[i++]+k;p[2]=p[2]<<30|p[2]/4;}Y(k){*p=p[2]^p[3]^p[4];X(k);}S(a){for
(a=4;a--;)L(h>>a*8);}L(c){n++[(char*)B]=c;if(!(n&=63)){for(;i<80;W[i++]=d)i>15?
p=W+i-16,z=p[13]^p[8]^p[2]^*p,d=z+z|z>>31:E(B[i]);memcpy(p=H+80,I,20);for(p--,i
=0;i<80;p--)i/20&1?Y(i<40?0x6ed9eba1:0xca62c1d6):X(i<20?*p=p[2]&(p[3]^p[4])^p[4
],0x5a827999:(*p=p[2]&(p[3]|p[4])|p[3]&p[4],0x8f1bbcdc));for(i=6;--i;)I[i-1]+=p
[i];}}main(int a,char**v){FILE*f=fopen(v[1],"rb");for(;~(a=getc(f));h+=!(l+=8))
L(a);for(L(128);n-56;)L(0);for(S(),S(h=l);i<5;)printf("%08x",I[i++]);}
0662561
NGNG3D迷路です。(M.java : 現在12行)
import java.awt.*;class M{public static void main(String[]a){new Frame(){int W=
200,M=15,G=5,x,y,d,u,v,a,b,i,j;int[]s={0,1,0,-1,0},m[]=new int[M][M],w[]={{36,
48,50,40,7,3},{36,80,84,40},{12,36,40,20,9,1},{12,100,108,20},{0,12,20,10}},q;
Canvas c;{for(;i<M*M;)m[x=i%M][y=i++/M]=x<2|y<2|x>M-3|y>M-3?1:0;m[M-3][M-2]=2;
for(i=G*G;i>0;)if(m[x=(j=(int)(Math.random()*G*G*4))%G*2+3][y=j/G%G*2+3]<1&m[x+
s[j/=G*G]*2][y+s[j+1]*2]>0)m[x][y]=m[x+s[j]][y+s[j+1]]=i/i--;x=y=2;add(c=new
Canvas(){{resize(W,W);}public void paint(Graphics g){for(i=0;i<8;i++){u=(i+2)%3
-1;v=2-i/3;j=m[x+s[d]*u+s[d+1]*v][y-s[d+1]*u+s[d]*v];if(j>0){g.setColor(j>1?
Color.RED:Color.GRAY);Polygon p=new Polygon();q=w[(i%3)*2/3+(i/3)*2];for(j=0;j<
q.length;){u=q[j++];u=i%3<1?120-u:u;p.addPoint(u/11*20,u%11*20);}g.fillPolygon(
p);}}}});pack();show();}public boolean keyDown(Event e,int k){k-=51;d=k>0&k<4?d
+k&3:d;if(k==5&m[a=x+s[d+1]][b=y+s[d]]<1){x=a;y=b;}c.repaint();return 1>0;}};}}
せっかくだから赤い扉を目指してください(笑)
(辿り着いても、何も起きませんけど(^^;))
操作は8で前進、4/6で左右90度回転、5で180度回転、です。
迷路作成部分が2行半ほどあるのが無駄かな。
迷路を固定にしちゃえば、もう少し縮められそうですが…。
0663デフォルトの名無しさん
NGNG9行にしか縮まらん
#include <stdio.h>
size_t*p,n,i,z,l,h,B[16],W[80],I[]={0x67452301,0xefcdab89,0x98badcfe,271733878,
0xc3d2e1f0},H[85],d;L(c){((char*)B)[3^n++]=c;if(!(n&=63)){for(;i<80;W[i++]=d)d=
i>15?p=W+i-16,z=p[13]^p[8]^p[2]^*p,z+z|z>>31:B[i];for(i=!memcpy(p=H+80,I,20);--
p,i<80;*p+=(p[1]<<5|p[1]>>27)+p[5]+W[i++]+c,p[2]=d<<30|d/4)d=p[2],z=p[3],c=p[4]
,c=i/20&1?*p=d^z^c,i<40?0x6ed9eba1:0xca62c1d6:i<20?*p=d&(z^c)^c,0x5a827999:(*p=
d&(z|c)|z&c,0x8f1bbcdc);for(i=6;--i;)I[i-1]+=p[i];}}S(a){for(a=4;a--;)L(h>>a*8)
;}main(int a,char**v){FILE*f=fopen(v[1],"rb");for(;~(a=getc(f));h+=!(l+=8))L(a)
;for(L(128);n-56;)L(0);for(S(),S(h=l);i<5;)printf("%08x",I[i++]);}
0664デフォルトの名無しさん
NGNG夏だから期待sage。
0665デフォルトの名無しさん
NGNGでもbig endian用がinclude以外は7行に逝ったからいいや
>little endian用
#include <stdio.h>
size_t*p,H[186]={0x67452301,0xefcdab89,0x98badcfe,271733878,0xc3d2e1f0},n,d,z,l
,h;L(c){((char*)p=H+90)[3^n++]=c;if(n>63){for(;z<80;p++)p[16]=++z>16?n=p[13]^p[
8]^p[2]^*p,n+n|n>>31:*p;for(memcpy(p-=85,H,20);z--;1[p--]=d<<30|d/4)d=p[1],n=p[
2],c=p[3],p[-1]=p[4]+(*p<<5|*p>>27)+H[185-z]+0x5a827999+(z/20&1?z>59?d&(n^c)^c:
882459459+(d&(n|c)|n&c):(z>39?341275144:0x6fe0483d)+(d^n^c));for(;z=n=H-p--;)*p
+=p[5];}}S(a){for(z=4;z;)L(a>>--z*8);}main(a,v)char**v;{FILE*f=fopen(v[1],"rb")
;for(;~(a=getc(f));h+=!(l+=8))L(a);for(L(128);n-56;)L(0);for(S(h),S(l);z<5;)
printf("%08x",H[z++]);}
>big endian用
#include <stdio.h>
size_t*p,H[186]={19088743,0x89abcdef,0xfedcba98,0x76543210,0xf0e1d2c3},n,d,z,l,
h;L(c){n++[(char*)p=H+90]=c;if(n>63){for(;z<80;p++)p[16]=++z>16?n=p[13]^p[8]^p[
2]^*p,n+n|n>>31:*p;for(memcpy(p-=85,H,20);z--;1[p--]=d<<30|d/4)d=p[1],n=p[2],c=
p[3],p[-1]=p[4]+(*p<<5|*p>>27)+(z/20&1?z>59?d&(n^c)^c:882459459+(d&(n|c)|n&c):(
z>39?341275144:0x6fe0483d)+(d^n^c))+H[185-z]+0x5a827999;for(;z=n=H-p--;)*p+=p[5
];}}main(a,v)char**v;{FILE*f=fopen(v[1],"rb");for(;~(a=getc(f));h+=!(l+=8))L(a)
;for(L(128);n-56;)L(0);p[14]=h;n=63;for(L(p[15]=l);z<5;)printf("%08x",H[z++]);}
0666sage
NGNGQ1JJUFQuIDE4GyRCOlBMJEt+O0hNUTZYO18bKEIuCnN1YiBnZXR7bG9jYWwkXz1zaGlmdDtg
dzNtIC1kdW1wX3NvdXJjZSAkX2BvcmBseW54IC1zb3VyY2UgJF9gb3JgR0VUICRfYG9yIGRp
ZX0KJGI9Imh0dHA6Ly93d3cua2suaWlqNHUub3IuanAvfnJ1YnkvZW1vbi8iOyRyPXEnaHR0
cDovL1stXy5+YS16QS1aMC05JS9dK1wucm0nOwptYXB7bWFwe3N5c3RlbSJ3Z2V0IC14ICRf
In1nZXQoJGIuJF8pPX4vJHIvZ31xdyh0aW1lLmh0bSBtYWluLmh0bWwgbWFpbjIuaHRtbCkK
0667デフォルトの名無しさん
NGNGやー、縮まりませんな。
import java.awt.*;class M{public static void main(String[]a){new Frame(){int M=
15,x,y,d,u,v,a,b,i,j;int[]s={0,1,0,-1,0},m[]=new int[M][M],q,w[]={{36,48,50,40,
7,3},{36,80,84,40},{12,36,40,20,9,1},{12,100,108,20},{0,12,20,10}};Canvas c;{for
(;i<225;m[12][13]=2)m[x=i%M][y=i++/M]=x<2|y<2|x>12|y>12?1:0;for(i=25;i>0;x=y=2)
if(m[x=(j=(int)(Math.random()*100))%5*2+3][y=j/5%5*2+3]<1&m[x+s[j/=25]*2][y+s[j
+1]*2]>0)m[x][y]=m[x+s[j]][y+s[j+1]]=i/i--;add(c=new Canvas(){{resize(200,200);
}public void paint(Graphics g){for(i=0;i<8;){u=(i+2)%3-1;v=2-i/3;j=s[d+1];j=m[x
+s[d]*u+j*v][y-j*u+s[d]*v];g.setColor(j>1?Color.RED:Color.GRAY);g.fillPolygon(
new Polygon(){{q=w[(i%3)*2/3+(i/3)*2];for(v=0;j>0&&v<q.length;addPoint(u/11*20,
u%11*20)){u=q[v++];u=i%3<1?120-u:u;}}});i++;}}});pack();show();}public boolean
keyDown(Event e,int k){k-=51;d=k>0&k<4?d+k&3:d;if(k==5&m[a=x+s[d+1]][b=y+s[d]]<
1){x=a;y=b;}c.repaint();return 1>0;}};}}
0668デフォルトの名無しさん
NGNGlittle endian 版、標準入力から読むようにして7行
unsigned*p,H[186]={0x67452301,0xefcdab89,0x98badcfe,271733878,0xc3d2e1f0},n,d,z
,l,h;L(c){((char*)p=H+90)[3^n++]=c;if(n>63){for(;z<80;p++)p[16]=++z>16?n=p[13]^
p[8]^p[2]^*p,n+n|n>>31:*p;for(memcpy(p-=85,H,20);z--;1[p--]=d<<30|d/4)d=p[1],n=
p[2],c=p[3],p[-1]=p[4]+(*p<<5|*p>>27)+H[185-z]+0x5a827999+(z/20&1?z>59?d&(n^c)^
c:882459459+(d&(n|c)|n&c):(z>39?341275144:0x6fe0483d)+(d^n^c));for(;z=n=H-p--;)
*p+=p[5];}}S(a){for(z=4;z;)L(a>>--z*8);}main(a){for(;~(a=getchar());h+=!(l+=8))
L(a);for(L(128);n-56;)L(0);for(S(h),S(l);z<5;)printf("%08x",H[z++]);}
0669デフォルトの名無しさん
NGNG20行 Lisp 期待してます。
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNGまずは逆ポーランド計算機だな。
Cならincludeを除いて2行くらいで書ければいけるかもしれぬ。
・・すでにあったような気がするけど、気のせいか。
0672デフォルトの名無しさん
NGNG7行で提出しる!
ってか、一度やってみてほしい。
0673665
NGNG0674ageとくか
NGNG大抵の宿題は7行よりはるかに短く書けてしまう罠
0675デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNGそれならq=w[(u==0?5:4)-v*2];とできる?
0678デフォルトの名無しさん
NGNG位置を(x,y)で管理せずにp=x*15+yとしたpで扱うとどうかな。
0680667
NGNG迷路を1次元配列で扱うようにしてすっきりしたので、別のところが縮むかも。
import java.awt.*;class M{public static void main(String[]a){new Frame(){Canvas
c;int[]s={1,-15,-1,15,1},q,w[]={{36,48,50,40,7,3},{36,80,84,40},{12,36,40,20,9,
1},{12,100,108,20},{0,12,20,10}};int d,u,v,a,i,j,m[]=new int[225],p;{for(;i<225
;m[193]=2)m[i]=i<30|i>194|(2+i++)%15<4?1:0;for(i=25;i>0;p=32){p=(j=(int)(Math.
random()*100))/4;if(m[p=p/5*20+p*2+48]<1&m[p+s[j%=4]*2]>0)m[p]=m[p+s[j]]=i/i--;
}add(c=new Canvas(){{resize(200,200);}public void paint(Graphics g){for(i=0;i<8
;i++){u=(i+2)%3-1;v=2-i/3;j=m[p+s[d]*v-s[d+1]*u];g.setColor(j>1?Color.RED:Color
.GRAY);g.fillPolygon(new Polygon(){{q=w[(u==0?5:4)-v*2];for(v=0;j>0&v<q.length;
addPoint(u/11*20,u%11*20)){u=q[v++];u=i%3<1?120-u:u;}}});}}});pack();show();}
public boolean keyDown(Event e,int k){k-=51;d=k>0&k<4?d+k&3:d;if(k==5&m[a=p+s[d
]]<1)p=a;c.repaint();return 1>0;}};}}
0681デフォルトの名無しさん
NGNG絶対に壁が置かれる25点を順番に調べて、その4方位の壁の無い部分をランダムで選択。
少し短く&速くなるのではないかな。
0683667
NGNGimport java.awt.*;class M{public static void main(String[]a){new Frame(){int d,
u,v,i,j,p;int[]s={1,-15,-1,15,1},q,m=new int[225],w[]={{36,48,50,40,7,3},{36,80
,84,40},{12,36,40,20,9,1},{12,100,108,20},{0,12,20,10}};Canvas c=new Canvas(){{
resize(200,200);}public void paint(Graphics g){for(i=0;i<8;i++){u=(i+2)%3-1;v=2
-i/3;j=m[p+s[d]*v-s[d+1]*u];g.setColor(j>1?Color.RED:Color.GRAY);g.fillPolygon(
new Polygon(){{q=w[(u==0?5:4)-v*2];for(v=0;j>0&v<q.length;addPoint(u/11*20,u%11
*20)){u=q[v++];u=i%3<1?120-u:u;}}});}}};{for(;i<225;m[193]=2)m[i]=i<30|i>194|(2
+i++)%15<4?1:0;for(;j<25;p=32)if(m[(p=j/5*20+j*2+48)+s[i=(int)(Math.random()*4)
]*2]>0)m[p]=m[p+s[i]]=++j/j;add(c);pack();show();}public boolean keyDown(Event
e,int k){k-=51;d=k>0&k<4?d+k&3:d;if(k==5&m[k=p+s[d]]<1)p=k;c.repaint();return 1
>0;}};}}
0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNG>>5
0686デフォルトの名無しさん
NGNGFORTHにしる!
0687デフォルトの名無しさん
NGNGここいらで限界です。
import java.awt.*;class M{public static void main(String[]a){new Frame(){int[]s
={1,-15,-1,15,1},m=new int[225],w={48,50,40,7,3,36,80,84,40,40,40,36,12,1,9,20,
20,20,108,100,12,20,10,0,0,0};int d,u,v,i,j,p,q;Canvas c=new Canvas(){{resize(
200,200);}public void paint(Graphics g){for(i=0;i<8;g.fillPolygon(new Polygon()
{{for(v=0;j>0&v<6;addPoint(u/11*20,u%11*20)){u=w[(i%3)/2*5+i/3*10+v++];u=i%3<1?
120-u:u;}i++;}}))g.setColor(new Color(j=m[p+s[d]*(2-i/3)-s[d+1]*((i+2)%3-1)]<<
23));}};{for(;i<225;m[193]=2)m[i]=i<30|i>194|(2+i++)%15<4?1:0;for(;j<25;p=32)if
(m[(p=j/5*20+j*2+48)+s[i=(int)(Math.random()*4)]*2]>0)m[p]=m[p+s[i]]=++j/j;add(
c);pack();show();}public boolean keyDown(Event e,int k){k-=51;d=k>0&k<4?d+k&3:d
;if(k==5&m[k=p+s[d]]<1)p=k;c.repaint();return 1>0;}};}}
0688デフォルトの名無しさん
NGNGなかなか短くなってるけど、もっと減らさないとだめそうだね
キー入力判定部分と、迷路描画部分が短くなりそうだけど
予約語と定数が多いので、7行化はかなり困難げ
0689688
NGNGu,v,i,j,p;int[]s={1,-15,-1,15,1},m=new int[u=240],w={48,50,40,7,3,36,80,84,40,
40,40,36,12,1,9,20,20,20,108,100,12,20,10,0,0,0};Canvas c=new Canvas(){{resize(
u,u);}public void paint(Graphics g){for(i=-1;++i<8;g.fillPolygon(new Polygon(){
{for(v=0;j>0&v<6;addPoint((i%3<1?120-u:u)/11*24,u%11*24))u=w[(i%3)/2*5+i/3*10+v
++];}}))g.setColor(new Color(j=m[p+s[d]*(2-i/3)-s[d+1]*((i+2)%3-1)]<<23));}};{
for(p=32;i<u;)m[i]=i<30|i>194|(2+i++)%15<4?1:0;for(m[193]=2;j<25;)m[v=j/5*20+j*
2+48]=m[v+s[i=(int)(Math.random()*4)]]=m[v+s[i]*2]>0?++j/j:0;add(c);pack();show
();}public boolean keyDown(Event e,int k){k-=51;d=k>0&k<4?d+k&3:d;p=k==5&m[k=p+
s[d]]<1?k:p;c.repaint();return 1>0;}};}}
>>687私にはこれ以上は無理でした。パラダイムシフトを期待して、あげ。
0690561
NGNG色んなテクニックがあって、ほんと参考になります。
>689
「パラダイムシフト」なんてレベルではありませんが、ちょっと短くなりました。
(M.java : 現在10行[9行+19文字])
import java.awt.*;class M{public static void main(String[]a){new Frame(){int d,
u,i,j,p;int[]s={1,-15,-1,15,1},w={0,0,u=12,u,u,100,1,u,p=36,p,p,80,3,p,48},m=
new int[u=240];Canvas c=new Canvas(){{resize(u,u);}public void paint(Graphics g
){for(i=9;--i>0;g.fillPolygon(new Polygon(){{for(j=j/2*6-1;++j<6;addPoint((i%3<
2?120-u:u)/11*24,(j<3?120-u:u)%11*24))u=w[(i%3+1)/2*3+i/3*6+(j<3?j:5-j)-3];}}))
g.setColor(new Color((j=m[p+i/3*s[d]-((i+1)%3-1)*s[d+1]])<<23));}};{for(;i<165;
)m[i+28]=i++%15<4?0:2;for(m[193]=1;j<25;p=32)m[p=j/5*20+j*2+48]=m[p+s[i=(int)(
Math.random()*4)]]=m[p+s[i]*2]<2?++j*0:2;add(c);pack();show();}public boolean
keyDown(Event e,int k){k-=51;p=k==5&m[k=p+s[d=k>0&k<4?d+k&3:d]]>1?k:p;c.repaint
();return 1>0;}};}}
通路=0,壁=1,扉=2だったのを、通路=2,壁=0,扉=1にしました。
迷路の初期化部分が短縮できたようです。
また、この結果「茶色の中を黒い部分を目指す」が「黒の中を茶色い部分を目指す」とな
ります。
さらに、壁ポリゴンが一枚あたり5(+1)データだったのを、3データに減らしました。
ただ、このせいでaddPointの辺りがちょっと冗長ぎみに…。
0691デフォルトの名無しさん
NGNG配列sをwとまとめる(sはwで置き換え)。宣言も[]をまとめる。
int d,u,i,j,p,w[]={1,-15,-1,15,1,0,0,u=12,u,u,100,1,u,p=36,p,p,80,3,p,48},m[]=new int[u=240];
壁描画部分で、もとwとのずれを修正。
u=w[(i%3+1)/2*3+i/3*6+(j<3?j:5-j)+2];
0692561
NGNGimport java.awt.*;class M{public static void main(String[]a){new Frame(){int d,
u,i,j,p,w[]={1,-15,-1,15,1,0,0,u=12,u,u,100,1,u,p=36,p,p,80,3,p,48},m[]=new int
[u=240];Canvas c=new Canvas(){{resize(u,u);}public void paint(Graphics g){for(i
=9;--i>0;g.fillPolygon(new Polygon(){{for(j=j/2*6;j<6;addPoint((i%3<2?120-u:u)/
11*24,(j++<3?120-u:u)%11*24))u=w[i*i%3*3+i/3*6+(j*j%5+8)/3];}}))g.setColor(new
Color((j=m[p+i/3*w[d]-(-~i%3-1)*w[d+1]])<<23));}};{for(add(c);i<165;m[193]=1)m[
i+28]=i++%15<4?0:2;for(pack();j<25;p=32)m[p=j/5*20+j*2+48]=m[p+w[i=(int)(Math.
random()*4)]]=m[p+w[i]*2]<2?++j*0:2;show();}public boolean keyDown(Event e,int
k){k-=51;p=k==5&m[k=p+w[d=k>0&k<4?d+k&3:d]]>1?k:p;c.repaint();return 1>0;}};}}
>691
どうもです。役立ちました〜。
あと、いくつか狡いテクニックを駆使しました(笑)
・n+1と-~nが等価であるため、"(i+1)%3"を"-~i%3"へ変更。
単項演算子は優先順位が高いので括弧が不要になります。(せこ)
・n*n%3の数列が0,1,1,0,1,1,...になることを利用して、
"(i%3+1)/2*3"を"i*i%3*3"に変更。
・n*n%5の数列がn=0〜5では0,1,4,4,1,0になることを利用して、
"(j<3?j:5-j)-2"を"(j*j%5+8)/3"に置き換え。
ソース見ても、何やってるのか分からない状態に…(^^;)
0693デフォルトの名無しさん
NGNGアプレット版を作ってみました。クラス名変えてます。
appletviewerでは動いたけど、IE5.5だとだめでした。
-(-~i%3-1) って、 +(1-~i%3) でも良い?
import java.awt.*;public class N extends java.applet.Applet{int d,u,i,j,p,w[]={
1,-15,-1,15,1,0,0,u=12,u,u,100,1,u,p=36,p,p,80,3,p,48},m[]=new int[u=240],x=120
;public void paint(Graphics g){for(i=9;--i>0;g.fillPolygon(new Polygon(){{for(j
=j/2*6;j<6;addPoint((i%3<2?x-u:u)/11*24,(j++<3?x-u:u)%11*24))u=w[i*i%3*3+i/3*6+
(j*j%5+8)/3];}}))g.setColor(new Color((j=m[p+i/3*w[d]+(1-~i%3)*w[d+1]])<<23));}
{for(;i<165;m[193]=1)m[i+28]=i++%15<4?0:2;for(;j<25;p=32)m[p=j/5*20+j*2+48]=m[p
+w[i=(int)(Math.random()*4)]]=m[p+w[i]*2]<2?++j*0:2;}public boolean keyDown(
Event e,int k){k-=51;p=k==5&m[k=p+w[d=k>0&k<4?d+k&3:d]]>1?k:p;repaint();return
1>0;}}
<HTML><BODY>
<APPLET code="N.class" width="240" height="240"></APPLET>
</BODY></HTML>
0694693
NGNG0695561
NGNGおっ、鋭いです〜。
ただ、"+(1-~i%3) "ではなくて"+(1+~i%3) "じゃないかな?
あと、
"w[i*i%3*3+i/3*6+(j*j%5+8)/3]"の部分は
"w[~-i*2/3*3+(j*j%5+17)/3]"と短縮できることが判明しました。
# x=120は無いほうがいいような…。
0696デフォルトの名無しさん
NGNG#include <stdio.h> /* encode:this.exe e in out / decode:this.exe d in out */
int i=1,p;main(int c,char*v[]){FILE*f=fopen(v[2],"rb"),*o=fopen(v[3],"wb");if(
*v[1]=='e'){p=fgetc(f);while((c=fgetc(f))>=0){if(!c-!p&&i<255)i++;else{fwrite(
&p,1,1,o);fwrite(&i,1,1,o);p=c;i=1;}}}else while((c=fgetc(f))>=0){if((p=fgetc(
f))<0)break;for(i=0;i<p;i++)fwrite(&c,1,1,o);}}
0697デフォルトの名無しさん
NGNGだからね。概出ものを持ってくるときはね、何か一工夫してほしいのね。
2行で書くとかね、良いアイデア・工夫があるとかね、面白くなってるとかね。
http://pc3.2ch.net/test/read.cgi/tech/984182993/101
0698デフォルトの名無しさん
NGNGふと気が付いた、何でCanvas使っているんだろう?
というわけで、40文字くらい減らせました。
import java.awt.*;class M{public static void main(String[]a){new Frame(){int d,
u,i,j,p,w[]={1,-15,-1,15,1,0,0,u=12,u,u,100,1,u,p=36,p,p,80,3,p,48},m[]=new int
[u=240];public void paint(Graphics g){for(i=9;--i>0;g.fillPolygon(new Polygon()
{{for(j=j/2*6;j<6;addPoint((i%3<2?120-u:u)/11*24,(j++<3?120-u:u)%11*24))u=w[~-i
*2/3*3+(j*j%5+17)/3];}}))g.setColor(new Color((j=m[p+i/3*w[d]+(~i%3+1)*w[d+1]])
<<23));}{for(resize(u,u);i<165;m[193]=1)m[i+28]=i++%15<4?0:2;for(;j<25;p=32)m[p
=j/5*20+j*2+48]=m[p+w[i=(int)(Math.random()*4)]]=m[p+w[i]*2]<2?++j*0:2;show();}
public boolean keyDown(Event e,int k){k-=51;p=k==5&m[k=p+w[d=k>0&k<4?d+k&3:d]]>
1?k:p;repaint();return 1>0;}};}}
0699デフォルトの名無しさん
NGNG2行でおながいします。
0700デフォルトの名無しさん
NGNG指摘すべきはツッコミどころ満載のコードの方だと思うのだが
0701デフォルトの名無しさん
NGNGプログラムのミスを修正した上で、標準入出力を使用。2行と27文字。むぅ。
符号化は引数(何でも良い)を付け、復号は何も付けない。
int putchar(),i,p,(*o)()=putchar;main(int c){if(c<2)while(~(c=getchar()))for(i=
getchar();i-->=0;)o(c);else{for(p=getchar();~(c=getchar());)i=c-p||i>254?o(p),o
(i),p=c,0:i+1;o(p);o(i);}}
0702デフォルトの名無しさん
NGNGint putchar(),i,p,c,(*o)()=putchar;main(int v){for((v=v>1)?p=getchar():0;~(c=
getchar());i=v&&c-p||i>254?o(p),o(i),p=c,0:i+1)if(!v)for(i=getchar();i-->=0;)o(
c);v?o(p),o(i):0;}
0703デフォルトの名無しさん
NGNG現在10行
import java.awt.*;class F{public static void main(String[]a){new Frame(){double
x,y,s,t;int N,M,i,j,k,r,z[]=new int[6],h[]=new int[M=150];double[]a={.05,.05,
.46,.47,t=.42,t},b={0,0,-.32,-.15,.28,.26},c={0,0,.39,.17,-.25,-.35},d={.6,-.5,
.38,t,.45,.31,0,1,.6,1.1,1,.7},p=new double[6];{resize(600,600);show();}public
void paint(Graphics g){for(;i<6;s+=p[z[i]=i++])p[i]=Math.abs(a[i]*d[i]-b[i]*c[i
]);for(;j<6;z[k]=r){for(k=i=j;++i<6;)k=p[i]<p[k]?i:k;t=p[j];p[j]=p[k];p[k]=t;r=
z[j];z[j++]=z[k];}r=M;for(i=0;i<6;s-=p[i++])for(k=(int)(r*p[i]/s+.5);k-->0;)h[
--r]=z[i];for(i=0;i<50000;i++){j=h[(int)(Math.random()*M)];g.setColor(new Color
(1<<(r>1&N>1&k>1&j>1?15:23)));r=N;N=k;t=a[k=j]*x+b[j]*y;y=c[j]*x+d[j]*y+d[6+j];
x=t;if(i>9)g.drawRect(300+(int)(250*x),550-(int)(250*y),0,0);}}};}}
0704703
NGNG9行になりました。
import java.awt.*;class F{public static void main(String[]a){new Frame(){double
x,y,s,t;int M=150,N=M,i,j,k,r,z[]=new int[156];double[]a={.05,.05,.46,.47,t=.42
,t},b={0,0,-.32,-.15,.28,.26},c={0,0,.39,.17,-.25,-.35},d={.6,-.5,.38,t,.45,.31
,0,1,.6,1.1,1,.7},p=new double[6];{for(resize(600,600);i<6;s+=p[z[i]=i++])p[i]=
Math.abs(a[i]*d[i]-b[i]*c[i]);for(;j<6;s-=p[j++])for(k=(int)(N*p[j]/s+.5);k-->0
;)z[--N+6]=z[j];show();}public void paint(Graphics g){for(i=0;i<50000;i++){j=z[
(int)(Math.random()*M)+6];g.setColor(new Color(1<<(r>1&N>1&k>1&j>1?15:23)));r=N
;N=k;t=a[k=j]*x+b[j]*y;y=c[j]*x+d[j]*y+d[6+j];x=t;g.drawRect(300+(int)(250*x),
550-(int)(250*y),0,0);}}};}}
0705703
NGNGimport java.awt.*;class F{public static void main(String[]a){new Frame(){int M,
N,i,j,k,r,z[]=new int[k=600],w[]={7,6,74,55,64,55};double x,y,t,a[]={.05,.05,x=
.46,x,t=.42,t,0,0,-.32,-.15,y=.26,y},c[]={0,0,.4,.17,-y,-.35,.6,-.5,.38,t,x,.31
,0,1,.6,1.1,1,.7};public void paint(Graphics g){for(i=0;i++<M*M;g.drawRect(300+
(int)(280*x),550-(int)(250*y),0,0)){j=z[(int)(Math.random()*M)];g.setColor(new
Color(1<<(r>1&N>1&k>1&j>1?15:23)));r=N;N=k;t=a[k=j]*x+a[6+j]*y;y=c[j]*x+c[6+j]*
y+c[12+j];x=t;}}{for(resize(k,k);i<6;i++)for(;w[i]-->0;)z[M++]=i;show();}};}}
0706デフォルトの名無しさん
NGNG何でこんなに夢中になる人がいるのか理解不能。
0707デフォルトの名無しさん
NGNG俺はあんたが理解不能。tiny.objでも使ってろヴォケ
0708デフォルトの名無しさん
NGNGコンパイル概念の無い言語はどうすればいいんだ
0709デフォルトの名無しさん
NGNGそこそこ勉強にもなるし。
0710デフォルトの名無しさん
NGNGトリッキープログラムに近いためか、プログラムの読解力がついた。
また反面教師にして、小難しいロジックを組まないようなプログラミングをするようになった。
0711デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/984182993/209
import java.awt.*;class R{public static void main(String[]a){new Frame(){double
a,b,c,d,R;int x,y,w,z=255;{resize(z,z);show();}public void paint(Graphics g){
for(;y<z;y++)for(x=0;x<z;g.drawRect(x++,y+20,0,0))g.setColor(new Color(w=L(new
V(x-128,y-128,100),new V(0,0,200)),w,w));}int L(V A,V B){a=A.c(A);b=A.c(B);c=B.
c(B)-10000;R=(Math.sqrt(d=b*b-a*c)-b)/a;if(d>0){V N=new V(A.x*R,A.y*R,A.z*R);N.
n();R=(N.x+N.y-N.z)/Math.sqrt(3);A.x-=B.x;A.y-=B.y;A.z-=B.z;a=-N.c(A);N.x=2*N.x
*a+A.x;N.y=2*N.y*a+A.y;N.z=2*N.z*a+A.z;w=(int)(F(N)*R);return R>0?(w>0?w:(int)(
R*z)):30;}return F(A);}int F(V A){a=A.x;b=10000-A.r;c=A.y==0?0:b/A.y;return c>0
?((((a*c>0?a*c+b/2:-a*c)%b)>b/2)^(((A.z*c+200)%b)>b/2)?100:200):0;}};}}class V{
double x,y,z,r;V(double a,double b,double c){x=a;y=b;z=c;}V(V a){x=a.x;y=a.y;z=
a.z;}double c(V s){return x*s.x+y*s.y+z*s.z;}void n(){r=Math.sqrt(x*x+y*y+z*z);
x/=r;y/=r;z/=r;}}
0712デフォルトの名無しさん
NGNG七オメ
0713デフォルトの名無しさん
NGNGところで、ここにはってあるソースを
public class hoge {
.....
}
みたいな風に簡単に戻す方法ないですか。
やっぱ手動ですか?
0714デフォルトの名無しさん
NGNG>>3 の下のほう。C用だけど。
0716デフォルトの名無しさん
NGNG展開しても10数行だから、漏れは手動でしてる。
Java用を>>713が作るってのはどうだね?
0717デフォルトの名無しさん
NGNGforとか例外部分は手で直す
0718デフォルトの名無しさん
NGNGそれを7行プログラムでするのに、意味があるんだろ
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNGグラフィックスが入ると、何だかすごいぞ、って感じがするね。
もちろん圧縮などもすごいんだけど、視覚に訴えるのは大きい。
0721デフォルトの名無しさん
NGNG住人のメンツかわんの早そうなスレだな。
0723デフォルトの名無しさん
NGNG0724665
NGNGこれで>665のlittle endian用もinclude以外が7行、と
#つー訳で>668氏の7行標準入力版も更に短縮可能
#include <stdio.h>
size_t*p,*q,H[186]={0x67452301,0xefcdab89,0,271733878,0xc3d2e1f0},n,d,z,l,h;L(c
){((char*)q=H+90)[3^n++]=c;if(n>63){for(n=80,p=memcpy(q-5,H,20);n;1[p--]=d<<30|
d/4)d=q[13]^q[8]^q[2]^*q,q[16]=d+d|d>>31,d=p[1],z=p[2],c=p[3],p[-1]=(*p<<5|*p>>
27)+p[4]+0x5a827999+*q+++(--n/5&4?n>39?c^d&(z^c):882459459+(d&(z|c)|z&c):(n>39?
341275144:0x6fe0483d)+(d^z^c));for(;H-p--;)*p+=p[5];}}S(a){for(h=4;h--;)L(a>>h*
8);}main(a,v)char**v;{FILE*f=fopen(v[1],"rb");for(H[2]=~*H;~(a=getc(f));h+=!(l
+=8))L(a);for(L(128);n-56;)L(0);for(S(h),S(l);n<5;)printf("%08x",H[n++]);}
0725702
NGNGint putchar(),i,p,c,(*o)()=putchar;main(v){for(--v?p=getchar():0;~(c=getchar())
;i=v&&c-p||i>254?o(p),o(i),p=c,0:i+1)if(!v)for(i=getchar();i-->=0;)o(c);v?o(p),
o(i):0;}
0726デフォルトの名無しさん
NGNG0727702
NGNGint i,p,c;f(x){putchar(x);}main(v){for(--v?p=getchar():0;~(c=getchar());i=v&&c-
p||i>254?f(p),f(i),p=c,0:i+1)if(!v)for(i=getchar();~i--;)f(c);v?f(p),f(i):0;}
0728デフォルトの名無しさん
NGNGint c,p,i;f(x){putchar(x);}main(v){for(p=getchar(),--v;~(c=getchar());p=v?i=254
<i||p-c?f(p),f(i),0:i+1,c:getchar())for(;!v&&~c--;f(p));v*~p?f(p),f(i):0;}
0729デフォルトの名無しさん
NGNGexec filename1 filename2 ...
で標準出力に吐き出す
引数なしなら標準出力から読み込んで展開
上のほうの圧縮を組み合わせて使うと吉。かも。
#include <stdio.h>
char n[256];int main(int a,char**v){int(*g)()=getchar,i,c;FILE*f;size_t s;if(a-
1){printf("%d\n",a);for(i=1;i<a;i++){f=fopen(v[i],"rb");fseek(f,0,SEEK_END);s=
ftell(f);printf("%s\n%u\n",v[i],s);fseek(f,0,SEEK_SET);while((c=fgetc(f))!=EOF)
putchar(c);fclose(f);}}else{scanf("%d",&a);g();for(;--a;){gets(n);scanf("%d",&s
);g();f=fopen(n,"wb");for(;s--;){fputc(g(),f);}fclose(f);}}return 0;}
0730デフォルトの名無しさん
NGNG本当はブートシーケンスでバーがくるくる回るところを表示したかったが、
プログラムが長くなっちゃってだめでした。
文章データは前スレのrangecoderをu=128で使用後、8x3=6ビットx4に変更後、+49している。
char t[]="Rm19aKD8`a:GGAa<?Hnn`lc94BhK<oYZa8VOOl=6Ifb1d]f\\`TQfMUiVfa[D`C7fEX?"
"=ImOhIg?8AAlTpio4IeKYX9]h3Qh]2cbL1RF^]4]_?9PS8ThmObf:\\1`oih:YG9@c?7?MenXQiQa"
"Q=3T`[K<L@T?>34l55Zjj2_dBpMF1npY;GH3@CojA3nYW3XZ8MH5H5\\Na1QV7Cg9jdJU\\@K;MjJ"
":IemMXN]\\9j3]YP78Wf31HU9TVhd58oi8An^AVECjm4LAI7iU:aPOPEB?iK:@_YY9=Recl`]nU<?"
"MBU^PWhV[MkS8Pi]d__G<95Ll3pU3`l44l2h[d:794YSYCf]U_g]1^jBUbBO93`V=]",*s=t;
unsigned*p,W,O=357,u=128,b=360,a[999],R=~0,x=256;f(){W=W*x|*p++;}main(K){for(p=
a+u;*s;)*s++-=49;for(s=t;b>0;b-=4)*p++=s[0]*4|s[1]>>4,*p++=(s[1]<<4|s[2]/4)%x,
*p++=(s[2]<<6|s[3])%x,s+=4;p=a+u;for(f(f(f(f())));O--;R*=a[b]){for(K=b=0;R<1<<
24;R*=x)f();for(R/=u++;W/R>=K;K+=a[b++]+1);W-=R*(K-++a[putchar(--b)]);}}
0731デフォルトの名無しさん
NGNG7行スレでそんな丁寧なプログラムを書かなくても・・・
つーわけで、今縮め中です。
0732731
NGNGアーカイブのフォーマットを変更しちゃいました。
RLE(>>728)と組み合わせることで、圧縮書庫が7行でできそうですね。
# SEEK_END=2って規定されてましたっけ?
#include <stdio.h>
char n[256];int i,c;main(int a,char**v){FILE*f,*o;if(a-1)for(putw(a,o=stdout);
--a;)for(fseek(f=fopen(v[++i],"rb"),0,SEEK_END),puts(v[i]),putw(ftell(f),o),
rewind(f);~(c=getc(f));)putchar(c);else for(a=getw(o=stdin);--a;)for(f=fopen(
gets(n),"wb"),c=getw(o);c--;)putc(getchar(),f);}
0733デフォルトの名無しさん
NGNG規定されてない。
そもそも、EOF=-1も規定されてないからどっちにしろ処理系依存
0734デフォルトの名無しさん
NGNGEOF=-1をこのスレではいつの間にかデフォルトで使ってるよなぁ
SEEK_???もデフォルトしちゃえ!
ついでにi=i++も!
0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNGSEEK_END=2の使用はデフォルトってことでいいのかな
このくらいちぢまればRLE圧縮も組み込めるかな
ちぢめすぎてかえって組み込めなくなる罠かもしれない
#include <stdio.h>
char n[256];int i,c,b;main(a,v)char**v;{FILE*f,*o;b=a-1;for(b?putw(a,o=stdout):
(a=getw(o=stdin));--a;){f=fopen(b?v[++i]:gets(n),b?"rb":"wb");for(b?fseek(f,0,2
),puts(v[i]),putw(ftell(f),o),rewind(f),0:(i=getw(o));b?~(c=getc(f)):i--;)putc(
b?c:getc(o),b?o:f);}}
0737デフォルトの名無しさん
NGNGどっちにしろこのスレでは縮むならある程度の処理系依存は
容認の方針だと思うけど
0738デフォルトの名無しさん
NGNGまぁ、このスレで議論する分には困らないと思われ。
perlだとSEEK_*と0,1,2のどちらを使っても一致することが明記されてるんだけど。
0739デフォルトの名無しさん
NGNG#まだ100文字程あるから前スレRLEでも7行いけるかな?
#include <stdio.h>
FILE*f,*o;char n[256];int i,c,b,p,q;r(){return b?getc(f):i<=0?-1:getc(o);}w(x){
putc(x,b?o:f);}main(a,v)char**v;{for(!(b=a-1)?a=getw(o=stdin):putw(a,o=stdout);
--a;b*~p?w(p),w(q):0)for(f=fopen(b?v[++i]:gets(n),b?"rb":"wb"),b?fseek(f,q=0,2)
,puts(v[i]),putw(ftell(f),o),rewind(f),0:(i=getw(o)),p=r();~(c=r());p=b?q=q>254
||p-c?w(p),w(q),0:q+1,c:r())for(b||(i+=~c);!b&&~c--;)w(p);}
0741デフォルトの名無しさん
NGNGfcloseを入れたので多い日も安心
#include <stdio.h>
FILE*f,*o;char n[256];int i,c,b,p,q;r(){return b?getc(f):i<=0?-1:getc(o);}w(x){
putc(x,b?o:f);}main(a,v)char**v;{for(!(b=a-1)?a=getw(o=stdin):putw(a,o=stdout);
--a;b*q?w(p),w(q):0,fclose(f))for(f=fopen(b?v[++i]:gets(n),b?"rb":"wb"),b?fseek
(f,q=0,2),puts(v[i]),putw(ftell(f),o),rewind(f),0:(i=getw(o)),p=-1;~(c=r());p=b
?q=p-c||q>254?q?w(p),w(q):0,w(c),0:q+1,c:c-p?c:r())for(b||(q=c-p?~p?0:-1:r(),i
+=~q);!b&&~q--;)w(p);}
0742729
NGNG圧縮までして7行ですか!恐れ入りましたすばらしいです。
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNG圧縮+書庫化するだけ、ならばrangecoderでもできるだろうけどね。
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNG何かキーを押すとスタート、ストップ、リスタート。
動く丸を四角の中で止めてください。赤くなれば成功!
import java.awt.*;class S{public static void main(String[]a){new Frame(){int u=
2,p,t,s,c;void L(){u=p=0;t=1;s=(int)(Math.random()*8+2);c=150/s+19;}{resize(350
,200);show();try{for(;;Thread.sleep(s)){p=p+t;if(p>300)u=2;if(u==1)if(--c<1){t=
0;u=2;}for(repaint();u>1;);}}catch(Exception e){}}public void paint(Graphics g)
{g.setColor(t<1&p>249&p<281?Color.RED:Color.BLACK);g.drawOval(p,75,50,50);g.
drawRect(250,60,80,80);}public boolean keyDown(Event e,int y){u=u<1?1:u;if(u>1)
L();return 1>0;}};}}
0747デフォルトの名無しさん
NGNGb||~q--だとb!=0の時に無限ループする
0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG但し毎回木を更新するので滅茶苦茶重い(w
圧縮
int*a[258],n[2060],o[257],*r,*p,*q,c,f,i,j,k;Q(int**a,int**b){return**b-**a;}W(
a,b){for(;b--;++i>7?putchar(f),i=f=0:0)f+=f+(a>>b)%2;}S(s){for(r=n,j=k;j++<258;
r+=4)*r?a[k++]=r:0;for(;--k;r+=4){qsort(a,k+1,4,Q);a[k-1][1]=a[k][1]=r-n;*r=*a[
k-1]+*a[k];r[2]=a[k-1]-n;r[3]=a[k]-n;a[k-1]=r;}for(r=n+s;r-*a;r=q)o[k++]=r-n!=2
[q=n+r[1]];for(;k;)W(o[--k],1);}main(){for(*n=n[4]=1;~c;S(*p?p-n:0),(*p)++||W(c
,8))p=n+(c=getchar())*4+8;W(0,7);}
展開
int*a[258],n[2060],o[257],*r,*p,*q,c,f,i,j,k;Q(int**a,int**b){return**b-**a;}R(
a){for(c=0;a--;c+=c+(f>>--i)%2)f=!i?i=8,getchar():f;return c;}L(){for(r=n,j=k;j
++<258;r+=4)*r?a[k++]=r:0;for(;--k;r+=4){qsort(a,k+1,4,Q);a[k-1][1]=a[k][1]=r-n
;*r=*a[k-1]+*a[k];r[2]=a[k-1]-n;r[3]=a[k]-n;a[k-1]=r;}for(r=*a;r[2]|r[3];r=n+r[
2+R(1)]);r-n||(r=n+R(8)*4+8);(*r)++;~(c=(r-n)/4-2)&&putchar(c);}main(){for(*n=n
[4]=1;~c;)L();}
0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNG何か引数があれば圧縮、なしで展開
int*a[258],n[2060],*r,*p,*q,c,f,i,k;Q(int**a,int**b){return**b-**a;}W(a,b){for(
;b--;++i>7?putchar(f),i=f=0:0)f+=f+(a>>b)%2;}R(a){for(c=0;a--;c+=(f>>--i)%2+c)f
=!i?i=8,getchar():f;}S(int*r){r-*a?S(n+r[1]),W(r-n!=n[r[1]+2],1):0;}L(){for(r=*
a;r[2]|r[3];r=n+r[2+c])R(1);}main(v){for(--v,*n=n[4]=1;~c;v?S(*(p=n+(c=getchar(
))*4+8)?p:n),(*p)++||W(c,8):(L(),r-n||(R(8),r=n+c*4+8),(*r)++,~(c=(r-n)/4-2)&&
putchar(c))){for(r=n;r-n<1032;r+=4)*r?a[k++]=r:0;for(;--k;p=a[k-1],q=a[k],p[1]=
q[1]=r-n,*r=*p+*q,r[2]=p-n,r[3]=q-n,a[k-1]=r,r+=4)qsort(a,k+1,4,Q);}v&&W(0,7);}
0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNGすばらしい! あげちゃえ。
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1024024666/136-
おいお前ら、これを7行に縮めてください。
#include <stdio.h>
int w[4]={1,-1,12,-12},s,d,h[3],b[132];r(int a, int c){int z,i;b[a]|=8;s++;for
(i=0;i<4;i++){z=a+w[i];if(b[z]==0)d++;if(b[z]==c)r(z,c);}b[a]&=3;}v(int a,int
c){int z,i;b[a]=0;for(i=0;i<4;i++){z=a+w[i];if(b[z]==c)v(z,c);}}int t(int u){
int m,e,g,z,i,k;m=e=0;for(z=0;z<132;z++){k=g=0;if(b[z])continue;for(i=0;i<4;i++
){if(b[z+w[i]]==u){d=s=0;r(z+w[i],1);k+=(d==1)*s*300+(d==2)*s*300+(d==3)*s*20;
}if(b[z+w[i]]==0)k+=10;else g++;}if(g==4)continue;if(k>m){m=k;e=z;}}return e;}
char *p="・○● \n";int main(){int c=1,u=2,z,x,y,i;for(i=0;i<132;i++){if((i+1
)%12==0)b[i]=4;else if(i%12==0||i<12||(i+2)%12==0||i>120)b[i]=3;}for(;;){for(i
=0;i<132;i++)printf("%.2s",&p[b[i]*2]);if(c==1){scanf("%d %d",&x,&y);z=y*12+x;
if(b[z]){printf("Err\n");continue;}}else{if((z=t(u))==0){printf("ps\n");break;
}}b[z]=c;for(i=0;i<4;i++){if(b[z+w[i]]==u){d=s=0;r(z+w[i],u);if(d==0){h[c]+=s;
v(z+w[i],u);}}}d=0;r(z,c);if(d==0)break;u=c;c=3-c;}return 0;}
0759オマケ月
NGNGmain(){printf("ファイア\nファイラ\nファイが!");}
0760デフォルトの名無しさん
NGNGやってくれたね...
0761758
NGNGちょっとだけ縮めてみた。十分7行になりそうだ。
int w[4]={1,-1,12,-12},s,d,h[3],b[132],c=1,u=2,x,y,i;r(a,c,f){int z,i;f?b[a]=0:
(b[a]|=8,s++);for(i=4;i--;b[z]==c&&r(z,c,f))d+=!b[z=a+w[i]];!f?b[a]&=3:0;}t(u){
int m,e,g,z,i,k;for(m=e=z=0;z<132;z++)if(k=g=0,!b[z]){for(i=4;i--;b[y]?g++:(k+=
10))if(b[y=z+w[i]]==u)d=s=0,r(y,1,0),k+=(d==1)*s*300+(d==2)*s*300+(d==3)*s*20;
if(g!=4)k>m?m=k,e=z:0;}return e;}char*p="・○● \n";main(z){for(i=132;i--;i%12
==11?b[i]=4:0)if(i%12==0||i<12||(i+2)%12==0||i>120)b[i]=3;for(;;){if(c==1){for(
i=10;i<119;)printf("%.2s",&p[b[i++]*2]);scanf("%d %d",&x,&y);if(b[z=y*12+x]){
puts("Err");continue;}}else if(!(z=t(u))){puts("ps");break;}b[z]=c;for(i=4;i--;
d=0)if(b[x=z+w[i]]==u)if(d=s=0,r(x,u,0),!d)h[c]+=s,r(x,u,1);r(z,c,0);if(!d)
break;u=c;c=3-c;}}
0762758
NGNG現在9行。ゲーム性の向上を目指し、
終了時にアゲハマを表示し、余分な改行を消しました。
int w[]={1,-1,12,-12},s,d=1,h[3],b[132],c=1,u=2,y,i=132,m,g,e,k;r(a,c,f,z,i){b[
a]=!f?s++,b[a]|8:0;for(i=4;i--;b[z]==c&&r(z,c,f))d+=!b[z=a+w[i]];!f?b[a]&=3:0;}
main(z){for(;i--;i%12==11?b[i]=4:0)i%12==0||i<12||i%12==10||i>120?b[i]=3:0;for(
;d;){if(c==1){for(i=10;i<120;)printf("%.2s",&("・○● \n"[b[i++]*2]));if(scanf
("%d %d",&k,&y),b[z=y*12+k]&&puts("Err"))continue;}else{for(m=e=z=0;e<132;e++)
if(k=g=0,!b[e]){for(i=4;i--;b[y]?g++:(k+=10))b[y=e+w[i]]==u?r(y,1,d=s=0),k+=(((
d==1)+(d==2))*15+(d==3))*s*20:0;g!=4&&k>m?m=k,z=e:0;}if(!z&&puts("ps"))break;}b
[z]=c;for(i=4;i--;)b[k=z+w[i]]==u?r(k,u,d=s=0),!d?h[c]+=s,r(k,u,1):0:0;r(z,u=c,
d=0);c=3-c;}printf("%d,%d\n",h[1],h[2]);}
0763デフォルトの名無しさん
NGNG;d;){if(c==1){for(i=10;i<120;)printf("%.2s",&("・○● \n"[b[i++]*2]));if(scanf
0764デフォルトの名無しさん
NGNGcはu^3で代用、それに伴いc==1→u-1等に変更
((d==1)+(d==2))→(d-1U<2)
i<12||略||i>120→i-12U>108||略
for(i=10;i<120;略&("・○● \n"[b[i++]*2)→for(i=9;i++<119;略"・○● \n"+b[i]*2
0766デフォルトの名無しさん
NGNGprintfって最後、\nしないと問題が出る環境なかった?
うろおぼえだけど
0767デフォルトの名無しさん
NGNGfor(;i--;b[i]=z-11?z&&z-10&&i-12U<109?0:3:4)z=i%12;
0768デフォルトの名無しさん
NGNGint w[]={1,-1,12,-12},s,d=1,h[3],b[132],u=2,y,i=132,m,g,e,k;r(a,c,f,z,i){b[a]=!
f?s++,b[a]|8:0;for(i=4;i--;b[z]-c||r(z,c,f))d+=!b[z=a+w[i]];!f?b[a]&=3:0;}main(
z){for(;i--;b[i]=z-11?z&&z-10&&i-12U<109?0:3:4)z=i%12;for(;d;){for(i=9;i++<119;
)printf("%.2s",&("・○● \n"[b[i]*2]));for(m=z=0;i--;g!=4&&k>m?m=k,z=i:0)for(k
=g=0,e=4*!b[i];e--;!b[y]?k+=10:g++)b[y=i+w[e]]==u?r(y,1,d=s=0),k+=((d-1U<2)*15+
(d==3))*s*20:0;if(u>1&&(scanf("%d %d",&k,&y),b[z=y*12+k]&&puts("Err")));else{if
(!z&&puts("ps"))break;for(i=4;i--;b[z]=u^3)b[k=z+w[i]]==u?r(k,u,d=s=0),!d?h[u]
+=s,r(k,u,1):0:0;r(z,u^=3,d=0);}}printf("%d,%d\n",h[2],h[1]);}
0769デフォルトの名無しさん
NGNG↓
printf("・\0○\0●\0 \0\n"+b[i]*3);
3文字か…
0770デフォルトの名無しさん
NGNGb[a]=f?0:~b[a];s++;
for(i=4;i--;b[z]-c||r(z,c,f))d+=!b[z=a+w[i]];
b[a]^=!f*~0;
3文字?
0771758
NGNGint w[]={1,-1,12,-12},s,d=1,h[3],b[132],u=2,y,i,m,g,e,k;r(a,c,f,z,i){b[a]=f?0:~
b[a];s++;for(i=4;i--;b[z]-c||r(z,c,f))d+=!b[z=a+w[i]];b[a]^=!f*~0;}main(z){for(
;d;){for(;i++<132;printf("・\0○\0●\0 \0\n"+(b[i]=z-11?z&&z-10&&i-12U<109?b[i
]:3:4)*3))z=i%12;for(m=z=0;i--;g!=4&&k>m?m=k,z=i:0)for(k=g=0,e=4*!b[i];e--;!b[y
]?k+=10:g++)b[y=i+w[e]]==u?r(y,1,d=s=0),k+=((d-1U<2)*15+(d==3))*s*20:0;if(u<2||
!(scanf("%d%d",&k,&y),b[z=y*12+k]&&puts("Err"))){if(!z&&puts("ps"))break;for(i=
4;i--;b[z]=u^3)b[k=z+w[i]]==u?r(k,u,d=s=0),!d?h[u]+=s,r(k,u,1):0:0;r(z,u^=3,d=0
);}}printf("%d,%d\n",h[2],h[1]);}
0772囲碁スレ136
NGNGもはや暗号だな。
0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG多倍長クラスとページングマネージャも書けと。
無理臭い
0776デフォルトの名無しさん
NGNGメモリさえあれば、数百万桁計算する程度なら7行でもできそうだ。
挑戦してみようかなぁ。
0777デフォルトの名無しさん
NGNG多倍長クラスはいらないのでは。
しかしアルゴリズムが分からない罠。
ttp://www.pluto.ai.kyutech.ac.jp/plt/matumoto/pi_small/_pi_small.html
たくさんあってどれが7行向きなのやら。
0778デフォルトの名無しさん
NGNG1桁ずつ計算する物じゃないぞ
0779デフォルトの名無しさん
NGNG一桁ずつできるけどね。やるかどうかは別として。
0780デフォルトの名無しさん
NGNGB0 13 CD 10 C4 2F AA 11 F8 64 13 06 6C 04 EB F6
0781デフォルトの名無しさん
NGNGメガデモスレから持ってこないで下さい。(w
http://farb-rausch.de/prod.html
0782デフォルトの名無しさん
NGNGこれ何?
0783デフォルトの名無しさん
NGNG<<< A.COM for MS-DOS ( use shift_jis ish ) [ 8 lines ] >>>
!!!&!!9Q!5"XRo"O"I->!C$oR6nt!&"HDm=NH,!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JF;v
!!!&!!9Q!5"XRo"O"I->!C$oR6nt!&"HDm=NH,!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JF;v
!!!&!!9Q!5"XRo"O"I->!C$oR6nt!&"HDm=NH,!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JF;v
%x/。」;掲僕ウFリ策ル」\EB機@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@q繆
。ツ0拆M3鐇Aェ物ォミ^2ンロCm@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UR「
」\VG・ュッ、{ャナ^・ヨH*j8Le+フ「ワVe、錦ラ;サヌ,Kヤ省竿58h3Q筰ミ隹峻Sスヨアヘニ゙妹4\覬レメノレウh岻屁搶ワ
--- A.COM (8/8) ---
0784デフォルトの名無しさん
NGNGだれかこの動作をマジレスしてください。
メガデモスレと言われても、あまりこの板にはこないから。
0785デフォルトの名無しさん
NGNG自分でやればわかるよ
0786デフォルトの名無しさん
NGNGいや、なんか怖い…。
format cよりも怖いです。
0787デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?sourceid=navclient&hl=ja&q=%22B0+13+CD+10+C4+2F+AA+11+F8+64+13+06+6C+04+EB+F6%22
目がちかちかする。
0788デフォルトの名無しさん
NGNG噂の「ポケモンフラッシュ」みたいなやつですか?
グロよりも苦手なんでよかった。
0789デフォルトの名無しさん
NGNG見てみりゃわかる。無害。
0790デフォルトの名無しさん
NGNG0791bloom
NGNGhttp://www.leverage.jp/bloom/start/
0792デフォルトの名無しさん
NGNGちょっと面白かった。
でもわずかにチカチカするのでちょっとだめかもw
フルスクリーンのせいでアプリをひとつ間違って閉じたのに気づかなかったぞゴルァ
0793デフォルトの名無しさん
NGNGもっと簡単に試したのではなかろうか。
main(){char data[]={...};fwrite(data,1,sizeof(data),stdout);}
みたく。
0794デフォルトの名無しさん
NGNGWin2k飛ばされますた
>>793
16バイトで出来てることに意味があるのでせう
逆アセンブルリスト見て嘆息
0795デフォルトの名無しさん
NGNG>>793みたいに文字列として埋め込むのはありでしょうか?
typedef int(*f)();
((f)"....")(); //呼び出し
0796デフォルトの名無しさん
NGNG良いと思うけど、普通は逆にオブジェクトコードが増えると思うよ
0797デフォルトの名無しさん
NGNG0798トリッキーの1
NGNG近いところでは囲碁面白いですね。でも囲碁のルールが解らないので残念です。
>>771
半角スペース2個は全角1個にしないと、貼り付けるときに消えてしまいますよ
それと、「3,3:4,4:2,4:2,5:2,6:2,8」と入力すると相手の石の上に自分の石が来るけれど、
これは囲碁のルールで正しいんですか?
0799デフォルトの名無しさん
NGNG使い方は>>752と同じ
同じ辞書を使い続ける6行版
int*Q,N[16384],S,T,U,V,F,G,P,C,X,Z;p(a,b){for(;b--;++S>7?putchar(T),S=T=0:0)T=T
+T|a>>b&1;}g(a){for(G=0;a--;G=G+G|V>>--U&1)!U?U=8,V=getchar():0;}a(){F<1<<12?1[
Q=N+F*4]=X,Q[2]=C,Q[3]=N[C*4],*Q=0,N[C*4]=F++:0;}r(x){p((x>256?r(N[x*4+2]),N[x*
4+1]:(X=x))-1,8);}main(c){for(G=F=257;G--;)1[Q=N+G*4]=G;for(--c?g(8),C=V+1:0;g(
c?8:12),c?C:~V;C=c?!Z?p(C,12),a(),X:Z:(G=X,r(Z<F?Z:C),Z<F||p(G-1,8),P++&&a(),Z)
)for(Z=c?X=V+1,N[C*4]:G;c*Z&&1[Q=N+Z*4]-X;Z=Q[3]);p(0,7);}
辞書が一杯になると再構築する7行版
int*Q,N[16384],S,T,U,V,F,G,P,C,X,Z;i(){for(G=F=257;G--;*Q=Q[2]=Q[3]=0)1[Q=N+G*4
]=G;}p(a,b){for(;b--;++S>7?putchar(T),S=T=0:0)T=T+T|a>>b&1;}g(a){for(G=0;a--;G=
G+G|V>>--U&1)!U?U=8,V=getchar():0;}a(){F<1<<12?1[Q=N+F*4]=X,Q[2]=C,Q[3]=N[C*4],
*Q=0,N[C*4]=F++:i();}r(x){p((x>256?r(N[x*4+2]),N[x*4+1]:(X=x))-1,8);}main(c){i(
);for(--c?g(8),C=V+1:0;g(c?8:12),c?C:~V;C=c?!Z?p(C,12),a(),X:Z:(G=X,r(Z<F?Z:C),
Z<F||p(G-1,8),P++&&a(),Z))for(Z=c?X=V+1,N[C*4]:G;c*Z&&1[Q=N+Z*4]-X;Z=Q[3]);p(0,
7);}
0800デフォルトの名無しさん
NGNGほらよ。多少の誤差には眼をつぶれや。
#include <stdio.h> // printf()
#include <stdlib.h> // rand()
int main(){
printf( "3.1415926535897932384626433832795" ) ;
for (;;) printf( "%d",rand() ) ;
return 0 ;
}
0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNG0804>>802
NGNG1文字オーバーなのは秘密だ。
0805デフォルトの名無しさん
NGNG外出だったりする
0806デフォルトの名無しさん
NGNG>>74 >>81やね
0807デフォルトの名無しさん
NGNG1文字縮めてみますた
printf(char*,...);main(){int z,i=1;for(;z=i++;z||printf("%d,",i))while(i%z--);}
0808804
NGNGそうか、|| か。なんかPerlっぽい。
0809デフォルトの名無しさん
NGNGgcc -ansi -pedantic だとprintf(char*,...)は通らず。
ANSI C forbids data definition with no type or storage class
printf()を削除すれば通るので、そっちの方がよい?
1文字縮めてみた。
printf(char*,...);main(z){int i=1;for(;z=i++;z||printf("%d,",i))while(i%z--);}
0810デフォルトの名無しさん
NGNGmain(i,z){for(;z=i++;z||printf("%d,",i))while(i%z--);}
0811デフォルトの名無しさん
NGNGbcc32でも動きますね。しかもgccよりも速かった。
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNG>>807 上記すべてのコンパイラでprintfの宣言がおかしいといわれますた。
>>812 短くするためならコンパイラどころかアーキテクチャすら選択するのが最近の風潮らしいです。
0814デフォルトの名無しさん
NGNGp2pの何だ?
0815デフォルトの名無しさん
NGNGコンパイルして実行したら、
1の列を指定すると落ちるんだけど。
(ex:1,5)
バグ?
0816デフォルトの名無しさん
NGNG囲碁、cygwin+gccやSolaris+ccでは正常らしい動作してますね
bcc32だと動作は正常のようでも、表示がおかしくなりますね
ANSI準拠っぽいソースだけど、どっかしらコンパイラ依存があるんでしょうね
>>771さんはいないようだし、ここはひとつトリッキーの1氏のご助力を!
0817デフォルトの名無しさん
NGNG…っと言っても>>810、VC++.NETでもdmc++でも通るな。
int printf(char*,...); ... にすれば>>809行けるね。
0818817
NGNGそれならOKか。
0819デフォルトの名無しさん
NGNG>main(i,z)
Cって引数の型を省略するとintになるってこと?
0820デフォルトの名無しさん
NGNG#include <stdio.h>
main(){printf("3.14159265358979323846264338327950288419716939937510582097494");
/* 以下略 */
}
よりも桁が多いことを願います。
とりあえず、職人さんに
(~~~゚∀~~)~~゚ メダマ ボーン
0821デフォルトの名無しさん
NGNGmain()
{
char* url = "http://www.prokofiev.ru/prikol/text/t5/pi.htm";
system(url);
return 0;
}
0822デフォルトの名無しさん
NGNG不特定多数なWinMXみたいな奴でなくて、
相手を登録して交換するスタイル。Grooveとかがそんな感じかなぁ。
七行でできたらビックリだけどね。CUIでそういうの聞いたことないし。
0823デフォルトの名無しさん
NGNGP2P=ファイル交換じゃないぞ
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNGぱっと思いつく最小のメディアであるFDに収まる1.44MBに入れば何だって同じ気が。
面白いけどね。
0826デフォルトの名無しさん
NGNG0827トリッキーの1
NGNG#include <stdio.h>
#define s ( 5000 /*←希望する桁数*/ /4+2)
int main(){int i,n,c,t,j,l,a[]={4,9},r[s][4]={0,0,8,12},k=10000;for(n=0;n<s*15
;n++)for(i=0;i<2;i++){for(c=t=j=0;j<s;r[j++][i]+=((n&1)*-2+1)*l/(2*n+1))t=(l=k
*t+r[j][i+2])%a[i],c=(l=k*c+(r[j][i+2]=l/a[i]))%(2*n+1);for(t=0,j--;j+1;r[j--]
[i]%=k)t=(r[j][i]+=k+t)/k-1;}for(i=s-(t=1);i+1;*r[i--]%=k)t=(*r[i]=k+*r[i]+r[i
][1]+t)/k-1;printf("%d.",**r);for(i=1;i<s-1;printf("%04d",*r[i++]));return 0;}
0828トリッキーの1
NGNG0829デフォルトの名無しさん
NGNG7行にするのって、1字1字縮める技術ももちろんあるけれど、
組む前にデータ構造とアルゴリズムをなるべく文字数を減らすことを念頭に
構想する才能が必要だと思うが、それは知識と知恵の両方を要求するよね。
色々なネタで7行達成している常連の職人さんたちはかなりハイレベルだと思った。
0830デフォルトの名無しさん
NGNGどうにかならんもんかねぇ。
名無しで新しいアイデア出てきても「たいしたことない」と言ってのけるのに。
0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNG有名人をよいしょしているわけではなく、
優れたプログラムを書く人をほめているのでは?
0833デフォルトの名無しさん
NGNGUNISYSに通報しますた
0834デフォルトの名無しさん
NGNG作品いっぱい出るのはいいことだし、批評はその作者の次に繋がるので良し!
でも830、無意味な煽りは入れない!
次のネタいきましょう、次。
0835デフォルトの名無しさん
NGNG・FORTH や C, LISP, BASICなどのプログラミング言語のサブセット
・囲碁
・>>533の前スレの未達成もののうち、このスレでも未達成のもの
特に言語ものは20行以下になったらとりあえず見せて欲しいなぁ。
サブセット言語で作った7行プログラムとか出てきたりして:-P
0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNG四則演算と表示くらいならできるかもしれないが、難しいだろうね。
つーか、>>836よ、インタプリタで良いから作ってみないか?
0838デフォルトの名無しさん
NGNG>四則演算と表示くらいなら...
マジで!?それともネタ?
冗談で言ったつもりなんだが…
>インタプリタで良いから...
技術のない漏れには作れません...
0839デフォルトの名無しさん
NGNGオリジナルは768バイトなんでしょ?
0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNG#include <stdio.h>
W[1000],*S=W,c,v;G(){c=getchar();}g(){v=0;do v=v*10+c-48;while((G(),c)-48<10U)
;return v;}main(){G();while(~c)c==45?G(),c-48>9U?v=*S--,*S-=v:(*++S=-g(),G()):
(c-48<10U?*++S=g():c==43?v=*S--,*S+=v:c==42?v=*S--,*S*=v:c==47?v=*S--,*S/=v:c-
46?c-32&&c-10&&printf("err\n"):printf("ok\n%d\n",*S--),G());}
0842デフォルトの名無しさん
NGNG・四則演算 >>5
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNG・非常に便利な関数を7行で作成
w
0845デフォルトの名無しさん
NGNGつーか、>>841の勘違いですね。
四則演算はすでにあります。要求されたのは、
・FORTHのサブセット あるいは
・四則演算のみ可能な C/C++ !!コンパイラ!!
ですよん。そして、
・多倍長整数、有理整数演算、浮動小数演算などに対応
が追加されますた。
084679文字で問題を出してみる(w
NGNG0847846
NGNG---問題:単なるクリックソートより早いqsort()互換のソート関数を79文字7行で記述せよ。
+++問題:単なるクイックソートより早いqsort()互換のソート関数を79文字7行で記述せよ。
0848デフォルトの名無しさん
NGNGいいだしっぺの法則
0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG┣━╋━╋━╋━╋━╋━╋━╋━╋━┫
┃こ.┃れ┃で┃12┃行┃な.┃ん┃だ┃YO┃
┣━╋━╋━╋━╋━╋━╋━╋━╋━┫
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┣━╋━╋━╋━╋━╋━╋━╋━╋━┫
┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃
┣━╋━╋━╋━╋━╋━╋━╋━╋━┫
┃ ┃角┃ ┃ ┃ ┃ ┃ ┃飛┃ ┃
┣━╋━╋━╋━╋━╋━╋━╋━╋━┫
┃香┃桂┃銀┃金┃王┃金┃銀┃桂┃香┃
┗━┻━┻━┻━┻━┻━┻━┻━┻━┛
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃歩┃
┣∨╋∨╋∨╋∨╋∨╋∨╋∨╋∨╋∨┫
とか?
0853デフォルトの名無しさん
NGNG|歩v|歩^|
で表現していたな
コンピュータの思考ルーチンが激しく難しそうだ
0854デフォルトの名無しさん
NGNG使用方は
program.exe(仮称) 入力ファイル名 出力ファイル名
です。
#include <stdio.h>
FILE *s,*o;I,c,d;G(){return c=getc(s);}P(){c-10&&putc(c,o);}R(){putc(10,o);}T(t
){while(t-->0)putc(9,o);}S(p){d=1;P();while(~G()&&(P(),c!=41||--d))c-p||++d;}Q(
p){P();while(~G()&&(P(),c!=p))if(c==92||_ismbblead(c))P(G());}main(a,v)char**v;
{s=fopen(v[1],"r");o=fopen(v[2],"w");while(~G())c==63||c==58?R(),T(I),P():c==34
||c==39?Q(c):c==40?S(c):c=='{'?R(),T(I),P(),R(),T(++I):c=='}'?fseek(o,-1,1),P()
,R(),T(--I):P(),c==59&&(R(),T(I));}
0855デフォルトの名無しさん
NGNG駒は数字で表せばいいじゃん。
王金銀桂香飛角歩
+1+2+3+4+5+6+7+8
玉金銀桂香飛角歩
-1-2-3-4-5-6-7-8
0856デフォルトの名無しさん
NGNGお前は数字を見て将棋だと言えるのか?
#現実問題、数字にでもしなければ不可能だとは思うが
#つーか数字にしても不可能だろ(w
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNG金 キン
銀 ギン
桂 ケイ
香 車
飛 ヒシャ
角 カク
龍 リュウ
馬 ウマ
歩 フ
と ト
でいけるんじゃ?
0860デフォルトの名無しさん
NGNGそれだったら漢字+「符号」とか「色」で区別した方が扱いも容易
つーか、>>859だと駒の表現だけで2行くらい使ってしまうぞぅ
0861デフォルトの名無しさん
NGNGもはや別のゲームだが、面白いかもしれない。
コンピュータの思考ルーチンも簡単にかけるし。
よし、いっちょ作ってみるか。>>858が。
0862デフォルトの名無しさん
NGNGタマキン
0863858じゃないけど
NGNGルールは●○を縦横に移動させ、相手をはさむと取れます
ただし、辺を使ってはさんでも無効です
角をはさむのは正式ルールなのかわからなかったので、今のところ無効
移動方法は移動元(x,y)と移動先(m,n)の4整数で指定、左上が(1,1)
1 2 3 4 [RET]
コンピュータの思考ルーチンはまだなので、ランダムに移動します
今は、関数c()で動作を決めるようになっているので、どなたか作成をば!
変数vが移動元で変数zが移動先になってまつ。
int w[]={1,-1,12,-12},h[3],b[132],u=1,z,y,m,n,i=132,v,d=1;r(p,a,f,z){if(b[z=p+w
[a]]==(u^3)){d++;r(z,a,f);f?b[z]=0:0;}if(b[z]==3||!b[z])d=0;}o(x,y,m,n){d=0;z=x
+y*12;v=m+n*12;if((x!=m&&y!=n)||b[z]!=u||b[v]!=0)d=1;if(x==m){for(;y++<n;)d+=b[
x+y*12];}else if(y==n){for(;x++<m;)d+=b[x+y*12];}}c(){for(d=1;d;){for(i=132;i--
;)if(b[i]==2)v=i,i=0;z=rand()%132;o(v%12,v/12,z%12,z/12);}}main(x){for(;i--;b[i
]=z-11?z&&z-10&&i-12U<109?z-1?z-9?0:2:1:3:4)z=i%12;for(;;){printf("%d:%d %d\n",
u,h[1],h[2]);for(i=11;i++<131;)printf("・\0●\0○\0 \0\n"+b[i]*3);if(h[2]>7||h
[1]>7)break;if(u<2){scanf("%d%d%d%d",&x,&y,&m,&n);o(x,y,m,n);if(d&&puts("Err"))
continue;}else c();b[z]=0;for(i=4;i--;d?r(v,i,1):0)r(v,i,0),h[u]+=d;b[v]=u;u^=3;}}
0865858じゃないけど
NGNG移動判定ミス修正、簡易思考ルーチン装備、やや縮めた版です。
int w[7]={1,-1,12,-12},b[132],u=1,z,y,m,n,i=132,v,d=1;r(p,a,f,z){b[z=p+w[a]]==3
-u?d++,r(z,a,f),f?b[z]=0:0:b[z]-1U>1?d=0:0;}o(x,y,m,n,p,a){d=b[v=m+n*12]+(b[a=z
=x+y*12]!=u||(x-m&&y-n)?1:0);for(p=x==m?y<n?2:3:x<m?0:1;!d&&a!=v;)d+=b[a+=w[p]]
;}c(j,k,s,f,g){s=-1;for(i=120;i--;d=0)for(j=120;b[i]==u&&j--;)for(o(i%12,i/12,j
%12,j/12),k=4;!d&&k--;d>s||d==s&&rand()%j<1?s=d,f=z,g=v:0)r(v,k,0);z=f;v=g;}
main(x){for(;i--;b[i]=z-11?z&&z-10&&i-12U<109?z-9?z-1?0:1:2:3:4)z=i%12;for(;;){
printf("%d:%d %d",u,w[5],w[6]);for(i=9;++i<120;)printf("・\0●\0○\0 \0\n"+b[i
]*3);if(w[5]>7||w[6]>7)break;u<2?scanf("%d%d%d%d",&x,&y,&m,&n),o(x,y,m,n):u>1&&
c();if(d&&puts("Err"));else{b[z]=0;for(i=4;i--;d?r(v,i,1):0)r(v,i,0),w[4+u]+=d;
b[v]=u;u^=3;}}}
0866デフォルトの名無しさん
NGNG相手のコマの上に持っていってエラーが出ても、相手のコマを消して続くぞ。
0868デフォルトの名無しさん
NGNG俺は1 1 9 1 で一発再現。コンパイラ依存か?gccだけど
あと、1 1 91 1 とかも出来たりして、好きな場所にとばせるが、これは仕方ないか
0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG$pattern = ARGV.shift
while gets
print if /#{$pattern}/
end
0871デフォルトの名無しさん
NGNG#!/usr/local/bin/perl
`grep @ARGV`;
0872デフォルトの名無しさん
NGNG$p=shift;$f=shift||"-";open H,$f;while(<H>){/$p/&&print $_}
perl grep.pl pattern file.txt
perl grep.pl pattern < file.txt
の両方を受け付けるように、という縛りをつけたらperlの短縮のいい例題になりますた。
見てのとおり初心者ですが、ここのスペースは要る、要らんとかいろいろあってなかなか
面白かったです。
まだパーサの改良ができるかもしれないです。
しかし、1行でこれだと7行は相当に死ねるな・・・・・・
0873デフォルトの名無しさん
NGNG<>の仕様が良く分かってませんでした。
道理で最初に試したのがうまく動かなかったわけだ。
0874デフォルトの名無しさん
NGNG$p=shift;while(<>){/$p/&&print $_}
0876871
NGNG0877デフォルトの名無しさん
NGNG惜しい。
$a=shift;/$a/&&print while<>
でも始めから7行以内に収まる事が分かってるようなネタで
盛り上がるのは止めてもらえまいか。
どうせなら10行くらいから頼む。
0878デフォルトの名無しさん
NGNGつーかそれって単なる認証付きファイル検索なのでは?
認証して自分の所のファイル検索するCGIとそのクライアントのセット?
呼び出し用鯖も作れば余計なhtttpシーケンス省けるかな?
0880デフォルトの名無しさん
NGNGどこまで行けるんだろ。
0881デフォルトの名無しさん
NGNGんじゃ、Cで作れ。
正規表現解析機を7行で実現しろって意味だったんだが、
perlとか糞Rubyに走るな
0882877
NGNG>>869 さんかい? このスレは言語問わずだから、
このお題の出し方じゃPerlやRubyで応えられても文句言えないぞ(笑)。
俺は >>872 の段階で既に7行どころか1行に収まっているコードを
書き込み続けるのを止めて欲しかっただけなんだが、表現が悪かったかな。
「ネタ」ってのは「*Perlで* 7行grep」を意図してる。他の言語は知らんよ。
出されたネタに対しどの言語で組むかは自由だと思うが、
簡単に達成できる言語で応えるのは控えて欲しい。面白くないし。
反対に、PerlやRubyでも7行に縮めるのが難しそうなネタなら大歓迎。
JavaやJavaScriptでも言語の特色を活かした作品いっぱい出てるしね。
0883デフォルトの名無しさん
NGNG「正規表現解析機」て…。
0884デフォルトの名無しさん
NGNG申し訳ありませんでした。つい出来て嬉しくて書き込んでしまいました。
初心者だからといって、ここでは発表せず、脳内にとどめた方がよさそうですね。
0885デフォルトの名無しさん
NGNGほんと最近レベル落ちてるな。色々な意味で
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNGまあ例えばprintfを7行でと言われても、結局テクニックの問題なんだし
単にそれが凄いのか凄くないのかって事なんだからさあ。確かにどうせなら
それを応用して7行使ったビックリするようなものが見てみたいけどね。
ところでゲームといえば冷たい方程式系のシミュレーションはどうだろう?
アポロ13号とか、どっかのガス欠気味の人工衛星や探査機とかにコマンド送って
操作するような奴。それともまずは定番の月着陸からだろうか?
0888デフォルトの名無しさん
NGNGオリジナルは768バイトなんでしょ?
0889デフォルトの名無しさん
NGNG過去ログ
0890デフォルトの名無しさん
NGNGhttp://game.2ch.net/test/read.cgi/gamedev/1005332663/l50
0892デフォルトの名無しさん
NGNGそもそも私(>>839)のコピペ。
でネタ自体は>>11で既出だったらしい。
ちなみに前スレや>>612>>626のは予約語からして普通のBASIC
じゃないかな?それともなにか見逃してる?
もっと中間コード風でGAMEIIコンパイラみたいな奴。
0893デフォルトの名無しさん
NGNG自分でやれ
089460cm浮き上がるストレート
NGNGint a,b,c,d,e,f,g,h,i,j,k,l,m,n,z[6],r,x[9],y[9];char o[][9]={"アリーナ","クリフト"
,"ブライ","スライム","マーマン","トロル","オーク","キメラ","竜王","攻撃","防御","イオ","ホイミ","ヒャド"
,"who?","唱えた","ダメージ","回復","死んだ","敵出現","勝利","クリア","全滅","した",
"に","の","は","を","▼","\x1b[2J"," ","MP不足","\x1b[0m","\x1b[31m",
"\x1b[32m","\x1b[>5h"},q[]="00533",
p[]="vlb:XvlXvvlb:XvlXv:?B06060?:?B06060?SI?5?SNXSA?<2?2:?D234040302";
main(){srand(time(0));S(35);for(r=0;r<=3;r++){S(19);S(28);for(b=3;b<6;b++)
{p[r+b]=p[r+b+9];p[r+b+18]=p[r+b+27];}for(l=0;l/10!=3;){for(b=0;b<3;b++)
{if(p[b]!=48){N();S(b);C(63);C(10);for(c=1;c<4;c++){D(c);C(58);S(8+c+c/3*b);
C(10);}d=getch()-49;x[b]=d+d/2*b;if(d==0||(d==2&&b>0)){C(10);S(14);C(10);
for(c=1;c<4;c++){e=x[b]==3?c-1:r+c+2;if(p[e]!=48){D(c);C(58);S(e);C(10);}}
e=getch()-49;y[b]=x[b]==3?e:r+3+e;}}S(29);}for(b=r+3;b<r+6;b+=p[y[b]]!=48?1:0)
{d=x[b]=rand()%2==0?0:p[b+54]-48;e=rand()%3;y[b]=d==3?r+3+e:e;}for(n=0;n<6;
089560cm浮き上がるストレート
NGNGn++){z[n]=6;d=rand()%6;z[n]=d>2?r+d:d;for(b=n-1;b>-1;b--)n-=z[n]==z[b]?1:0;}
for(n=0,l=0;n<6&&l/10!=3;n++){b=z[n];if(p[b]!=48){N();d=x[b];S(b);d==0?
(S(25),S(9)):d==1?(S(26),S(10),S(23)):(S(26),S(d+9),S(27),S(15));C(7);C(10);
if(d<2||p[b+18]!=48){p[b+18]-=q[d]-48;e=y[b];f=p[b+36]-p[e+45];f=d==0?f<1?2:f:
d==2?20:d==4?30:0;if(d==2)for(g=b<=2?r+3:0,h=0;h<3;h++)Z(g+h);else Z(e);
for(k=0,l=0;k<r+6;k+=k==2?r+1:1)l+=p[k]==48?k<3?1:10:0;if(l%10==3){S(22);
S(28);exit(1);}if(l/10==3){S(20);S(23);}}else S(31);S(28);}}}}S(21);S(28);}
S(a){printf("%s",o[a]);a==28?(getch(),S(29)):a;}P(a){printf("%3d",p[a]-48);}
D(a){printf("%d",a);}C(a){printf("%c",a);}N(){for(a=0;a<3;a++){S(a);P(a);
P(a+18);C(10);}for(a=3;a<6;a++){S(p[a+r]!=48?a+r:30);C(10);}C(10);}Z(a){
if(p[a]!=48&&d!=1){S(a);if(d%2==0){S(24);m=f*(rand()%4+8)/10;p[a]-=m/=x[a]==1
?2:1;D(m);S(16);p[a]<49?(p[a]=48,C(10),S(18)):a;}if(d==3){S(26);S(17);S(23);
p[a]=p[a+9];}C(10);S(32);for(c=0,m=0;c<3;c++)m+=p[c]<49?4:p[c]<64?1:0;m>3?
S(33):m>0?S(34):m;}}
0896デフォルトの名無しさん
NGNG>>880
おいお前ら、これを7行にしてください。
typedef unsigned char *U;U Z[9999],H[9999],P,Q,s,t,u,r,n;o,p;N(c){u=Q;*Q++=c;*Q
++=0;*Q++=0;return u;}C(b){*Q++=b;}I(c){return c&&strchr("*+?",c);}X(U p){o=(p[
1]<<8)|p[2];return o?p+(*p==7?-o:o):0;}S(U p){s=Q;Q+=3;while(s-->p)s[3]=*s;*p=6
;p[1]=p[2]=0;}T(U p,U v){for(s=p;t=X(s);s=t);s[2]=o=*s==7?s-v:v-s,s[1]=o>>8;}O(
U p,U v){*p==6&&T(p+3,v);}M(U e){int f;P=e;Q=Z;G(0,&f);}L(c,F)int*F;{if(c-91)c-
92?--P:*P||E(),s=N(8),C(*P++);else{s=N(*P==94?P++,5:4);if(*P==93||*P==45)C(*P++
);while(*P!=93)if((*P||E()),*P-45)C(*P++);else if(*++P==93||!*P)C(45);else{for(
c=P[-2];c<=*P;c++)C(c);P++;}P++;}*F|=1;C(0);}G(p,F,f)int*F;{U r,b,e;p?r=N(10),T
(r,B(&f)):(r=B(&f));for(*F=1;f&1||(*F&=~1),*F|=f&2,*P=='|';P++,T(r,B(&f)));T(r,
e=N(p?11:0));for(b=r;b;b=X(b))O(b,e);if(p?*P++-41:*P)E();return r;}E(){exit(2);
}B(F,f,g,h)int*F;{U r=N(6),c=0,l;for(*F=0;*P&&*P-'|'&&*P-41;p=*P++,g=0,l=p==94?
N(1):p==36?N(2):p==46?g|=1,N(3):p==40?s=G(1,&h),g|=h,s:strchr("|)?+*",p)?E():(L
(p,&g),s),p=*P,I(p)?g&1||p==63||E(),f=p-43?2:1,p==42?S(l),O(l,N(7)),O(l,l),T(l,
N(6)),T(l,N(9)):p==43?T(l,n=N(6)),T(N(7),l),T(n,N(6)),T(l,N(9)):p==63?S(l),T(l,
N(6)),T(l,n=N(9)),O(l,n):0,I(*++P)&&E():(f=g),*F|=f&1,c?T(c,l):(*F|=f&2),c=l);c
||N(9);return r;}A(U s){Q=s;do{P=s;if(D(Z))return 1;}while(*s++);return 0;}main
(c,v)char**v;{M(v[1]);while(gets(H))if(A(H))puts(H);}D(U s){for(;;s=n){n=X(s);p
=*s;if(!p||p==1&&P!=Q||p==2&&*P||p==3&&!*P++||p==4&&(!(o=*P++)||!strchr(s+3,o))
||p==5&&(!(o=*P++)||strchr(s+3,o))||p==8&&(memcmp(s,P,o=strlen(s+=3))||(P+=o,0)
))return!p;if(p>9)return D(n);if(p==6)if(*n==6){do{U t=P;if(D(s+3))return 1;P=t
;s=X(s);}while(s&&*s==6);return 0;}else n=s+3;}}
0897デフォルトの名無しさん
NGNG将棋キター
0898デフォルトの名無しさん
NGNGいろんな意味で凄いな…
0899デフォルトの名無しさん
NGNGやってみたけど、ある意味悲惨…
ここまでして○ラクエやりたいとは
思わない。
でもがんばりは評価。
0900デフォルトの名無しさん
NGNG○7行達成されているもの ×未達成のもの
※レス番号では提示したり達成したりした番号を表示
※おふざっけぽいものは抜いてありますが、ホカソ希望はご自由に
※次のスレでこのレス番号を記載するか、コピペしてください
※間違いがあったらごめんね
0901デフォルトの名無しさん
NGNG○スロットゲーム >>16
○迷路 >>171>>366>>472-473
○ピンポン >>191
○テトリス >>212
○障害物よけゲーム >>224
○パックマソ >>313
○15パズル >>561>>591
○暇つぶしゲーム >>746
×ブロック崩し >>643>>642
×詰めロードランナー >>634-635>>651
×3D迷路 >>662>>698
×囲碁 >>757>>771
×はさみ将棋 >>863>>865
×○ラクエ >>894-895
×将棋(http://pc3.2ch.net/test/read.cgi/tech/1004395614/760-761) >>897
0902デフォルトの名無しさん
NGNG○ブロックソーティング >>386-387
○rangecoder >>512-513>>553
○Huffman符号 >>572>>750>>752
○スライド辞書圧縮 >>580>>596>>600>>616>>629
○RLE >>696>>728
○アーカイバ >>729>>736>>739>>741
○LZW >>799
0903デフォルトの名無しさん
NGNG○PDTビューワ >>70
○フラクタル画像出力 >>108>>703-705
○アスキーアート >>202
○バナー生成 >>204
○bmp2ppm >>474>>>476
○PNG >>491
○マンデルブロー >>514
×BMP >>131
×レイトレーシング(http://pc3.2ch.net/test/read.cgi/tech/984182993/209) >>711
×波紋 http://pc3.2ch.net/test/read.cgi/tech/984182993/678
×パーティクル http://pc3.2ch.net/test/read.cgi/tech/984182993/675-676
0904デフォルトの名無しさん
NGNG○素数列挙 >>74>>81>>810
○CRC >>447-448
○DCT >>462>>468
○ヒルベルト曲線 >>644>>652
○SHA1 >>668>>724
○円周率 >>827
ネットワーク
○proxy >>208
○SMTPクライアント >>285-286
○SNTPクライアント >>311-312
○POPクライアント >>475
○jis2sjis >>496-497>>506
×FTPもどき >>332
×POPクライアント+jis2sjis >>510
×チャット >>529>>547
0905デフォルトの名無しさん
NGNG○インデントツール >>105>>129>>129>>854
○ひたんぼ語フィルタ >>317>>321
○時計 >>410
×インデントツール >>327
×grep >>896
デモ
○ねたをくれなんていってる時点で間違ってたんだ…(w >>350>>363
○砂嵐 >>384
0906デフォルトの名無しさん
NGNG○FORTHもどき >>841
×BASIC(http://pc3.2ch.net/test/read.cgi/tech/984182993/497-518) >>626
その他
×FreeBSDのdmesg|head -6を表示 >>730
0907前スレ853
NGNG$_=join" ",grep{s/(^\s*#.*)|\s+/ /g;length}<>;%k='()<>[]{}'=~/./g;s~(.*?)((?:
(?:(?<![\$\%\&\*\@])(?:(?:m|q[qrwx]?)(?:([(<[{]).*?$k{$3}|([^(<[{ \w]).*?\4)|
(?:s|tr|y)(?:([(<[{]).*?$k{$5}\ *\5.*?$k{$5}|([^(<[{ \w]).*?\6.*?\6))|(?<![\w])
/(?:\\/|[^/])*/)[a-z]*)|"(?:\\"|[^"])*"|'(?:\\'|[^'])*')~push@c,$1,$2;''~egx;$q
=$c[0]=~m!^["'/]|([msy]|q[qrwx]?|tr)[^ \w]!;($_,@c)=map{++$q%2?split:$_}@c,$_;
sub j{$_.=$_[0].shift@c}sub l(){length$_.$c[0]}sub p{print"$_\n";$_=shift@c}sub
w(){/\w$/&&$c[0]=~/^\w/}78<l?79<l?p:w?p:j&&p:w?j" ":j while@c;p;
コメント付きはここに。
http://boobar.hoops.ne.jp/rms/
0908デフォルトの名無しさん
NGNG970ぐらいで次スレに移ったときにコピペしましょ。
0909デフォルトの名無しさん
NGNGあれ七行で出来ないかな…。マップ移動もあるやつ。
091060cm浮き上がるストレート
NGNGchar x,y,Y,X,m[][12]={"47764454244","77762222244","77622111224","66221111224",
"22221111244","42222422224","22222522224","42222422044","22224422224",
"44224424444","44444454444"},g;main(){printf("\x1b[>5h");for(y=x=1;;){for(Y=X=
-2;Y<3;X==2?(X=-2,Y++):X++)printf("\x1b[%d;%dH\x1b[%dm\x1b[%dm ",Y+13,X*2+40,
Y==0&&X==0?5:0,m[L(y+Y)][L(x+X)]-8);if(y==7&&x==8)exit(1);g=getch();if(g>48&&g
<58){y+=1-(g-49)/3;x+=(g-49)%3-1;y=L(y);x=L(x);if(m[y][x]==49||m[y][x]==52){y
-=1-(g-49)/3;x-=(g-49)%3-1;}}}}L(a){a-=a>=11?11:0;a+=a<=-1?11:0;return a;}
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNGとりあえず15行
#define D(X,Y,Z) Y(){N*x=X();return c==Z>>6?s[4]=Z,s[6]=x,x=s+=4,x[3]=Y(),x:x;}
typedef*P,N,*E[99];N*F[99],f,S[99999],*s=S,c,R,**G;C(){(c=getchar())<0?exit(0):
c<33&&C();}T(){N*x;C();s[4]=c*64+(c-65<26U)+1;return'('==c?x=p(),C(),x:(C(),s+=
4);}D(T,Q,2884)D(Q,q,2820)D(q,p,3716)a(c){putchar(c);}W(N*x){r(&x);a(*x>>6);*x&
4?a(40),W(x[2]),a(44),W(x[3]),a(41):0;}B(x,y){s+=4;*s=8;s[2]=x;s[3]=y;}r(P*x){N
*y=*x;for(;y<=s&&**x&2;y+=4)*y==8&&y[2]==*x?*x=y[3]:0;}u(N*x,N*y){r(&x);r(&y);
return x==y||(*x&2?*y&2&&x>y?B(y,x):B(x,y),1:*y&2?B(y,x),1:*x==*y?*x&4?u(x[2],y
[2])&&u(x[3],y[3]):1:0);}I(N*x,E z){P*y=z+(*x>>6),w=s+=4;*w=*x;return*x&2?*y?*y
:(*y=w):*x&4?w[2]=I(x[2],z),w[3]=I(x[3],z),w:x;}Y(x,y,z){s+=4;s[0]=0;s[1]=x;s[2
]=y;s[3]=z;return s;}U(n,g,x){P*i=F,z,q=s;while(*i){E e={0};z=I(*i++,e);if(u(g,
z[2])){X(Y(n+1,z[3],x));if(R<n+2)break;}s=q;}}X(N*x){N*g,z;R=999;x?(g=x[2])?U(x
[1],g,x[3]),*g==2113?X(x[3]),R=R>x[1]?x[1]:R:*g==2820?X(Y(x[1],g[2],Y(x[1],g[3]
,x[3]))):0:X(x[3]):J();}J(){N i=0;while(i<99)G[i]?a(i),a(61),W(G[i++]),a(10):i
++;puts("yes");}main(){N*z;while(z=p()){E e={0};G=e;*z!=3716?W(z),a(10),X(Y(0,I
(z,e),0)),puts("no"):(F[f++]=z,0);}}
:-の代わりに:を使う。compound termはない。変数等は一文字のみ。
:のある入力はassertされて、ないのは問い合わせだとみなされる。
差分リストを使った7行クイックソートでも食わせてみてくれ
t:!. o-(X,Y): z-(X,Y,(0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,@)).
z-(X,Y,(X,R)): !. z-(X,Y,(Y,R)): !,f. z-(X,Y,(Z,R)): z-(X,Y,R).
q-(@,X-X):!. q-((X,R),Y-Z): v-(X,R,L,B), q-(L,Y-(X,W)), q-(B,W-Z).
v-(P,(X,R),L,(X,B)): o-(P,X),!,v-(P,R,L,B).
v-(P,(X,R),(X,L),B): v-(P,R,L,B).v-(P, @, @, @):t.
q-((6,2,f,9,7,e,d,5,b,1,8,a,3,c,4,@),Y-@).
0915デフォルトの名無しさん
NGNG他のスレに比べても十分良いレベルにはあると思うよ。
part2が作られたときも散々言われたけど、なかなかいい作品が出てきたし。
>>914
つーか、すげーよ! 10行未満には絶対すべきや! そしていつか7行に!!
0916デフォルトの名無しさん
NGNGPart2でレベル下がったと思うけどな。
低レベルの作品をお互いにほめあってどんどんレベル落ちてるかと。
0917デフォルトの名無しさん
NGNGPart3で回復を期待しましょう。
0918デフォルトの名無しさん
NGNGそういうあなたの作品は?
0919デフォルトの名無しさん
NGNG確かにRLEやgrep@perl、○ラクエなどはどうかと思ったけど。
(まだ7行プログラミングが普及していないせいもあるが)
それでもpart1ではオセロやカラースネークくらいしか見られるものがなかった。
part2ではテトリスや各種データ圧縮がなかなかのレベルかと思うが、どうだろ。
0920デフォルトの名無しさん
NGNG圧縮はPart1のレンジコーダーが最高峰でないの?
0921デフォルトの名無しさん
NGNGpart1のrangecoderはもっと短くできるから、それが再登場したら最強かも。
でも、詰め込み(縮め)度合いならば、part2の方がかなり熟成された感じが良い。
ただコンパイラ依存、環境依存になりかけているのが残念だけど。
0922デフォルトの名無しさん
NGNGもっと短くしてみろよ
0923デフォルトの名無しさん
NGNG#include <iostream>
unsigned W,O,u=256,i=6,l,K,b,a[256],R=~0,y=1<<24,x=u;main(int,char**V){unsigned
char*t=new unsigned char[1<<24];if(*V[1]-69){for(cin>>O;i--;)W=W*x|cin.get();
for(;l<O;R*=a[b]){for(K=b=0;R<y;R*=x)W=W*x|cin.get();for(R/=u++;W/R>=K;K+=a[b++
]+1);W-=R*(K-++a[t[l++]=--b]);}}else{for(;~(i=cin.get());K=W,l++){for(b=0;b<i;W
+=R/u*(a[b++]+1));if(K>W)for(K=O;!++t[--K];);for(R=R/u++*++a[i];R<y;R*=x)t[O++]
=W/y,W*=x;}cout<<l<<-1;for(y=4;y--;)t[O++]=W>>y*8;}cout.write(t,O);}
0924923
NGNG3行目をchar t[y];とできるから、もっと縮まるよん。
0925デフォルトの名無しさん
NGNG0926923
NGNGまだpart2ができる前のものだからねぇ。すまんねぇ。
このスレで登場したrangecoderのように符号化と復号をいっしょにするとか、
今ならもっと縮まるかもしれない。>>925が挑戦してみる?
0927デフォルトの名無しさん
NGNG> unsigned W,O,u=256,i,l,K,b,a[256],R=~0,y=1<<24,x=u;main(int,char**V){unsigned
> char t[y];if(*V[1]-69){cin>>O;cin.read(t,6);for(W=t[2]*y|t[3]<<16|t[4]*x|t[5];l
> <O;R*=a[b]){for(K=b=0;R<y;R*=x)W=W*x|cin.get();for(R/=u++;W/R>=K;K+=a[b++]+1);W
> -=R*(K-++a[t[l++]=--b]);}}else{for(;~(i=cin.get());K=W,l++){for(b=0;b<i;W+=R/u*
> (a[b++]+1));if(K>W)for(K=O;!++t[--K];);for(R=R/u++*++a[i];R<y;R*=x)t[O++]=W/y,W
> *=x;}cout<<l<<-1;t[O++]=W/y;t[O++]=W>>16;t[O++]=W/x;t[O++]=W;}cout.write(t,O);}
前スレのrangecoder。
エンコデコ一緒だろ、これ?
0928デフォルトの名無しさん
NGNGforをひとつにまとめてしまうっていう手法のことだろ?
g=*V[1]-69;としておいて、for(g?decode:encode;g?...:...;);とするやつ。
0929デフォルトの名無しさん
NGNG各コテハン達がしのぎを削ってたね。オフで逢った人たちもいるみたいだし。
見ているだけでわくわく出来た。
Part2も、テトリスとかいい作品はいっぱいあったんだけれど、
いい作品は何故か叩かれ、下らない作品がほめられる傾向が強かったね。
実際にPart1のコテハン達が全然来なくなってしまったしね。
include省いてアーキテクチャ限定して何が楽しいんだろう・・・
と愚痴を言ってみるテスト
0930デフォルトの名無しさん
NGNGprolog15行はすごいね。
今lisp作ってるけどだらだら書いてたら100行超えちゃったよ・・。
0931デフォルトの名無しさん
NGNGレベルが下がったのは同意だが、他のスレのように厨が入り込みにくいし、
住民の質も平均以上であると思われ。
0932デフォルトの名無しさん
NGNGん?私のような厨を排除するためにもテクニックは実例を見て盗め、ですか?
0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNG今、私はとってもいそがしい。 そこでだ。
キミが代わりに作っておいてくれないか?
0936デフォルトの名無しさん
NGNG書式:「入力行」 => 「出力行」
-type hoge => private type hoge {\n}
#type hoge => protected (以下略
+type hoge => public (以下略
-type hoge(...) => private type hoge(...) {\n}
#(以下略
+(以下略
「それ以外」 => 「そのまま出力」
あと、+(public)以外のときには
public type getHoge() {\nreturn hoge;\n}
public void setHoge(type hoge) {\n}
をつけてくれるとうれしいです。
0937936
NGNG実行時引数で与えたファイル名がクラス名になるようにしてください。
0938デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNG結局のところは対象をいかに簡明でトリッキーなアルゴリズムに
変換できるか、に尽きると思うな。
0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNGそんなことは問題じゃない!
気持ちの問題だ!
あたってぶつかれ!
0944デフォルトの名無しさん
NGNGそして砕け散れ!
0945デフォルトの名無しさん
NGNGROMってのは嘘で1度だけ書いてます。アレだったので叩かれましたが。。。
とりあえずC系の基本技、論理演算子と3項演算子の威力を数字にしてみます。
括弧はついていませんが、各条件部の前に!をつけても正しく動きます。
if(printf("1-1:"))printf("逝ってよし");else if(printf("1-2:"))printf("オマエモナー");else printf("シラネーヨ");
printf("1-1:")&&printf("逝ってよし")||printf("1-2:")&&printf("オマエモナー")||printf("シラネーヨ"); // 12バイト短縮
printf("1-1:")?printf("逝ってよし"):printf("1-2:")?printf("オマエモナー"):printf("シラネーヨ"); // 更に4バイト(演算子が全て2バイトから1バイトになった)
以上は単純で汎用的な短縮パターンですが、3項演算子は演算なだけにif文と違って
戻り値を利用できるので、then/else節に入る命令が同じなら
printf(printf("1-1:")?"逝ってよし":printf("1-2:")?"オマエモナー":"シラネーヨ");// 更に16バイト
とできます。(16バイトは"printf()"が2つ)
なお、これ↓は型の都合上動かないようで。
printf(printf("1-1:")&&"逝ってよし"||printf(printf("1-2:")&&"オマエモナー"||"シラネーヨ"));
0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG最短。
0949デフォルトの名無しさん
NGNG次スレは立てない方向じゃなかったの?
0950デフォルトの名無しさん
NGNGなんで?つーかそれ何処から出た話?
0951デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNGレベルが落ちてるから立てなくてよくねぇ?という話は出てたな。
どうせ低下の一途を辿るなら、今のまま埋もれさせる方がいい、とかかな?
個人的にはせっかく出てきたハイレベルな常連を
厨房が叩いていたのを見た時点でこのスレの終わりを感じた。
過去作品は>>903-905
0954デフォルトの名無しさん
NGNG0956950
NGNGリンク貼りつけお願いします。
七行プログラミング part3
http://pc3.2ch.net/test/read.cgi/tech/1033143528/
0957デフォルトの名無しさん
NGNGお疲れ
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNG(1==1)?printf("pc3"):(1==2)?printf("2ch"):printf("net")}
上下でやってること違うけど、switch文はやはり使えないな。予約語が長い。
走り抜けが利用できる、条件部が複雑だが等号で行ける、項数が多い。
その3点が揃えば使い道はあると思うが、なかなか無さそう。
まとめにくいなぁ・・・・・・。
3項演算は便利。インクリメント・デクリメントも基本。
ビット演算はとりあえず知っとく。
~-1==0なので、EOF検知に使える。
>>692 のような優先順位を使ったカコイイ技(成果は1バイトだが)もあり。
論理演算が使われているところは隙があるかも。
あと、真理値表って便利。
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNG> みんなが少しずつ我慢できなかったから。
つーか、ソースも書けねー奴が仕切るからだよ。ちゃんとソースさらして議論すりゃ、厨房はそれなりに淘汰されると思うよ。
0963デフォルトの名無しさん
NGNG厨房の意見「どんなソースコードでもスレに貼っていいはずだ」
粘着の意見「7行スレは7行を目指す意志の無いソースを貼ってはいけない」
で、いいんだよね?俺は粘着派だな(w
ちなみに、このスレではみんなそこそこ7行を目指していた(様な気がする)。
しかし、厨房増加の危険は出ていた。テトリスでSが叩かれ
(しかも叩かれたのは内容ではなく「誰も興味ないから何度も書き込むな」)
円周率でトリッキーの1を叩く(これも内容ではなく「有名人はもう出てくるな」)。
最終的に明らかに7行の意志のないドラクエが出てきても叩かれない
(しかもコードの質としては、個人的にはテトリスや円周率に比べて低いように感じた)
そりゃスレの質も落ちるよなぁ。
>>962
ソースさらして議論ってどういう意味だろう?
0964デフォルトの名無しさん
NGNG削除を行ったり規制を行ったりする管理人がいれば質も上がるだろうが、
2chは議論の場所しか貸してくれない。
質を求める奴は適当なHN使って自分でHP立ち上げて、ここに1回宣伝に来ればいいのに。
0965962
NGNG> ソースさらして議論ってどういう意味だろう?
「どんなソースでも貼れ」「いや、七行にならない奴はダメだ」とか言ってたって議論は平行線だと思うよ。
27行のドラクエがダメだって言うけど、じゃあ何行ならいいの ? 27行でスカスカのコードもあるし、8行でもキチキチのコードもあるよね。
結局コードの行数って言っても一概に何行までならいいなんて言えないと思う。(かといって、一万行とか貼られても困るけどね。)
だから、とりあえず貼ってもらって、どう見てもダメな奴はそう指摘すりゃいいと思う。
少なくとも、「どんなソースでも貼れ」「いや、七行にならない奴はダメだ」なんて言う不毛な議論よりはマシになると思うよ。
0966デフォルトの名無しさん
NGNGpart1は機能していたのにな。知名度が上がるとダメなのかな?
>>965
963ではないけど、7行にする意志があれば何行でもいいんじゃない?
ドラクエはどうかしらないが、part3のlispはあり得ないよな。
0967デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1033143528/278-
0968デフォルトの名無しさん
NGNG「このスレ」に於いては、七行でないとダメだろう
スレタイが前提になることを肝に銘じなくてはいかんよ
10行でOKと思う奴は10行のスレを立てれ
0969デフォルトの名無しさん
NGNGつーか元々perl少年のDVD解除7行事件簿から始まった事だろ。
十分短きゃそれでいいんだよ。
0970デフォルトの名無しさん
NGNGスレの雲行きが悪くなったのは
0971デフォルトの名無しさん
NGNGつーか、あげるなボケ!
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG>「このスレ」に於いては、七行でないとダメだろう
> スレタイが前提になることを肝に銘じなくてはいかんよ
> 10行でOKと思う奴は10行のスレを立てれ
じゃあ聞くけど、貼る奴は7行になると思って貼らないといけないの ?
自分の実力じゃ10行までしかできなかったけど、もしかしたらエキスパートが7行にしてくれるかもしれないじゃん。
あと、勢いあまって6行とかしたら失格ですか ?
まあ、何十行もある奴は論外として、元コードが10行位なら状況によっては7行ぐらいなることもあるでしょ ?
何でそんなにスレタイトルに拘るのかわかんらんよ。
0974デフォルトの名無しさん
NGNG自分でやらなくても(達成できなくても)7行への希望があるなら良いんじゃないのか
出したか無いけど、新スレのlispとか7行にするつもりがあるとは思えないだろ。
0975デフォルトの名無しさん
NGNG> 出したか無いけど、新スレのlispとか7行にするつもりがあるとは思えないだろ。
コード見ないとなんとも言えないよ。
0976デフォルトの名無しさん
NGNG>GC、関数トレース、リスト操作、再帰、高階、内部関数
奇跡が起きてもこれだけを7行付近まで持っていくのは不可能と断言できる。
0977デフォルトの名無しさん
NGNGその程度のことも解らない人はこの板に来ない方がいい
0978デフォルトの名無しさん
NGNGもし出来たら、目でピーナッツ噛めよな
0979デフォルトの名無しさん
NGNG> その程度のことも解らない人はこの板に来ない方がいい
ふ〜〜〜ん、あんたはコードを見なくてもわかるわけね、すごいね。
0980デフォルトの名無しさん
NGNG粘着見苦しい。つーか解るだろ(w
0981デフォルトの名無しさん
NGNG選民思想が強すぎる。
0982デフォルトの名無しさん
NGNGでも、男なら いや 漢なら! 敢えて0.2%に挑む!
0983デフォルトの名無しさん
NGNGhttp://ton.2ch.net/test/read.cgi/gline/1028811653/
0984デフォルトの名無しさん
NGNG無理っぽい率100%越えてるって。
0985デフォルトの名無しさん
NGNGえーやっぱりそうかなー
でも100%のヒーローなんているわけないよと
わかってんだからはりきるしかないですな
0986デフォルトの名無しさん
NGNGヤマトじゃあるまいしどうやったら100%超えるのかと。
でも見たかったな44行lisp。
0987デフォルトの名無しさん
NGNG順次機能を削っていけば…
0988デフォルトの名無しさん
NGNGよし作れ
0989デフォルトの名無しさん
NGNG俺はlispを知らない(w
ので、仕様を決めてくれ
0990デフォルトの名無しさん
NGNG大切にすべきではと思う。7行スレでやるのはスレ違いだが。
無下に断るよりは隔離スレ(釣りバカ)で質疑応答を受けたり
気が向いた人が添削・指摘するなりしたほうがお互いベターでは?
0991デフォルトの名無しさん
NGNG> 無下に断るよりは隔離スレ(釣りバカ)で質疑応答を受けたり
> 気が向いた人が添削・指摘するなりしたほうがお互いベターでは?
ソース見てから、「あっちへ逝け」と振るんじゃダメなん ?
0992デフォルトの名無しさん
NGNGいいと思うぞ
0993989
NGNG"(* (+ 2 3) 4)" みたいな計算ができる。
貧弱な上短くする余地もまだまだある、つーか手抜きだが、その辺は好きに弄ってくれ。
#include<stdio.h>
char s[999],*p=s;a(void){int r=0;if(*p=='('){char c=*++p;++p;while(*p==32)++p;
if(c=='+')r=a()+a();else if(c=='-')r=a()-a();else if(c=='*')r=a()*a();else if(
c=='/')r=a()/a();else if(c=='%')r=a()%a();else if(c=='p'){r=a();printf("%d\n",
r);}++p;}else do{r=r*10+*(p++)-'0';}while(*p!=32&&*p!=0&&*p!=')');while(*p==32
)++p;return r;}main(){gets(s);printf("%d\n",a());return 0;}
0994デフォルトの名無しさん
NGNGつまり、逆ポーランド記法の電卓ってこと?
0995989
NGNG表示のpとループ構文l(←もちろん独自仕様)加えて7行に増やした(w
例えば(l 10 (p 10)) で 10を10回表示。
#include<stdio.h>
char s[999],*p=s;a(void){int r=0;if(*p=='('){char c=*++p;++p;while(*p==32)++p;
if(c=='+')r=a()+a();else if(c=='-')r=a()-a();else if(c=='*')r=a()*a();else if(
c=='/')r=a()/a();else if(c=='%')r=a()%a();else if(c=='p'){r=a();printf("%d\n",
r);}else if(c=='l'){int i,n=a();char*b=p;for(i=0;i<n;++i){p=b;r=a();}}++p;}
else do{r=r*10+*(p++)-'0';}while(*p!=32&&*p!=')');while(*p==32)++p;return r;}
main(){gets(s);printf("%d\n",a());return 0;}
0996デフォルトの名無しさん
NGNG> つまり、逆ポーランド記法の電卓ってこと?
逆ポーランドは、反対。
2 3 + 4 * とか入力すると、20 とか出力される。HP の奴が有名。
ポーランド記法は、* + 2 3 4 とか入力する。
0997デフォルトの名無しさん
NGNG1000取っていい?
0998デフォルトの名無しさん
NGNGネタかどうかしらないがageるな
0999デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1033143528/l50
兄弟スレ:「釣りバカ日誌パート1」
http://pc3.2ch.net/test/read.cgi/tech/1033220509/l50
ここは 乂1000取り合戦場乂 となりますた。。。
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
1000997 ◆1O00getQ
NGNG♪ \\ キョウモゲンキニ 1000get♪ ミンナナカヨク 1000get♪ // ♪
\\ // ♪
♪ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧∧ ♪
♪ ∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧ ♪
(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧
♪ ∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*) ♪
─♪──(゚0 ゚*)| ∪(゚0 ゚*)| ∪(゚0 ゚*)| ∪(゚0 ゚*)| ∪(゚0 ゚*)| ∪(゚0 ゚*) | ∪(゚0 ゚*) | ∪───────
| ∪ | | ∪| | | ∪. | | | ∪| | .| ∪| | | ∪ | | | ∪ | |〜 ♪
♪ | | U U .| | U U | | U U. | | U U .| | U U | | U U | | U U ♪
U U U U U U U U U U U U U U
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。