[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 09/06 09:50 / Filesize : 348 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

オブジェクト指向システムの設計



1 名前:デフォルトの名無しさん [2016/05/19(木) 22:07:47.87 ID:9fCVrsOw.net]
手順とかノウハウとか語りたい

610 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 22:40:15.63 ID:B8/5s3nv.net]
「エリック・エヴァンスのドメイン駆動設計」
みたいに貨物システム考えてみるか?
あれなんかよくわからんのだけれど。。

611 名前:デフォルトの名無しさん [2016/05/24(火) 23:31:04.66 ID:6RFz1ZJQ.net]
>>600
>実際1ファイルになってました
Bonanzaは50ファイルくらいあるらしいけどw

612 名前:デフォルトの名無しさん [2016/05/24(火) 23:36:24.44 ID:6RFz1ZJQ.net]
オブジェクト指向システムの設計について語る気ないのにしつこく書き込む連中の気が知れない。
「スキルがあるんだー」って主張してるみたいだからオブジェクト指向について少しは語れよ。

613 名前:デフォルトの名無しさん [2016/05/24(火) 23:37:48.35 ID:6RFz1ZJQ.net]
>>601
それでもいいぞ。
どんなシステムなのか概要とか要件とか説明頼む。

614 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 23:58:18.37 ID:24rCrc9d.net]
>>604
なんでお前が割り込んでくるの

615 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 23:58:32.22 ID:iG1UUWT4.net]
>>602
思考ルーチンのことな
総ファイルじゃなくて

616 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 00:00:48.81 ID:9xysTXwv.net]
>>603
いやだからまず>>1が始めろってば

> 「スキルがあるんだー」って主張してるみたい

みんながそうなんだーということにしたいのだろうが
こんな主張してるの
>>522,595
だけじゃね?
少なくとも俺はそう思ってない

617 名前:デフォルトの名無しさん [2016/05/25(水) 00:14:42.01 ID:FG6PmAiu.net]
>>606
今どきのソフトはちゃんと分離されているようだから読んでおいて。
yaneuraou.yaneu.com/2015/11/16/%E5%B0%86%E6%A3%8B%E3%82%BD%E3%83%95%E3%83%88%E3%82%82%E5%88%86%E6%A5%AD%E3%81%AE%E6%99%82%E4%BB%A3%E3%81%AB%E7%AA%81%E5%85%A5%EF%BC%9F/
https://github.com/HiraokaTakuya/apery/tree/master/src

事前に知っていた訳じゃないけど普通に考えてそうだわな。

618 名前:デフォルトの名無しさん [2016/05/25(水) 00:22:11.48 ID:FG6PmAiu.net]
>>607
そっかそっか。それなら一緒に考えようぜ。
>>544についてコメント欲しい。
あるいは別の進め方とか別の疑問とかでもいいし。



619 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 00:36:52.35 ID:9xysTXwv.net]
>>609
これで何回目になるかわからんが別の進め方

>>1がまず書いて
これどうよって進めないとだめだって

620 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 00:37:39.73 ID:5QI4GMUE.net]
設計の段階で悩むのは要求仕様が将棋ソフトっていう超ザックリだから
仕様をもっと詰めなきゃ設計に着手すべきじゃない

621 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 01:00:24.20 ID:kC1gn4Wj.net]
>>611
将棋ソフトじゃねーぞw

思考ロジックだけの話だ。
これを設計しろとかのたまう。

じゃあ同じような例で二分探索の設計を言ってみろと聞くと
話題のきっかけを与えた俺は答えなくていいとか言うようなことを言って
逃げる逃げるw

622 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 01:21:13.25 ID:favsXrk5.net]
手 getNextMove(現棋譜, 対局時計);
みたいなインターフェースを用意して、好きなように内部を実装すれば良いのでは?
・・・と思った俺は話についていけてない?

623 名前:デフォルトの名無しさん [2016/05/25(水) 01:21:30.67 ID:FG6PmAiu.net]
>>610
質問してるのはまじめな質問だからレスがないなら進める意味がないと感じてる。

