七行プログラミング p ..
21:102
02/04/16 02:41
>>19
1をしっかりよみませぅ。
22:デフォルトの名無しさん
02/04/16 07:21
実は大したことないんだよ、このスレの作品って。
みんなすげーすげー逝ってるけど、自分で組んでみたら簡単に出来る奴も多い。
例えばラスタースクロールなんて無茶苦茶簡単だし、スライド辞書圧縮も楽勝。
四則演算もなんでこいつらが苦労してたのかわからないくらいあっさり達成できるぞ。
まあ、中には凄い奴もあるけどな。純粋にオセロ(6行)は度肝を抜かれたし、
砂嵐とかは別の意味で凄いと思ったが。
とにかく、盲目的にマンセー言う前に、本当に難しいかどうか自分で作ってみろ。
23:デフォルトの名無しさん
02/04/16 07:49
>>21
すいませんでした。。
ところで元ネタでアメリカの大学生が作ったと言う七行プログラムは
セミコロンで改行してたんでしょうか?誰か知りません。
24:デフォルトの名無しさん
02/04/16 07:59
>>23
大いなる勘違い野郎ですね。
前スレ読んで出直してきなさい
25:23
02/04/16 09:44
出直して参りましたw。
なんだやっぱりただ横幅80バイトで7行に収まったてだけなんですね。
それはインチキですよ!w
きっちりインデントして、7行だったら僕は感動で涙を流すでしょうね。まじで。
まあそれでもすごいことは確かですけど。しかも高校生だし。
26:デフォルトの名無しさん
02/04/16 09:49
>>25
若さ溢れる発言おおいに結構。
君が言うのは「今風」のプログラミングスタイルだね。
はるか昔、「N88-Basic」の頃は1行に2つ以上の命令を書くことはザラだったのだよ。
感動する/しないは個人の感覚だから、君が感動しようがしまいが知ったことではないが。
27:デフォルトの名無しさん
02/04/16 09:51
>>23
してないと思われ。
大体、セミコロンで改行って概念があるプログラミング言語で作られたかどうかも怪しい…
28:デフォルトの名無しさん
02/04/16 12:18
>>25
厨房だから仕方ないが、そういうことは自分で出来るようになってから
言ってくれ。読んでて恥ずかしい。
29:1
02/04/16 12:47
>>2-5
よく見てみたらカッコとかもあるし…
鬱出し脳…
30:デフォルトの名無しさん
02/04/16 13:22
出だしからこれじゃ(>>19=>>23=>>25 >>22)糞スレ街道まっしぐらなんで、放置キボンヌ
>>22はどうやら すごい・すごくない が判定できるようだから、
これができたらすごいという例を挙げてくれ。
31:デフォルトの名無しさん
02/04/16 14:01
>>30
BMP→JPEG
絶対無理だけどできたら紙
32:デフォルトの名無しさん
02/04/16 16:40
>>31
あんた22?
絶対不可能な例を出してどうするんだよ。
jpegの方はステートマシンで楽に書けるが、BMPは処理の本質ではない
ファイルフォーマットのハンドリングだけでかなりの文字数を要する。
固定長ででかいヘッダを抱えてるから処理を省略できないからな。
こういうとうてい無理な例を挙げるなら誰にでもできるだろ
7行でoffice作れって言うのと同じだ。
改めて言う、7行でできなさそうでできるぎりぎりの例を挙げてくれ。
33:デフォルトの名無しさん
02/04/16 17:47
つか>>22に7行ぎりぎりなんて判定できるとも思えないから
20行くらいに収まりそうなのにしてくれ
34:デフォルトの名無しさん
02/04/16 17:57
折角のスレが、荒れるといやだね。
どんな作品が7行プログラムに相応しいかは、旧スレでした方が良いのでは?
まだ90近く残っているし。
大したことの無い作品を認めないようになると、
もしかすると将来神となるかも知れない人(or 作品)の芽をつむことになる。
それに、傑作でなくとも、縮めのテクニックを磨く格好の材料ではないか!
35:デフォルトの名無しさん
02/04/16 18:30
>>34
そうそう、作品が対したことなくても、
その中で使ってる縮めのテクニックがおもしろいことも多々ある
36:デフォルトの名無しさん
02/04/16 18:34
なんつーか、この縮めのテクニックって
アセンブラでの最適化に通じるところがあると思う。
最適化と違って、こっちは役に立たないが(藁
37: ◆Air.TtTk
02/04/16 19:21
PDT びゅーわ(10行)
某社ゲームの、PDT形式画像ビューワ。
>java P filename
PDT10 のみ対応。
透明度、PDT11、アーカイブ 未対応。
import java.awt.*;import java.awt.image.*;import java.io.*;public class P
extends Frame{byte[]s;int[]q;int m,w,h,S=12,c,v,M,Q=0;Image I;public static void
main(String[]_){(new P(new File(_[0]))).show();}public P(File f){s=new byte[(int
)f.length()];try{InputStream R=new FileInputStream(f);R.read(s);R.close();}catch
(Exception e){}w=L(4);h=L(4);S=32;q=new int[w*h];while(Q<q.length){m=s[S++];for(
M=0;M<8&&Q<q.length;M++){if((m<<M&128)!=0)q[Q++]=255<<24|L(3);else{v=(s[S+1]&255
)<<4;v+=((s[S]>>4)&15)+1;for(c=s[S]&15;c>=0;c--){q[Q]=q[Q++-v];}S+=2;}}}setSize(
w+80,h+80);I=createImage(new MemoryImageSource(w,h,q,0,w));}public void paint(
Graphics g){g.drawImage(I,40,40,this);}int L(int l){v=c=0;while(c<l)v+=(s[S++]&
255)<<(c++)*8;return v;}}
自分の言語知識の無さを感じたよ…。
加えて、最近Swingばっかりやってたので、Frameの挙動がよく分からなかった…。
…、つか、なんでインクリメントにカッコつけてんだ俺…。
38:デフォルトの名無しさん
02/04/16 19:45
>>31
using System.Drawing;
class a{
static void Main(string[] args){
Image b = Image.FromFile( args[0] );
b.Save( args[1], System.Drawing.Imaging.ImageFormat.Jpeg );
}
}
39:デフォルトの名無しさん
02/04/16 20:44
>>38
つまらねー
40:デフォルトの名無しさん
02/04/16 21:12
この企画、Javaしか使えねー俺にとってはかなり不利な内容だな。
インポートとメインメソッドを書くだけで1行終わっちゃうぜ。
41:デフォルトの名無しさん
02/04/16 21:17
>>40
あん?
c/c++だと#includeで1行終わるが、なにか?
42:デフォルトの名無しさん
02/04/16 21:28
URLリンク(www.geocities.co.jp)
このコードは7行に縮まらない?
43:デフォルトの名無しさん
02/04/16 21:35
>>41
そうだったんだー。なんせ全然、他の言語知らないもんでスマソw。
でも何かJavaって何かにつけて長文になっちゃうような気がするんだよね。
隣のなんとやらは良く見える
ってやつかなw
44:S ◆Q14CxNhI
02/04/16 23:39
Java を知らないから全然縮まらない〜、と言ってみるテスト
import java.awt.*;import java.awt.image.*;import java.io.*;public class P
extends Frame{byte[]s;int m,w,h,S=12,c,v,M,Q=0,q[];Image I;public static void
main(String[]_){(new P(new File(_[0]))).show();}public P(File f){try{(new
FileInputStream(f)).read(s=new byte[(int)f.length()]);}catch(Exception e){}w=L(
4);h=L(4);S=32;for(q=new int[w*h];Q<w*h;){m=s[S++];for(M=0;M<8&&Q<w*h;){if((m<<
M++&128)>0)q[Q++]=255<<24|L(3);else{v=(s[S+1]&255)<<4;v+=s[S]>>4&15;for(c=s[S]&
15;c-->=0;q[Q]=q[Q++-v-1]);S+=2;}}}setSize(w+80,h+80);I=createImage(new
MemoryImageSource(w,h,q,0,w));}public void paint(Graphics g){g.drawImage(I,40,
40,this);}int L(int l){for(v=c=0;c<l;v+=(s[S++]&255)<<c++*8);return v;}}
45:22
02/04/16 23:59
すまぬ、荒らすつもりは無かったんだが、言い方が悪かったな。
なんだか前スレで、いい作品が評価されず、いまいちの作品が
よく話題に挙がっているのが勿体なく感じてしまって。
それでも本当にいい作品はちゃんと評価されているんだけれどね。
ま、>>34に同意というわけで、前言撤回します。スマヌ。
ついでにネタを振ると、Windowsでテトリスを作ってくだされ>>特にトリッキーの1氏
46:前スレ904
02/04/17 00:25
GCCで警告が出ない範囲でさらに縮めてみました。
#include <stdio.h>
#include <stdlib.h>
int y,m=-1,s,d;int main(int h,char**v){printf("%9s%5d\nSu Mo Tu We Th Fr Sa\n",
"Jan\0Feb\0Mar\0Apr\0May\0Jun\0Jul\0Aug\0Sep\0Oct\0Nov\0Dec"+(m+=atoi(v[1]))*4,
y=atoi(v[2]));d="&%&%&&%&%&"[m]-6+(m-1&&(y%400?(y%100&&(y%4?0:1)):1));if(m<2)
y--;y=s=(y+y/4-y/100+y/400+"#&%(#&($')%'"[m]-34)%7;while(y--)printf(" ");for(
;-y<d;y--)printf("%2d%c",-y,(s-y)%7?0:'\n');puts("");return 0;}
47:デフォルトの名無しさん
02/04/17 00:29
Windowsでテトリスは不可能だっつーの
内容のないスケルトン(砂嵐)でさえぎりぎりだったんだから。
48:デフォルトの名無しさん
02/04/17 00:32
Excel VBA でテトリスとかできないかね。
49:22
02/04/17 00:33
>>47
C++とは言っていないがダメかな?
50: ◆Air.TtTk
02/04/17 00:56
PDT びゅーわ(9行)
import java.awt.*;import java.io.*;public class P extends Frame{byte m,s[];int w
,h,S=12,c,v,M,Q=0,q[],n;Image I;static void main(String[]_){(new P(new File(_[0]
))).show();}P(File f){s=new byte[(int)f.length()];try{(new FileInputStream(f)).
read(s);}catch(Exception e){}w=L(4);h=L(4);S=32;q=new int[n=w*h];while(Q<n){m=s[
S++];for(M=0;M<8&&Q<n;M++){if((m<<M&128)>0)q[Q++]=255<<24|L(3);else{v=(s[S+1]&
255)<<4;v+=(s[S]>>4&15)+1;for(c=s[S]&15;c>=0;c--)q[Q]=q[Q++-v];S+=2;}}}setSize(w
+80,h+80);I=createImage(new java.awt.image.MemoryImageSource(w,h,q,0,w));}public
void paint(Graphics g){g.drawImage(I,40,40,this);}int L(int l){v=c=0;while(c<l)v
+=(s[S++]&255)<<c++*8;return v;}}
InputStreamを close() していません。(ぉ
51:デフォルトの名無しさん
02/04/17 01:12
>>50
> java P xxx.pdt
Main method not public.
といわれました(報告)
52:デフォルトの名無しさん
02/04/17 01:19
>>50
宣言部分以外では、>>44 の方が大分短いやんけ
53:S ◆Q14CxNhI
02/04/17 01:24
かきこいっぱいですねぇ。
>>52
そんなに短くはないかと。Java は難しいですね。
import java.awt.*;import java.io.*;public class P extends Frame{byte[]s;int m,w
,h,S=12,c,v,M,Q=0,q[];Image I;public static void main(String[]_){(new P(new
File(_[0]))).show();}P(File f){try{(new FileInputStream(f)).read(s=new byte[(
int)f.length()]);}catch(Exception e){}w=L(4);h=L(4);S=32;for(q=new int[w*h];Q<w
*h;)for(m=s[S++],M=0;M<8&&Q<w*h;){if((m<<M++&128)>0)q[Q++]=255<<24|L(3);else{
for(c=s[S]&15;c-->=0;)q[Q]=q[Q++-(s[S+1]&255)*16-(s[S]>>4&15)-1];S+=2;}}setSize
(w+80,h+80);I=createImage(new java.awt.image.MemoryImageSource(w,h,q,0,w));}
public void paint(Graphics g){g.drawImage(I,40,40,this);}int L(int l){for(v=c=0
;c<l;v+=(s[S++]&255)<<c++*8);return v;}}
54: ◆Air.TtTk
02/04/17 01:44
>51
あらまっ。ボクのPC(Win98)では
JDK1.2.2_007 動作。
JDK1.3.1_01 動作。
JDK1.4.0 エラー。
となりました。
>52
何かをimportしなかったので、何かが増えたわけですね。
55:デフォルトの名無しさん
02/04/17 09:56
>>36
小手先よりもまずアルゴリズムの見直しからスタートするから
結構役に立つと思うよ。
組み込み系用にいくつかここからパクったアイデアあるし。
56:前スレ843
02/04/17 12:55
トリッキーの1氏は見てないの?
もう一度舞い降りれ!
57: ◆Air.TtTk
02/04/17 15:49
PDT びゅーわ(8行)
import java.awt.*;import java.io.*;public class P extends Frame{Image I;int w,h,
S=12,c,v,m,M=0,Q=0,q[];public static void main(String[]_){new P(new File(_[0]));
}P(File f){try{(new FileInputStream(f)).read(s=new byte[(int)f.length()]);}catch
(Exception e){}w=L(4);h=L(4);S=32;for(q=new int[w*h];Q<w*h;){if(--M<0){M=7;m=L(1
);}if((m>>M&1)>0)q[Q++]=255<<24|L(3);else for(v=L(1)>>4|L(1)<<4,c=s[S-2]&15;c--
>=0;)q[Q]=q[Q++-v-1];}I=createImage(new java.awt.image.MemoryImageSource(w,h,q,0
,w));setSize(w+80,h+80);show();}int L(int l){for(v=c=0;c<l;)v+=(s[S++]&255)<<c++
*8;return v;}byte[]s;public void paint(Graphics g){g.drawImage(I,40,40,this);}}
プログラムというよりパズルですわ。
さすがに7行は無理な気がする。
58:デフォルトの名無しさん
02/04/17 16:03
まあ、何度も絶対不可能が縮まったわけだからがんばれ
一念発起してVisualC++をアンインストールしちまったけどな
うらやましいだろ、みなさん
また来週に入れなきゃいけなさそうなんであれですけど
59:S ◆Q14CxNhI
02/04/17 19:21
テトリスだけど、JavaScript で現在11行でできています。
バグバグでまだとても公開できないですが、近日中に必ずアプします。
アルゴリズムの最適化もほとんどしていない状態で11行なので、
最終的には7行になるのではないかと、期待しています。
60:デフォルトの名無しさん
02/04/17 22:31
>>59
見せてアゲ
61:S ◆Q14CxNhI
02/04/17 23:46
テトリス。現在10行。
カーソルキーの左右で移動、スペースキーで回転。
ゲームバランス悪いし、もっと縮めてからとも思ったのですが、
明日はネットに接続できないので、今日アプしておきます。
左右移動と落下、ライン消去の部分をもっと削ることができるかと思います。
<body onKeyDown=K=event.keyCode><pre><script>function Y(){Z[11]=P;f=0;E=B[t];if
(K)if(K-32){d=[-1,0,1,0][K-37];for(i=4;--i;)Z[h+E[i]+d]==S?f=1:0;f?0:h+=d}else{
C=[];for(i=0;i<4;Z[h+(C[i++]=p*12-v*145)]==S?f=1:0)p=E[i],v=Math.round(p/12);!f
&&t?E=B[t]=C:0}f=K=0;for(i=W;i--;Z[W+i]=Z[i]);for(i=4;i--;Z[W+p]=S)if(Z[12+(p=h
+E[i])]==S)f=1;if(f==1){for(i=4;i--;)Z[h+E[i]]=S;t=(t+1)%7;h=5}h+=12;for(f=1,i=
19;i--;){for(j=11;--j&&Z[i*12+j]==S;);if(!j)for(P+=f++,j=i++;j>=1;j--)for(k=1;k
<11;k++)Z[l=j*12+k]=Z[l-12]}for(i=W;i--;D.all(6+i).innerHTML=Z[W+i]);if(Z[5]!=S
)setTimeout(Y,99)}S="□";W=240;D=document;Z=[];B=[[-11],[-24],[2],[13],[-13],[-
1],[2,-1]];for(K=t=P=i=0;i<W;){if(i<7)B[i].push(0,1,-12);Z[i]=(i+1)%12<2||i>228
?S:" ";D.write(i++%12?"":"\n","<b></b>")}h=17;Y()</script>
62:デフォルトの名無しさん
02/04/18 00:21
>>61
良くできているけれど、結構バグがあるね。
とりあえずテトリス棒が壁とかにめり込む事が頻繁にあるみたいです。
あと、回転するとめり込むこともありました。
63:デフォルトの名無しさん
02/04/18 00:25
>>61
ライフゲームの時は良かったが、
テトリスみたいな真っ当なゲームだとキーの反応がどうしてもね……
でも結構いいんじゃない?ブロックをどのような構造で管理してる?
64:S ◆Q14CxNhI
02/04/18 00:36
>>62 >>63
どもです。
キー入力は、ループ中に2回判定させようかと思ってます。文字数増えるけど。
ブロックは中心と上と右を固定し、それ+1個で形を決定します。
テトリス棒だけは直線にするために、+2個を配列の最初に確保 [2,-1]し、
はみ出す上を無視するようにしました。
バグは・・・何とかします、しましょう、してください・・・
65:デフォルトの名無しさん
02/04/18 11:40
このスレの問題点として、縮める前のコードがないために
他の人がいっしょに縮めることが難しくなってる。
前スレのトリッキー1、60、あたりが良く一緒に縮めていたけれど、
あれは特殊な例だと思う。
(それとも彼らレベルになれば、縮んでいても普通に読めるのかも)
かといってみんなが縮める前のコードをウプしたら、
かなり鬱陶しいだろうし、難しい問題だよな。
このスレを七行になったもの専門にして、
別に七行作業スレッドとかを作ってそっちで議論するとか・・・
66:デフォルトの名無しさん
02/04/18 12:00
むしろ7行モード・インデントして読みやすいモードを変換するフィルタを7行で書く。
67:前スレ
02/04/18 12:31
>>66
perlのインデントツールは現在製作中ですが何か?
68:デフォルトの名無しさん
02/04/18 12:38
>>66-67
65とちょっとずれてないか?
69:perl16
02/04/18 13:26
>>67
訂正
s/前スレ/前スレ843/;
70:デフォルトの名無しさん
02/04/18 14:20
57◆Air.TtTk氏のPDT びゅーわを詰めてみました。7行。
import java.awt.image.*;public class P{public static void main(String[]_){new
java.awt.Frame(){int w,h,c,v,m,M,Q,q[],r,i;BufferedImage I;{L(12);w=L(4);h=L(4
);L(12);for(q=new int[w*h];Q<w*h;){if(--M<0){M=7;m=L(1);}if((m>>M&1)>0)q[Q++]=
L(3);else for(v=(c=L(1))>>4|L(1)<<4,c=c&15;c-->=0;)q[Q]=q[Q++-v-1];}setSize(w+
80,h+80);(I=new BufferedImage(w,h,1)).setRGB(0,0,w,h,q,0,w);}public void paint
(java.awt.Graphics g){g.drawImage(I,40,40,this);}int L(int l){try{for(r=i=0;i<
l;)r+=System.in.read()<<8*i++;}catch(Exception e){}return r;}}.show();}}
71:デフォルトの名無しさん
02/04/18 18:16
>>66
■インデント揃え
スレリンク(tech板:116番)
(スレリンク(tech板:126番)
スレリンク(tech板:138番))
スレリンク(tech板:688番)
ノーマル→7行のフィルタは…どうだろう。俺は、手で縮めるときは
79文字を効率的に使えるように色々並べ替えたりするので、
そこまで考えてくれるのが7行で作れたら面白いかもシレン。
72:perl16
02/04/18 22:38
>>71
インデントツール完成したら、作ってみるYO!(・∀・)
だけど、インデントツール作るのにも相当苦労してるから、
ノーマル→7行は難しそうだ。
関数なんかも考慮しないかんし・・・
Perlだけど。
73:デフォルトの名無しさん
02/04/18 22:56
>>72
関数なんか関係ない。
デリミタを識別して、その前後の空白文字を詰める。
他の場所は空白文字が2個以上続いたら1つに正規化するだけ。
74:デフォルトの名無しさん
02/04/19 09:11
超高速素数列挙
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main(int argc, char *argv[]){unsigned long max, q, r;
if(argc!=2){return;}else{max=atoi(argv[1]);}char *P=new char[max];
for(q=3; q<sqrt(max); q+=2){if(P[q]!=1){for(r=q*q; r<max; r+=q+q){P[r]=1;}}}
printf("2\n");for(q=3; q<max; q+=2){if(P[q]!=1){printf("%u\n", q);}}}
誰でもできるか…しかもちょっとズルしてるし
75:クレジャパン
02/04/19 09:12
10 cls
20 'ぎゃはははははははは
30 a=100
40 print"ハァ(;´Д`)ハァ(;´Д`)ハァ(;´Д`)ハァ(;´Д`)"
50 if a<1 then goto 10000
60 a=a-1
70 goto 40
76:クレジャパン
02/04/19 09:32
int main(int argc,char *argv[]) {
int loop00=0; /* Cプログラマ死んでくれ */
for (loop00 = 0;loop00<10000;loop00++) {
printf("Cが出来るからってエバるなや\n");
}
return 0;
}
77:クレジャパン
02/04/19 09:36
c ** 頼むから死んでくれ **
do 5 loop00=0,(10000-1)
write(*, 600 )
600 format('Cが出来るからってエバるなや')
5 continue
stop
end
78:クレジャパン
02/04/19 09:52
/* タウンページたら「パソコン教えます」ってかいてあったんだよ */
/* んでなそこに行って「C言語教えて下さい」って言ったら */
/* 「アナタには無理だ、私でも一人前になるのに12年もかかった」 */
/* って言われたんだよ */
/* Cプログラマーって種族は人の顔見ただけでそう言う事判断するのかよ */
/* アアン?何にか言って見ろゴルァ(゚Д゚メ) */
/* そんなに偉いのかよ?C使えたら */
79:デフォルトの名無しさん
02/04/19 11:29
>>73
有る程度の構文解析は必要かと……
80:デフォルトの名無しさん
02/04/19 11:31
>>74
短くしようという気迫に欠けすぎているので却下。
・void main?
・変数名が2文字以上??
・#include <Math.h>???
81:デフォルトの名無しさん
02/04/19 11:56
センセー、>>74を縮めてみましたぁ〜
extern "C"{int printf(const char*,...);long atoi(const char*);}
main(int c,char *v[]){unsigned long m,q,r;if(c>1){m=atoi(v[1]);
char*P=new char[m];for(q=3;q<sqrt(m);q+=2){if(P[q]!=1){for(r=q*q;r<m;r+=q+q){
P[r]=1;}}}printf("2\n");for(q=3;q<m;q+=2){if(P[q]!=1){printf("%u\n",q);}}}}
82:ヽ(´ー`)ノ
02/04/19 13:50
>>75-78
のヒッキー君、スルーされてます
83:ヽ(´ー`)ノ
02/04/19 13:52
>>75-78
上からn88、Cまたはジャバ、フォートランですかね?
ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ
ヽ(´ー`)ノヽ(´ー`)ノヽ(´ー`)ノ
84:デフォルトの名無しさん
02/04/19 13:56
HTMLでenterキーやbackspaceで画面遷移しないようにするにはどうしたらいいでしょう
85:ヽ(´ー`)ノ
02/04/19 13:57
遷移←日本語に訳して
86:デフォルトの名無しさん
02/04/19 13:58
submitしないようにしたいのです
87:ヽ(´ー`)ノ
02/04/19 14:00
osなんやねん?
88:デフォルトの名無しさん
02/04/19 14:02
windows2000です
89:ヽ(´ー`)ノ
02/04/19 14:06
ブラウザなんやねん
90:デフォルトの名無しさん
02/04/19 14:07
IE5.5です
91:デフォルトの名無しさん
02/04/19 14:09
JavaScriptかなんかで制御できたらと思っているのですが
92:ヽ(´ー`)ノ
02/04/19 14:12
ワカランナー(・∀・)
93:ビッダーズ向上委員長
02/04/19 14:16
ヤフーは、どこをどうとっても最悪。
ビッダーズが一番!!!↓
URLリンク(www.bidders.co.jp)
皆、左上の会員登録をクリックして、
入会しよう。
94:デフォルトの名無しさん
02/04/19 15:11
>>85
辞書くらい(略
URLリンク(dictionary.goo.ne.jp)
95:デフォルトの名無しさん
02/04/19 15:26
>>81
最後にreturn 0;を忘れずに
96:デフォルトの名無しさん
02/04/19 15:40
をを、良スレ。しらなかった。
97:S ◆Q14CxNhI
02/04/19 18:07
プログラムの概念がわかれば、言語を知らなくても参加できるぞぃ。
たとえばおいらは JavaScript をほとんど全くしらなかったが、
蛇にはまり、ライフゲームを改造し、ついには自分でスロットやテトリスを書けるようになった。
今だ JavaScript はよくわかっていないが、7行そのままで読解もできるようになった。
これは Java についても同じ。
98:S ◆Q14CxNhI
02/04/19 18:25
for文ひとつ減らせた
<body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1]
,[2,-1]];function Y(){Z[11]=P;f=0;E=B[t];if(K)if(K-32){d=K-37?1:-1;for(i=4;--i;
)Z[h+E[i]+d]==S?f=1:0;f?0:h+=d}else{C=[];for(i=0;i<4;Z[h+(C[i++]=p*A-v*145)]==S
?f=1:0)p=E[i],v=Math.round(p/A);t&&!f?E=B[t]=C:0}f=K=0;for(i=W;i--;Z[W+i]=Z[i])
;for(i=4;i--;Z[W+p]=S)if(Z[A+(p=h+E[i])]==S)f=1;if(f==1){for(i=4;i--;)Z[h+E[i]]
=S;t=(t+1)%7;h=5}h+=A;for(f=1,i=19;i--;){for(j=11;--j&&Z[i*A+j]==S;);if(!j)for(
P+=f++,j=++i*A;j>A*2;)Z[j]=Z[j---A]}for(i=W;i--;D.all(6+i).innerHTML=Z[W+i]);if
(Z[5]!=S)setTimeout(Y,99)}S="□";h=17;W=240;A=12;D=document;Z=[];for(K=t=P=i=0;
i<W;){if(i<7)B[i].push(0,1,-A);Z[i]=(i+1)%A<2||i>228?S:" ";D.write(i++%A?"":
"\n","<b></b>")}Y()</script>
99:74
02/04/19 18:40
>>80
すんません。自分でちょっと前に書いたコードを適当に縮めただけだったので…
あと?の意味がわかりません。何故なんでしょうか?
C歴1ヶ月未満の厨房です。スマソ
100:74
02/04/19 18:44
あと>>81は
#include <Math.h>
しないと動かないんですが…
100get。
101:デフォルトの名無しさん
02/04/19 18:59
>>99
7行プログラミングとは言っているが、やはり縮められるだけ縮めたいもの。
そのため、変数・関数名は最初に1文字にしておくのが、チヂマー(縮める人?)の基本。
7行達成したからといって、無駄(に見える)をなくすべし!
ということを >>80 は言おうとしているんだろうよ。
それから void main() と main 関数の返値に void を指定するのは間違いというのがCの基本(と言われている)。
もちろん縮める上で有効ならば、皆それ(Warning)くらいは無視するよ。
102:S ◆Q14CxNhI
02/04/19 19:21
ほぼ9行。このままでも、もう少し縮みそう。
<body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1]
,[2,-1]];function Y(){Z[11]=P;f=0;E=B[t];if(K)if(K-13){d=K-37?1:-1;for(i=4;--i;
)f+=Z[h+E[i]+d]==S;f?0:h+=d}else{C=[];for(i=0;i<4;f+=Z[h+(C[i++]=p*A-Math.round
(p/A)*145)]==S)p=E[i];t&&!f?E=B[t]=C:0}f=K=0;for(i=4;i--;Z[W+p]=S)f+=Z[A+(p=h+E
[i])]==S;if(f){for(i=4;i--;)Z[h+E[i]]=S;t=(t+1)%7;h=5}h+=A;for(k=1,i=19;i--;){
for(j=11;--j&&Z[i*A+j]==S;);if(!j)for(P+=k++,j=++i*A;j>2*A;)Z[j]=Z[j---A]}for(i
=W;i--;Z[W+i]=Z[i])D.all(6+i).innerHTML=Z[W+i];if(Z[5]!=S)setTimeout(Y,99)}h=17
S="□";W=240;A=12;D=document;Z=[];for(K=t=P=i=0;i<W;){if(i<7)B[i].push(0,1,-A);
Z[W+i]=Z[i]=(i+1)%A<2||i>228?S:" ";D.write(i++%A?"":"\n","<b></b>")}Y()
</script>
103:デフォルトの名無しさん
02/04/19 19:23
age
104:74
02/04/19 19:43
>>101
丁寧にありがとうございました。
出直してきます。
皆さんがんばってください。
105:perl16
02/04/19 20:25
口先だけか、といわれるのは嫌なので、
とりあえずperlのインデントツール。
1行オーバー。
しかも完璧じゃないし。鬱。
#--- indent.pl ---#
chop($f=<>);open(F,"<$f")||die$!;while(<F>){s/\s?\n$//;$_.=" "if/sub$/;$d.=$_;
}close(F);$d=~s/(;|\{|\})/$1\n/g;$d=~s/\\\//\&\&\&/g;$d=~s/\\"/\@\@\@/g;while(
$d=~/(q|qq|=~m|=~)\/.*?\//s){&g;}&ad;while($d=~/=~(s|tr|y)\/.*?\/.*?\//s){&g;}
&ad;while($d=~/\(.*?\)/s){&g;}&ad;while($d=~/('|").*?\1.*?;/s){&g;}&ad;$d=~
s/\&\&\&/\\\//g;$d=~s/\@\@\@/\\"/g;$d=~s/\$\$\$/"/g;$d=~s/\%\%\%/'/g;$f.=".bak
";open(F,">$f");print F$d;close(F);sub g{$o[$c]=$`;$j[$c++]=$&;$d=$';}sub ad{
$c=0;for(@j){s/\n//g;s/"/\$\$\$/g;s/'/\%\%\%/g;$t.="$o[$c++]$_";}$d="$t$d";$t=
"";$c=0;$#o=$#j=-1;}
↑のインデントバージョン
URLリンク(www2.freejpn.com)
↑のツールを使って自分自身を実行した結果。
URLリンク(www2.freejpn.com)
106:デフォルトの名無しさん
02/04/19 20:52
>>101
>>95は無視してないようだが(w
107:C_sugar
02/04/19 21:07
テトリスは結構すごいね。
普通にJavaScriptでテトリスを作ろうとすると数百行になるからね。
108:SYN ◆mMJ0UaoA
02/04/19 21:28
// 引数に0-999(50-950辺りが面白い?)を与えると、自己平方フラクタル画像を出力。
// 言語はVC++
#include <string>
char*p,d[786486]={66,77,54};main(int c,char**g){FILE*f=fopen("f.bmp","wb");d[10
]=54;d[36]=d[4]=12;d[14]=40;d[26]=1;d[23]=d[19]=2;d[28]=24;d[42]=d[38]=196;d[43
]=d[39]=14;int x,y,n,w=512;double r=1,i,u,v,e=1.5/w,b,a=(atoi(g[1])/999.0)*2.0-
1.0,s=-0.75;u=1-a*a;do{i=r;r=(u/r+r)/2;}while(r<i);b=i*0.85;a=-0.62*a-0.13;p=d+
54;for(y=0;y<w;y++){for(x=0;x<w;x++){r=s+x*e;i=s+y*e;for(n=0;n<63;n++){u=r*r;v=
i*i;i=2*r*i+b;r=u-v+a;if(u+v>4)break;}p[y*w*3+x*3]=n*4;}}fwrite(d,1,786486,f);}
109:デフォルトの名無しさん
02/04/19 21:41
あんたGCAの作者か?
110:デフォルトの名無しさん
02/04/19 21:42
なんつーか、惰性で続いてる感が拭えない。
前スレ500前後で終わるべきだったかと。
range corderはオモロかったけどね。
111:デフォルトの名無しさん
02/04/19 21:43
>>109
SもSYNも某圧縮アルゴリズム掲示板の住人
前スレのRange corder作ったのも縮めたのもSだっか。
112:SYN ◆mMJ0UaoA
02/04/19 21:59
>>110
スレリンク(tech板:775番)
を見て何か描けたらいいなって思ったけど、ショボくてスマソ。
113:110
02/04/19 22:08
>>112
いや、誰がショボイとかそういう話じゃなく。
「これを縮めるぞ」みたいなやる気の出る作品が出てこないなぁって話
114:デフォルトの名無しさん
02/04/19 23:06
>>111
別に誰だろうとあんま関係ないよ。
まぁ、面白いかつまらないかはあるけどな。
115:S ◆Q14CxNhI
02/04/20 00:18
9行。
アルゴリズムか仕様を今以上に工夫しないと、8行も難しいかもしれません。
<body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1]
,[2,-1]];function Y(){Z[11]=P;f=0;E=B[t];i=4;if(K)if(K-13){for(d=K-37?1:-1;i--;
)f+=Z[h+E[i]+d]==S;f?0:h+=d;}else{for(C=[];i--;f+=Z[h+(C[i]=p*A-Math.round(p/A)
*145)]==S)p=E[i];t*!f?E=B[t]=C:0;}for(f=K=i=0;i<4;Z[W+p]=S)f+=Z[A+(p=h+E[i++])]
==S;if(f){for(t=++t%7;i--;)Z[h+E[i]]=S;h=5}h+=A;for(k=1,i=19;i--;){for(j=11;--j
&&Z[i*A+j]==S;);if(!j)for(P+=k++,j=++i*A;j>2*A;)Z[j]=Z[j---A]}for(i=W;i--;Z[W+i
]=Z[i])D.all(6+i).innerHTML=Z[W+i];Z[5]!=S?setTimeout(Y,99):0;}D=document;W=240
A=12;h=17;Z=[];for(K=t=P=i=0;i<W;D.write(i%A?"":"\n","<b></b>"),Z[W+i]=Z[i]=++i
%A<2||i>228?S="□":" ")i<7?B[i].push(0,1,-A):0;Y()</script>
116:デフォルトの名無しさん
02/04/20 01:15
>>100
math使わなくても、二乗したのを比較すればいいのでは??
>>115
読めないのだよ……
過去スレの354みたいに書いてくれると嬉しい……
スレリンク(tech板:354番)
117:S ◆Q14CxNhI
02/04/20 02:06
<body onKeyDown=K=event.keyCode><pre><script>function Y(){
Z[11]=P; // 得点を表示バッファに書き込み
E=B[t]; // 現在落下中のブロック
f=0; // 移動・回転決定用フラグ
if(K) // キーが押されているか
if(K!=32){ // 横移動
d=K-37?1:-1 // d:x方向の差分
for(i=0;i<4;i++) // 横移動判定
f+=Z[h+E[i]+d]==S; // 移動先が空白かどうか
f?0:h+=d; // すべて空白なので移動決定
}else{ // 回転
C=[]; // 回転先の座標保持用
for(i=0;i<4;i++){ // 回転判定
p=E[i]; // ブロックの各位置
v=Math.round(p/12); // 回転先の x 座標
w=p-v*12; // 回転先の y 座標
C[i]=w*12-v; // 回転先の座標計算
if(Z[h+C[i]]==S)f=1; // 回転先が空白かどうか
}
t*!f?E=B[t]=C:0; // すべて空白なので回転決定
}
K=0; // キー入力キャンセル
for(f=i=0;i<4;i++){ // 落下判定
f+=Z[12+(p=h+E[i])]==S; // 落下先が空白かどうか
Z[240+p]=S // ブロック表示のために表示バッファへコピー
}
if(f){ // 落下できない
for(i=0;i<4;i++)Z[h+E[i]]=S; // ブロック停止
t=++t%7; // 次のブロック決定(現在順送り)
h=17 // 位置初期化
}else h+=12; // 一段落下
for(k=1,i=19;i--;){ // ラインがそろったか判定
for(j=11;--j&&Z[i*12+j]==S;); // そろったラインを検索
if(!j){ // そろった
P+=k++; // 得点 1ライン 1点, ..., テトリス 10点 になる
for(j=++i*12;j>2*12;)Z[j]=Z[j---12] // 全体を一段下げる
}}
for(i=240;i--;){
D.all(6+i).innerHTML=Z[240+i]; // 表示用バッファを表示
Z[240+i]=Z[i] // 表示バッファのクリア
}
Z[5]!=S?setTimeout(Y,99):0; // 入り口にブロックがあったら終了
}
// ブロックの作成
// 中心からの差分で配置する。棒を除くすべてのブロックはL字にブロックがあり、
B=[[-11],[-24],[2],[13],[-13],[-1],[2,-1]]; // それ以外の1個だけを別にする
for(i=0;i<7;i++)B[i].push(0,1,-12); // ブロック共通部分追加
D=document;
// 位置は、縦方向1マスは 12 単位となる 座標(x,y) なら h=x+y*12
h=17; // ブロックの中心位置初期化
Z=[]; // バッファ [0-239]:固定したブロック用 [240-479]:表示用バッファ
for(K=t=P=i=0;i<240;){
D.write(i%12?"":"\n","<b></b>"); // HTML表示領域の描画
Z[240+i]=Z[i]=++i%12<2||i>228?S="□":" "; // 床と壁の設定、番兵にもなる
}
Y()
</script>
118:デフォルトの名無しさん
02/04/20 02:06
>>117
いやそれはsageてくれ
119:S ◆Q14CxNhI
02/04/20 02:19
>>118
スマソ。改行エラーがでてばかりなので sage 忘れてしまった
120:116
02/04/20 02:26
>>119
thx。可能なら縮めるのに協力します
121:デフォルトの名無しさん
02/04/20 03:05
>>116
速度に違いは?
いや、短くするのが趣旨なのはわかってるんだけど
122:デフォルトの名無しさん
02/04/20 03:34
>>121 q < sqrt(m) より q*q < mのほうが速いに決まってるだろ
123:デフォルトの名無しさん
02/04/20 03:52
>>122
ウチで動かしたらq*q<mの方が平均0.2〜3秒遅くなったのだが。
…逝ってくる
VBなら間違いなく前者の方が早いな(関係無い)
124:S ◆Q14CxNhI
02/04/20 04:12
テトリス8行31文字。プログラム全体を見直しました。
<body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1]
,[2,-1]];W=240;Z=[];h=17;function Y(){f=0;E=B[t];i=4;if(K)if(K-13){for(d=K-37?1
:-1;i--;)f+=Z[h+E[i]+d];h+=d*!f;}else{for(C=[];i--;f+=Z[h+(C[i]=p*A-Math.round(
p/A)*145)])p=E[i];t*!f?E=B[t]=C:0;}for(f=K=i=0;i<4;Z[W+p]=1)f+=Z[A+(p=h+E[i++])
];if(f){for(t=++t%7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=W-A;i--;)if(i%A)Z[i]?0:
i-=i%A;else for(P+=k++,j=i+=A;--j>A*2;)Z[j]=Z[j-A];for(i=W;i--;Z[W+i]=Z[i])D.
all(6+i).innerHTML=i-11?Z[W+i]?"□":" ":P;Z[5]?0:setTimeout(Y,99);}D=document;
A=12;for(K=t=P=i=0;i<W*2;D.write(i%A?"":"\n","<b></b>"),Z[i]=++i%A<2||i>228?1:0
)B[i%7].push(0,1,-A);Y()</script>
>>120
ありがとうございます。
125:S ◆Q14CxNhI
02/04/20 04:16
>>124
画面がスクロールする恐れがあるため、回転は「リターンキー」にしました。
126:デフォルトの名無しさん
02/04/20 04:40
CかC++でオセロかインベーダ作ってください。
おながいします
127:デフォルトの名無しさん
02/04/20 08:25
>>126
前スレに6行オセロ(コンピュータ対戦可能)という神の作品はあったぞ。
128:前スレ853
02/04/20 08:28
>>105
ん? Perl4 対応を考えてる?
129:perl16
02/04/20 11:51
>>128
あっ、考えてない。
perl5だけしか…
>>105
を改良、7行になったけどバグあり。
#--- indent.pl ---#
chop($f=<>);open(F,"<$f")||die$!;while(<F>){s/\s?\n$//;$_.=" "if/sub$/;$d.=$_;
}close(F);$d=~s/(;|\{|\})/$1\n/g;$d=~s/\\\//\&\&\&/g;$d=~s/\\"/\@\@\@/g;@p=(
'(q|qq|=~m|=~)\/.*?\/','(s|tr|y)\/.*?\/.*?\/','\(.*?\)','(\'|").*?\1.*?;');for
(@p){while($d=~/$_/s){$o[$c]=$`;$j[$c++]=$&;$d=$';}$c=0;for(@j){s/\n//g;
s/"/\$\$\$/g;s/'/\%\%\%/g;$t.="$o[$c++]$_";}$d="$t$d";$t="";$c=0;$#o=$#j=-1;}
$d=~s/\&\&\&/\\\//g;$d=~s/\@\@\@/\\"/g;$d=~s/\$\$\$/"/g;$d=~s/\%\%\%/'/g;$f.=
".bak";open(F,">$f");print F$d;close(F);
↑のインデントバージョン
URLリンク(www2.freejpn.com)
↑のツールを使って自分自身を実行した結果。
URLリンク(www2.freejpn.com)
130:perl16
02/04/20 11:55
バグって言うか、ちゃんと改行されない。
131:775
02/04/20 12:09
#include <stdio.h> /* BMPGEN - 2 ムリダ・・*/
#define P(A,N,B,M) for(i=0;i<N;i++) putc(A, f); for(i=0;i<M;i++) fputc(B, f);
enum{L=320,N=240};int k,i,j,m[L],n[L];main(){FILE *f=fopen("c.bmp","wb");P(66,
1,77,1)P(54,1,132,1)P(3,1,0,5)P(54,1,0,3)P(40,1,0,3)P(64,1,1,1)P(0,2,N,1)P(0,3
,1,1)P(0,1,24,1)P(0,6,132,1)P(3,1,0,1)P(196,1,14,1)P(0,2,196,1)P(14,1,0,10)for
(i=0;i++<L;)m[i]=0;for(i=j=1;i++<99;)m[j=(i*99+j)%L]=N;for(i=0;i++<N;){for(j=0
;j++<L;)for(k=0;k++<3;)fputc(m[j],f);for(j=1;j++<319;n[j]=(m[j-1]+m[j+1])/2);
for(j=0;j++<L;m[j]=n[j]);}}
それにしてもすごいスレだ・・。
132:デフォルトの名無しさん
02/04/20 12:35
>>126
6行オセロは必見だぞ。
あの短さ、バグなし、コンピュータ対戦、あれは間違いなく芸術
133:775
02/04/20 12:54
ああ、>>108にもっと頭良いのが出てましたね・・・。
すいませんでした、逝ってきます。
134:デフォルトの名無しさん
02/04/20 13:05
>>131
すげーbmpを吐いたぞ
135:前スレ853
02/04/20 15:24
>>129
ファイルの入出力方法が冗長に感じたんで
indent.pl srcfile > dstfile
てな使い方に変えてみて 5 行。
sub l{('(qq?|=~m?)\/.*?\/','(s|tr|y)\/.*?\/.*?\/','\(.*?\)','(\'|").*?\1.*?;')}
$_=join'',map{s/\s+$//;s/\w$/$& /;$_}<>;s/[;{}]/$&\n/g;$a='@@@';$m='&&&';$p=
'%%%';s|\\/|$m|g;s|\\"|$a|g;$d=$_;for(l){1while$d=~s/\G$_/$o[$c]=$`;$j[$c++]=$&
;''/egs;$c=0;for(@j){s/\n//g;s/"/\$\$\$/g;s/'/$p/g;$t.="$o[$c++]$_"}($d,$t,$c,
@o,@j)=("$t$d")}$_=$d;s|$m|\\/|g;s/$a/\\"/g;s/\$\$\$/"/g;s/$p/'/g;print
でもコレ、ハッシュとかまで改行しちゃうよね(汗)。
トークナイザ作って括弧の対応調べて地道に改行しないと綺麗にはならないと思う。
136:デフォルトの名無しさん
02/04/20 17:15
>>102のやつ、回転できなかったけど、直ってるかな?ドキドキ。
137:デフォルトの名無しさん
02/04/20 17:17
sage忘れた、
アナログ回線切って、オフラインでコーヒーブレークしてから、CPU頭に載せて自冊・・・
138:S ◆Q14CxNhI
02/04/20 17:31
>>136
>>102 から回転がリターンキーになってます。
書き忘れちゃったんです、宇都。
8行達成が、ぎりぎりかも・・・
<body onKeyDown=K=event.keyCode><pre><script>B=[[-11],[-24],[2],[13],[-13],[-1]
,[2,-1]];W=240;function Y(){E=B[t];i=4;if(K)if(K-13){for(d=K-37?1:-1;i--;)d*=!Z
[h+E[i]+d];h+=d}else{for(C=[];i--&&!Z[h+(C[i]=E[i]*A-Math.round(E[i]/A)*145)];)
;t*i<0?E=B[t]=C:0}for(f=K=i=0;i<4;Z[W+p]=1)f+=Z[A+(p=h+E[i++])];if(f){for(t=++t
%7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=W-A;i--;)if(i%A)Z[i]?0:i-=i%A;else for(P
+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A];for(i=W;i--;Z[W+i]=Z[i])D.all(6+i).innerHTML=i-
11?Z[W+i]?"□":" ":P;Z[5]?0:setTimeout(Y,99)}h=17;A=12;Z=[];D=document;for(K=t
=P=i=0;i<W*2;D.write(i%13?"<b></b>":"\n"),Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0
,1,-A);Y()</script>
139:S ◆Q14CxNhI
02/04/20 18:19
あまり減らなかったので、sage 進行
<body onKeyDown=K=event.keyCode><pre><script>function Y(){E=B[t];i=4;if(K)if(K-
13){for(d=K-37?1:-1;i--;)d*=!Z[h+E[i]+d];h+=d}else{for(C=[];i--&&!Z[h+(C[i]=E[i
]*A-Math.round(E[i]/A)*145)];);t*i<0?B[t]=C:0}for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E
[i++]]=1;if(f){for(t=++t%7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=228;i--;)if(i%A)
Z[i]?0:i-=i%A;else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A];for(i=240;i--;X[i]=Z[i]
)D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,99)}B=[[-11],[-
24],[2],[13],[-13],[-1],[2,-1]];D=document;A=12;Z=[];h=17;X=[];for(K=t=P=i=0;i<
480;D.write(i%13?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0,1,-
A);Y()</script>
140:デフォルトの名無しさん
02/04/20 20:03
>>138
>>117はスペース回転だったけど?
>>117ベースで機能を追加すると死んでしまった・・・
所詮折れのスキルはこんなものなのか?と、悔しいから奮闘中。
Sタン、更新ハヤイヨー(スゴイナ-。
7行の壁を破りたい・・・
141:デフォルトの名無しさん
02/04/20 20:13
>>139
本題じゃないけどこのテトリス、ゲームとしてシビアすぎない?。
142:デフォルトの名無しさん
02/04/20 21:06
>>141
ちょっと、ね。キーが鈍いし、ブロックは早いし。
まぁ、自分で調節すればいいんだけど。
143:S ◆Q14CxNhI
02/04/20 21:06
>>140
わかりやすさを優先するために >>117 は少し以前のものをベースに、その時点での最新版と融合させました。
>>141
1段落下に対して、横移動あるいは回転のどちらか1つしかできませんので。
2〜3回操作可能にすると、バランスが良くなるでしょう。
落下を任意(カーソル下)、得点に応じて速くなるとすることもできるでしょう。
ただ、どちらにしろ、文字数が・・・
144:デフォルトの名無しさん
02/04/20 21:13
ちょうどテトリスつくりたかったこともあって、参戦。
dめおえj、JavaScriptやったことないんだよね。
そうか、ブロックのデータはそうやって考えると小さくなるのか。
パパ、がんばっちゃうぞー
145:デフォルトの名無しさん
02/04/20 23:20
凄いのかもしれないけれど、ちょっといまいちの印象が抜けきらないな。
とりあえず、長くなってもいいからゲームとして成り立つソースを
是非アップして貰いたいと思いますがどうでしょう。
自分で作ってもいないのに生意気ですか?逝ってきます。
146:S ◆Q14CxNhI
02/04/20 23:31
多少遊びやすいバージョン
>>145 こんなもんで、どうでしょう?
<body onKeyDown=K=event.keyCode><pre><script>function Y(){E=B[t];i=4;if(K)if(K-
b){for(d=K-37?1:-1;i--;)d*=!Z[h+E[i]+d];h+=d}else{for(C=[];i--*!Z[h+(C[i]=E[i]*
A-Math.round(E[i]/A)*145)];);t*i<0?B[t]=C:0}for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+E[
i++]]=1;if(e){if(f){for(t=++t%7;i--;)Z[h+E[i]]=1;h=5}h+=A;for(k=1,i=228;i--;)if
(i%A)Z[i]?0:i-=i%A;else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A];}e=1-e;for(i=240;
i--;X[i]=Z[i])D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,9)
}B=[[-11],[-24],[2],[b=13],[-b],[-1],[2,-1]];D=document;A=12;Z=[];h=17;X=[];for
(e=K=t=P=i=0;i<480;D.write(i%b?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i
%7].push(0,1,-A);Y()</script>
147:145
02/04/20 23:53
>>146
キー操作が辛くてなんとも…
その部分を改良しないと、テトリスとしてはダメかなと、
僭越ながら思いました。とりあえずソース読んでみます
148:デフォルトの名無しさん
02/04/21 00:01
なんかテトリス不評だな。俺は7行ネタとしては面白いと思うけど、
ゲームとして見たら……うーん。
やっぱJSだからきついな
149:デフォルトの名無しさん
02/04/21 00:17
>>147
そうか?おれには簡単すぎていつまでも終わらない
ゲーム性はこれくらいでいい
これで7行したら紙
150:デフォルトの名無しさん
02/04/21 00:21
>>149
先人達に比べると、完成度をもう少し上げて欲しいと思わないか?
前スレのマインスイーパとかの完成度と比べてしまうと、どうも……
でもとりあえず7行にするのはそれでいいかもしれないけど、
S氏には期待しているので、もう少し頑張って欲しい、と無責任なことを言うテスト
151:デフォルトの名無しさん
02/04/21 00:37
>>150
先人達と比べるのは辛すぎるのではない?
Sさんもかなり頑張って縮めてると思うし、なによりこのやる気はいいと思う。
しかし、前スレの初期にいた人、来ないね。
152:S ◆Q14CxNhI
02/04/21 02:48
多少遊びやすい版でようやく >>138 に追いつく。今晩はここまでにします。
<body onKeyDown=K=event.keyCode><pre><script>X=[];function Y(){E=B[t];i=4;if(K)
if(K-b){for(d=K-37?1:-1;i--;)d*=!Z[h+E[i]+d];h+=d}else{for(C=[];i--*!Z[h+(C[i]=
E[i]*A-Math.round(E[i]/A)*145)];);t*i<0?B[t]=C:0}for(f=K=i=0;i<4;f+=Z[A+p])X[p=
h+E[i++]]=1;if(e=!e){if(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(
i%A)i-=i%A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A}for(i=240;i--;X
[i]=Z[i])D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,9)}B=[[
-11],[-24],[2],[b=13],[-b],[-1],[2,-1]];D=document;A=12;Z=[];h=17;for(e=K=t=P=i
=0;i<480;D.write(i%b?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0
,1,-A);Y()</script>
153:デフォルトの名無しさん
02/04/21 03:01
>>152
お疲れ。
154:S ◆Q14CxNhI
02/04/21 03:54
ついに8行達成です。・・・遊びづらい版ですが・・・
<body onKeyDown=K=event.keyCode><pre><script>X=[];A=12;Z=[];function Y(){E=B[t]
c=g=f=0;d=K-37?1:-1;C=[];for(i=4;i--&&K;K-b?c+=!Z[h+p+d]:g+=!Z[h+(C[i]=p*A-Math
.round(p/A)*145)])p=E[i];t&&g==4?B[t]=C:c-4?0:h+=d;for(K=i=0;i<4;f+=Z[A+p])X[p=
h+E[i++]]=1;if(f){for(t=++t%7;i--;)Z[h+E[i]]=k=1;for(i=228;i--;h=5)if(i%A)i-=i%
A*!Z[i];else for(P+=k++,j=i+=A;--j>A;)Z[j]=Z[j-A]}h+=A;for(i=240;i--;X[i]=Z[i])
D.all(6+i).innerHTML=i-11?X[i]?"□":" ":P;Z[5]?0:setTimeout(Y,99)}B=[[-11],[-
24],[2],[b=13],[-b],[-1],[2,-1]];D=document;h=17;for(K=t=P=i=0;i<280;D.write(i%
b?"<b></b>":"\n"),X[i]=Z[i]=++i%A<2||i>228?1:0)B[i%7].push(0,1,-A);Y()</script>
眠い。
155: ◆Air.TtTk
02/04/21 04:07
ちゃんとした迷路(7行)
迷路って以外と簡単だったのね。
5行レベルかな…。
// M.java
public class M{int g,x,y,m[][]=new int[79][23];public static void main(String[]_
){new M();}M(){for(y=0;y<23;y++)m[0][y]=m[78][y]=1;for(x=0;x<79;x++)m[x][0]=m[x]
[22]=1;m[2][1]=m[76][21]=m[2][2]=1;while(true){g=1;for(x=2;x<77;x+=2)for(y=2;y<
21;y+=2){if(m[x][y]>0){D(0,-2);D(0,2);D(-2,0);D(2,0);}g&=m[x][y];}if(g>0)break;}
for(y=0;y<23;y++){for(x=0;x<79;x++){System.out.print(m[x][y]>0?" ":"@");}System.
out.println("");}}void D(int X,int Y){if(m[x+X][y+Y]<1&&Math.random()<0.1)m[x+X]
[y+Y]=m[x+X/2][y+Y/2]=1;}}
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5382日前に更新/349 KB
担当:undef