七行プログラミング part6

■ このスレッドは過去ログ倉庫に格納されています
2008/07/06(日) 23:00:49
7行×79文字なら言語は問いません。
過去作品は、もしかしたら>>2-10あたりに。

前スレ
http://pc11.2ch.net/test/read.cgi/tech/1142467359/
part4
http://pc8.2ch.net/test/read.cgi/tech/1051703369/
part 3
http://pc2.2ch.net/tech/kako/1033/10331/1033143528.html
part 2
http://pc3.2ch.net/tech/kako/1018/10188/1018840143.html
part 1
http://pc.2ch.net/tech/kako/984/984182993.html
227デフォルトの名無しさん
垢版 |
2009/05/16(土) 06:51:37
あんまり多くすると重いかも
小数点とか区切り位置とかは手抜き

<body id=B onload="a=prompt('何桁?',b=1e4)>>2;c=d=0;setInterval(function w(){if
(0<a--){e=a*14+14;for(f=c%=b;g=--e*2;c=c/g|0)c=c*e+b*(d?w[e]:b/5),w[e]=c%--g;d=
f+c/b|0;B.innerHTML+=(d+b+'').slice(1)+(a%25?' ':'<br>')}},250)">
228デフォルトの名無しさん
垢版 |
2009/05/24(日) 05:52:29
wonderfulで動く7行プログラムキボン
229デフォルトの名無しさん
垢版 |
2009/05/27(水) 20:31:40
http://cm.xrea.cc/thread/program_002.html#R448 にあったのが
C++版だったので、Cで動くようにしてみた。コンパイラは gcc-4.3.2 で確認。

#include <stdio.h>
int main(int c,char *v[]){unsigned C,t[256];int i,j;FILE *F;
if(!(F=fopen(v[1],"r"))){fprintf(stderr,"Can't Open:%s\n",v[1]);return 1;}
for(i=0;i<256;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1?0xedb88320:0);
for(C=~0;(i=getc(F))>=0;C=t[C&255^i]^C>>8);
fclose(F);printf("%08lx %s\n",~C,v[1]);return 0;}
2009/05/28(木) 08:02:07
ついでに CRC16
#include <stdio.h>
int main(int c,char *v[]){unsigned short C,t[256];int i,j;FILE *F;
if(!(F=fopen(v[1],"r"))){fprintf(stderr,"Can't Open:%s\n",v[1]);return 1;}
for(i=0;i<256;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1?0xa001:0);
for(C=0;(i=getc(F))>=0;C=t[C&255^i]^C>>8);
fclose(F);printf("%04x %s\n",C,v[1]);return 0;}

CRC16の場合、テーブル無しに直接計算するコードもあったりするのだが
ttp://retroarchive.org/cpm/cdrom/CPM/GENASM/CRC16.ASM
ttp://retroarchive.org/cpm/cdrom/CPM/GENASM/CRC120.ASM
こういうのをCにしてみるのも面白いかと思った。
2009/06/12(金) 08:57:12
DOS系ディスクイメージのヘッダ出力。perl-5.8.8と DOS版Jperl4 で動作確認。
こんな感じだと、ちょっとしたバイナリデータ確認なんかにも使えそうだと思った。