とは言え何か欲しいんだろうからざっと考えたER図を。
ちょっと考えただけなので漏れや間違いもあるだろうから改善点の指摘は歓迎だ。
https://drive.google.com/file/d/0B2NKffVh2tpqV1E4SnhSYzh5MVU/view

KomaTypeは駒の種類。駒の動きの情報も含めている。
Komaは盤面上にある駒。
Banmenは局面。
Moveはその局面で指すことができる手。

実際は手によって盤面が進むんだけど、そこをどうするかは決めてない。
あと、盤面で指せる手×指した盤面で指せる手×…というように盤面が増えるんだけど
その関係をどう持つかは決めてない。
なんとなく整理を始めようってくらいなので進めながらいろいろ修正する。
最初のたたき台ってことで。

反応があれば次はモデルクラスを考えてみる。

ちなみにオンラインでチャートが書けるサイトを見つけて書いてるけど
https://www.draw.io/
操作方法は良く分からない。
リレーションの1:Mとか必須かどうかとかはおかしいかもしれないけど
細かい部分は気にしないでくれ。

624 名前:デフォルトの名無しさん [2016/05/25(水) 01:29:02.28 ID:FG6PmAiu.net]
>>611
電王戦に出るソフトって以上のことはイメージないぞ。
要件はここにPDFがあった。
denou.jp/tournament2015/rule.html

625 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 01:36:24.48 ID:9xysTXwv.net]
>>614
とりあえず乙
反応なくても恨んでくれるなよwww

主張的にFuとかKeimaとかのクラス作るのだろうと予想してたけど外れた
KomaTypeやKomaは内部でめっちゃif文分岐しそうだな

626 名前:デフォルトの名無しさん [2016/05/25(水) 01:39:41.54 ID:FG6PmAiu.net]
>>616
保持すべきデータの整理だからクラスの手前。
クラスは最初は分けた設計にすると思うよ。
途中でまとめたり、そもそもクラスじゃないってなるかもしれないけど
設計の最初はきっちりクラスを作ったほうが機能漏れが減ると思う。

627 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 01:39:45.11 ID:9xysTXwv.net]
あとそのツールは知らんが
クラス図描くならcacooとかどうよ

628 名前:デフォルトの名無しさん [2016/05/25(水) 01:41:53.66 ID:FG6PmAiu.net]
>>618
ほー、そんなのもあるんだ。
クラス図を書くことになったら両方試して使いやすいほうを選ぶ。



629 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 02:26:37.41 ID:favsXrk5.net]
>>614
おー乙
俺は・・・盤面の評価の仕方はおろか将棋のルールさえ良く知らない、という現実に気づいたから不貞寝する

630 名前:デフォルトの名無しさん [2016/05/25(水) 09:00:39.59 ID:nXtYFHtE.net]
将棋だとルール複雑or知らない人もいるから
まだオセロの方がいいだろ
なんで将棋を例に出したん

631 名前:デフォルトの名無しさん [2016/05/25(水) 09:20:06.31 ID:FG6PmAiu.net]
>>621
この前の週末に電王戦をやってたから。

632 名前:デフォルトの名無しさん [2016/05/25(水) 09:23:00.16 ID:FG6PmAiu.net]
>>621
あとは業務システムよりは知ってる奴が多くて分かりやすいから。
ちなみにオセロだと派生クラスとかの話は出なそうだな。

633 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 09:31:16.83 ID:kC1gn4Wj.net]
>>621
将棋のルール複雑か?

手数が膨大で処理がかかることと、
複雑さは別問題。

駒の動き+手駒 = 再帰処理する上での枝の数と考えれば
後は再帰と評価関数じゃん?

634 名前:デフォルトの名無しさん [2016/05/25(水) 09:31:22.01 ID:FG6PmAiu.net]
ERを修正。

盤面上にある駒には成ってる駒と成ってない駒があるのと
駒ごとに成れる成れないがあるので、それを追加。
https://drive.google.com/file/d/0B2NKffVh2tpqV1E4SnhSYzh5MVU/view?usp=sharing

635 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 09:35:18.26 ID:kC1gn4Wj.net]
>>625
KomaType(苦笑)

