[表示 : 全て 最新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]
手順とかノウハウとか語りたい

552 名前:デフォルトの名無しさん [2016/05/24(火) 00:57:32.21 ID:6RFz1ZJQ.net]
>>542
まあねえ。
様子見ながら考える。

正直なところ、>>358とか、>>431とかみたいに悩むポイントを提示しつつ
いろんな意見を聞きながら進めたかったんだけど、反応がほとんどなかった一方で
「思考ロジックはクラスじゃない」だの「将棋ソフトはおかしい」だの一部の連中が騒ぐから
だったらお前らの考えを言えよってなったのはある。

>>358とか、>>431とかについて意見交換できるならやりたいぞ。

553 名前:デフォルトの名無しさん [2016/05/24(火) 01:00:51.27 ID:6RFz1ZJQ.net]
「思考ロジックはクラスじゃない」って考えは否定はせんな。
ただ、それにしたって設計は必要だからどんな設計になるかは考える必要があって
思考ロジックはクラスじゃないから設計いらないみたいな発想はおかしいと思う。
が正確だな。

554 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 01:04:03.54 ID:KRMd4EzS.net]
取り立てて機能のない将棋ソフトに
設計なんか必要だと思うほうが間違ってるよね
こんなのz80でだって動くんやで
豪勢なのは思考ルーチンだとしても将棋ソフト本体への入出力が決まってる以上複雑にはならんね

555 名前:デフォルトの名無しさん [2016/05/24(火) 01:06:59.17 ID:6RFz1ZJQ.net]
>>546
いつもの人だねw
煽り抜きで質問なんだが、モジュールに分けない一枚岩の巨大単一ソースコードにするつもりなの?

556 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 01:19:38.22 ID:KRMd4EzS.net]
>>547
今出てる内容ならそれでも十分なんですよ
ちなみに俺は設計書書けよ派だけどね

将棋とかゲームのプログラムって大事なのは状態遷移の方だからね

ビジネスアプリでよく使うものは尽く役に立たない

557 名前:デフォルトの名無しさん [2016/05/24(火) 01:23:01.35 ID:6RFz1ZJQ.net]
>>548
ボナンザのソースは何行くらいなのかぐ

558 名前:ぐってみたら2〜3万行だとさ。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1448320344
これを1ファイルにぶち込むのは普通じゃあない。
[]
[ここ壊れてます]

559 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 01:40:19.17 ID:24rCrc9d.net]
>それらの情報の関係とか何がクラスで何が属性なのか
クラスって言葉の時点で代数的データ型と同じくらいには実装よりな気がするが。。

後 例が将棋って言っても駒の動きなのかAIなのか
AIだと範囲が広すぎ&専門的すぎて例になりにくいし
UIにしても話の焦点がずれる気がするから
将棋のロジックの論点にしようか?
webアプリなのか顧客がいる業務系なのかで設計やドキュメントの意味合いも変わると思うが

560 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 01:45:49.17 ID:TKpsNxtt.net]
>>535
> クラスが不要だと思うならクラスを使わない設計をしてくれって何回言えば分かるんだ?

自分は何も出さずに人には出せと言う
出せばここダメあれダメと得意気にダメ出し



561 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 01:46:42.61 ID:TKpsNxtt.net]
>>535
> クラスが不要だと思うならクラスを使わない設計をしてくれって何回言えば分かるんだ?
クラスが不要なんじゃなくて設計が不要。
何回言えばわかるんだ?

562 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 01:50:13.69 ID:TKpsNxtt.net]
>>549
> ボナンザのソースは何行くらいなのかぐぐってみたら2〜3万行だとさ。
> detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1448320344
> これを1ファイルにぶち込むのは普通じゃあない。

1ファイルって言ってるのは、思考ロジックだけの話だっただろ?
すり替えんなよw

563 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 01:58:43.29 ID:TKpsNxtt.net]
Bonanza のソースによると

readme.txt に思考部ってのが書いてあって、

