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

892 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 21:38:49.46 ID:uH1/jPAH.net]
>>877
で、そんなことを言い出すと。
YAGNIだってとどめを刺すわけだw

だからそうする目的を聞いている。目的がないのにわざわざ分割するのは、
必要だからやるのではなく、設計(?)をすること自体が目的になっている。

893 名前:デフォルトの名無しさん [2016/05/29(日) 21:47:24.89 ID:Cf71caC3.net]
>>877
現実のプロジェクトなら設計者が設計書に記述するであろう内容についての前提が違うんだと思う。
「将棋ソフトを設計してくれ」って客に言われたら、オブジェクト指向だろうが、他の設計手法だろうが
構成を記述しないってことはあり得ないからさあ。
そこを分からない人に説明してもしょうがないことは分かったから流すようにする。
毎日IDが変わるから新しい人かもと思って対応していたけど、どうも同じ人みたいだし、
対応してもスレが汚れるだけだからスルーすべきだったと反省。

894 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 21:50:11.02 ID:uH1/jPAH.net]
> 構成を記述しないってことはあり得ないからさあ。

構成は記述されてありますが?
そもそも将棋ソフトを設計してくれって言われたら

思考ロジック部分だけを設計しませんよwww

[ 思考ロジック ] - [ 駒の配置データ ] - [将棋UI]

こんな感じで設計します。
当然、思考ロジック部分は一つです。
シンプルイズベスト。理由がなければ分割しない。

895 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 21:52:08.59 ID:uH1/jPAH.net]
「将棋ソフトを設計してくれ」って客に言われたら、
どんな仕様か詳しく聞きますね。

その上で必要なら、それを満たすように設計しますが、

あんたのように何も言ってないのに過剰な分割なんかしませんよwww

896 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 21:53:29.31 ID:1omdCt5G.net]
客の定義による
ただ将棋ソフトで遊びたい人にとって内部設計なんてなんの意味もない
外部の人間が自分たちのソース引き継いでメンテするのが前提ってこと?

897 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:04:37.03 ID:qPPHNZFg.net]


898 名前:ogg vorbis形式のファイルを自前でデコードして再生するソフトを「設計」しろとか、
円周率を出すソフトを「設計」しろとか、
そういう類の無意味な題材だってことが理解できているのか心配になる。
動物とか自動車とかモデル化するだけの人なのかもしれんが。
[]
[ここ壊れてます]

899 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:05:37.63 ID:uH1/jPAH.net]
>>882
何を言ってるんだ?

たとえばネット対戦をしたいって言えば
それが出来るような設計にするだろ?

客の要求を聞いた上で、それを実現できるように設計する。

客がネット対戦をしたいって言ってもいないのに
あらかじめ先手(笑)を打ってネット対戦機能をつけましたとか
それは過剰な設計であり無駄なコストを発生させたに過ぎない。

だからいきなり設計すんなって言ってるんだよ。
客の要望を聞いて、必要であるという理由があれば
それが可能なように設計すればいい。

だから、そうした理由を聞いてるのに、明確な理由もなくて、
そうするのがいいと思いましたーでやってるから馬鹿にされてるんだよ。

900 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:06:35.28 ID:1ogDAOAr.net]
別に思考ルーチンも学習機能なんて要件に上がってないしね
ここで話せるのはここまでじゃん

だから題材が悪いって俺が最初に言ったじゃん
基本的にオブジェクト指向ってz80で作れるものに威力を発揮しないんだよ

将棋ソフトなんて作ったこともないのに題材に選んだ奴責任とって腹切れ

どうせ設計に必要な項目も他人に説明できないしできなかっただろ
それは将棋ソフトの全容が他人に聞くまでもなく
みんなある程度わかっちゃってるからなのさ



901 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:07:18.13 ID:+DJ914Ec.net]
>>883
できるだけ抽象的に作ればいいと思ってる抽象馬鹿だと思われ。