データベースでもいるんだわ。

データが増減するわけでもないのに、値と名前の
対応表テーブルを作り出してデータベースに入れるやつ。
データベースアクセス無いと名前が取り出せないw

えとな、こういうのは定数としてコード上に
defineでもしてればいいのよ。

636 名前:デフォルトの名無しさん [2016/05/25(水) 09:39:04.05 ID:FG6PmAiu.net]
>>626
あ、また来たw
ちがう設計の仕方があるならそれでやって見せてくれ。
お前「それは間違ってる」
俺「それだけじゃ無意味だから正しいやり方とかアイデアは?単にケチつけたいだけじゃんw」
お前「…」
何回同じこと言われれば分かるんだろ。

637 名前:デフォルトの名無しさん [2016/05/25(水) 09:41:09.56 ID:FG6PmAiu.net]
あと、データベース作るってことじゃないから。
データを整理するって書いたじゃん。
データを整理する別の手法があるなら教えてね。

設計しないで構築できちゃうって主張したいみたいだからdefineを書いてくれてもいいよ。

638 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 10:08:40.60 ID:r8UScIDo.net]
お題「1から100までの数のうち、3の倍



639 名前:数ならFizzを、5の倍数ならBuzzを、15の倍数ならFizzBuzzを、それ以外ならその数を出力するシステムを作りなさい」

よーしまずは設計からだ!与えられた数に対して何かするクラスConsumerと、1から100の数を出力するGeneratorが要るな!
Fizzを出力するクラスはConsumerを継承させよう!同じ方法でBuzzもFizzBuzzも作ろう!
どれにも共通する振る舞いは「それ以外の数ならその数を」という部分だな!これはConsumerに書こう!
1. Fizz => Buzz => FizzBuzzと継承させたらロジックを複雑にしなくて済むしコピペコードも無い!OOPは最高や!
2. 問題になるのはGeneratorから与えられた数をどのConsumerに渡すか、だな!じゃあConsumerManagerを作って、こいつに管理させよう!
  見通しが良くなったし後から拡張も簡単にできるな!OOPは最高や!
末路→https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
[]
[ここ壊れてます]

640 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 10:58:41.63 ID:OQdKu81q.net]
>>626
DBアクセスはキャッシュの仕方で軽減できるな
どうぶつ将棋や摩訶大将棋に拡張したり、I18n対応を考えるなら、ラベルをDBに持っとくのは悪くないと思う

641 名前:デフォルトの名無しさん [2016/05/25(水) 11:09:06.28 ID:FG6PmAiu.net]
そう言や定跡データは必要だな。
BonanzaとかAperyとかはたぶんフラットファイルで持ってるんだろうけど
俺だったらDBに格納しちゃうな。
業務システム系やってるとデータはDBに格納して操作したほうが楽ってなっちゃうわ。
ってことで、定跡DBの設計って観点から考える必要が出てきた。

642 名前:デフォルトの名無しさん [2016/05/25(水) 11:10:17.24 ID:FG6PmAiu.net]
定跡ってか、過去の棋譜データだな。

643 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 13:45:46.81 ID:Rwgeje6L.net]
よいよ、将棋AIを作るスレになってきたのw

644 名前:デフォルトの名無しさん [2016/05/25(水) 15:24:30.40 ID:FG6PmAiu.net]
まあね。

>>358とか、>>431とかについて話すのが目的だから将棋ソフトはそのきっかけってだけなんだけどさ。
将棋ソフトについても設計の手順はどうするのがいいとか、
俺は業務システムの開発経験しかないからゲームやってる人達のプロセスを聞きたいとか
設計がらみの話題について語れる人が来てくれるといいけど。

645 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 18:54:37.16 ID:5WrCkf94.net]
クラスの中のプライベートメソッドってどういう時に使うの?

クラスが肥大化したとき?

646 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 19:14:40.11 ID:driOGhFD.net]
肥大したコードの整理
何度も呼ばれる処理を切り出して再利用
特異な事をしているという表明
お好きにどうぞ