#!/usr/bin/perl
sub D{print"@_\n";exit 1}&D("$0 [-o offset] <imgfile>")if$#ARGV<0;$F=shift;if(
$F=~/^-/){&D("??: -$'")if"o"ne$';$_=eval(shift);$F=shift}open(F)||&D("$F:$!\n")
;binmode F;seek(F,$_,0);read(F,$_,128);close F;@_=unpack(vCvCv2Cv3V,substr($_,
11,21));$i=0;for((secsize,cluster_secs,reseverd_secs,fat_num,root_dir_max,
seccount,media_disc,fat_secs,trk_secs,heads,hidden_secs)){print"$_:$_[$i++]\n"}
print"VolLbl:'".substr($_,0x2b,11)."'\nFatType:'".substr($_,0x36,8)."'\n"
2009/07/22(水) 20:21:54
>>230
反転してるのかこれ
2009/08/23(日) 21:07:49
既出を参考にマインスイーパ
コマンドライン引数として「横 縦 地雷数」を「"」で囲んで渡す 例)"9 9 10"
座標は左上を「1 1」として「x y」で入力
#include <stdio.h>
extern"C"long time(long*);int r=time(0),w,h,b,m;char*f,*p,*q;void C(int t){if(
p[t]==63){int i=9,k=0;for(m--;i--;p[t]=q[t]?64:48+k)k+=q[t+i/3*w-w+i%3-1];for(
i=9;!k&&i--;)C(t+i/3*w-w+i%3-1);}}int main(int n,char**v){sscanf(v[1],"%d%d%d"
,&w,&h,&b);n=w++*h;h*=w;f=new char[m=h+w*4+h];for(q=f+w*2;m--;p=q+h+w)f[m]=0;
for(m=n-b;h--;)p[h]=(h+1)%w?r=r*69069+5,(r>>26&63)<64*b/n--?b-=q[h]=1,63:63:10
;for(;puts(p),m*=!q[h];C(h=--n*w+--b))scanf("%d%d",&b,&n);delete[]f;return 0;}

先人たちに感謝を
2009/09/01(火) 04:04:50
おお、久しぶりに大作きたか

しかし過疎ったな…このスレ。活気あった頃が懐かしい
235デフォルトの名無しさん
垢版 |
2009/09/23(水) 06:31:29
ゲーム音楽にありそう
2009/09/23(水) 06:33:37
誤爆しました
237デフォルトの名無しさん
垢版 |
2009/09/23(水) 07:28:31
ネタくれ
2009/09/23(水) 10:24:12
ゲーム音楽
239デフォルトの名無しさん
垢版 |
2009/09/25(金) 01:29:19
ゲーム音楽という言葉が出たのでスレ違いだけど、
音出しテスト用にデータ量が少ないBGM探してるんだけど
おすすめ何かありませんか?
今はゼビウス使ってますが飽きてきたので
この年代のナムコは簡単でいいBGMが多いね
2009/09/25(金) 01:42:37
ファルコムの曲でもつかえば?
場合によってはライセンスがフリーだし
241デフォルトの名無しさん
垢版 |
2009/09/25(金) 01:44:17
じゃあxanaduにするわ
あんがと
2009/09/25(金) 02:03:53
MML から WAVE 生成とかできるかな
2009/09/25(金) 09:31:17
>>242
http://cm.xrea.cc/thread/program_004.html#R867
867-869,920 七行達成ビミョーだけど。
2009/09/25(金) 12:13:33
>>243
なるほど・・・
245デフォルトの名無しさん
垢版 |
2009/09/30(水) 03:10:07
人生を変える名言・格言 今日の昼飯  ガッカリした観光名所 おまえら花粉対策何してる?
どんな本を読めばいいのかわからない  ニコニコ動画でこれは見とけ!って いう動画ある?
一番欲しい物┌──────────────────────┐...ただし異論は認める
ュー速 三大  |┌‐‐.───────────────────‐.┐|  ν速民 お薦めの漫
決めようぜ ! !|| lニニニl                             ||.先での悲惨な出来事
マイナーだけ...||                                 || 今期で一番面白いア
外食で 何食 .||‐iニニニi.iニニニi──────┬─────────┤| ど.こ.までが一般的な
遅.刻.の.言.い||. L∩,,」L∩,,」         i                 ||.っ て 言 う の ?
あ つ ま れ〜||                   i     ∧_∧      ||った映画 といえば ?
外食600円以.||                   i     (´∀` )     || コロコミックの思い出
がいい 職業 .||                   i    /" ̄ ̄ ゙̄i      || んだらどうするの ?
エリアの魅力.||                   i    | ヽ      |     .||にありがちな事と言え
る.んじゃね.??||                   i    ゝ___丿     ||ν速民ならどうする?
 .未だにニコ.||                   i                 || い奴はいないよな ?
..日の思い出..|!'‐/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ゙̄ヽ───────┘| 必ずレスがもらえるコ
 衝撃の動画├─| ─┐─┐  ナ_ヽヽ     | |..|───────‐┤絶対 入れたい アドオ
がいいよネ  |  |  .ノ  / イ / _  ── . .|            |する理由、やめた理由
野山の魅力 |  \____   ______/            | 一体 どっちが害悪?
お前らの知っ.|         \/                        |.してもらうと嬉しいこと
246デフォルトの名無しさん
垢版 |
2009/09/30(水) 03:10:48
5日ぶりのレスが誤爆でごめんね、ごめんね;;
2009/11/03(火) 08:34:35
ガタガタじゃないか
2009/11/05(木) 10:21:33
というほどでもないと思うが
2009/11/09(月) 02:39:25
「テトリスを1時間強で作ってみた」動画の投稿者にインタビュー──「プログラミングの楽しさ伝えたい」:ITpro
http://itpro.nikkeibp.co.jp/article/Interview/20091104/340019/?ST=develop&P=2

>  ちなみに以前は,「7行プログラミング」という2ちゃんねるのスレによく書き込んでいたのですよ。
> 「トリッキーの1」っていうハンドル・ネームで「6行オセロ」とかを作っていて,面白かったですね。


2009/11/09(月) 03:04:30
>>249
俺が書こうと思ってきたら書き込まれてたwwww
2009/11/09(月) 03:12:48
ttp://tsushima.2ch.net/test/read.cgi/newsplus/1257697437/
ν即+見て久方ぶりに飛んできました…初期の砂嵐なんかはお題も良かったね。
ttp://www.broadtail.jp/
typedef と詰め詰めのコードがキモいヘッダ画像はさすが悪趣味だね。
2009/11/09(月) 16:03:40
ぬるぽ
2009/11/10(火) 00:16:35
ガッ
2009/12/02(水) 19:48:41
>>249
この人part1からいたみたいだな
しかも常連さん
2009/12/10(木) 17:04:13
おれもいつかインタビューで仮眠愚アウトする日がくるかもしれない
2009/12/26(土) 19:17:39
#define MAX 36
typedef long long a,b[MAX];void c(a*e,a*f){a g=*e,h=*f;for(;g?h%=g:0;)g%=h;*e/=
g+=h;*f/=g;}int printf(char*,...),d;int main(){for(b e={1},f={1};printf("B[%d]\
=%lld/%lld\n",d,e[d],f[d]),++d<MAX;){a g=0,h=1,i=d,j,k,l;for(;i--;g=g*l+k*h,h*=
l,c(&h,&g))for(l=f[j=i],k=e[i];c(&k,&l),j;k*=d+1-j)l*=j--;h*=d+1;c(&g,&h);l=h<0
?i:1;e[d]=-g/l;f[d]=h/l;}}
2009/12/27(日) 11:02:20
ベルヌーイ数か
これはC99のソースなんだな
258デフォルトの名無しさん
垢版 |
2010/01/23(土) 23:26:21
>>249
超絶テクニックを伝授! 七行プログラミング 第1回
6行でリバーシを作る
http://itpro.nikkeibp.co.jp/article/MAG/20100120/343504/
2010/01/24(日) 17:16:34
実に面白い
2010/01/24(日) 21:28:41
久々に雑誌買ってみようかな?
トリッキーの1さん懐かしいな。
2010/05/09(日) 08:48:43
GetMessageが-1以外の負数を返さないことが保証されてないのが怖い
2010/05/10(月) 10:46:04
>>261
http://msdn.microsoft.com/ja-jp/library/cc364699.aspx
まあ保障じゃないけど
263デフォルトの名無しさん
垢版 |
2010/07/04(日) 13:09:56
微妙な燃料投下。

#!perl
open(F,shift)||die;binmode F;print<DATA>,$/,'#~';$p=$j=2;while(read(F,$c,1)){
push(@b,ord($c));if($#b>2){&E;@b=()}}close F;&E if@b;print"*\n";sub E{for($t=0,
$i=0;$i<4;++$i){$t*=3;$t+=$b[$i]%3}$c=int(($t+1)*20/19);while(1){++$c if($c+=33)
>=42;print chr($c);if(++$p>=72){print"\n#";$p=0}last if!@b;$c=int((shift@b)/3)}}
__DATA__
#?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
#Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
#?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN#~

nideさん作 com2txt をperlで書いてみた。
改行コードは DOS/Windows系のCRLF前提なので、LFのみ時は要変換。
2010/07/16(金) 22:02:20
>>263
改行コード問題の改善と文法レベルでの縮め。

#!perl
$L="\x0D\x0A";sub E{$t=0;($t*=3)+=$b[$_]%3 for 0..3;$_=int(($t+1)*20/19);{($_+=
33)>=42&&++$_;print chr;$p=0,print"$L#"if++$p>=72;@b||last;$_=int((shift@b)/3);
redo}}binmode STDOUT;if(open F,pop){binmode F;print'#?7%00%DDPYA44P,5@P_4?P],}'
,"P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu$L#Nide/com2txt/X-uw'P'5+~PZ5g"
,"(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES$L#?[X5;:PZ5WN'PR',~P/5`QP5Z P-U"
,"rPEUQ]EENNNNNN#~$L$L#~";$p=2;while(read F,$_,1){push@b,ord;E,@b=()if@b>3}@b&&
E;print"*$L"}
2010/07/22(木) 16:58:56
DOSの.com ファイルをテキスト化するcom2txt。
DOSリアルモードで動くJperl4に対応させてみた。
http://www.vector.co.jp/soft/dl/dos/util/se000203.html

#!/usr/bin/perl
$L="\x0D\x0A";sub E{$t=0;for(0..3){$t*=3;$t+=$b[$_]%3};$_=int(($t+1)*20/19);{(
$_+=33)>=42&&++$_;print pack(C,$_);$p=0,print"$L#"if++$p>=72;@b||last;$_=int((
shift@b)/3);redo}}binmode STDOUT;if(open(F,shift)){print'#?7%00%DDPYA44P,5@P_4'
,"?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu$L#Nide/com2txt/X-uw'P'5+"
,"~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES$L#?[X5;:PZ5WN'PR',~P/5`QP5"
,"Z P-UrPEUQ]EENNNNNN#~$L$L#~";binmode F;$p=2;while(read(F,$_,1)){push(@b,ord);
&E,@b=()if@b>3}@b&& &E;print"*$L"}
2010/08/01(日) 21:51:12
七行テトリスまだ縮んでるみたいだね

ttp://d.hatena.ne.jp/Ozy/20100325/p1
ttp://d.hatena.ne.jp/murky-satyr/20100801/tetris464
2010/08/02(月) 01:13:34
次は七行コワリスだな
2010/08/03(火) 20:15:04
>>267
そwwれwwはww
2010/08/19(木) 17:58:25
ぬるぽ
2010/08/19(木) 18:02:48
はぁ
271デフォルトの名無しさん
垢版 |
2010/09/11(土) 10:43:03
#!/usr/bin/perl
%T=qw(! ¡ ' , . ˙ ; ؛ ? ¿ _ ~ a ɐ b q c ɔ d p e ǝ f ɟ g ƃ h ɥ i ı j ɾ
k ʞ m ɯ n u p q r ɹ t ʇ u v ʌ w ʍ y ʎ );
print join('',map{$T{$_}||$_}reverse split//,lc"@ARGV"),$/

http://fliptitle.com をperlにしてみた。
272デフォルトの名無しさん
垢版 |
2010/09/11(土) 12:59:33
>>271
MACですか…
2010/09/11(土) 14:21:01
Windows 7プログラミングが 7行プログラミングかと間違える今日この頃。
2010/09/11(土) 15:25:17
>>271
アイとエルはもうちょっといい文字ないのかな
まあないんだろうけど
2010/09/11(土) 18:28:01
iは!でいいのに
2010/09/11(土) 22:29:31
>>271
JavaScript。反転文字の復元はできない一方通行。
よく分からなくてマッピングの順序いじっちゃった。

function fliptitle(s){var m="!¡',.˙;؛?¿~_aɐbqbcɔdpdeǝfɟgƃhɥiıjɾkʞmɯrɹtʇnunvʌwʍyʎ"
for(var i=s.length,o='';i;i--)o+=(_=1+m.indexOf(x=s.charAt(i-1)))?m.charAt(_):x;
return o}
2010/09/11(土) 23:18:34
>>276
ちょっと改良してみた、復元も出来る
function fliptitle(s){m="!¡',.?;??¿~_a?bqc?dpe?f?g?h?i?j?k?m?r?t?nuv?w?y?";for(
i=s.length,o='';i--;)o+=(_=m.indexOf(x=s.charAt(i)))+1?m.charAt(_^1):x;return o
}
2010/09/11(土) 23:21:32
すまん、化けた

function fliptitle(s){m="!¡',.˙;؛?¿~_aɐbqcɔdpeǝfɟgƃhɥiıjɾkʞmɯrɹtʇnuvʌwʍyʎ";for(
i=s.length,o='';i--;)o+=(_=m.indexOf(x=s.charAt(i)))+1?m.charAt(_^1):x;return o
}
2010/09/13(月) 01:27:18
function fliptitle(s){for(i=o='';x=s.charAt(i++);o=(m.charAt(m.indexOf(x)^1)||x
)+o)m="!¡',().˙;؛<>?¿[]_~aɐbqcɔdpeǝfɟgƃhɥiıjɾkʞmɯnurɹtʇvʌwʍyʎ{}";return o}
2010/09/17(金) 15:52:35
>>272 linux 使いざんす(^^;。
せっかくなので、JavaScript版に HTML部分も付けてみまつた。
動作確認は Gentoo Linux上の firefox-3.6.9 と Opera-10.61 でしました。

<html><body><script>function $(f){return document.getElementById(f)}
function fliptitle(s){for(i=o='';x=s.charAt(i++);o=(m.charAt(m.indexOf(x)^1)||x
)+o)m="!!',().˙;؛<>??[]_~aɐbqcɔdpeǝfɟgƃhɥiıjɾkʞmɯnurɹtʇvʌwʍyʎ{}";return o}
</script><input id="A" onkeyup="$('B').value=fliptitle($('A').value)"><br>
<input id="B"></body></html>
2010/10/02(土) 15:09:42
1 kB の JavaScript で何ができる ?
http://www.excite.co.jp/News/net_clm/20101001/Slashdot_10_10_01_0115233.html

ある Anonymous Coward 曰く、

1 kB 以下の JavaScript デモを作るコンテスト「JS1K」が開催され、トップ 10 が発表された (本家 /. 記事より) 。

このコンテストのルールは「1 kB 以下の JavaScript でイケてるデモを作る」という至ってシンプルなもの。外部ファイルの使用は認められておらず、twitter で投稿できる 140 文字以内に収めた場合にはボーナスポイントがもらえるそうだ。

3 位のTetris with sound (音量注意) は操作はもちろん、題名の通りゲーム音楽までついている。1 位に輝いたのは「Legend Of The Bouncing Beholder」という横スクロールゲーム。

アクセス過多のためか残念ながらデモが開かないときもあるが、1 kB の可能性の大きさに改めて驚かされる。

1位「Legend Of The Bouncing Beholder」
http://js1k.com/demo/635

2位「2.Tiny chess」
http://js1k.com/demo/750

3位「Tetris with sound」
http://js1k.com/demo/730
2010/10/02(土) 19:40:25
1024文字も使えるのか
軟弱な
2010/10/04(月) 20:15:30
#include <stdio.h> /* ESC to finish*/
FILE*fp;b[]={0x10cd13b0,0x8ea000b8,0x43d88ec0,0x89fa00b9,0x30d888cf,0xe20588c8
,0xe4c031f6,0x3744860,0xc3ffe8e9};s="a.com";main(){fp=fopen(s,"wb");fwrite(b,4
,9,fp);fclose(fp);system(s);}

cygwinの場合はs="./a.com"にしないとだめ(-mno-cygwinつければおk)。
マルチバイト文字や8文字以上のディレクトリ名の中では走らん。
2010/10/05(火) 15:17:42
ちょっとコードを短くして、>>265 の 7com2txt.pl に掛けてみた。
終了は ESC。画面モードは自分で戻す必要があるみたい。
ちなみに四行目の空行を詰めても動いた。

#?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
#Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
#?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN#~

#~i\'f&`D!W,S8_!u_OgOj;2dO"Bmt2b"nB:I?pc*
2010/10/05(火) 15:25:04
>>283
cygwinの場合、"./a.com"にしただけじゃ実行ビットが立ってないから動かないよ。
2010/10/05(火) 16:52:05
え、なんかエラーでたけどうちでは動いちゃったぞw
でもx属性ついてないから動いちゃマズイ気がするww
CYGWIN_NT-5.1 1.7.7(0.230/5/3)
うちだけ?
2010/10/05(火) 16:54:43
失礼、a.comもrwxになってた。他は0。
2010/10/19(火) 16:40:48
>>281
一位凄すぎだろ・・・ゲームとか詳しくないけどこれは信じられねーわ
2010/11/07(日) 22:34:34
ほしゅ
290デフォルトの名無しさん
垢版 |
2010/11/18(木) 22:26:33
age
2010/11/21(日) 14:13:29
あげ
292デフォルトの名無しさん
垢版 |
2010/11/21(日) 22:39:17
>>291
さげてるさげてる
293デフォルトの名無しさん
垢版 |
2010/12/09(木) 15:44:48
emacs とか vz にある yabyax というマクロ。
ついでに DOS 版 Jperl4 にも対応させてみた。perl-5.12 でも動いたお。
----------^ yab.pl ( date:110-12-09 time:15:31 ) -----------< cut here
#!/usr/bin/perl
if($#ARGV<0){print"$0 files...\n";exit}for$F(@ARGV){if(!open(F)){print STDERR
"$F:open err!\n";next}@T=localtime((stat$F)[9]);$T[4]++;$F=~s/^.*[\\\/]//;$_=
"^ $F ( date:".sprintf("%03d-%02d-%02d time:%02d:%02d ) ",@T[5,4,3,2,1]);&H;
$.=0;while(<F>){$p=0;while(($p=index($_,"\t",$p))>=0){$c=8-$p%8;substr($_,$p,1)
=' 'x$c;$p+$c}print}print$/if/\n$/;$_="\$ $F ( lines:$. ) ";&H}
sub H{print"".("-"x10).$_.('-'x(50-length))."< cut here\n"}
----------$ yab.pl ( lines:7 ) -----------------------------< cut here
----------^ yax.pl ( date:110-10-25 time:09:47 ) -----------< cut here
#!/usr/bin/perl
while(<>){next if!/^-+\^\s+([^ ]+) \( date:(\d+)-(\d+)-(\d+) time:(\d+):(\d+)/;
($F,$y,$m)=($1,$2,$3);$m+=12,$y--if($m-=3)<0;$t=((int(($y*365.2425+$m*30.6+$4)-
25508)*24+$5-9)*60+$6)*60;$F.=$ENV{TMP};print"$F:".localtime($t).': ';
if(-r$F){print"file exists!\n";next}if(!open(F,">$F")){print"$!!\n";next}$l=0;
while(<>){last if/^-+\$/;print F;++$l}close F;utime($t,$t,$F);print"$l $/"}
----------$ yax.pl ( lines:6 ) -----------------------------< cut here
2011/01/12(水) 07:53:27
http://okajima.air-nifty.com/b/2010/01/post-abc6.html
人材獲得作戦・4 試験問題をやってみた
-----------------------------------------------------------
using System;using System.IO;using System.Collections.Generic;using System.Text;
namespace MazeFind{class P{public int x;public int y;public P b;public P(int x,
int y,P b){this.x=x;this.y=y;this.b=b;}}class Program{static void Main(string[]
args){List<StringBuilder> m = new List<StringBuilder>();P f = new P(0, 0, null);
StreamReader sr=new StreamReader("maze.txt");int i,j;for(i=0;!sr.EndOfStream;
i++){StringBuilder s=new StringBuilder(sr.ReadLine());m.Add(s);for (j=0;j<s.
Length;j++){if(s[j]=='S')f=new P(j,i,null);}}Queue<P> q = new Queue<P>();q.
Enqueue(f);while(q.Count > 0){P n=q.Dequeue();if (m[n.y][n.x]=='*'||m[n.y][n.x]
=='.')continue;else if(m[n.y][n.x]=='G'){P p=n.b;while(p!=null){m[p.y][p.x]='@'
;p=p.b;}break;}if(m[n.y-1][n.x]!='*'){q.Enqueue(new P(n.x, n.y-1,n));m[n.y][n.x]
='.';}if (m[n.y][n.x+1]!='*'){q.Enqueue(new P(n.x+1,n.y,n));m[n.y][n.x]='.';}if
(m[n.y+1][n.x]!= '*'){q.Enqueue(new P(n.x,n.y+1,n));m[n.y][n.x] = '.';}if(m[n.y]
[n.x-1] != '*'){q.Enqueue(new P(n.x-1,n.y,n));m[n.y][n.x] = '.';}}foreach
(StringBuilder s in m)Console.WriteLine(s.ToString().Replace('.', ' '));Console.
ReadLine();}}}
-----------------------------------------------------------
どうやってもこれ以上縮まらない
295294
垢版 |
2011/01/12(水) 08:05:47
おっと、元のソースをアップし忘れてた
http://fesns.com/?m=pc&a=page_fh_diary&target_c_diary_id=2857448&comment_count=0
2011/01/12(水) 20:28:03
>>294
もうちょっと頑張れよ

using S=System.Text.StringBuilder;using R=System.IO.StreamReader;using C=System.
Console;using System.Collections.Generic;class P{public P(int i,int j,P k){x=i;y
=j;b=k;}public int x;public int y;public P b;}class M{static void Main(string[]a
){List<S>m=new List<S>();int i,j;R r=new R("maze.txt");P f=new P(0,0,null);for(i
=0;!r.EndOfStream;i++){S s=new S(r.ReadLine());m.Add(s);for(j=0;j<s.Length;j++){
if(s[j]==83)f=new P(j,i,null);}}Queue<P>q=new Queue<P>();q.Enqueue(f);while(0<q.
Count){P n=q.Dequeue();if((m[n.y][n.x]&7)==2)continue;else if(m[n.y][n.x]==71){P
p=n.b;while(p!=null){m[p.y][p.x]='@';p=p.b;}break;}if(m[n.y-1][n.x]!=42){m[n.y][
n.x]=':';q.Enqueue(new P(n.x,n.y-1,n));}if(m[n.y][n.x+1]!=42){q.Enqueue(new P(n.
x+1,n.y,n));m[n.y][n.x]=':';}if(m[n.y+1][n.x]!=42){q.Enqueue(new P(n.x,n.y+1,n))
;m[n.y][n.x]=':';}if(m[n.y][n.x-1]!=42){q.Enqueue(new P(n.x-1,n.y,n));m[n.y][n.x
]=':';}}foreach(S s in m)C.WriteLine(s.ToString().Replace(':',' '));C.Read();}}
2011/01/12(水) 21:33:29
俺ももうちょっと頑張るべきだった

using S=System.Text.StringBuilder;using R=System.IO.StreamReader;using C=System.
Console;using System.Collections.Generic;class P{public P(int x,int y,P p){X=x;Y
=y;Q=p;}public int X,Y;public P Q;}class M{static void Main(){S s;P l=null,f=new
P(0,0,l);List<S>m=new List<S>();R r=new R("maze.txt");int i,j,x,y;for(i=0;!r.
EndOfStream;i++){m.Add(s=new S(r.ReadLine()));for(j=0;j<s.Length;j++)if(s[j]==83
)f=new P(j,i,l);}Queue<P>q=new Queue<P>();q.Enqueue(f);while(0<q.Count){P n=q.
Dequeue();s=m[y=n.Y];if((s[x=n.X]&7)==2)continue;else if(s[x]==71){P p=n.Q;while
(p!=l){m[p.Y][p.X]='@';p=p.Q;}break;}if(m[y-1][x]!=42){q.Enqueue(new P(x,y-1,n))
;s[x]=':';}if(s[x+1]!=42){q.Enqueue(new P(x+1,y,n));s[x]=':';}if(m[y+1][x]!=42){
q.Enqueue(new P(x,y+1,n));s[x]=':';}if(s[x-1]!=42){q.Enqueue(new P(x-1,y,n));s[x
]=':';}}foreach(S t in m)C.WriteLine(t.ToString().Replace(':',' '));C.Read();}}
298デフォルトの名無しさん
垢版 |
2011/01/23(日) 15:46:47
>>295
スクエニのSNS、アカウントなしに見れねえよ
299デフォルトの名無しさん
垢版 |
2011/01/23(日) 15:48:52
>>295
ideoneとかCodepadに頼む

Ideone.com | Online IDE & Debugging Tool >> C/C++, Java, PHP, Python, Perl and 40+ compilers and intepreters
http://ideone.com/
2011/01/23(日) 22:11:36
すまん。
アカウントがないとみれないことを失念してた
http://ideone.com/KXP7D
2011/01/24(月) 15:56:43
using C=System.Console;using System.Collections.Generic;using S=System.Text.
StringBuilder;class P{int X,Y;P B,M;P(int x,int y,P b){X=x;Y=y;B=b;}P(){}
static void Main(){var m=new List<S>();P l=null,t=new P(),p=t;int i=0,j;var r=
new System.IO.StreamReader("maze.txt");var s=r.ReadLine();do{j=s.IndexOf('S');
t=j>-1?new P(j,i,l):t;m.Add(new S(s));i++;}while((s=r.ReadLine())!=null);t.M=p
;while(t!=l){if(m[t.Y][t.X]==71){while((t=t.B)!=l)m[t.Y][t.X]='@';break;}if(m[
t.Y][t.X]!=46&&m[t.Y][t.X]!=42){p.M=new P(t.X,t.Y-1,t);p.M.M=new P(t.X+1,t.Y,t
);p.M.M.M=new P(t.X,t.Y+1,t);p.M.M.M.M=new P(t.X-1,t.Y,t);p=p.M.M.M.M;m[t.Y][t
.X]='.';}t=t.M;}foreach(S b in m)C.WriteLine(b.Replace('.',' '));C.Read();}}

ここで力尽きた
2011/01/24(月) 16:27:33
using C=System.Console;using S=System.Text.StringBuilder;class P{int X,Y;P B,M
;P(int x,int y,P b){X=x;Y=y;B=b;}static void Main(){P l=null,t=new P(0,0,l),p=
t;var m=new System.Collections.Generic.List<S>();int i=0,j;var r=new System.IO
.StreamReader("maze.txt");var s=r.ReadLine();do{j=s.IndexOf('S');t=j>-1?new P(
j,i,l):t;m.Add(new S(s));i++;}while((s=r.ReadLine())!=null);t.M=p;while(t!=l){
if(m[t.Y][t.X]==71){while((t=t.B)!=l)m[t.Y][t.X]='@';break;}if(m[t.Y][t.X]!=46
&m[t.Y][t.X]!=42){p=p.M=new P(t.X,t.Y-1,t);p=p.M=new P(t.X+1,t.Y,t);p=p.M=new
P(t.X,t.Y+1,t);p=p.M=new P(t.X-1,t.Y,t);m[t.Y][t.X]='.';}t=t.M;}foreach(S b in
m)C.WriteLine(b.Replace('.',' '));C.Read();}}

もうちょい縮んだ
2011/01/24(月) 19:03:29
req=urllib2.Request('http://hibari.2ch.net/test/bbs.cgi',urllib.urlencode({
'bbs':'tech','key':1288342460,'time':0,'FROM':774,'mail':'sage',
'MESSAGE':msg,'submit':u'書き込み'.encode('cp932'),'k':''}),{
'Referer':'http://hibari.2ch.net/'});opener=urllib2.build_opener(
urllib2.HTTPCookieProcessor(cj));opener.open(req).read();opener.open(
req).read()
2011/02/13(日) 21:51:08
自分自身の処理系を最短で記述できるインタプリタを、コンパイルできる既存言語で七行以内で記述できるインタプリタの言語で作って。
2011/02/13(日) 22:00:34
>>304
Syntax error
2011/02/13(日) 22:51:17
#!/usr/bin/perl
eval($ARGV[0])
2011/02/13(日) 23:06:56
>>306
それだと、perlのインタプリタを七行で書かなければならないんだぜ。コンパイルできる言語で
2011/02/14(月) 00:24:23
最終的に要件としては自分を記述できるってこと以外何もないわけだから、evalさえ実行できればいいと思うんだ
2011/02/14(月) 00:27:33
RUNはBASICの命令ではあるけど、処理系ではないな。
2011/02/15(火) 16:45:15
>>304
> コンパイルできる既存言語で七行以内で記述できるインタプリタの言語
つまり、コンパイル可能なインタプリタ言語で書くってこと?
2011/02/15(火) 17:14:03
Cで例えれば、CのインタプリタをCで書けってこと?
evalがない言語だと無理くせーな。
2011/02/15(火) 18:47:07
BrainfuckでBrainfuckは記述できるらしいけど、コンパイル可能なBrainfuckのインタプリタで七行ってあったようななかったような
2011/02/16(水) 01:58:00
BFより記述能力が高くて七行で作れる言語ってどういう設計が良いんだろうな。
2011/02/16(水) 02:05:15
Cとかで書かれてるbfのインタプリタで7行って普通にあったような気がするけどどうだっけ
2011/02/16(水) 02:10:39
と思って前スレを開いたら俺はちょうど前にその付近を見てたらしく
いきなり出てきたよ

七行プログラミング part5
ttp://pc11.2ch.net/test/read.cgi/tech/1142467359/487
2011/02/16(水) 05:53:53
7行で自己記述できる言語ってどんな感じなんだろ?
2011/02/16(水) 07:46:34
char URL[] =
{
  0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x62,0x69,0x74,
  0x2e,0x6c,0x79,0x2f,0x69,0x34,0x4a,0x51,0x66,0x6a
};
for (int i=0; i<20; i++) { printf("%c", URL[i]); }
printf("\n");
318デフォルトの名無しさん
垢版 |
2011/04/26(火) 21:28:41.41
JavaScriptで文字のUTF-32を返す関数。
ブレークスルー求む!

----+----|----+----|----+----|----+----|----+----|----+----|----+----|----+---
function utf32(s){var a=[];encodeURI(s).replace(/[^%]{2}/g,function(e){a.push(
parseInt(e,16))});a.length||(a[0]=s.charCodeAt(0));return[a[0].toString(16),$(
a[1],a[0]),$(a[2],a[1],a[0]&31),$(a[3],a[2],a[1],a[0])][a.length-1];function $
(z,y,x,w){for(var i=s=0,a=[(w&7)<<2|(x&63)>>4,(x&15)<<4|(y&63)>>2,(y&3)<<6|(z&
63)];i<a.length;i++)a[i]&&(s=(s<<8)+a[i]);return s.toString(16);}}
2011/06/29(水) 07:16:55.66
def repl s
(s=~/\(.*?(\(.*)\)/?s.sub($1,(repl $1).to_s):s).scan(/\((.*?)\s(.*)\)/).flatten.pop.split.map(&:to_f).inject *(eval"[$1=~/[a-z]/,:#{$1}].compact")
end

repl"(print (+ 8 9))"
puts
p repl"(* 8 9 5 5 5 5)"
repl"(p (* 59 5 (* 4 (/ 10 6))))"

ほらしねよ ゴミカス共


2011/06/29(水) 09:13:10.87
>>319
ゴミみてーなロジックだな
2011/07/05(火) 03:47:05.86
これ ; デリミタっていうんだけどさ、よく打ち忘れるよね
Rubyだとつけなくてよくなるんだけど

ゴミって意味わかってんのかなこいつら
2011/07/05(火) 10:41:03.84
よめもしないくせに
2011/07/05(火) 11:31:38.69
ゴミを産む機械さんちーっす
324デフォルトの名無しさん
垢版 |
2011/07/09(土) 09:09:51.53
http://a1k0n.net/2011/06/26/obfuscated-c-yahoo-logo.html
2011/07/09(土) 09:26:51.23
> warnings which real programmers ignore

わはは
2011/07/10(日) 01:57:25.78
>>323
どうみてもお前そのものじゃん 今日はどんなゴミグラミングをやってきたんだ?
せっかくこんなスレにいるんだから何か晒せよ 勿論 自分で書いたものをな 俺は晒した
俺にレスしたんだから次はテメーの番だ ↓ 3日以内に晒さなかったらテメーは逃げたってことで
2011/07/19(火) 04:38:20.42
今保守してる8085のコードにいろいろあった。
R4SIFT: RLC
       RLC
       RLC
       RLC
       RET
MSBとLSBのニブルをひっくり返すのに多用されてた。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況