902 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:09:35.02 ID:uH1/jPAH.net]
>>883
ogg vorbis形式のファイルというのは、正確には音声ファイルフォーマットで
Oggがコンテナ、Vorbisがコーデックという設計で、
元々内部の役割が分割されてるからちょっと違うけどねw

903 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:11:26.67 ID:uH1/jPAH.net]
>>885
> 将棋ソフトなんて作ったこともないのに題材に選んだ奴責任とって腹切れ

↓こいつかな?w

346 名前:デフォルトの名無しさん[] 投稿日:2016/05/22(日) 16:27:04.89 ID:sxeEi6BC [38/89]
ちょうど今電王戦見てるから将棋ソフトで考えてみるとさ。
駒クラスがあって王・飛車とかは駒のサブクラスにしようかって感じだろ。
盤面情報と思考ロジックはどんな感じのクラスにするのがいいだろう?

354 返信:デフォルトの名無しさん[] 投稿日:2016/05/22(日) 16:44:19.40 ID:sxeEi6BC [43/89]
>>351
具体例があったほうが分かりやすいから将棋ソフトの例で考えてみてよ。

904 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:14:11.15 ID:auBo7N3K.net]
スーパーエヴァンジェリストの僕がこのスレの混乱の原因を教えてあげよう
ここには顧客ロールの担当者がいないのさ

905 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:17:37.23 ID:1ogDAOAr.net]
要件定義が曖昧なのに求めてる設計書のレベルが見合わないんだよね

はじめの話で思考ルーチンが
ディープラーニング当然でしょみたいな話になんて絶対ならないわけで

906 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:19:59.67 ID:+DJ914Ec.net]
んでは OS の設計でもしてみるかい?
Linux あたりと比較できるしいいんじゃないの?
よりよいオブジェクト指向で設計してもらいたいですな。

907 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:24:35.04 ID:hqWpcQ8C.net]
>要件定義が曖昧
これ 「将棋ソフト」を設計しろだと
いきなり実装の話に入らざるを得ない

908 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:26:13.01 ID:uH1/jPAH.net]
>>890
> 要件定義が曖昧なのに求めてる設計書のレベルが見合わないんだよね
それもあるけど「何のためにそうしているか?」が存在しないんだよ。
いえばいいだけなのに、言わない。
そうするのが当然だって思い込んでる。

909 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:27:58.83 ID:uH1/jPAH.net]
>>892
お題だから、いきなり実装の話に入ってもいいんだけどさ、
それならそれで、どういう「要件を想定した」っていうのを
明確に言わないといけない。

それを言わずに、なんかわけのわからん分割の仕方をしてるから
突っ込み入れられまくってるわけ。

910 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:33:44.93 ID:RrRCCmyQ.net]
スレタイに沿ったオブジェクト指向の設計なら
将棋の駒はクラスで正解

しかし設計のきれいさではなく
処理速度を求めるなら構造化で書く

前提が違うのにみな上から目線で書きこむから
ただ混乱するだけ

やっぱ2ちゃんは雑談はともかく
ちゃんとした議論に向かないな



911 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:35:40.39 ID:1ogDAOAr.net]
要件定義がグチャグチャだとダメだね
得に将棋ソフトなんて疑問が無いもん
勝手に作っちゃうでしょ
そこは要件を出した方も悪いし聞かないまま進めちゃう方も悪いし

912 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:36:26.79 ID:uH1/jPAH.net]
> 将棋の駒はクラスで正解

それはゲームとかで駒を
2Dや3Dでレンダリングする時の話だよw

思考ロジックの中でクラスにする理由はない
charなりintなりの二次元配列に
defineで定義した定数を入れれば十分

913 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:40:50.33 ID:RrRCCmyQ.net]
>>897
処理速度を考慮しない前提で言うと
それはオブジェクト指向じゃなくて
構造化の考えから抜け出せてない

914 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:45:42.31 ID:1ogDAOAr.net]
ところで将棋ソフトにオブジェクト指向を適用するとダメだね
駒なんかクラスにされたらどう作ってもクソになっちまう