647 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 19:25:19.33 ID:5WrCkf94.net]
なるほどサンクス

648 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 19:56:03.70 ID:OXIFfwZq.net]
  
エ口巨乳とパコリwwwwwwwwwwwwwwww
  
ccdotcc.altiusinc.com/3769



649 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:03:23.09 ID:VNiDmyVP.net]
>>629
面白いw
Star 5,292 なのは、同感する奴も多いんだろう。
Fork 288 ってのは意味不明だが。(さすがにForkする必要はない)
Javaなのはやはりというべきか。>>1もJava屋だし。

650 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:16:03.29 ID:kC1gn4Wj.net]
>>627
> ちがう設計の仕方があるならそれでやって見せてくれ。

だから定数としてdefineすればいいって言ってるじゃん?
なんで読めないのかな?
自分が望む答えじゃないと無視するタイプ?w

651 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:18:32.97 ID:kC1gn4Wj.net]
>>634
> I18n対応を考えるなら

なんで世の中のi18nの対応がデータベースに保存するんじゃなくて
gettextやymlを使った翻訳の仕組みがデフォルトだと思ってるんだよw

オレオレで仕組みを作るんじゃなくてフレームワークなどの
ごく当たり前のやり方を使えばいいんやで?

652 名前:デフォルトの名無しさん [2016/05/25(水) 20:18:56.00 ID:FG6PmAiu.net]
>>640
それじゃ要件をまったく満たせていないからやり直し。
ER図を読めれば足りないことくらい分かるんだけどなあ。

653 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:21:03.58 ID:6PTcoeR/.net]
棋譜再現プレイヤーとしても機能するようにするならどう設計する?

654 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:22:55.79 ID:kC1gn4Wj.net]
>>631
> 業務システム系やってるとデータはDBに格納して操作したほうが楽ってなっちゃうわ。
楽?

変数のほうが楽だろ?

「楽」っていうのは意味が二通りあって、
「実装するのが楽」と「学習するのが楽」がある。

後者はようするに、新しいこと覚えたくないーとか、
連想配列を知った人が、適当な場合でもないのに、なんでも連想配列使って実装する。
学習するのが面倒で、やっとのことで覚えたら、そればっかり使おうとする人。

「DBに格納して操作したほうが楽」っていうのは、もちろん後者だろうな。
実装が楽じゃなくて、覚えなくていいから楽という意味で使っている。

思えばお前のやり方もそうなんだよ。
クラスを知ってしまった。これ以上新しいことを知りたくない。
だから適当な場合でもないのに、クラスばっかり使おうとしている。

655 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:23:34.56 ID:kC1gn4Wj.net]
>>642
> それじゃ要件をまったく満たせていないからやり直し。
満たしていない部分がどこかを答えてみ。
お前の考えなんてわからんよw

656 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:24:57.76 ID:kC1gn4Wj.net]
>>641>>630あて。
何で間違えたんだろ?

657 名前:デフォルトの名無しさん [2016/05/25(水) 20:26:33.41 ID:FG6PmAiu.net]
>>645
盤面・手の情報をどうやって保持すんのよ?
ERに明示されているのに分からないって…。

658 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:29:19.24 ID:kC1gn4Wj.net]
>>647
盤面の情報なら、二次元配列で持てるだろ?
手の情報ってなんだ? 駒の動きか?
そんなのswichで種類を分岐して、動かせる場所を列挙すればいいだけだろう?



659 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:30:35.43 ID:kC1gn4Wj.net]
>>647
あ、今気づいたけど、お前、連想配列(ハッシュ)を知らんだろ?

660 名前:デフォルトの名無しさん [2016/05/25(水) 20:31:04.99 ID:FG6PmAiu.net]
>>648
他の人が分かるように明確に書こうね。
お前は設計書の書き方をしらないみたいだからコードで書いてくれる。

661 名前:デフォルトの名無しさん [2016/05/25(水) 20:36:21.84 ID:FG6PmAiu.net]
ちなみにコードで書けってのは全部は求めてないから。
Cで言うところのヘッダファイルの内容でいいぞ。
どうやって保持しようとしてるのか第三者にもちゃんと伝わる形で書けってこと。
設計を書けるなら設計でもいいぞー。

