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


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

<集大成>アルゴリズム大辞典



1 名前:デフォルトの名無しさん mailto:sage [04/06/03 23:18]
どこにもない強固なスレにしたい

709 名前:デフォルトの名無しさん mailto:sage [2010/12/12(日) 15:17:57 ]
ageとかいまだに拘るやついるんだ
専ブラで見れば実際の順位なんてあってないようなもんなのに

710 名前:デフォルトの名無しさん mailto:sage [2010/12/12(日) 15:21:35 ]
>>707
教えてもらう場所じゃない、学びに行く場所だよ

>>709
専ブラで見ないような奴が寄って来ないようにするためにsageるんだよ

711 名前:デフォルトの名無しさん [2010/12/12(日) 15:46:58 ]
せんブラも知らんような情弱がこんな僻地にくるかねw
もしかして業務でもカスみたいなオーバーヘッドで騒ぎ立てるタイプ?

712 名前:デフォルトの名無しさん mailto:sage [2010/12/12(日) 15:56:09 ]
たかが専ブラで偉ぶるバカってなんなの?
ショーもない時代遅れのテクニックで得意になるタイプ?

713 名前:デフォルトの名無しさん [2010/12/12(日) 16:02:40 ]
偉ぶるwテクニックwww笑わせんなwwwww

714 名前:デフォルトの名無しさん mailto:sage [2010/12/12(日) 16:28:47 ]
大学で教えて貰うのもありだよ。その時間を社会で揉まれつつ自ら学ぶのに使うことができる人間は少ないだろうからね。

715 名前:デフォルトの名無しさん mailto:sage [2010/12/12(日) 16:48:07 ]
もし大学が教育をする場所であるなら、
>>700 の講師の態度は教育者として良くないと思う。

でも、大学は学ぶ場所だから、レポートを提出しろと言われたら、
提出期限までにあらゆる手段を使って精一杯努力して学ぶのが本来の姿だよね。
その時間をしっかり取れるようにするのは大学側の責任だが、
そういう仕組みになっていない大学では、生徒は困惑するな。
>>700 の大学ではそうだったのかも知れんね。

716 名前:デフォルトの名無しさん mailto:sage [2010/12/12(日) 16:55:10 ]
たぶん知れんね。

717 名前:デフォルトの名無しさん [2010/12/12(日) 17:09:38 ]
範囲の扱い。和はいいけど積になると速い方法が見つからん



718 名前:デフォルトの名無しさん mailto:sage [2010/12/12(日) 17:15:57 ]
>>717
範囲の積ってどういう演算だっけ

719 名前:デフォルトの名無しさん [2010/12/12(日) 17:23:44 ]
ベン図でいうと全部重なってるところ
{ [1,2), [4,5] } * { [1,4] } = { [1,2), [4,4] }

720 名前:デフォルトの名無しさん mailto:sage [2010/12/12(日) 17:55:37 ]
>>719
「速い文法」の意味が図りかねるが、
>>688>>693 と同じで昇順リストで持てばいいと思う。

補 ((補 A) 和 (補 B)) でよくない?

この計算が遅いの?

721 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 00:16:06 ]
>>719
開区間と閉区間の両方を許容させるの?

722 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 01:10:59 ]
なるほどドモルガンつかって和を使い回すってのは数学的な発想だなー
doubleみたいな型ならともかく、整数型とかなら離散値だから
Complement({1,2})は{ [INT_MIN,0],[3,INT_MAX]}とすれば閉区間のみでいけるでしょ
補集合の計算は、実際は複数個範囲があるから-∞と∞を加えて(N-1)+2回ループでO(N)
なので積もO(N)で計算出来るね

723 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 01:16:14 ]
実数はいらない子ですか

724 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 02:18:13 ]
標準化してBoostあたりに組み込んでくれんかな。

725 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 02:45:24 ]
高速な区間クラスの開発を外注してくれと言われたら俺は
とりあえず株式会社ケイブに相談してみるw

726 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 07:49:01 ]
>>686
範囲検索([12,15][14,18] に対して [13,16] と重複する範囲要素を見つけるみたいな)も
したいならSkipListをベースに範囲拡張を仕込む手も

727 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 07:50:15 ]
時間があったら範囲扱う機能をまとめてライブラリにしてみたいよね



728 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 15:16:06 ]
md5みたいなアルゴリズムのパラメーターって誰がどうやって決めてるんですか?

729 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 15:19:12 ]
あれってsin関数かなんかじゃなかった?

730 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 17:09:03 ]
わおわおわお