915 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:47:10.49 ID:1ogDAOAr.net]
でもオブジェクト指向的に将棋の駒をクラスにするのは間違ってないと思うな
つまりオブジェクト指向ってもしかして(笑)

916 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:49:05.67 ID:uH1/jPAH.net]
>>898
それで理由は?

917 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:51:44.59 ID:uH1/jPAH.net]
>>900
> でもオブジェクト指向的に将棋の駒をクラスにするのは間違ってないと思うな
> つまりオブジェクト指向ってもしかして(笑)

最後まで書きなよw

つまりオブジェクト指向ってもしかして、(思考ロジックの)将棋の駒を
クラスにすることには役に立たない。

だろ?
だから俺は最初から何のためにそれをクラスにするのかと聞いてるわけ。
する理由がある、つまり適切な場所をオブジェクト指向にして、
こんな関数レベルの思考ロジックをわざわざ無意味に分割するんじゃないって言ってるんソア。

918 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:52:01.50 ID:+DJ914Ec.net]
>>898
抜け出す必要がない場面で無理に抜け出そうとする事がそもそもおかしい。
オブジェクト指向は万能ではない、処理フローがほとんど決まってるものに対しては不向き。

919 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:54:48.91 ID:vZz5+wdA.net]
構造体どころかintかcharの配列で良いって話
charでも何か勿体ないという人もいるかもしれない

画像なら、画像全体が何らかのオブジェクトでラップしてあるならわかるが
画像の1ピクセル1ピクセルを全てオブジェクトにする人はいない
こんなものはデータで十分
構造体的発想を抜け出せないというのも意味不明
データで十分なものをオブジェクトにする方が
何も理解していないと言いたい

920 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:58:31.03 ID:1ogDAOAr.net]
>>902
でもさ
全員の共通認識を一致しやすいって手法だろ?
でもこの方法は将棋ソフトに関してははっきり言ってクソ
どう作ってもクソにしかならない
オブジェクト指向ってダメなのかもしれんね



921 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 22:59:10.96 ID:1omdCt5G.net]
オブジェクト指向は万能じゃないよ

922 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:01:49.14 ID:vlcsE4Oa.net]
>>904
うんうん。将棋のコマって

王将・玉将
金将
銀将 → 成銀
桂馬 → 成桂
香車 → 成香
飛車 → 竜王
角行 → 竜馬
歩兵 → と金

うまい具合に15種類なんだよねぇ。
4bitでじゅーぶんですよね。空白含めても。

923 名前:デフォルトの名無しさん [2016/05/29(日) 23:02:20.91 ID:Cf71caC3.net]
実力を示したいなら
「設計は>>652
「設計は思考ロジック!」
とか言ってないで、設計を提示すりゃいいじゃん。
設計書を書いたことなくて、書き方知らないんだからおとなしくしてりゃいいのに。

あと、要件についは十分説明したから読み直せ。
参加者はあれで読み取ってるんだから読み取れない自分が問題だといい加減気付けよ。

924 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:06:00.21 ID:RrRCCmyQ.net]
>>901
仕様の変更や追加に強くなるから

>>903
ある程度の規模になると必要がある

>>904
>構造体的発想
構造化ね

そりゃ速度が重要ならOOにはしないが
逆に複雑なもので多少のオーバヘッドを
犠牲にできるならOOの方が楽に組める

925 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:08:23.54 ID:hqWpcQ8C.net]
>>908
実力を示すってのが意味不明だけど
アルゴリズムの設計をすればいいのか?
>MoveGenerator→MovePicker→Evaluator
こんなの設計しても将棋には意味ないぞ

926 名前:デフォルトの名無しさん [2016/05/29(日) 23:10:51.26 ID:Cf71caC3.net]
簡単な部分だけをみて簡単だって言ってる奴が多いけど
ソフト全体の構成がどうなるかを聞いている。

手が進むと局面が増えるのはどうやって管理する?
手と局面の関連付けは?
手の分岐もおそらく管理する必要がある。
手の生成、局面の評価、手の選択の機能の連携は?
マルチスレッド対応もある。