662 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:37:04.26 ID:kC1gn4Wj.net]
>>650

switch(koma) {
 case KEIMA:
   次に動ける箇所(複数)にコマを動かして評価関数呼び出し
}

663 名前:デフォルトの名無しさん [2016/05/25(水) 20:38:47.79 ID:FG6PmAiu.net]
>>652
しょぼっw
まさかこれで終わりじゃないよな??

664 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:39:47.00 ID:kC1gn4Wj.net]
>>6

665 名前:53
ムダに複雑にするなよw.

お前、手段が目的にすり替わってるぞ。
沢山コードかくことが、ちゃんと仕事した証拠なんだって
思ってるだろw
[]
[ここ壊れてます]

666 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:40:58.77 ID:kC1gn4Wj.net]
いつも通りだけど、レスの内容がおかしんだよなw

正しいか間違っていからじゃなくて、
しょぼいかどうかw

667 名前:デフォルトの名無しさん [2016/05/25(水) 20:42:29.45 ID:FG6PmAiu.net]
>>654
これで第三者がお前の考えを理解して構築できるようになると考えているならとんでもなくおめでたい。
客にこんなの出したら呆れられて「もう来ないでいいよ」って言われる。

668 名前:デフォルトの名無しさん [2016/05/25(水) 20:43:25.03 ID:FG6PmAiu.net]
>>655
どういう構成を想定してるのか全然伝わらない。



669 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:44:08.66 ID:kC1gn4Wj.net]
>>630
> どうぶつ将棋や摩訶大将棋に拡張したり、

YAGNI

https://ja.wikipedia.org/wiki/YAGNI
"You ain't gonna need it"[1]、縮めて YAGNI とは、機能は実際に必要となるまでは追加しないのがよいとする、エクストリーム・プログラミングにおける原則である。

理由

YAGNI原則を提唱する人々は、その理由として以下を挙げている。
・後で使うだろうという予測の元に作ったものは、実際には10%程度しか使われない。したがって、それに費やした時間の90%は無駄になる[2]。
・余計な機能があると、仕事が遅くなり、リソースを浪費する[2]。
・予期しない変更に対しては、設計を単純にすることが備えとなる。そして、必要以上の機能を追加すると、設計が複雑になってしまう[2]。
・人生の時間は、貴重である。したがって、人間の能力は、ただコードを書くためではなく、現実の問題に集中するために使うべきである[3]。
・結局は、その機能は必要ないかもしれない。もしそうなったら、あなたがその機能を実装するのに費やした時間も、他のみんながそれを読むのに費やした時間も、その機能が占めていたスペースも、すべて無駄になってしまうだろう[3]。
・コードをすばやく実装するために最も良い方法は、あまりコードを書かないことである。そして、バグを減らすために最も良い方法も、あまりコードを書かないことである[3]。

670 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:44:55.61 ID:kC1gn4Wj.net]
>>657
> どういう構成を想定してるのか全然伝わらない。

それはお前のER図の話だw

何を想定しているかわからないから、
そんなのいらんだろって言ってる。

671 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:45:40.89 ID:kC1gn4Wj.net]
>>656
え?なんで?w

いつもながら理由が書いてないなw

672 名前:デフォルトの名無しさん [2016/05/25(水) 20:46:43.66 ID:FG6PmAiu.net]
>>659
ER図を理解できない奴発見wwww


ERが分からないって言って出してきたのが、これ??

switch(koma) {
 case KEIMA:
   次に動ける箇所(複数)にコマを動かして評価関数呼び出し
}

笑わせよるわ〜www

673 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:49:13.86 ID:kC1gn4Wj.net]
将棋のルールを知っていれば当然わかると思うけど、
動ける場所はデータとして持たせることは難しいんだよな。

歩とか金とかならまだいいけど、
飛車とか角とか縦横または斜めのどこにでも動けるから
この動きをデータとして持たせるのは不可能じゃないけど、
結局コードが必要になるので冗長