> sikou.dll Bonanza 思考部 DLL ファイル

このdllを作るのが、sikou.c (とそのヘッダファイル)の
1ファイルからなってるじゃねーかwww

564 名前:デフォルトの名無しさん [2016/05/24(火) 02:14:51.13 ID:DBnZJSfL.net]
そもそもクラスにすんなよ
インターフェースにしろよ

565 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 09:18:09.69 ID:kp/L/pO1.net]
まあ1ファイルでも複数クラスが定義されてることもあるし…

566 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 09:33:17.14 ID:TKpsNxtt.net]
それを言ったらCの時点でクラスは無いんだけどなw

それに思考ロジックなんて速度が重要なんだから、
一々内部でメソッド呼び出すとかやりたくないな。
やりたいやつはやってもいいけど、やりたくないやつは
内部で最適化する。

コマの配置や動きのデータも最適化するだろうから、
汎用化にこだわる所じゃない。
よって思考ロジック内部は自由。

設計を作れと言うのなら、設計がない(自由)が
この場合の優れた設計だろうw

567 名前:デフォルトの名無しさん [2016/05/24(火) 11:26:21.90 ID:6RFz1ZJQ.net]
>>553
将棋ソフトを構成するクラスを提示してくれって言ってるが。
>>482とか、モジュールとかしつこいほど繰り返しても分からないお前って…。
設計について何も分かってないんだからアホな書き込みはすんな。
書き込みたいなら「分からないから質問させて:ってトーンで書き込め。

568 名前:デフォルトの名無しさん [2016/05/24(火) 11:29:58.50 ID:6RFz1ZJQ.net]
>>555
そういう議論はいいね。
駒の種類が変わらないのにインタフェースにすべき理由はあるかな?

569 名前:デフォルトの名無しさん [2016/05/24(火) 11:31:37.26 ID:6RFz1ZJQ.net]
>>556
システムのすべてのクラスを1つのファイルに書き込みのが望ましいとでも?

570 名前:デフォルトの名無しさん [2016/05/24(火) 11:39:57.64 ID:6RFz1ZJQ.net]
>>557
客に設計を依頼されて、開発チームに「自由に作って」ってさあ…。

設計者と開発者が別れている実プロジェクトを想定しような。
>>535で言ったし、実際のプロジェクトなら当たり前のことだから
普通の経験を想定して考えろ。
>>514も読めないのか?
自分が知ってる業務システムの設計を提示してくれもいいぞ。

×設計いらない
○設計できません
なのは分かってるから、書き込まないでいいよ。

何度も同じことを繰り返すのが面倒だから設計いらないって書き込みは今後はすべてスルーするから。



571 名前:デフォルトの名無しさん [2016/05/24(火) 11:46:53.22 ID:6RFz1ZJQ.net]
念のため、>>515もな。
クラスを使わない→設計いらないにはならないから。

常識すら知らない素人の相手はこれでおしまい。

572 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 13:45:02.78 ID:rb+ApEGm.net]
なんか、将棋AIで盛り上がっているようだけど、
Bonanzaでいえば、手筋を決めるのは全幅探索だよ。

でも、本当に全幅したら、制限時間収まらないから、
探索木を刈り込んで、選択の範囲を限定してやる。

その限定方法に、王を含む要の3駒の位置関係関係から導きさされる値をしきい値にしているということだよ。

Bonanzaって思考ルーチンが公開されているハズだから、落として読んでみればw

573 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 13:58:42.06 ID:iG1UUWT4.net]
将棋AIで盛り上がってるんじゃないと思うよたぶん
俺の見た感じだと

(1)
public class ShikouA implements IShikou {
public Object tsugi_no_itte(Object param) {
// 次の一手を考えるアルゴリズム書く
}
}
の1クラスでいい派と

(2)
public class Rule {
}
public class Kouho {
}
public class TensuHyoka {
}
public class Banmen {
}
みたいにできるんじゃねーのという>>1

の構図なだけでAIの中身は話してないと思う