などなど含めた全体の設計はどうなるんだろう?って話だ。

927 名前:デフォルトの名無しさん [2016/05/29(日) 23:14:39.98 ID:Cf71caC3.net]
「構造化で十分」って言うなら構造化による構成を提示して欲しいよな。
設計手法って問題を整理して、考えを明示して関係者と共有することが大きな目的であって
構造化だろうが、オブジェクト指向だろうが基本は一緒。
機能的な固まりをきれいに整理して、疎結合を実現するというのはどの手法でも目的になっているし。

928 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:14:43.33 ID:1ogDAOAr.net]
>>911
あーまず要件を定義してからな

929 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:14:44.37 ID:hqWpcQ8C.net]
>仕様の変更や追加に強くなるから
空気を読まずに言うと データ型(クラス)がどういうインターフェースを実装するのかってのを
データ型の定義時に決めなきゃいけない静的型付けのOOPより
データ型が実装しているインターフェースを後つけで拡張できる型クラスのほうが仕様の変更や追加に強いのではなかろうか
つまり手続き型でオブジェクト指向で関数型なRust最強という事だ

930 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:17:54.53 ID:1omdCt5G.net]
mixinか



931 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:17:56.58 ID:RrRCCmyQ.net]
まあ将棋のルールは固定されてるから
やはり処理速度がどうとか抜きにすれば
OOより関数型が向いてるかもしれないね

932 名前:デフォルトの名無しさん [2016/05/29(日) 23:18:07.91 ID:Cf71caC3.net]
>>914
言語的にそれを許されたからって楽になるものじゃない。
変更する前には設計して、変更して、テストしてってやるのはどんな言語でも一緒。
変更を楽にするのは正しい設計。

933 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:20:12.27 ID:1omdCt5G.net]
今回どんな変更があるのかが要件に入ってないんだよね

934 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:20:17.48 ID:hqWpcQ8C.net]
>>911
簡単だと思わないしむしろ難しいと思うが
しかし

>手が進むと局面が増えるのはどうやって管理する?
>手と局面の関連付けは?
>手の分岐もおそらく管理する必要がある。
>手の生成、局面の評価、手の選択の機能の連携は?
>マルチスレッド対応もある。
これももうアルゴリズムのお話でoopプログラミングの手法で解決するものではなないでしょう

935 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:23:30.65 ID:hqWpcQ8C.net]
追記
将棋みたいに計算機をガリガリ使う計算って
並列化にはcpuよりGPGPUを使うものだと思うんだけど
そうするとますますオブジェクト指向の付け入る隙はなくなるなぁ

936 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:27:16.56 ID:hqWpcQ8C.net]
ググってみるとクラスタリングか
PC1台に限定する意味ないから当たり前だった

937 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:29:06.15 ID:1omdCt5G.net]
規模の話がでてたけど
別な視点で考えるとプログラマが10人いたとして
全員が一つのソースファイルを同時にプログラムすることはできないから
どのように分割するか、という話になるのだろうか

938 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:29:20.83 ID:RrRCCmyQ.net]
計算速度と戦うタイプのソフトを作るのにOOは向いてない

ターン制のRPGやカードゲームみたいなのの方が向いてる
ゲームルールがすごい複雑でしかも仕様変更されうるもの

939 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:32:07.51 ID:E1aQWpks.net]
将棋ダメ
オセロだめ
トランプだめ
テトリスだめ
シューティングゲームもだめ
PRGも作れません
シミュレーションも無理です
OS?無理ですね
ドライバ?向いてません
ミドルウェア?処理速度がー
Web系?用途が違うんで
組み込み?ありえないでしょ

940 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:36:17.35 ID:1omdCt5G.net]
Web系なんてほぼ全部MVCやん



941 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 23:38:45.16 ID:RrRCCmyQ.net]
いやRPGやシミュレーションは作れるでしょ
なぜ作れないと思い込んでいるのか?

942 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 00:09:08.89 ID:8pkfhQuv.net]
例にするRPGのルールを誰が決めるんだ?
非現実的なので却下。

943 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 00:09:39.22 ID:Fopy0H2h.net]
>>926
ゲームは向いてない

944 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 00:25:30.42 ID:j9NktVXe.net]
3Dゲームで使われてるUnrealエンジンのAPIとかもろオブジェクト指向前提だが

945 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 00:25:41.59 ID:MwTEJuIp.net]
ゲームは向いてないってのは、確かにそうかもしれない
特にアクションゲームは普通のアプリと比較しても
オブジェクト同士の相互作用がとても多いし、プレイヤーもそれを求めてプレーしている以上
ゲームの面白さに直結しているので減らすわけにはいかない
これをまともにオブジェクト指向の流儀にのっとって設計すると
メッセージの投げ合いだらけになって、だれがどこで何をしているのかわからなくなって
バギーになる可能性がある
ところがオブジェクト指向が便利な場面もあるから、そのサジ加減が難しい題材という意味では
非常に良いかもしれないが、将棋以上に荒れるのは必須
荒れない範囲で書くなら、大きく分けて
・描画エンジン
・サウンドエンジン
・物理エンジン
・入力処理
・ロジック処理
ここまでは問題ないだろうが、ここから先の細かいことを言い出すと荒れる
描画エンジンとサウンドエンジンと物理エンジンと入力処理に関しては、わりと決まりきったことを機械的にするだけなので
問題ないだろうが、ロジック処理はかなり個性が出るというか荒れる

946 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 00:30:09.97 ID:AVs/GCxh.net]
夢は語るが
現実を逃避する
オブジェクト指向?

947 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 00:34:19.68 ID:j9NktVXe.net]
でもゲームエンジンなんて根底は
ダブルディスパッチというかVisitorパターンでしょ

948 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 00:37:55.36 ID:ND1XxSGp.net]
>>928
むしろゲームにこそ向いている

949 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 00:57:53.90 ID:RhU6P4T4.net]
規模というより粒度の問題。
荒い粒度でならオブジェクト指向するのは当然だろうけれど、細かい粒度でも同じ事やったら
明らかにオーバヘッドで性能がでない。

で、「粒度による」ってのが人それぞれというか経験的なものでしかないので
共有が難しいってこと。

950 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 02:24:41.28 ID:ewV/OC7O.net]
>>905
> どう作ってもクソにしかならない
> オブジェクト指向ってダメなのかもしれんね

そういう結論に持っていこうとする
意図があからさま過ぎたが、正体ばらしたかw



951 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 02:25:30.03 ID:ewV/OC7O.net]
>>909
> 仕様の変更や追加に強くなるから
どういった理由で?

特定の場合にしか当てはまらない設計をすることは
仕様の変更や追加に弱くなる。

952 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 02:30:01.13 ID:ewV/OC7O.net]
例の奴の設計がクソだっていうのは、
役割の分担じゃなくて、
処理の分担になっているって所。

こいつは恐らく検索処理はどんなものであっても
検索処理コンポーネントにまとめるに違いない。

953 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 03:08:47.31 ID:MwTEJuIp.net]
俺的には処理の分担で良いと思うがな
もっと言えば機能の分担で良いと思う

954 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 03:12:13.65 ID:ewV/OC7O.net]
それでいいよ。オブジェクト指向的に言えば
一つのクラスの中で処理(メソッド)を2つに分ける。

どうせ思考ロジックなんてデータ構造も必要な処理も
そのロジックに最適化された形で決まるんだから、
それらは「思考ロジック」という役割にまとめるしかない。

955 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 03:14:00.77 ID:ewV/OC7O.net]
ちょっと訂正

それでいいよ。オブジェクト指向的に言えば
一つのクラスの中で処理(メソッド)を 幾つかに分ける。

別に2つに限定する必要はなかったねw

956 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 03:14:49.89 ID:MwTEJuIp.net]
いやだから、思考ロジックという機能にまとめればよいのでは?