674 名前:デフォルトの名無しさん [2016/05/25(水) 20:49:27.02 ID:FG6PmAiu.net]
>>660
お前が設計を分かってないとは感じていたけどここまで分かってないとは思ってなかったwww
もう休んでいいぞ。
設計について語ろうってスレに書き込んじゃだめなレベルだから。

675 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:50:28.37 ID:kC1gn4Wj.net]
>>661
お前、何一つ言い返していない。

俺がやったことを、単にお前が語ってるだけ。

それでお前はどうしたいんだ?

676 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:51:09.26 ID:kC1gn4Wj.net]
>>663
> 設計について語ろうってスレに書き込んじゃだめなレベルだから。

って、それお前が沢山の人に言われたセリフだよなw

677 名前:デフォルトの名無しさん [2016/05/25(水) 20:57:18.51 ID:FG6PmAiu.net]
switch(koma) {
 case KEIMA:
   次に動ける箇所(複数)にコマを動かして評価関数呼び出し
}

を構築チームに渡せばお前の考えている構成が伝わると思ってる相手と
技術的な会話を成立させるのは無理だわ。

あー、ちなみにERはほんの最初だから。
設計の5%くらいは進んだかなあってレベル。
それも分かってなかったみたいだね。

678 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:57:36.43 ID:9xysTXwv.net]
>>639
面白いよなwww
さすがにソース全部見る気にはならんが
インターフェースのなかの
ストラテジーやらファクトリーやらビジターやら見てみて
ようやるわ!
って感じでうけたwww



679 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 20:59:24.44 ID:la8ZiYsl.net]
>>652はさすがにないわ
将棋を知らないのかもしれんがあまりにお粗末

680 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:06:55.68 ID:60iV75hD.net]
DFSの再帰だってことぐらいはパッとわかるが

681 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:12:02.90 ID:FG6PmAiu.net]
>>669
ID:kC1gn4Wjかなw

682 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:13:41.56 ID:60iV75hD.net]
違うよ

683 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:17:42.15 ID:FG6PmAiu.net]
>>671
どこから再帰を見出したのが謎過ぎるw

684 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:19:58.55 ID:60iV75hD.net]
ゲーム木の処理だったらDFSかBFSでしょ
キューに入れないで関数呼び出してるから再帰かと

685 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:25:15.21 ID:FG6PmAiu.net]
>>673
そうかそうか。
突っ込みどころ満載のなんちゃってコードについてもっと語り合って楽しみたいんだけど
他の人の迷惑になるから心残りだけどおしまいにするよ。
まじで楽しませてもらったw

686 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:25:22.62 ID:7yHwSTAr.net]
www.geocities.jp/bonanza_shogi/#news
とりあえずここから bonanza のソース取ってきて、
src/client/evaluate.c でも読んでみたらいい。

687 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:29:11.19 ID:FG6PmAiu.net]
>>675
Bonanzaの設計はひどいって聞いたから読むならAperyだな。
でも、将棋ソフトを作りたいんじゃないから。
将棋ソフトを例に、システムを設計するにあたって抱く疑問点に対する一般的な指針を語りたいんだ。

688 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:37:37.91 ID:60iV75hD.net]
普通にMVCでCにゲームループでMに盤面持ってればいいじゃん



689 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:38:35.12 ID:fBBvLnfI.net]
そういう考え方がすでに駄目なんだよきっと
だってそもそもいい設計って何?
どうなれば満足なの?

690 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:39:36.05 ID:60iV75hD.net]
要求仕様によってはMVCすら必要ないな

691 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:41:35.38 ID:fBBvLnfI.net]
将棋なんて
俺が刺した瞬間にCPU側が指し終わってるぐらいで丁度いい
つまりクリックイベントと開始ボタンの処理だけで十分

692 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:42:53.48 ID:7yHwSTAr.net]
>>676
だったら上記のソースの駄目なところと
それをどのように改善すべきなのか言ってみたらいいだろう。

てかこのくらいのコードも読めないならそもそも話にならんと思うんだが。。