731 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 00:12:23 ]
>>726
こんなデータ構造があるんですね、面白いです
こういうわりと新しいデータ構造一覧みたいなの誰かどっかにまとめてくれないですかね

あれからちょっと考えていたのがRange<T>自身も範囲を持てるようにして
範囲を二分木/多分木で表す方法です
例として現在所持している範囲の最小値/最大値が1と16の時
全体の範囲を[1,16]で表します
例えば[1,2]と[3,4]というデータは

全体範囲[1,16]の中に
[1,8][9,16]があって
[1,8]が[1,4][4,8]、[9,16]が[9,12][13,16]に細分されて
[1,4]の中に[1,2]と[3,4]がある、といった具合
検索は上から順に範囲を狭めて行きます
検索範囲との包含関係でやると、[4,5]みたいな二分木を横断するパターンの扱いが面倒なので
範囲の開始時間と幅をキーにて絞り、その各要素について終了時間をチェックします
詳細は詰めてないですが、O(log2(N)*絞った要素数)、ぐらいで動きそうなので
シンプルな実装よりは早くなるんじゃないかと思います

732 名前:デフォルトの名無しさん [2010/12/14(火) 00:23:46 ]
ぴっちり半分じゃなくても
[a,b),[c,d),[e,f)
a<b<c<d<e<fになるってだけ守れば
A=[a,b)
B=[c,d)
C=[e,f)
の間にA<B<Cというような単純な比較が定義できるから二分木で扱えるね
これで検索とpoppushはlogNでいける
BとCを横断するような[x,y)を挿入するなら検索で前後を探してpopして[c,f)をpushみたいな

733 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 01:20:46 ]
>>731
ユニマガでも解説されていたな。

734 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 03:14:50 ]
90年くらいに発明されたデータ構造だっけ。稀によく使う。

735 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 03:24:06 ]
稀によく?

736 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 03:29:46 ]
ブロントさん何してるんですか

737 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 09:57:56 ]
ロックフリーの実装が、The Art of Multiprocessor Programming 並行プログラミングの原理から実践まで、に
載っていたな。



738 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 10:37:51 ]
>>731
うろ覚えだけどそれってR木じゃない?


739 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 10:50:49 ]
SkipListを分散環境に拡張したら SkipGraph
さらに複数キー対応したら Multikey SkipGraph
検索を効率化した Skip B-trees
範囲キー対応した Rangekey SkipGraph
範囲内の最大値最小値平均値を高速に求められる 集約Skip Graph
多次元をあつかう SkipIndexやZnet

とかSkip系列は最近派生種が増えております

740 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 11:06:37 ]
へええ。
こういうの放送大学とかでやってくれんかな。

741 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 11:08:25 ]
放送大学では英語を勉強して。それで英語の文献読んで。

742 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 11:54:25 ]
Multikey SkipGraph, Rangekey SkipGraph, 集約Skip Graph は日本語よ。
分散系だけどやってることの実現方法とか考え方はSkipListとかのデータ
構造に反映できると思う。


743 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 14:01:15 ]
SkipListは単純なアイデアで実現されているから、応用、変種が幅広いのかね。

744 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 18:55:07 ]
表現方法が違うだけで結局多分木と同値のような気がする>SkipList

745 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 19:21:47 ]
多分木に乱数でスキャッタする要素があるものってあったっけ?

746 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 19:34:26 ]
は、まさかビットマップ表現にしたのを圧縮したかったとか?>>669

747 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 20:34:28 ]
>>738-739
そのあたりをタグに調べたら色々と見つかりました。
古典的には
 1984 R木
 1985あたり box tree
 1989 skipList
 もっと前? interval treeとsegment tree
最近だと
 2001 DHT(Distributed Hash Tree)
 2004 Priority r tree
 2006 DST(Distributed Segment Tree)
 2007 DAST(Distributed Arbitrary Segment Tree)
 2009ぐらい? rangekey skipList
 今年の4月7日 BoostにITLライブラリが正式に導入←もうBoostに入ってた

この種のデータ構造は最近ではP2Pへの応用が多いみたいですね
ジェネリックな実装も落ちてたので
カレンダーにはPriority R Treeを使ってみようと思います
アルゴリズムとしては空間充填曲線を使うR木の実装が面白かったです



748 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 23:11:33 ]
>>744
なわけない。

749 名前:デフォルトの名無しさん [2010/12/15(水) 06:35:00 ]
ここは質問スレじゃねーんだよ

750 名前:デフォルトの名無しさん [2010/12/17(金) 00:45:10 ]
「Nクイーン問題を遺伝的アルゴリズムで解く」というとき、
・(例えばN=8なら)11387653みたいなクイーンの座標列を1遺伝子として
複数の遺伝子をつくり、交叉や突然変異で世代を進めていく
・83541267のように縦横にクイーンが重複しない遺伝子の組み合わせをつくり、
遺伝子内の座標の入れ替えで縦横の重複がない状態を保持しながら世代を進め、
斜めの重複を評価していく
のどちらが標準的なんでしょうか?遺伝的アルゴリズムの説明を読むと
前者な気がするんですが、Nクイーン、遺伝的アルゴリズムで検索して
はじめにヒットするpdfだと後者だと書いてあります。
単純に考えると前者は計算量が多くなり、後者は局所解に陥る(っていうんでしょうか)
可能性が高くなる気がしますが…


751 名前:デフォルトの名無しさん [2010/12/20(月) 17:23:02 ]
INT_MAXより小さいユニークIDの最も効率のよい生成器は?

752 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 17:27:14 ]
id = (id + 1) % INT_MAX

753 名前:デフォルトの名無しさん [2010/12/20(月) 17:30:16 ]
全然ユニークじゃない件

754 名前:デフォルトの名無しさん [2010/12/20(月) 17:56:19 ]
idなんてdouble GetID() { static double x = 0.0; return x++; }で十分ですよね

755 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 18:03:37 ]
「ユニーク」を定義してください

756 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 18:33:50 ]
日本語としては「笑えるID」?

757 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 22:35:11 ]
変なID?



758 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 22:42:46 ]
>>753
INT_MAXを超えた場合はそれ未満の自然数(と0)は全部使われてるわけで
どっちみち一意にできっこない

759 名前:デフォルトの名無しさん [2010/12/20(月) 22:49:15 ]
・オブジェクトに一意なハンドルを与えたい
・オブジェクトは生成されたり破棄されたりする
・オブジェクトが生成されると同時にハンドルが与えられる
・オブジェクトが破棄されるとハンドルが再利用可能になる
・同時にINT_MAX個を超えるオブジェクトは存在しない
・再現性が必要なのでメモリアドレスをハンドルにすることはできない

としたらどうですか?

760 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 22:53:06 ]
>>759
過去レス読んでないけど、その処理は普通にやってる簡単だけど?

761 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 23:00:05 ]
無精をせずに>>751から読み返してからどうぞ

762 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 23:05:08 ]
「最も効率のよい生成器は?」 が課題なのか?
単に、空きのIDを最速で検索する方法が答えではないのか?

763 名前:デフォルトの名無しさん [2010/12/20(月) 23:06:16 ]
未使用or使用済みのマーク付きの範囲オブジェクトでツリーを構成して云々カンヌンする

764 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 23:09:37 ]
いやいや、空きIDを単純連結リストにして、解放時後ろに足し。GET時前からとるだけでは?
MAXが多い場合最速だろ。リストが空ならMAX使用中。

765 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 23:15:26 ]
>>759
・再現性が必要なのでメモリアドレスをハンドルにすることはできない

これが気になるな

何の情報を基に何を再現したいの?

766 名前:デフォルトの名無しさん [2010/12/20(月) 23:35:22 ]
>>764
それってメモリ効率悪くね?

767 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 23:36:43 ]
スピードとメモリー効率は殆どの場合反比例です。



768 名前:764じゃないけど mailto:sage [2010/12/21(火) 04:08:06 ]
>>766
単純連結リストがどんなものを想定しているのかしらんけど
配列ベースの循環キューにしとけばデータ分の配列+頭と尻の位置ぐらいで済ませられる


769 名前:デフォルトの名無しさん [2010/12/21(火) 08:40:22 ]
INT_MAX個の要素持たせるの?

770 名前:デフォルトの名無しさん mailto:sage [2010/12/21(火) 09:13:15 ]
そこで>686ですよ

771 名前:デフォルトの名無しさん [2010/12/21(火) 09:50:51 ]
可変長整数をインクリメントしながら割り振って適度なタイミングでハンドルの再配置をすればいい

772 名前:デフォルトの名無しさん mailto:sage [2010/12/21(火) 19:33:40 ]
結局、範囲を効率よく所持する方法に帰着するのか

773 名前:デフォルトの名無しさん mailto:sage [2010/12/25(土) 08:38:54 ]
どこに処理限界を置くかに帰着するんじゃないかな

774 名前:デフォルトの名無しさん [2010/12/27(月) 15:16:14 ]
ここは質問スレじゃねーんだよ

775 名前:デフォルトの名無しさん mailto:sage [2010/12/27(月) 18:45:28 ]
>>774
>>691
まー漏れも質問ばっかりになるのはどうかと思うけど