957 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 03:19:59.83 ID:ewV/OC7O.net]
>>941
だから最初からそう言っている。

オブジェクト指向的に〜とかいう話をしてるから、
一つのクラスにするって話になるってだけ。

思考ロジック部分をインターフェースだけ決めて
そのインターフェースを実装する形にすれば
思考ロジックを切り替えやすくなるからね。

と言っても「思考ロジックを切り替えられるようにする」という
要件は明確には出てない。これはこっちのギリギリの譲歩で
無理やりオブジェクト指向の枠内に入れただけ。

ゲームでは難易度調整で思考ロジックの切り替えは当然あるだろうし、
強いAIを作るための研究であっても、別々の思考ロジック同士を
戦わせるってことはあるだろうしさ。

958 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 08:11:02.74 ID:ekC4cwoE.net]
荒れるので要件の定義をせずに設計するの禁止

959 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 10:28:51.98 ID:rIAW5ZZo.net]
>>819
これは流石にお粗末だと思うし、設計が未熟な新人ならもう少し謙虚になるべきだと思う

960 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 11:47:28.04 ID:8pkfhQuv.net]
>>939
OCPに違反した劣悪な設計



961 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 11:58:04.55 ID:PEEN5NGh.net]
OCPって広く長くリリースされてる有名ライブラリなら意味あるのかも知れないけど
規模も小さくプログラマの質も低いそこらのプロジェクトじゃ意味無いよな
きっちり動くのだけ残すべきだし、継承なんて安易にするもんじゃない

962 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 12:04:11.10 ID:8pkfhQuv.net]
将棋ソフトにはオブジェクト指向が向かいない厨はAperyがオブジェクトを使っていることを知ったら
小便漏らして泣き出しちゃうの?

963 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 12:32:24.29 ID:ND1XxSGp.net]
>>927
これはよく分からん
スレで例にする話なら
ドラクエとか既存のRPGでいんじゃね

964 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 12:59:01.99 ID:g392/VKX.net]
向かないのは、将棋ソフトじゃなく思考ロジックな

すきあらば話をすり替えようとしてるの、
バレバレだw

965 名前:デフォルトの名無しさん [2016/05/30(月) 13:17:27.81 ID:8pkfhQuv.net]
>>949
間違いを明確に指摘されても分からない突き抜けたバカ
Aperyを確認したら

966 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 14:31:40.52 ID:23kor2oM.net]
>>947 aperyのソース読んでねえなお前。
aperyのソースのうち、classは18個ある。ちなみにenumは22個。
classのうち継承を使っているのは4個で、親は全て標準ライブラリからのもの。
このうちメソッドを追加し

967 名前:ただけのものが3個。

virtualを使っているクラスはThreadのみで、実装も1つだけ。

メンバ変数として他のクラスを保持しているクラスはMovePickerのPositionのみ。
Positionクラスも含めその他の全ては構造体+メソッド。他のクラスも同様。

aperyはC++をbetter Cとして使っている。オブジェクト指向で設計したものではない。
具体的にはテンプレート、演算子のオーバーロード、クラスの使い方も構造体に付随する関数をまとめるというもの。
オブジェクト間の相互作用も無いしクラスの階層構造を使ったコードの再利用も外側のごく一部だけ。

ますます例として不適切だと分かるわな。
[]
[ここ壊れてます]

968 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 14:44:44.86 ID:eYr/WPsF.net]
apery読んでも手続きだなぁとしか思えん

969 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 14:57:17.60 ID:eYr/WPsF.net]
https://github.com/HiraokaTakuya/apery/blob/master/src/position.cpp#L69
ここらへんなんてオブジェクト指向としてみたら糞だよね
enumをswitchで判定してreturnで値を返すってのは
パターンマッチって感じでむしろ関数型プログラミングに近い

970 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 15:26:25.89 ID:W9xaEvpV.net]
いるよね。
switchをオブジェクトにしたがるやつ。



971 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 15:28:07.91 ID:3FEoI+9e.net]
classを使えばOOP!
ん〜学生さんは気楽でいいなぁ〜