693 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:44:20.19 ID:FG6PmAiu.net]
>>681
そこまで言うならどういう構成になってるのか読んで理解してアップすればいいじゃん。

694 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:46:51.60 ID:7yHwSTAr.net]
話にならん。。

ここまで手取り足取り要求されるのはかなわんわ。。

695 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:50:20.97 ID:FG6PmAiu.net]
>>683
は?俺からは一度も要求してないが。
お前は簡単に読めちゃうって言ったんだからだったら読めばってだけ。
俺はそもそも仕様書書くべきって考えだから。

696 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 22:53:53.99 ID:fBBvLnfI.net]
将棋.exe起動→駒配置→俺のターン!→駒選択(クリックイベント処理)
→駒移動(クリックイベント処理)
勝利判定→敵のターン!→敵思考ルーチン処理
→敵駒選択→敵駒移動→勝利判定→俺のターン!→以下ループ

勝利判定したら→結果表示→もう一度やる?→Yes:駒配置に戻る→No:将棋.exe終了

できた!

697 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:00:09.81 ID:FG6PmAiu.net]
>>685
ほうほう。多少違ってるけどまずまず。

後手のケースもある。
人のターンの最中もソフトは思考を続ける。

698 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:04:17.28 ID:fBBvLnfI.net]
>>686
後手のケースは敵のターンから始めるだけだ
exeの起動パラメータに「うんこ」っていれると後手になる



699 名前: []
[ここ壊れてます]

700 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:05:30.70 ID:FG6PmAiu.net]
>>685
勝利判定の位置も思考して初めて勝利判定できるからちょっとおかしいな。

701 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:06:08.87 ID:60iV75hD.net]
設計いらんかったなw

702 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:06:16.40 ID:VNiDmyVP.net]
とりあえずC/C++派は傍観でいいんじゃないか?
一流()のJava屋の設計()を見せてもらおう。
ShogiEnterpriseEdition()ができそうだし。

あと俺もC++派でJavaはやったこと無いんだが、
取り急ぎ確認した結果、お前らが空回りしている理由は分かるから、それは言っておく。
それは、JavaがC--だからだ。用語の対比は以下。

C++: グローバル = Java: クラスにしてシングルトン
C++: enum = Java: クラスにしてfinal指定(継承禁止のconst static)
C++: define = 同上。

つまりC++の方がより詳細に記述できる。(C++の記述力の方が完全に上)
だからお前らがdefineとかenumだーとか言っても、それはJava屋にとっては全部「クラス」になっちゃうわけ。
つまり、Java屋でしかない奴(>>1)は、C++の精度では議論不可能なんだよ。だから空回りする。
まあそれ以上に>>1が無知かつ無能なのは事実だが。

俺個人の意見はポロポロ出ている意見と同じ物も多々あるけど、
>>1はそれを全否定しているのだから、ここはとりあえず放置しかないだろ。

703 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:08:11.77 ID:FG6PmAiu.net]
>>690
論理設計を知らないんだね…。

704 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:08:59.99 ID:fBBvLnfI.net]
>>688
いいや合ってるはずだ

705 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:09:26.74 ID:60iV75hD.net]
>>690
プリミティブ型(int, long, etc)のvectorは羨ましい
あとpairとかつまりstd最高

706 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:10:00.78 ID:60iV75hD.net]
>>693
stlねw

707 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:11:58.52 ID:FG6PmAiu.net]
>>692
そうか?
それなら勝利判定と思考ルーチンの関係がはっきりしないからかもしれん。
ロジック部分の設計はまったく未着手だからこれからか。

708 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:13:00.88 ID:uKYFBn7C.net]
>>614
Moveってのは自分の手番でさせる手を洗い出して格納するって事?
それって必要?



709 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:15:28.62 ID:fBBvLnfI.net]
>>695
勝利判定って王をとったかどうかですよ

710 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 23:16:24.59 ID:FG6PmAiu.net]
>>696
データを整理するためにER図を使っただけ。
>>628で「データを整理する別の手法があるなら教えて」って書いたのはそういうのもある。

ただ、>>631があるから過去の棋譜はDBに格納する方針にした。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<348KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef