トップページ⇒tech
1001コメント297KB

オブジェクト指向は戦場では必要なしパート10

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001プロの逝って良しの1 ◆MvRbZL6NeQ NGNG

OO厨の9割は実は手続き派なのです。
隠れアンチなのです。

手続き型Othello
http://megami.s1.x-beat.com/upload/upload.cgi
[megami0143.lzh] Othello2(訂正)Javaファイル 60 2002年10/05(土)00:38
OO版1
http://www.geocities.co.jp/Technopolis/3354/othello-0.0.0-bin.zip
http://www.geocities.co.jp/Technopolis/3354/othello-0.0.0-src.zip
OO版2
http://megami.s1.x-beat.com/upload/upload.cgi
[megami0146.jar] OO Othelloのソース 8 2002年10/06(日)05:43

パート1 http://pc.2ch.net/test/read.cgi/tech/1011997945/
パート2 http://pc.2ch.net/test/read.cgi/tech/1013266554/
パート3 http://pc.2ch.net/test/read.cgi/tech/1013875413/
パート4 http://pc3.2ch.net/test/read.cgi/tech/1021468476/
パート5 http://pc3.2ch.net/test/read.cgi/tech/1027983898/
パート6 http://pc3.2ch.net/test/read.cgi/tech/1029297075/
パート7 http://pc3.2ch.net/test/read.cgi/tech/1030029357/
パート8 http://pc3.2ch.net/test/read.cgi/tech/1031028125/
パート9 http://pc3.2ch.net/test/read.cgi/tech/1032985885/

0809ケロケロNGNG
要するに、エイヤッで書けてしまうものであっても、
拡張しやすく、また他人に引継ぎ易いカタチにするために、
コーディング前後に再設計が必要だ
と言いたいと思われ。
0810デフォルトの名無しさんNGNG
>>809
説明うまいね。

>>808
そうだったスマン。
そういう意味では、OOが必要なプログラムの例ってのは
一般のプログラマーにはわからない気がしてきた。
簡略化するとテラリウムとかロボコードのような。
あれは作り込みだけでも、充分なものができるけどね。

>>807
人工知能(将棋のAIみたいな)を
開発するためのプログラムは全部OOで書いてますよ。
何年も手を入れますから。
さすがに将棋に関する部分(カーネルと一般的に呼ぶのですが)
は書き直す事はありませんが、
AIに関する部分は6ヶ月に一回は
0から書き直した新しいバージョンを作らないと
やってらんないですね。
0811デフォルトの名無しさんNGNG
てゆうか、人工知能をOO無しでどーやって書くのかOO拒否派のおじさんたちに聞きたいNE!

0812デフォルトの名無しさんNGNG
>>797
うpしないんですか?
0813デフォルトの名無しさんNGNG
一人n役の予感
0814デフォルトの名無しさんNGNG
このスレってOO厨が何もできないから、
すげーつまんないんだよね。
パパッと作って、ソースコードで全てを語るのなら
おもしろいわけだが。
0815デフォルトの名無しさんNGNG
設計に時間がかかるからなw
0816デフォルトの名無しさんNGNG
ガソリン浴びて火事に突っ込むような真似は誰もしない
0817デフォルトの名無しさんNGNG
>人工知能(将棋のAIみたいな)を
>開発するためのプログラムは全部OOで書いてますよ。

それは人口知能とは呼びません
チューリングテストに合格するようなやつです
コブジェクト指向でもむりですね
0818デフォルトの名無しさんNGNG
コブジェクト指向
0819デフォルトの名無しさんNGNG
>>817
そうだねー。人口知能じゃないねー。人工知能だねー。
0820デフォルトの名無しさんNGNG
今時チューリングテストなんて哲学の人しか語らないよw
0821プロの逝って良しの1 ◆MvRbZL6NeQ NGNG
>>812
まだ出来てない。
0822デフォルトの名無しさんNGNG
もうこれ以上やっても意味ないよ

      秋  冬 