574 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 14:06:07.08 ID:uyx/y43g.net]
いい加減お題が悪いんだから引っ込めろよ
ゲームPGが設計書なんて書かないのはゲームが状態遷移のお化けだから
状態遷移がメインになる時は資料が役に立ちにくい

575 名前:デフォルトの名無しさん [2016/05/24(火) 18:58:04.32 ID:6RFz1ZJQ.net]
>>565
>>514

576 名前:デフォルトの名無しさん [2016/05/24(火) 19:03:58.90 ID:6RFz1ZJQ.net]
>>564
違うだろ。

クラスを分けないにしても設計はないと構築できないって言ってる。
実際のプロジェクトだったら設計書ができて時点で客が確認する。
それを構築チームが読む。
ってやるだろ。
なんで分からないのか不思議。
真剣に疑問なんだが、実際のプロジェクトがそうなってることを知らないのか?

それと、俺は実装する設計が(2)になるなんて言ってない。
最終的な構成がすぐに出ないならまずは論理設計からするのが基本って言った。

577 名前:デフォルトの名無しさん [2016/05/24(火) 19:18:16.62 ID:6RFz1ZJQ.net]
質問なんだけど、実際のプロジェクトで設計書を作って客に提出したことが
ある奴で将棋ソフトの構成案を書き込んだって奴いるの?
いたらレス番を教えてくれ。

578 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 20:14:51.18 ID:TKpsNxtt.net]
>>561
> 客に設計を依頼されて、開発チームに「自由に作って」ってさあ…。

だから質問したよね?
なんで答えないの?

模範例として二分探索の設計とはどういうものかを答えろって。

579 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 20:19:38.66 ID:TKpsNxtt.net]
>>568
二種類の人間しかいないよw

一つは、(将棋ソフトの中の一部分の)思考ロジックには設計と呼べるようなもの必要ない。
あえて言うならば、思考ロジック内部では、クラスなど何も作らないという設計。
もし追加でなんか要望があるのなら、それに合わせて何か作るかもしれないが、
現時点では要望無いから一番シンプルな設計=クラスなし。
これが俺が言ってること。


そしてもう一つは、思考ロジックにも設計がいるんだ。
駒が何種類かあるのをクラス化して、
動きのルールをクラス化して
盤面に配置をクラス化して
配置された駒が動けるマスをクラス化して
駒の配置とかを見て点数をつけるクラスを作って
そうやって、思考ロジックを作るべきなんだ。
でも俺にはそれをどうすればいいかわからない。
誰かおしえてくれ!

って言ってる無意味に複雑にして何も出来ない、お前w

580 名前:デフォルトの名無しさん [2016/05/24(火) 20:21:59.63 ID:6RFz1ZJQ.net]
>>569
>>538
>>544

現時点で具体的になってないのはすでに書いた通り。
だから、迷う点について意見交換しながら進めようとしている。
反応が全然ない。

一人で考えて設計案を出すことはできること、それならスレでやる意味ないじゃん。
設計案を何も出さないことについてはバカにしてるけど、設計のアイデアに対しては肯定的な
レスを返してるつもりだけど。



581 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 20:22:53.94 ID:TKpsNxtt.net]
>>571
> 設計案を何も出さないことについてはバカにしてるけど

そうか。じゃあお前の設計案は?

ムダに複雑にすることかい?w

582 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 20:24:47.16 ID:TKpsNxtt.net]
模範例として二分探索のお前の設計をいえって
言ってるのに、逃げてばっかりなんだよなw

583 名前:デフォルトの名無しさん [2016/05/24(火) 20:25:08.60 ID:6RFz1ZJQ.net]
>>569
あと、二分探索自体の設計なんて求めていない。
思考ロジックの処理フローとかはいらないって書いたじゃん。
駒の配置を読み込んで、内部の実装(書く必要のない)で点数化して、
最適な手を選ぶって大きな流れを構成するクラスないしモジュールの構成。

584 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 20:25:28.59 ID:ya5FB131.net]
こんなところでグダグダ言ってないで
早く社会に出て仕事すればスキルは身に付くと思うよ
いきなり実装レイヤの話から入らないで
まずは概要と仕様を決めないとね

585 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 20:26:34.82 ID:TKpsNxtt.net]
>>574
> あと、二分探索自体の設計なんて求めていない。

だから俺が求めてるんだよってw

二分探索アルゴリズムも
将棋の思考アルゴリズムも一緒。

俺の答えは、二分探索アルゴリズムも将棋の思考アルゴリズムも
設計と呼べるものは(現時点では)いらない。

586 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 20:28:04.81 ID:TKpsNxtt.net]
> 駒の配置を読み込んで、内部の実装(書く必要のない)で点数化して、
> 最適な手を選ぶって大きな流れを構成するクラスないしモジュールの構成。


駒の配置・・・2次元配列
点数化・・・計算関数
最適な手を選ぶ・・・戻り値

ほっほっほwww
なんでこんなのをクラスにしないといかんのやwwww

587 名前:デフォルトの名無しさん [2016/05/24(火) 20:28:27.44 ID:6RFz1ZJQ.net]
>>572
オブジェクト指向システムの設計について話そうってスレなんだから
>>544に対する見解を聞かせてくれ。
例を出したのもそれが目的。

588 名前:デフォルトの名無しさん [2016/05/24(火) 20:29:17.01 ID:6RFz1ZJQ.net]
>>577
>>562

589 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 20:31:17.27 ID:TKpsNxtt.net]
>>578
オブジェクト指向とは関数(思考ロジック)をオブジェクト指向に変えるものではなくて、
関数を取り巻く世界を扱うものだ。ドアホw

将棋ソフトで言えば、思考ロジック・・・を取り巻く世界、
つまり複数あるかもしれない思考ロジックを入れ替えやすくしたり、
配置データを3Dオブジェクトで表現したり、

そういう、関数(思考ロジック)と関数(その他の処理)を
分類して扱いやすくするものだ。

たとえばフレームワークと呼べる部分がオブジェクト指向だ。

ま、お前、経験足りないってことだなw

590 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 20:32:20.22 ID:TKpsNxtt.net]
>>579
だから2次元配列の設計というのがどういうものかを言えって。
逃げるな卑怯者。
逃げるな卑怯者。

それに合わせて思考ロジックの設計を答えてやんよwww



591 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 20:33:33.14 ID:TKpsNxtt.net]
まーちーがーえーたーwww

>>579
だから二分探索の設計というのがどういうものかを言えって。
逃げるな卑怯者。
逃げるな卑怯者。

それに合わせて思考ロジックの設計を答えてやんよwww

592 名前:デフォルトの名無しさん [2016/05/24(火) 20:53:10.15 ID:6RFz1ZJQ.net]
ID:TKpsNxttは専門学校の学生?

593 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 21:02:34.83 ID:i9YaiJfL.net]
だめだこりゃ
この>>1議論する能力がない

594 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 21:08:39.75 ID:i9YaiJfL.net]
>>567
>実際のプロジェクトだったら設計書ができて時点で客が確認する。

この子、客にクラス図みせるのか
まあ下請なら仕方ないか

595 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 21:11:09.24 ID:TKpsNxtt.net]
>>583
違うけど俺が専門学校の学生かどうかと、
お前が二分探索の設計を答えないことに
どう関係があるんだ?w

俺が何者であろうと、お前は二分探索の設計を
答えることが出来るはずだ。

答えない代わりに、そういうレスをすることで
反論(?)した気になろうとしてるんだろうが、無駄無駄w

596 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 21:17:39.14 ID:i9YaiJfL.net]
>>586
あんまりいじめてやるなよ

597 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 21:18:27.86 ID:KRMd4EzS.net]
>>582
題材が悪すぎるよ
どう考えても関数1つで十分
入力は盤の情報と自分と相手の持ち駒ぐらいだし
出力は次の一手オンリー
こんなんじゃ設計書いんないね
のいい例みたいになってる