776 名前:デフォルトの名無しさん mailto:sage [2011/01/11(火) 23:48:55 ]
質問スレじゃないとしたら、強固な雑談スレでも目指すの?

777 名前:デフォルトの名無しさん mailto:sage [2011/01/28(金) 22:23:23 ]
うん



778 名前:デフォルトの名無しさん mailto:sage [2011/02/16(水) 20:41:44 ]
R-TreeやPR-Treeについて詳しく載ってる和書ない?

779 名前:デフォルトの名無しさん mailto:sage [2011/02/24(木) 22:05:05.77 ]
>>731
今回加わった boost::icl、特に interval_set がそれ。
custom interval も喰える凄い奴。

780 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 22:01:40.30 ]
無秩序な二分木をファイルに格納するときに
0〜節(葉も含む)の数通し番号を振って
通し番号順に値左右の子の番号を配列に格納してwrite
これより効率いい方法ありますか?

781 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 23:11:43.20 ]
>>780
要素ごとに2bitあればいけそう
 1
/\
2  5
 \
  3
 /
4
の場合、
1:2,5
2:0,3
3:4,0
4:0,0
5:0,0
とする代わりに
1,1 (node 1の左右の有無の示す)
0,1 (node 2の以下同様)
1,0
0,0
0,0
のようにノードごとに2ビットの情報があれば再構成できそう
あとはこのビット情報をまとめてファイルに書き込めば
いいんじゃないかと


782 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 23:43:58.26 ]
なるほど
ちょっとなんで?と悩みましたが良さそうですね
どうもありがとう!

783 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 23:45:27.73 ]
空間効率、時間効率、左右の区別…それによって異なりそう

784 名前:デフォルトの名無しさん [2011/03/30(水) 01:46:58.51 ]
旺文社マルチ辞典
www.youtube.com/watch?v=kz1pPoTRhq4


785 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 18:56:53.74 ]
32bit変数2つのそれぞれの1bitが
割り込みフラグ、割り込みマスクの意味を持っていて、
フラグが1 かつ マスクが0 のビットのみに処理をしていきたい

現状こんなんなんだけど、ここから速度改善できるのだろうか?
maskが0であるほど処理時間が長くなるのがきになっている
flagは実際メモリマップドのレジスタで、リードに時間がかかるからそこを何とかしたいが
即時性?がいるのでラッチはしておけない

flag = フラグ;
mask = マスク;

bitmask = 1;
for(i=0;i<32;i++){
 if(mask&bitmask==0 && flag&bitmask==1){
  iを使った処理;
 }
 bitmask <<= 1;
}

786 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 19:11:35.76 ]
x = flag & not(mask)

if(x&1)

x>>=1

787 名前:デフォルトの名無しさん mailto:sage [2011/04/07(木) 14:18:17.60 ]
>>784
つまりどういうことです?



788 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 21:54:46.08 ]
敵のモンスターが徘徊するようなプログラムはどのようなアルゴリズムで書いたら良いのでしょうか

単純に毎回ランダムな方向に進むんだったら酔歩になっちゃいますよね

ある方向にしばらく進む→しばらく止まる→またある方向に進む→
ようなかんじにしたいです。
参考になるサイト等ありますでしょうか
よろしくお願いします

789 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 23:29:18.80 ]
> 単純に毎回ランダムな方向に進むんだったら



> ある方向にしばらく進む→しばらく止まる→またある方向に進む→

の違いが分からん

790 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 23:48:58.19 ]
>>789
ごめんさない
『進む』行為を1ステップごとに行うとして
毎ステップランダムな方向だとかんたんに実装できるけど酔歩で不自然な動きになりますよね
ある程度同じ方向に進んでから向きをランダムに変えてまたある程度同じ方向に進むような感じにしたいのです

よくゲームの敵キャラがそんな風に動いている気がするのですが、どのようなアルゴリズムなのかな、と


791 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 00:04:27.00 ]
  歩く

  止まる(じっとしてる)
を交互にやればいいじゃん

792 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 00:04:28.45 ]
超簡単なロジックなら、
3歩先なり5歩先の座標を計算して
3あるいは5歩分は計算した座標まで均等にまっすぐ進む
計算座標まで到達したらランダムに方向を決めて再計算するとか

20年くらい前のレトロゲームならこんなものだと思う


793 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 11:29:31.10 ]
>>792
元祖ローグでは基本ランダム。

プレイヤーがとある範囲に入ったとき、
・近づく
・逃げる
・興味を示さない
などを行う。

ここら辺は敵の特性だったり、また状態(体力)などにより変る。