0823デフォルトの名無しさんNGNG
あ〜おまえら進歩しないね
0824デフォルトの名無しさんNGNG
オブジェクト指向で書かれたソースが見たかったら
Tomcatでも読めばいいんでない?
0825デフォルトの名無しさんNGNG
1.2メガバイト対応のFDDですか
0826デフォルトの名無しさんNGNG
Tomcatってこれか
ttp://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm
0827デフォルトの名無しさんNGNG
本当は公開したくなかったんだけど
AIの部分以外は3時間くらいでつくったので
機能的にはレベル低いのですが
http://www.yo.rim.or.jp/~nakagawa/Othello/Othello.html

掲示板荒らした人はマジで追跡します。
ソースコードでここはこうした方がいいとかあれば
こっそりメールで教えてくださいw
0828デフォルトの名無しさんNGNG
ネタだとは思うけど
http://www.ingrid.org/jajakarta/tomcat/
Tomcat
読むだけならそれ程大変じゃなかった。
0829デフォルトの名無しさんNGNG
>>827
けっこうよくできてるじゃん。
CPU強いし。
0830プロの逝って良しの1 ◆MvRbZL6NeQ NGNG
>>827
更新履歴
1997.1.31
オセロ ができました。ちょっと遊んでいきませんか?
とあるが?
0831デフォルトの名無しさんNGNG
>>826
けっこうよくできてるじゃん。
CPU恐いし。
0832デフォルトの名無しさんNGNG
>>830
すごい反応速度だなw
0833デフォルトの名無しさんNGNG
じゃあさあ、オセロじゃ>>827みたいなカタリ多いから、
チェスにしようよチェス。
明らかに絶対数少ないでしょ。
ルールわかんなかったら
大貧民みたいなトランプゲームでも良いと思う。
0834デフォルトの名無しさんNGNG
↑補足すると
実装数としてはマイナーだけど、一般的に良く認知されてる
ゲームを選ぶって事ね。
0835デフォルトの名無しさんNGNG
>>833
いかにOO厨といえど、大貧民でOOは・・・
0836デフォルトの名無しさんNGNG
>>835
・カード
・プレイヤー
・持札/捨て札/場札
・強弱関係
・カードの出し方のパターン
・コンピュータプレイヤーのロジック
・カードの出し合いの各1フェーズ
・順位(および交換のルール)

あたりが、上から見た場合のクラスの候補かな。
インスタンスで区別する同一のクラスの方がいいのもあるかも
しれんけど。まあ、推敲しながら作れば、なんとかなるさ。
0837デフォルトの名無しさんNGNG
>>833
大貧民(大富豪)いいね。
ルールとか知らない人いる?
最初から、ソースがあんまりオンライン上に流れてないものを
選択すべきだとは思ってたが。
0838デフォルトの名無しさんNGNG
いいね。
おもしろそうだ。
つーか、オセロより大貧民の方が
OOっぽさがでそうだね。

アイディア出した奴グッジョブ
0839デフォルトの名無しさんNGNG
まともなものが出てくると話題のすり替えですか…
大変ですね。
0840デフォルトの名無しさんNGNG
極力ライブラリは使わないほうがいいんじゃない?
さすがにGUIは使うだろうけど。
コレクションくらいは自分で書くべきだと思う。
そこからOOと非OOの違いが出てくるわけだから。
0841デフォルトの名無しさんNGNG
>>839
大変というより


       必  死  だ  な  (藁

0842デフォルトの名無しさんNGNG
カードゲームなら、キャラクタベースでも組めるから
C言語厨とかでも参加できるな。

スート
S スペード
H ハート
C クローバー
D ダイヤ
* ジョーカー
A 2 3 4 5 6 7 8 9 0 J Q K

画面もこんな感じでいい
----------------------
<<<dai fugoo>>> by 2ch@tech
----------------------
pool : 3D 3S (two pair)
player:7H 1D 2C 6S QD AH 2C
comp1///
comp2/////
comp3:////
:
compn:////
----------------------
cmd : P)ass E)nd ...

0843 NGNG
んで、8切りはありだとか
革命だけは認められんとか俺の生まれた街では
こうだった等々のローカルルールの話題で
激しく板違いに盛り上がる、と。
0844デフォルトの名無しさんNGNG
>>842
ソケットでNET対戦きぼんぬ
0845デフォルトの名無しさんNGNG
こうして >>827 は無かったことになりました、と。
0846デフォルトの名無しさんNGNG
>>845
つーか騙りなんだけど(w
0847デフォルトの名無しさんNGNG
どっちにしろ>>827はソースの日付が97年になってるから無効だろ。
0848デフォルトの名無しさんNGNG
まあ、いつまでもオセロじゃつまんないから
次は大貧民でいいんじゃない?
0849プロの逝って良しの1 ◆MvRbZL6NeQ NGNG
>>846
ひらがなで書いてあげないと・・・・
0850プロの逝って良しの1 ◆MvRbZL6NeQ NGNG
設計に5年かかって最近完成したとか
0851デフォルトの名無しさんNGNG
>>843
そんな地方ルールはオプションにしておくに決まってんじゃん。

 :
0852デフォルトの名無しさんNGNG
書き込みの数時間前に更新されているので本人だと思われ

HEAD /~nakagawa/Othello/ComputerPlayer1.java HTTP/1.0
Host: www.yo.rim.or.jp
Connection: close

HTTP/1.1 200 OK
Date: Mon, 18 Nov 2002 16:13:26 GMT
Server: Apache/1.3.9 (Unix)
Last-Modified: Sun, 27 Jul 1997 01:54:12 GMT
ETag: "55d370-2447-33daaa44"
Accept-Ranges: bytes
Content-Length: 9287
Connection: close
Content-Type: text/plain
0853デフォルトの名無しさんNGNG
うほ、Date と Last-Modified 間違えたぽ
鬱だもう寝よう…
0854852NGNG
うほ、Date と Last-Modified 間違えたぽ
0855デフォルトの名無しさんNGNG
>>852
どうしても本人ということにしたいんだね。
本人だとしてもかなりイタイんですが。
つーかさ、ソースコードの日付見ろよ。
全部これ→1997/07/27 10:54

0856デフォルトの名無しさんNGNG
>>853-854
おまい THE WORLD 使いだな!
0857デフォルトの名無しさんNGNG
>>855
本人かどうかは別として
やっぱりOOの方が見やすいね
0858デフォルトの名無しさんNGNG
>>853
>>854
すげ、一人で時間逆転
0859デフォルトの名無しさんNGNG
↓大貧民
0860デフォルトの名無しさんNGNG
>>833-834
> チェスにしようよチェス。
> 明らかに絶対数少ないでしょ。

> ↑補足すると
> 実装数としてはマイナーだけど、一般的に良く認知されてる
> ゲームを選ぶって事ね。

マヂですか?
ほんとにほんきでチェスプログラムの実装数が少ないと思う?
ただ単に「日本で売ってるパッケージ」が少ないだけだろ。
0861デフォルトの名無しさんNGNG
>>817
> チューリングテストに合格するようなやつです

チューリングテストを通ったAIプログラムの例を出してみろよゴルァ
出せないんなら回線で首吊って氏ね
0862デフォルトの名無しさんNGNG
たしか2ちゃんのAAでトランプの柄を全部完成させたスレがあったけど
どこだったかなぁ
0863デフォルトの名無しさんNGNG
つーか
>>836
のくそ設計には誰も突っ込まないのか?
所詮厨のたまりばか・・・・・
0864プロの逝って良しの1 ◆MvRbZL6NeQ NGNG
予告
作ってるのはコレ
http://qtchicks.hp.infoseek.co.jp/missile.html
http://www2.mahoroba.ne.jp/~pit/mis.htm
0865デフォルトの名無しさんNGNG
>>863
レベルの高い奴は誰もこのスレを見てない。
0866デフォルトの名無しさんNGNG
>>863
どこがクソなのか書かないと、
おまえの存在意義はないんだが
0867初心者NGNG
>>863
俺にもおしえて
0868デフォルトの名無しさんNGNG
>>866
>>867
たかがカードごときで1クラス作るのか?と
強弱関係もクラスにするようなことか?と
というかね、抜き出し方がなってないんだよな・・・・
まずは大貧民を説明するときに出てくる名詞
だけ抜き出して羅列しる!!
0869デフォルトの名無しさんNGNG
革命!
OO厨の方が形勢が有利になった
0870デフォルトの名無しさんNGNG
ジョーカー込みの革命と革命返しは無しだよね。
0871デフォルトの名無しさんNGNG
シングルスレッドのCUIアプリにはOOは要らない。
それ以外にはOOが要る。
0872デフォルトの名無しさんNGNG
>>868
> たかがカードごときで1クラス作るのか?と

はあ?カードをクラスにせずにカードゲームを作れと…

> 強弱関係もクラスにするようなことか?と

ローカルルールなどに対応するには、強弱関係も独立したクラスにしたほうがいいな。
0873868NGNG
>>872
すまん。ちと考えを改めた。
ゲームによって、カードの強弱が変わる。
だから、カードはクラスのほうがいいかも知らん。
例としては、こんなクラスだね。

public class Card {
public static final int HEAT = 1;
public static final int DIAMOND = 2;
public static final int CLUB = 3;
public static final int SPADE = 4;
public static final int JOKER = 5;

private int type; // カードの種類(H,D,C,S,J);
private int number; // 数字
private int strength; // 強さ

public Card(int type, int number) {
this.type = type;
this.number = number;
}
public Card(int type) {
this.type = type;
}
0874868NGNG
続き

public int getType() {
return this.type;
}
public int getNumber() [
return this.number;
}
public void setStrength(int strength) {
this.strength = strength;
}
public int getStrength() {
return this.strength;
}
}

んで、カードの強さというのはゲームによって、変わるから、
カードはルールから生成され、そのときにルールによって
強さを与えられると・・・・・
カードをクラスにしないと、この辺の強弱関係がうまく表せんね。
すまんす。
0875デフォルトの名無しさんNGNG
>>873-874
つーか、例えば「3」の3枚組で「2」に勝てるというルールは一般的だが、
ローカルルールでそれをナシにしてる所もある。
そういうローカルルールに対応するには、強弱を決定するオブジェクトを
カードから独立させたほうがいいってこと。

例えばローカルルールを定義するルールベースを
IF XXX THEN ...
IF YYY THEN ...
  :
IF ZZZ THEN ...
ってな具合で条件の羅列で表現すると、個々のIF XXX THEN ...をオブジェクトにすれば
独自なローカルルールの定義や、あるルールの適用の可否が簡単に定義できるでしょ?
「3」の3枚組の場合には、
public class DaihinminRule {
  public bool winsOver(Card card1, Card card2);
}
class Triple3Over2 extends DaihinminRule
{
  public bool winsOver(Card card1, Card card2) {
    :
  }
}
って具合でね。
で、DaihinminRuleSetがこういうDaihinminRuleのArrayを持ってればいい。
0876デフォルトの名無しさんNGNG
>>875
すまん、
>   public bool winsOver(Card card1, Card card2);
じゃなくて、
  public bool winsOver(Card card1[], Card card2[]);
か
  public bool winsOver(Ply ply1, Ply ply2);
に訂正ね。
0877初心者NGNG
OO設計もできていないチンカスなのでついていけない(ノ_;)
0878836NGNG
う、しらんあいだに、糞味噌に言われてる・・・ハウゥ、おいらの意見そんなに変?

ユースケースレベルよりちょっと実装寄りのイメージにニナッテマシタ。
(というか、頭の中でJavaのクラス構成がナントナクデキテタノヨ)
名詞じゃなくてゴメンナサイ。中途半端でゴメンナサイ。
0879デフォルトの名無しさんNGNG
>>878
いや、あんなもんじゃない?
けっこういい叩き台だと思うけど。
0880868NGNG
大貧民まだー?とか書いてみるw

それだけじゃあんまりだから、少し自分の考えを述べてみる。
一度、オセロゲーム作ったことあるけど、ゲーム系をオブジェクト設計
すると、大別して以下の5つのクラスが必要と思われる。
・ルール
・プレイヤー
・場を管理するもの
・ゲーム進行(コントローラーになるかな?)
・イベント処理関連(リスナーと各種イベント)

5つめのはそれほど特殊なこと(ルール的にイベントと呼ばれるような
例外的な処理)がおきない限り必要ないだろう。

上の4つはあくまで大別しただけだから、1クラスですべて表現できるとは
限らない。(より大きなゲームともなれば、パッケージ相当にもなるだろう)
0881デフォルトの名無しさんNGNG
OOはまだ普及してないね・・・
0882デフォルトの名無しさんNGNG
>>881
君の脳内ではね…
永久に無理だよ…
0883デフォルトの名無しさんNGNG
>>882
大貧民書いて
0884デフォルトの名無しさんNGNG
社団法人日本外交協会(外務省の外郭団体、会長/綿貫民輔衆議院議長)が10月に東京都払い下げの期限切れ間近の非常用備蓄食35万食を、都や政府に無断で北朝鮮に援助していたことが石原都知事のインタビューで暴露された。
この非常用備蓄食は保存性に優れたアルファ米を使っており、自衛隊も戦闘糧食として使用していることから軍事用に転用される恐れもある。
石原都知事はこの件に関して政府と国会に徹底的な調査を要求すると述べた。

「ニュース速報+」【国際】東京都の非常食が北朝鮮に、石原知事激怒2
http://news2.2ch.net/test/read.cgi/newsplus/1038560374/

ソース:石原都知事・11/29日記者会見─2:00あたりから
http://www.metro.tokyo.jp/GOVERNOR/KAIKEN/kako.htm
MXTVで22:30から再放送

社団法人日本外交協会
〒106-0041東京都港区麻布台3-1-2飯倉セントラルビル4F
0885デフォルトの名無しさんNGNG
printf("大貧民");
0886デフォルトの名無しさんNGNG
プ
0887デフォルトの名無しさんNGNG
あげ
0888プロの逝って良しの1 ◆MvRbZL6NeQ NGNG
途中だけどUP
http://megami.s1.x-beat.com/upload/upload.cgi
D [megami0295.jar] ミサイルコマンド 67 2002年12/09(月)06:51
0889デフォルトの名無しさんNGNG
ずいぶんはかどってないですなw
0890デフォルトの名無しさんNGNG
>>888
実行したら背後でイヤンな動作をするなんてことないでしょうね(((;゚∀゚)))
0891デフォルトの名無しさんNGNG
今時OOを理解できない厨房が自らの無能を棚に上げて荒らしているスレはここですか?
0892デフォルトの名無しさんNGNG
C:\hoge>java -jar "C:\hoge\megami0295.jar"
Exception in thread "main" java.lang.NoSuchMethodError: java.awt.Frame: method setUndecorated(Z)V not found
at AppBase.initSystem(AppBase.java:1392)
at MissileCommand.start(MissileCommand.java:40)
at MissileCommand.main(MissileCommand.java:24)

C:\hoge>java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Classic VM (build 1.3.0, J2RE 1.3.0 IBM build cn130-20020124 (JIT enabled: jitc))
0893プロの逝って良しの1 ◆MvRbZL6NeQ NGNG
1.4なんでよろしく。
とはいえ、何故かJAR内のgifファイルが読めない。
0894デフォルトの名無しさんNGNG
今の流行はジェネリック。これ最強
0895プロの逝って良しの1 ◆MvRbZL6NeQ NGNG
読めるようにしたので上げなおしといた。
D [megami0299.jar] ミサイルコマンド(ソースも中に) 94 2002年12/10(火)02:11
0896プロの逝って良しの1 ◆MvRbZL6NeQ NGNG
>>890
ナイナイ
0897プロの逝って良しの1 ◆MvRbZL6NeQ NGNG
なんなら解凍だけしてソースみればいいし。
0898デフォルトの名無しさんNGNG
先生!!
309 号室の重度露出症患者が逃げ出してこのスレで暴れているようです!!
0899デフォルトの名無しさんNGNG
 今では目の前にある業務を機械に移し換えればよいような単純な
システム構築課題は少なくなってきた。もうほとんどシステム化
され尽くしたと言っても言い過ぎではないであろう。必然的に、
従来型のシステム構築アプローチではうまく対応できない種類の
システム構築課題が増加している。…
 そのようなことから従来型のアプローチでは、すでに業務内容が
確立しており、それを自動化しさえすれば省力化の利益が出せる、
好都合なケースだけに向くアプローチであったと言わざるを得ない。
現在は変化の時代になった。未知のビジネスに乗り出すとか、
ビジネス構造を抜本的に改革するなど、業務内容がないか、古い
業務体質がくずれ去る場合に通用する、新しいシステム構築
アプローチが今求められている。

『ゼロからわかるオプジェクト指向のすべて』日刊工業新聞社
0900デフォルトの名無しさんNGNG
>888
実行してみました。>java -jar megami0299.jar
画面周りはOKみたいですが、マウスカーソルが
表示されないのは仕様ですか?(これが途中ということ?)
遊び方がわかりませんでした。
セガのSDIの元っぽいゲームですね。
0901デフォルトの名無しさんNGNG
あ、アタリのゲームだったか。
0902デフォルトの名無しさんNGNG
あのな。
カードゲームの腐れ設計してんの誰?
始めにカードをクラスにすることに疑問をもったやつはその場でしんどけ。
素質ないよ。
で、なんではじめのクラスの抜き出しでカードゲームでカードとマスター、参加者以外のクラスがでてくるの?
オブジェクト指向じゃないの?
はぁ?あいかわらずレベル低いっつーか、OO理解してないくせにしてるつもりのしったかばっかりだな。
0903デフォルトの名無しさんNGNG
> なんではじめのクラスの抜き出しでカードゲームでカードとマスター、参加者以外のクラスがでてくるの?

ほんと、知ったかばっかりだな。
0904デフォルトの名無しさんNGNG
> 902
> 903
知ったかばっかりだな。
0905このパターンはNGNG
>>902
>>903
>>904
ほんと、知ったかばっかりだな。
0906デフォルトの名無しさんNGNG
>>902
> で、なんではじめのクラスの抜き出しでカードゲームでカードとマスター、参加者以外のクラスがでてくるの?

オブジェクト指向だからだろ。
0907デフォルトの名無しさんNGNG
まあ確かにオブジェクトになりえないものまでなんか出てくる人っているよね。
この間見付けたHIYOKOとかいう超巨大クラス。
もうヒヨコじゃねーだろ。
それを継承したPIYOPIYOクラス、一体どーゆーのーみそしてるのかと。
ねーとうごかねーし。
0908デフォルトの名無しさんNGNG
>>907
> まあ確かにオブジェクトになりえないものまでなんか出てくる人っているよね。
> この間見付けたHIYOKOとかいう超巨大クラス。

超巨大クラスが出てくるってことは、
逆にオブジェクトにすべきものをしてない可能性が高いと思われ。
レス数が900を超えています。1000を超えると表示できなくなるよ。