こういう時に挙げる題材が悪いってのは要は経験が足りないんだろ
少なくとも通信やDBを絡ませるようなもんを出せば資料作んなきゃねって
話になったじゃん
バーカ

598 名前:デフォルトの名無しさん [2016/05/24(火) 21:27:49.83 ID:6RFz1ZJQ.net]
>>585
どんな構成になるか説明を求められたとき、お前は何を見せるんだ?

599 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 21:29:47.19 ID:i9YaiJfL.net]
>>588
582に言うことか?

600 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 21:31:31.83 ID:i9YaiJfL.net]
>>589
この子、人に物を尋ねる基本的なマナーももちあわせてないのか
まあ仕方ないか



601 名前:デフォルトの名無しさん [2016/05/24(火) 21:32:03.67 ID:6RFz1ZJQ.net]
>>586
>>571で回答したとおり、そもそも意見交換しようってスレなんだから意見交換しようぜ。
設計について会話する気がないならスレにいる意味ねえだろ。

設計について会話が成立しないのは学生っぽいなあって思って。
あんまり必死気に書き込んでたから雑談でもしてやるかと思ったけどスルーしたほうが良かったな。

602 名前:デフォルトの名無しさん [2016/05/24(火) 21:33:32.81 ID:6RFz1ZJQ.net]
>>591
質問じゃねえからw
「何言ってんだこいつ?」ってのをやんわり言ったんだよ。

603 名前:デフォルトの名無しさん [2016/05/24(火) 21:37:36.56 ID:6RFz1ZJQ.net]
>>588
適切な題材があるなら出せばいいじゃん。
他の例ある?あるならその設計について語ってくれ。って何度か書き込んでる。

604 名前:デフォルトの名無しさん [2016/05/24(火) 21:41:00.13 ID:6RFz1ZJQ.net]
「俺のほうがスキルある」って主張したい奴がたくさんいるみたいだけど
設計を書けばみんな認めてくれるよ!
俺は最初の取っ掛かりは考えて会話の糸口は出した。
何も出していないお前ら。

どっちが無能かは明らかじゃん。
批判してる暇があったら少しは建設的なことやってくれ。
俺が反論できないくらいの設計指針なり、なんかのシステムの設計なりを見せてくれよ。

605 名前:デフォルトの名無しさん [2016/05/24(火) 21:56:38.92 ID:DBnZJSfL.net]
お前が消えればいいんやで
どうみても適当でない例を引っ張なくてもいいし

606 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 21:59:45.35 ID:TKpsNxtt.net]
>>592
そんなのはいいからさ、
二分探索の設計はどうしたの?

会話が成立してないのは、俺の投げたボールを
お前が投げ返さないからじゃん。

607 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 22:01:11.19 ID:TKpsNxtt.net]
>>595
恥ずかしいセリフだな

> 「俺のほうがスキルある」って主張したい奴がたくさんいるみたいだけど
> 設計を書けばみんな認めてくれるよ!
>
> (そういったら、言い出しっぺの俺に設計を答えろって言われるだろ?
> それは困るから)
>
> 俺は最初の取っ掛かりは考えて会話の糸口は出した。
>

608 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 22:07:20.85 ID:ya5FB131.net]
>>595
君のその「高圧的な態度」が問題なんだと思うよ
そんな調子じゃ建設的な話なんてできるわけないでしょw

609 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 22:12:13.61 ID:iG1UUWT4.net]
これはさすがに香ばしい

将棋のクラス構成クレクレ(>>368,388,390,413,454など)

思考ルーチンなんて1クラスになるしクラス図とか不要だろ(複数)

Bonanzaみろよ。1クラスとか普通じゃないだろ(>>549)

実際1ファイルになってました

やはりまず>>1が考えたクラス構成を出して
こんなんだけどどう思うよってやらんと
議論は絶対進まないと思うぞ

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図を読めれば足りないことくらい分かるんだけどなあ。






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

前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