敵対なら範囲に入ってきたら近づいて攻撃したり、
プレイヤーに攻撃されて瀕死になった場合は遠ざかるなど。

ここが一般的にはAIとよばれています。

初代では行われていないけれど、もう少し世代が進むと経路探索を利用して、
ダンジョンのカベに引っかからずに目標のポイントに進むことも出来るようになっいます。


794 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 11:33:21.38 ]

>>788あてだったのにアンカー間違えた。

795 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 12:32:13.56 ]
いっそのことダンジョンやモンスターに獣道情報を付加しちゃうとか
頻繁に立ち止まったり
ときどきルートを少し外れながら帰り道をスタックするとそれっぽいかもしれないなあ

796 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 12:45:07.20 ]
ゲームシステムじゃなくアルゴリズムを訊いてるんだよな?

797 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 13:15:39.01 ]
A*使えでおわるんじゃないかな?

まあお絵かきツールの塗りつぶしアルゴリズムに距離をついかししやれば
簡単な経路探索アルゴリズムが出来ますよ。



798 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 19:10:45.17 ]
>>788 の質問は経路探索じゃなくて、
人間が何かふらふらと見回りしているかのような徘徊だと思うが


実際のゲームは知らんが、>>790 の言う通りにするのなら、
まず進む向き d ベクトルと歩数 n をランダムに決める

それから、d 方向にランダムに k (<n) 歩歩いたら、少し止まって、
d 方向を平均として適当な分散の正規分布に従って、
ランダムに d' 方向を決める(要するに d' は d に近い値)

d' 方向にランダムに k' (<n-k) 歩歩いたら、また少し止まって、
先ほどと同じように d'' と k'' を決めてまた歩く

歩数 n 歩に到達したら、最初の進む向き d ベクトルと
歩数 n をランダムに決める事からまたやり始める

799 名前:788 mailto:sage [2011/04/27(水) 21:10:29.90 ]
皆さんありがとうございます
やってみます

800 名前:デフォルトの名無しさん mailto:sage [2011/04/28(木) 08:57:26.19 ]
アルゴリズムちゅーかストラテジだな

801 名前:デフォルトの名無しさん mailto:sage [2011/04/28(木) 12:02:14.96 ]
>>798
経路探索いれて、目的地をランダムで決定すればよいとおもったんだけどな。

802 名前:デフォルトの名無しさん mailto:sage [2011/04/28(木) 12:45:05.74 ]
経路探索ってなにん?
壁とかあるかんじ?

803 名前:デフォルトの名無しさん mailto:sage [2011/04/28(木) 13:24:34.55 ]
障害物の在るマップで、とある地点を指定するだけでそこまでの経路を計算してくれるアルゴリズムだよ。
ターン制のシミュとかでも応用で移動コスト計算付で移動可能範囲を計算したり、
そこまでの移動経路を計算できたりするよ。

804 名前:デフォルトの名無しさん mailto:sage [2011/04/28(木) 15:08:28.56 ]
多少力入れるならAIを有限状態機械にする。
AIは「モード」を持っていて、クロックごとにそのモードに従って行動する。
例えば「何もしない」「地点(X,Y)に速度Zで移動」「敵が視界内にいたらその位置に移動」とか。

805 名前:デフォルトの名無しさん mailto:sage [2011/04/28(木) 15:22:20.64 ]
スクリプトなり、関数ポインタなり、デリゲートなリでステートマシンの評価部分を入れ替えられれば色んな敵のアルゴリズムを切り替えられていいよな。

806 名前:デフォルトの名無しさん mailto:sage [2011/04/28(木) 16:09:07.69 ]
PSゲームの天誅のようなのがわかりやすくていいとおもうな

807 名前:デフォルトの名無しさん mailto:sage [2011/04/28(木) 18:02:10.24 ]
>>806
たぶん

主人公から遠い…非表示
主人公から近い…キョロキョロ>>788
キョロキョロ中に主人公が視界にはいる…発見
発見中…主人公追いかける、経路探索?
発見中に主人公を見失う…警戒
警戒中…はげしくキョロキョロ
警戒後一定時間経過…キョロキョロ

こんなんだったよな
実装めんどくさそう



808 名前:デフォルトの名無しさん mailto:sage [2011/04/28(木) 18:50:18.99 ]
ステートマシンの実装法か

いろいろ難しいからなぁ

809 名前:デフォルトの名無しさん mailto:sage [2011/04/29(金) 17:01:04.41 ]
アルゴリズムとデータ構造のオンライン事典

xlinux.nist.gov/dads/






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

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

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