972 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 15:30:09.07 ID:ekC4cwoE.net]
ああ邪魔だな
switchで書かれていれば一覧になっていて一目瞭然なのにワザとか馬鹿なのか知らないけど
抽象化されてて全部で何種類処理が分かれてるのか分からないの

973 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 15:39:10.62 ID:ILfmqIwk.net]
このスレ面白いなw
次スレたつのかね

974 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 15:49:54.27 ID:cLUfCSU4.net]
何種類あるか意識する必要があるなら負け

975 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 16:48:44.47 ID:ekC4cwoE.net]
>>958
どうやってテストしたのか言ってごらんよ

976 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 17:36:35.20 ID:8pkfhQuv.net]
クラスは1つ、分けるのはおかしい!そもそもクラスじゃない!オブジェクト指向で設計するのは不可能!
ってバカな主張はさすがにやめたんだw

977 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 17:40:07.46 ID:8pkfhQuv.net]
>>951
オブジェクト指向で設計するのは無理って言ってた奴がオブジェクト指向のあるべき設計を語っちゃうって頭おかしんじゃね

978 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 17:51:47.74 ID:eYr/WPsF.net]
「オブジェクト指向とは何か」から認識合わせしなきゃならない感じ?
後 評価関数や定跡はバイナリで配布されてるからそこらへんがなんともいえない

979 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 17:54:05.34 ID:eYr/WPsF.net]
>>961
>オブジェクト指向で設計するのは無理って言ってた奴がオブジェクト指向のあるべき設計
aperyはオブジェクト指向で書かれてないのでオブジェクト指向で設計したものではないって事ではないの?

980 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 18:02:17.22 ID:8pkfhQuv.net]
>>963
モジュールにもクラスにも分ける必要はない、1つにまとめるのが最高の構成!!!
だとさ



981 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 18:13:18.75 ID:ixAozmxi.net]
apery見ろって言った自分のレスが的外れと分かって発狂したのか
まるでアホの子供だな

982 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 18:25:45.94 ID:cZLZyxJT.net]
で、結局OOPは必要なんだろう?

983 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:25:11.10 ID:+7J42eKt.net]
結局要件次第だから要件をキッチリ決めよう
でもこのスレじゃ先走るバカがいるから決められない
だから将棋ソフト開発スレを立ててじっくりやろうってところに落ち着いた感じかな

984 名前:デフォルトの名無しさん [2016/05/30(月) 19:27:28.87 ID:8pkfhQuv.net]
>>967
要件が分からないバカ

985 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:35:00.08 ID:+7J42eKt.net]
>>968
お?aperyのソースは読み終わった?宿題だからはやくやっとけよ

986 名前:デフォルトの名無しさん [2016/05/30(月) 19:38:36.35 ID:8pkfhQuv.net]
>>969
電王戦の参加者はニコニコが書いた要件を理解して参加してるのにいまだに理解できない奴w

987 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:39:44.40 ID:eYr/WPsF.net]
>>964
うーん会話がいまいち通じない

988 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:49:06.41 ID:eYr/WPsF.net]
>電王戦の参加者
電王戦の参加者は機械学習や計算機科学についての知識がある人達だけど
ここのスレにいる人たちは必ずしもそうじゃない

989 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:50:50.18 ID:ND1XxSGp.net]
さすがにAperyが
2ちゃんのレベルで
クラス1個とかやらないよな

990 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:52:15.30 ID:8pkfhQuv.net]
>>972
理解力のなさが異常
ニコニコのルール・条件のどこが機械学習や計算機科学特有だと思ったのか?



991 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:58:45.90 ID:eYr/WPsF.net]
>>974
人間に勝てる将棋AIを作るってのは普通に機械学習の知識がないと無理だと思うんだけど

992 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 20:00:14.80 ID:8pkfhQuv.net]
>>975
コイツは理解力が異常なまでに欠如しているせいでいろいろ勘違いしてそう






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

前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