1 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 09:02:39 ] 7行×79文字なら言語は問いません。 過去作品は、もしかしたら>>2-20 あたりに。 前スレ pc8.2ch.net/test/read.cgi/tech/1051703369/ part 3 pc2.2ch.net/tech/kako/1033/10331/1033143528.html part 2 pc3.2ch.net/tech/kako/1018/10188/1018840143.html part 1 pc.2ch.net/tech/kako/984/984182993.html
75 名前:デフォルトの名無しさん [2006/05/23(火) 10:20:29 ] この類のは散々既出かもしれませんが、PHPで1行掲示板を書いてみました。 連投対策(同IPから60秒間連投を制限)も一応施してあります。なんかまだまだ 短くできそうな悪寒がします。 <?$ip=$_SERVER['REMOTE_ADDR'];$d=time();$n=htmlspecialchars($_POST['n']); $m=htmlspecialchars($_POST['m']);$p="log.txt";if($n&&$m){$l=@file($p); $s=explode("<>",$l[0]);if(($ip!=$s[0])||($d-$s[3]>60)){$fp=fopen($p,"w+");fputs ($fp,$ip."<>".$n."<>".$m."<>".$d."<>\n");for($i=0;$i<20;$i++)fputs($fp,$l[$i]); fclose($fp);}}?><form method=POST><input name=n>:<input name=m><input type= submit><?$l=@file($p);foreach($l as $arr){$s=explode("<>",$arr);print("<hr>[". $s[1]."] ".$s[2]." (".date("Y/m/d h:i:s", $s[3]).")");}?>
76 名前:デフォルトの名無しさん mailto:sage [2006/05/23(火) 18:25:51 ] 確かにプログラムングとは言えないな
77 名前:デフォルトの名無しさん mailto:sage [2006/05/23(火) 18:31:57 ] >>75 PHPは関数名が長いね… 縮め、改行入力阻止、0のみ入力許可 <?$f=array('n','m');foreach($f as&$v){$v=strtr(htmlspecialchars($_POST[$v]), "\n",' ');}$p='log.txt';if($f[0]!=''&&$f[1]!=''){$l=@file($p);$s=explode('<>', $l[0]);if(($ip=$_SERVER['REMOTE_ADDR'])!=$s[0]||($d=time())-$s[3]>60){$l[20]='' ;file_put_contents($p,"$ip<>$f[0]<>$f[1]<>$d<>\n".implode('',$l));}}?><form method=POST><input name=n>:<input name=m><input type=submit><?$l=@file($p); foreach($l as$arr){$s=explode('<>',$arr);echo"<hr>[$s[1]] $s[2] (".date( 'Y/m/d h:i:s',$s[3]).')';}?>
78 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 14:59:10 ] 保守
79 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 21:50:29 ] ホッシュ
80 名前:デフォルトの名無しさん mailto:sage [2006/08/10(木) 02:37:10 ] シェルピンスキーのギャスケット #include <stdio.h> main() { int x, y; for (y = 0; y < 32; y++){ for (x = 0; x < 32; x++) printf(x & y? "..": "■"); printf("\n"); } }
81 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 15:58:18 ] JavaScript 弾避け。マウスカーソルを四角にぶつけないように動かす 互換性のないように作ってあるので、IE専用 <body id=B onMouseMove=y=event.y;x=event.x><script>h=B.clientHeight-20;a=[b=[q= [D=document]]];for(U=x=99;x--;C=F=q[x]=P=y=0)D.write("<b style=background:red;" +"width=16;height=16;position:absolute;top:-20></b>");function T(){for(i=C;i--* !F;J=D.all(5+i).style,l=q[i]/U,m=J.left=a[i]*(c=1-l)+a[d=i+U]*l,n=J.top=b[i]*c+ b[d]*l,F=m-15<x&x<m+16&n-15<y&y<n+16)if(!q[s=i]--)for(j=2;j--;s+=R%3+1)R=Math. random(q[i]=U)*w*h|0,a[c=j?i:i+U]=s%2?s%4>1?0:w:R%w,b[c]=s%2?R%h:s%4?h:0;P++-C* 9||C-U&&C++;if(F)alert(P);else setTimeout(T,U-C)}T(w=B.clientWidth-20)</script>
82 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 16:15:30 ] GJ! だんだん多く速くなるあたり職人芸だな
83 名前:デフォルトの名無しさん [2006/08/28(月) 21:02:17 ] 保守age
84 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 15:58:31 ] 保守
85 名前:デフォルトの名無しさん [2006/10/09(月) 16:07:24 ] hosyu
86 名前:デフォルトの名無しさん [2006/10/10(火) 20:06:29 ] 俺には無理だったお題 perlでモジュールを使わずに7行でRSSリーダー(RSS to html)を作れ LWP::Simpleも使わずに7行はやっぱり無理か??
87 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 20:13:20 ] RSSリーダーの定義による
88 名前:86 [2006/10/10(火) 20:24:20 ] 定義はRSSをgetして、htmlに変換するってもの LWP::Simpleと、XML::RSSで作れたんだがモジュール無しは俺にはむりぽ
89 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 23:22:55 ] Socketも使えんがな
90 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 23:32:32 ] curlで取得
91 名前:デフォルトの名無しさん [2006/10/10(火) 23:33:19 ] 一先ずLWP::Simpleだけで作れないかやってみるお
92 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 00:28:14 ] XSLT使えば2〜3行で書けるんじゃない?あほらしくてやる気しないけど
93 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 14:02:19 ] じゃあ俺も無理だったお題。 Cで7行正規表現。どうやっても7行は無理だったw 腕に覚えのある奴がいたら、是非挑戦してみてくれ。
94 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 14:07:44 ] >>93 正規表現って何をサポートすればいいんだ?
95 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 22:49:52 ] #include "regexp.h"
96 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 22:53:17 ] #include <boost/regex.h>
97 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 02:02:18 ] catコマンドってC言語で7行で作れる? どこまでの機能を詰め込めるかの問題になりそうだけど。
98 名前:97 mailto:sage [2006/10/14(土) 02:04:30 ] 作れる?ってのはおかしいか。 作るだけなら余裕だろうし。 どれだけ機能を削ったり詰め込めるかって感じ。
99 名前:トリッキーの1 mailto:sage [2006/10/14(土) 05:40:11 ] お久しぶりです。part1でお世話になったトリッキーの1です。 >>60-64 で晒されていますが、そのサイトは私のサイトです。 正規表現が面白そうだったので久々に作ってみましたが、9行になりました。 縮めるテクニックなどを完全に忘れてしまっていますが、頑張れば7行は可能そうです。 仕事の合間に7行目指して頑張ってみようと思います。 使える記号は()*|のみです。とりあえずこれだけあれば他のも表現できると思います。 文脈自由文法は、 R ::= T | T "|" R T ::= ε | FT F ::= P | P* P ::= char | "(" R ")" となっています。gcc2.91でのみコンパイル確認しました。 使い方は、"a.exe regexp"とすれば、標準入力から読んだ内容をregexpで走査します。 見つかればmatchと表示して終了します #include <stdio.h> int n[999][99],z=2,i;char*s,c[999][99],v[9999];h(f,t,k){for(i=0;c[f][i]!=0;i++) ;c[f][i]=k;n[f][i]=t;}p(int o,int f,int t,char*l){int x;if(l){for(x=0;(f=c[o][x ])!=0;x++)if((f==1||*l==f)&&(n[o][x]==1||p(n[o][x],0,0,(f==1)?l:l+1)))return 1; }else{(o==0)?p(1,f,t,0),(*s=='|')?s++,p(0,f,t,0):0:(o==1)?(*s==')'||*s=='|'||*s ==0)?h(f,t,1):(x=z++,p(2,f,x,0),p(1,x,t,0)):(o==2)?(x=z++,c[x][0]=1,n[x][0]=t,p (3,f,x,0),(*s=='*')?h(f,t,1),s++,n[x][0]=f:0):(*s)?(*s=='(')?(s++,p(0,f,t,0),++ s,0):h(f,t,*s++):0;}}main(int x, char**o){s=o[1];p(0,0,1,0);while(gets(v)){s=v; while(*s){if(p(0,0,0,s++))return printf("match");}}}
100 名前:トリッキーの1 mailto:sage [2006/10/14(土) 05:47:13 ] 多分大体のコンパイラで動くバージョンはこちらです。連投失礼しました。 #include <stdio.h> int n[999][99],z=2,i;char*s,c[999][99],v[9999];p(int o,int f,int t,char*l){int x;if(l){for(x=0;(f=c[o][x])!=0;x++)if((f==1||*l==f)&&(n[o][x]==1||p(n[o][x],0, 0,(f==1)?l:l+1)))return 1;}else{(o==0)?p(1,f,t,0),(*s=='|')?s++,p(0,f,t,0):0:( o==1)?(*s==')'||*s=='|'||*s==0)?c[f][c[f][98]]=1,n[f][c[f][98]++]=t:(x=z++,p(2 ,f,x,0),p(1,x,t,0)):(o==2)?(x=z++,c[x][0]=1,n[x][0]=t,p(3,f,x,0),(*s=='*')?c[f ][c[f][98]]=1,n[f][c[f][98]++]=t,s++,n[x][0]=f:0):(*s)?(*s=='(')?(s++,p(0,f,t, 0),s++,0):(c[f][c[f][98]]=*s++,n[f][c[f][98]++]=t):0;}return 0;}main(int x,char **o){s=o[1];p(0,0,1,0);while(gets(v)){s=v;while(*s){if(p(0,0,0,s++))return printf("match");}}return 0;}
101 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 10:22:42 ] キタ━━(━(━(-( ( (゚∀゚) ) )-)━)━) ━━ !!!!!
102 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 11:17:28 ] 凄すぎます。
103 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 14:51:06 ] 天 才 現 る
104 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 14:53:22 ] 何て恐ろしい子!
105 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 15:15:59 ] BNFの自前パース+NFA検索ってところかな? 10行でもありえないくらい凄いよ…本当に7行なんて出来るんだろうか
106 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 01:37:57 ] よく読んでないんだけどa==bを使ってるところをうまくa-bにするとかで数文字減れないかな
107 名前:トリッキーの1 mailto:sage [2006/10/15(日) 02:06:53 ] >>105 おお、その通りです。あのコードからよくわかりましたね! DFAにすべきなんでしょうが、動けばいいやってことでNFAにしました。 でも現状では最初に適当に作りすぎたためにどんなに頑張っても9行なので、 行数を減らすことを前提に少し構造を変えないといけないかも… 等価なBNFで状態数の小さいものを書くことが出来ればなんとかなるのかな? >>106 ヒントありがとうございます。 まだ小細工は全然していないのですが、数文字が重要になってきたら試してみます。 7行達成したらお披露目にきますね ノシ
108 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 12:12:36 ] int x;if(l){for(x=0; ↓ int x=0;if(l){for(; こういう積み重ねが大事なんだろうな。 人間ってすごいな。
109 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 13:28:33 ] for(int x=0; はC言語では駄目なんだっけ C++で出来るようになったのか
110 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 14:07:28 ] >>109 C99なら可。
111 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 19:01:41 ] (o==0)?(A):(B) → (o)?(B):(A) とかあるけど……まぁそれでも7行には入りそうにないな。 もっと根本的な対策がいる。
112 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 01:50:15 ] '|' とかの即値を数字で書くと一字減る
113 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 06:58:49 ] >>112 それは限りなく最後の手段。ASCII文字配列でないコンピュータで動かなくなる。
114 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 07:58:30 ] いつの時代のコンピューだよw
115 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 15:10:16 ] いや、それは気にすべきだろ。
116 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 15:48:13 ] こういう基本的なことは重要
117 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 17:02:54 ] それよりもコンピューという略し方のほうが異常だと僕は思うね。
118 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 00:14:52 ] >>117 ついに「ぴゅー太」と呼ぶ時代が来たようだな。 時代が追いついてきたな。
119 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 00:20:38 ] マイコンと呼ぶ日も近そうだ。ベーマガスペシャル復刊とかね
120 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 01:03:25 ] 1chipMSX買っちゃったしね。
121 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 23:58:59 ] BCELを使った Java難読化プログラムです. 現在,9行.あと少し.キャストがうぜぇ.groovy なら問題なくできるだろう. import org.apache.bcel.classfile.*;class O{public static void main(String[]s) throws Exception{new O(new ClassParser(s[0]).parse());}int n=0;void u(Constant c){ConstantUtf8 u=(ConstantUtf8)c;if(u.getBytes().charAt(0)!='<')u.setBytes(""+ ++n);}O(JavaClass j)throws Exception{ConstantPool p=j.getConstantPool(); Constant[]c=p.getConstantPool();for(int i=0;i<c.length;i++){if(c[i]!=null){int t=c[i].getTag();if(t>8&&t<12){ConstantCP q=(ConstantCP)c[i];if(j.getClassName() .equals(q.getClass(p)))u(c[((ConstantNameAndType)c[q.getNameAndTypeIndex()]). getNameIndex()]);}}}u(c[((ConstantClass)c[j.getClassNameIndex()]).getNameIndex( )]);j.dump(n+".class");}} BCELじゃなく,ASMとか,javassist を使ったほうがいいのかな? java -cp .:bcel.jar O <target classfile>
122 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 01:02:08 ] >>121 純粋な疑問なんだけど、importが許されるなら、そこで全部書けばいいんじゃない?
123 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 15:16:15 ] >>122 「BCELを使った」が前提なだけだから、BECL以外をimportしちゃダメだろう。 もちろん他所で書いてimportして「1行で書きました! 7行以下だからいいよね!」 って主張するのは各人の勝手だとは思うけど、スルーされるか叩かれるだけじゃね?
124 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 16:08:23 ] うーん、公式ライブラリ以外を使っているのは微妙な気もするけどな。
125 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 19:48:05 ] >>122 Cで #include <stdio.h> 書くのは許していいの?
126 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 20:19:46 ] じゃあお前includeディレクティブなしでCでなんか書いてみろ。 できなかったら半年ROMってろ。
127 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 20:44:46 ] Cなら楽だろ。
128 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 23:04:28 ] >>125 Javaでjava.*を使わなかったら認めてやるよ
129 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 00:44:16 ] 標準ライブラリや有名どころのはいいんじゃね?
130 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 01:32:42 ] 標準ライブラリは誰からも文句をつけられないが、 有名どころなら一部の人からは認められないだろうね。 正規表現をboost使って実装されてもハァ?だし。
131 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 03:21:16 ] boostを使った面白ネタキボン
132 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 03:25:40 ] スレ違い。
133 名前:sage mailto:sage [2006/11/09(木) 00:13:29 ] まだ続いてたんだこのスレ。感動した。
134 名前:デフォルトの名無しさん [2006/11/11(土) 16:56:12 ] age
135 名前:デフォルトの名無しさん [2006/11/27(月) 22:46:20 ] だれかなんかねーの?
136 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 23:19:49 ] 昔、ポケコンで1行プログラムがあったな。 BASICだが、独特の技術だった。
137 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 23:45:01 ] >>135 ネタが無いなら対戦リバーシとかどう?
138 名前:デフォルトの名無しさん [2006/11/27(月) 23:46:52 ] >>137 俺が作るのかw 対戦ってコンピューターとの対戦だよな。 交互に入力する対戦でもいいか。
139 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 23:49:18 ] リバーシって昔なかったっけ? x軸とy軸を入力するやつだった気が
140 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 23:58:45 ] おいおいすでに誰かのHPにあったろ。
141 名前:デフォルトの名無しさん [2006/11/28(火) 00:08:24 ] ログみたらオセロ、マインスイーパ、ドラクエ いろいろあったわ。 同じゲーム作ってもおもしろいんじゃないか? ネタがあれば作る人はたくさん出てきそうだけどな
142 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:09:31 ] 辞書を外に持った簡易日本語IMEってのはどうだ?
143 名前:デフォルトの名無しさん [2006/11/28(火) 00:11:24 ] >>142 データを外に持つのか。それはいいのか?
144 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:16:31 ] ダメだったら毎回辞書を標準入力から…
145 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:16:39 ] だめです
146 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:22:08 ] ネタとして楽しめるならなんでもいいよ。 評価は見てる人がそれぞれすれば良いんだから。
147 名前:デフォルトの名無しさん [2006/11/28(火) 00:25:35 ] じゃー明日オセロ作るわ。 明日な、明日。
148 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:31:34 ] >>147 プログラム作ってる暇があったらちゃんとオナニーしろよな
149 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:33:27 ] >>148 校則で禁止されています。
150 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 01:25:21 ] 破るためにあるんですよ。ナニとは言いませんが。
151 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 03:45:57 ] オナニーじゃ処女膜は破れない
152 名前:デフォルトの名無しさん [2006/11/28(火) 04:00:38 ] 処女がバイブ使うのは、推奨しない。 でも、たった7行で逝けるなんて感動。
153 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 07:54:50 ] 今日はじめてみたけど楽しそうなスレだね。 初代のトリッキー1さんとかってまだ居るの? 5年前って凄いな。
154 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 08:06:29 ] 7行printfは組込で実際に使った。便利だった。
155 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 03:25:04 ] そういや、VBScriptやJScriptってsprintf無いよね?
156 名前:デフォルトの名無しさん [2006/11/29(水) 11:02:47 ] ないみたいだな。 www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=javascript+sprintf&num=50 自前でいろいろ作ってる人はたくさんいるみたいだけど、 これを7行のプログラムにするのも楽しそうだなww
157 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 03:32:53 ] 10進BASICで七行プログラミング
158 名前:138 [2006/12/02(土) 21:34:13 ] 先輩! COMとの対戦オセロ作ってるんですけど50行くらいあるんですよね。 月曜日まで待ってもらっていいですか?
159 名前:デフォルトの名無しさん [2006/12/02(土) 22:01:46 ] よーし じゃあ父さんもなでしこで七行プログラミングしちゃうぞー
160 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 22:52:59 ] >>158 きたいあげ
161 名前:138 [2006/12/04(月) 12:06:28 ] 今14行 あと7行……
162 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 13:22:05 ] COMとの対戦オセロなら、パート1でトリッキーの1さんが6行で作ってますね
163 名前:デフォルトの名無しさん [2006/12/04(月) 14:07:25 ] >>162 だから?
164 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 14:13:19 ] >>163 せっかくオブラートに包んであげたのに… 既に素晴らしい作品があるから、二番煎じな上に14行なんて面白くもなんともない経過報告いらないですよ
165 名前:デフォルトの名無しさん [2006/12/04(月) 14:49:11 ] >>164 (^ω^;) 最近7行のプログラム出てこないから書いてるだけなんだけど 面白くないと思うなら面白いものを提示してくれ
166 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 17:44:52 ] >>165 相殺法と呼ばれる詭弁術の典型例 やっていることがつまらないという評価に対してなんら反論できてない
167 名前:デフォルトの名無しさん [2006/12/04(月) 18:02:36 ] ああ 他人が見ても面白くないのはわかるよ。 #include <stdio.h> typedef int n;n t[64]={0};n a(n i,n&g){n s=g%8;g+=("1987"[i%4]-48)*(i>3?-1:1); return !((!s||s==7)&&s+g%8==7);}n h(n x,n m){n i=0,r=1,g;if(t[x])return 1;for( ;i<8&&a(i,g);i++,g=x){for(;t[g]==3-m&&a(i,g)&&g>=0&&g<64;){if(t[g]==m){while(g !=x)t[a((i+4)%8,g)]=m;r=0;}}}if(!r)printf("%s:%d %d\n",m==1?"黒":"白",x%8+1,x/ 8+1);return r;}n d(){n s=0,d,i=0;for(;i<64;i++){printf("□\0○\0●"+(d=t[i])*3 );if(i%8==7)puts("");s=s?d&&s!=d?3:s:d;}return s!=3;}void main(){n x=1,y,p,m=0 ,c=0,k=0,r=-1;t[35]=t[28]=1;t[27]=t[36]=2;while(!d()||x&&k!=r){puts("x y"); scanf("%d %d",&x,&y);m=m?m:x?1:2;if(x||--x>7||--y>7||h(x+y*8,m))continue;if(d( ))break;k=r=(c++/2+x*8+y)%64;while(++k!=r&&h(k,3-m))if(k>64)k=0;}x=y=c=0;for(; c<64;c++)if(p=t[c])p==1?x++:y++;printf("黒:%d 白:%d %s",x,y,x>y?"黒の勝ち":x<y ?"白の勝ち":"引き分け");} 12行までいけたけどもうやめるわ。すまんかったな
168 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 18:13:07 ] >>167 関数使いすぎ。 グローバル変数は仕様上自動的にゼロに初期化される。 セミコロン多すぎ、結果if文増えすぎ。 for文やwhile文多すぎ。これらは工夫で1つか2つまで減らせるはず。 breakやcontinue使うとかありえない。最初から構造をもっと考えて設計するといいと思う 番兵使おう。 別のお題で再挑戦頑張れ
169 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 18:13:49 ] 自分からネタも出せない批評家気取りのクズは死ねばいいのに
170 名前:デフォルトの名無しさん [2006/12/04(月) 18:16:14 ] より完成度の高い対戦オセロがでてくる『可能性』の芽をつぶしたバカ晒し上げ >162 >164 >166
171 名前:デフォルトの名無しさん [2006/12/04(月) 18:22:01 ] >>168 じゃーお題出してくれ
172 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 18:24:04 ] 実際過疎気味だしオセロとか低レベルなのでもいいと思うけどね 新しい7erが現れるかもしれんし >>138 =>>163 =>>165 =>>167 なら少しくらい煽り耐性つけろよと言いたいがな
173 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 18:40:07 ] よくわからないけれど ここは荒んでいますね よくわかります
174 名前:デフォルトの名無しさん [2006/12/04(月) 18:45:31 ] うお バグりまくり
175 名前:デフォルトの名無しさん [2006/12/04(月) 18:58:10 ] #include <stdio.h> typedef int n;n t[64]={0};n a(n i,n&g){n s=g%8;g+=("1987"[i%4]-48)*(i>3?-1:1); return !((!s||s==7)&&s+g%8==7);}n h(n x,n m){n i=0,r=1,g=x;if(t[x])return 1; for(;i<8&&a(i,g);i++,g=x){for(;t[g]==3-m&&a(i,g)&&g>=0&&g<64;){if(t[g]==m){ while(g!=x)a((i+4)%8,g),t[g]=m;r=0;}}}if(!r)printf("%s:%d %d\n",m==1?"黒":"白" ,x%8+1,x/8+1);return r;}n d(){n s=0,d,i=0;for(;i<64;i++){printf("□\0○\0●"+( d=t[i])*3);if(i%8==7)puts("");s=s?d&&s!=d?3:s:d;}return s!=3;}void main(){n x= 1,y,p,m=0,c=0,k=0,r=-1;t[35]=t[28]=1;t[27]=t[36]=2;while(!d()||x&&k!=r){puts( "x y");scanf("%d %d",&x,&y);m=m?m:x?1:2;if(x&&(--x>7||--y>7||h(x+y*8,m))) continue;if(d())break;k=r=(c++/2+x*8+y)%64;while(++k!=r&&h(k,3-m))if(k>64)k=0; }x=y=c=0;for(;c<64;c++)if(p=t[c])p==1?x++:y++;printf("黒:%d 白:%d %s",x,y,x>y? "黒の勝ち":x<y?"白の勝ち":"引き分け");}