約 3,825,893 件
https://w.atwiki.jp/vocaloidchly/pages/2288.html
作詞:Ryu- 作曲:もちーべP 編曲:もちーべP 歌:初音ミク 翻譯:維大力P Lonesome cat 2 1、2、3、4 咔噠咔噠 真是吵死了 再5分鐘 讓我多睡一會 NICONICO 那是什麼 很好吃嗎? 用空出的手 敷衍的 撫摸我 你以為你誰啊? 將弄亂的地方 梳理好 可是不簡單的 才不是耍任性 只是想變得更漂亮 為了要虜獲某人 AH AH 用你偌大的手 抓住我 不小心抱緊的話 我會趁機變心的 不過 換名字 還蠻麻煩的 所以再陪你 一陣子好了 吶吶 偶而啊 二人一起 到外面玩吧 往桌上 飛躍上去 拉扯到袖子 再一次 撕破了 討厭啦 別露出那眼神 難道那比我 更重要嗎? 真讓人氣餒 又不是人家的錯 離家出走算了 然後去找別人來照顧 AH AH 我知道在你找不到 的那場所 有飯可以吃 晚上也能獨自入睡 但是啊 那項圈 無法自己拿掉 所以再陪你 一陣子好了 你一靠近 就會想逃 你一離開 卻又感到寂寞 這乖僻的性格 真的很想 對你撒嬌 卻無法 老實表達出來 所以 用你偌大的手 抓住我 不小心抱緊的話 我會趁機變心的 不過 換名字 還蠻麻煩的 所以再陪你 一陣子好了 我會讓你成為世上 第二幸福的人 因為第一 是在你身旁的我 只是啊 我不擅長 露出笑容 就從尾巴 來猜我的心情吧 要比其他人更加 注視我唷 我愛ㄋ───……喵 ●Lonesome cat的續編 ●續編為Lonesome cat 3 _,._ ゚Å゚)一開始求翻的就是第3部吧!!! ⊂彡☆))Д´)接下來就是要翻第3部了....
https://w.atwiki.jp/vocaloidmanager/pages/11.html
Vocaloid Manager とは・・・ 初音ミクブームにのって買ってみたはいいけど 自分には音楽の才能がなかったことを思い出し 涙目になっている弱音ハク達のため、才能が無くても Vocaloidシリーズで遊ぶことが出来るようにする 補助ツール(開発予定)に対して付けられた コードネームである なお、あまり大きな期待をしてはいけない なぜならこんな事をしようと思ったのは作者自身が そんな弱音ハッカーの一人だからである・・・ 現在の目標は乱数Pを越えること 予定 進捗状況 第一段 自動作詞ツール UI 89% Engine 18% Database 22% 第二段 自動作曲ツール 仕様策定 80% 第三段 秘密 仕様策定 40%
https://w.atwiki.jp/unimaru/pages/12.html
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
https://w.atwiki.jp/webprogramming/pages/17.html
概要 Catalyst(カタリスト)はPerlのウェブアプリケーションフレームワークです。 インストール ○Perlのインストール $ yum install perl ○MySQLのインストール $ yum install mysql-server $ yum install mysql-devel 下記のサイトを参考に初期設定を行って下さい。 データベースサーバー構築(MySQL) - CentOSで自宅サーバー構築 http //centossrv.com/mysql.shtml ○Catalystのインストール Catalyst(カタリスト)をCPAN(シーパン)からインストールします。 CPANシェルを起動します。 初回起動時にCPANの設定を行う必要があります。 ダウンロードサイトは「Asia - Japan」のミラーサイトを選択し、それ以外は全てデフォルトの設定で構いません。 $ cpan 依存するモジュールを自動でインストールするように設定します。 cpan o conf prerequisites_policy follow cpan o conf commit Catalystのモジュールをインストールするために必要なYAML(ヤムル)モジュールをインストールします。 cpan install YAML Catalyst Runtime(ランタイム)、Catalyst Devel(開発ツール)をインストールします。 cpan install Catalyst Runtime cpan install Catalyst Devel 必要に応じて下記のモジュールをインストールします。 Catalyst View TT Catalyst View JSON Catalyst Model DBIC Schema DBD mysql DateTime Format MySQL Catalyst Model DBI Catalyst Model Adaptor DBIx Class Cursor Cached Catalyst Plugin Session Catalyst Plugin Session State Cookie Catalyst Plugin Session State File Catalyst Plugin Authentication Catalyst Authentication Store DBIx Class Catalyst Plugin Authorization Roles Catalyst Plugin FormValidator Simple Catalyst Plugin FormValidator Simple Auto FormValidator Simple Plugin Japanese Catalyst Plugin FillInForm Catalyst Plugin Cache Catalyst Plugin PageCache Catalyst Plugin I18N Catalyst Controller ActionRole XML Simple Config Tiny Test Base Test Pod Coverage cpan install XXX ... CPANシェルを終了します。 cpan exit ヘルパースクリプト ○スケルトン(アプリケーションの雛形)の作成 catalyst.pl アプリケーション名 $ catalyst.pl MyApp ○アプリケーションの起動 (アプリケーション名)_server.pl -r -p 3000 $ ./script/myapp_server.pl -r -p 3000 オプション r:ファイルが更新されたときに自動的に再起動する p:ポート番号(デフォルトは3000) ブラウザで下記のURLにアクセスし、正常に動作していることを確認します。 http //localhost 3000/ ※終了コマンドはありませんので、「Ctrl + c」でプロセスを終了させて下さい。 ○コントローラの作成 (アプリケーション名)_create.pl controller コントローラクラス名 $ ./script/myapp_create.pl controller MyController ○ビューの作成 (アプリケーション名)_create.pl view ビュークラス名 ヘルパー名 $ ./script/myapp_create.pl view TT TT ※TTSiteヘルパーを使用すると共通テンプレートの作成を自動化できます。 $ ./script/myapp_create.pl view TT TTSite ○モデルの作成 (アプリケーション名)_create.pl model モデル名 ヘルパー名 スキーマクラス名 スキーマクラスの生成方法 データベース接続文字列 ユーザー名 パスワード オプション $ ./script/myapp_create.pl model MyDB DBIC Schema MyApp Schema create=static dbi mysql mydb myuser mypass AutoCommit=1 on_connect_do= ["SET NAMES utf8"] オプション AutoCommit:自動コミットを有効にするか on_connect_do:データベース接続時に実行するSQL命令 ○アプリケーションのテスト (アプリケーション名)_test.pl URLパス $ ./script/myapp_test.pl "/myapp/mycontroller"
https://w.atwiki.jp/dlod/pages/24.html
!編集中! 前文 DLOD(Debate-like Online Discussions, ドロッド)は、インターネット上で建設的な議論を成立させることを目的としてdanzo_katoが考案した議論手法である。 DLODのルール(以下「本ルール」とする。)は、DLODを使用する際に守らなければならないルールを記したものである。 DLODに参加する際には、本ルールに同意したものとみなす。 第1章 総則 第0条 DLODの成立 本ルールが守られている議論はDLODとして成立することを保証する。そうでない場合は、DLODとして成立することを保証しない。 第1条 バージョン 本ルールのバージョン名は、「DLOD(Lite-Alpha-20101001)」である。DLODを用いる場合は、運営スレ、及びまとめページに、このバージョン名を明記しなければならない。(「運営スレ」と「まとめページ」については、第5条を参照。) このバージョンは、DLOD(Alpha-20100919danzo_kato草案)を改良し、短時間でDLODを大変出来るようにしたものである。 第2条 利用環境(議論) DLODは、次に挙げる条件を満たした電子掲示板で議論を行うこと。 まとめ人を除く参加者が、自分や他人のコメントを削除することが自由に出来ないこと。参加者が自由に書き込みを削除出来る掲示板を利用する場合は、全ての書き込みをウェブ魚拓として残しておくこと。 URL(URI)の書き込みが制限されていないこと。 特定の参加希望者の参加を妨げないこと。 第3条 利用環境(まとめページ) まとめ人は、次に挙げる条件を満たした環境のWebページにまとめること。 まとめ人が意図しない人物による改変が自由に出来ないこと。 特定の閲覧希望者の閲覧を妨げないこと。 第4条 ライセンス(Copyleft) DLOD、及び本ルールは、自由に利用、改変、再配布をすることが可能である。 ただし、DLOD、または本ルールを改変、再配布したもの(以下「二次的著作物」という)にも、利用、改変、再配布を認めなければならない。 二次的著作物の利用、コピー、再配布、翻案を制限してはならない。 第2章 DLODの進行 第5条 進行順序 DLODは、次の手順に従って進行する。 まとめ人を決める。 まとめ人はテーマを決める。メリットとデメリットが議論出来るようなテーマにすること。 まとめ人はメリット、デメリットを列挙するためのスレッド(以下、それぞれを「メリットスレ」、「デメリットスレ」とする。)、運営スレッド(以下「運営スレ」とする。)を立てる。利用するスレッドは、2ch掲示板、したらば掲示板などの、参加者が自由に(自分のものも含めて)削除出来ないものを選ぶこと。参加者が自由に書き込みを削除出来る掲示板を利用する場合は、全ての書き込みを魚拓として残しておくこと。 メリットスレ、デメリットスレを立てた後に運営スレッドを立て、それぞれのリンクを運営スレッドの 1に記述する事を推奨する。 参加者は、メリットスレでメリット、デメリットスレでデメリットを挙げる。メリットスレ、デメリットスレでは、1つのレスにつき、メリット、またはデメリットを1つだけ述べること。(理由:論点を整理しやすくし、円滑にまとめられるようにするため。)(以下「フェーズI」とする) フェーズIの期間を予め決めて、明記すること。特に指定がなければ7日間(168時間)とする。 制限文字数を予め決めて、明記すること。特に指定がなければ、表題は全角20字、内容は全角400字以内とする。(理由:冗長となって論点が不明確になることを防ぐため。) 複数レスにまたがる長文は、原則として認めない。ただし、まとめ人が許容する場合には、この限りではない。 このとき、出されたメリット、デメリットへの反論は禁止とする。 参加者は立てられたスレッドに対して、不服があれば運営スレッドにてまとめ人に不服を申し立てることが出来る。 まとめ人は、フェーズIで出されたメリット、デメリットを論点ごとにまとめ、論点ごとにスレッドを立てる。(以下「フェーズII」とする)フェーズIIの期間を予め決めて、明記すること。特に指定がなければ、4が締め切られてから3日間(72時間)とする。 スレッドを立てる場合は、まとめ人や特定の参加者の意図に関わらず、全ての論点についてスレを立てなければならない。 参加者は立てられたスレッドに対して、不服があれば運営スレッドにてまとめ人に不服を申し立てることが出来る。 参加者は、フェーズIIで立てたスレッドで反論や立証を行う。(以下「フェーズIII」とする)フェーズIIIの期間を予め決めて、明記すること。特に指定がなければ5が締め切られてから7日間(168時間)とする。 制限文字数を予め決めて、明記すること。特に指定がなければ、表題は全角40字、内容は全角800字以内とする。(理由:冗長となって論点が不明確になることを防ぐため。) 各スレッドでは、1つのレスに対して複数レスにまたがる反論や立証は、原則として認めない。ただし、まとめ人が許容する場合には、この限りではない。(理由:論点を整理しやすくし、円滑にまとめられるようにするため。) まとめ人は、ここで出された反論や立証についてのフローシートを作成すること。 フローシートは、Wikiや専用のWebページ上で公開することを推奨する。 フローシートは、まとめ人や特定の参加者の意図に関わらず、全ての論点、反論、立証についてまとめなければならない。 参加者は立てられたスレッドに対して、不服があれば運営スレッドにてまとめ人に不服を申し立てることが出来る。 フェーズIII終了6時間前からは、参加者は1つのスレッドにつき、レスを1回しかしてはいけない。(理由:締め切り直前の駆け込み大量投稿による反論妨害を防止するため。) まとめ人は、フローシートを完成させて、議論の中で出されたメリット、デメリット、それらへの反論について箇条書きでまとめること。(以下「フェーズIV」とする)フェーズIVの期間を予め決めて、明記すること。特に指定がなければ、6が締め切られてから5日間(120時間)とする。 参加者は、フェーズIVで作成されたフローシート、及び箇条書きについて、運営スレッドにて不服を申し立てることが出来る。(以下「フェーズV」とする)フェーズVの期間を予め決めて、明記すること。特に指定がなければ、7が締め切られてから3日間(72時間)とする。 参加者は、6までで出されていないことをまとめに記述することをまとめ人に強要することはできない。 まとめ人は、フェーズVを踏まえてフローシート、及び箇条書きの最終案を完成させる。(以下「フェーズVI」とする)フェーズVIの期間を予め決めて、明記すること。特に指定がなければ、8が締め切られてから3日間(72時間)とする。 この作業を締め切ってからは、誤字脱字を含めた一切の編集を禁止する。 改変防止のため、ウェブ魚拓の利用を推奨する。 第6条 まとめ人の役割 まとめ人は、DLODの進行、及びまとめページの作成を行うこと。(「運営スレ」と「まとめページ」については、第5条を参照。) DLODでは、まとめ人が特定の立場に立って意見を述べることを推奨しない。まとめ人はできる限り中立の立場で、議論の内容をまとめる作業に専念することが望ましい。 まとめ人は、参加者の書き込みの意図を知ることを目的として、参加者の書き込みに対して質問することが出来る。 まとめ人は参加者に対して、ルール違反の注意、罰則適用の勧告を行うことが出来る。 まとめ人の人数は、制限しない。 第7条 書式(フェーズI、フェーズIII) 参加者は、フェーズI、及びフェーズIIIにおいて、メリット、デメリットの列挙、または反論や立証を行う場合は、次に挙げる書式に従うこと。 一行目に表題、2行目は空欄、3行目以降に本文(内容)を記すこと。 指定された字数制限を遵守すること。 引用元の文献名やURL(URI)を示す場合は、本文中に出典番号[1][2][...]を記述し、文献名やURLは文末に示すこと。なお、文末の引用元の記述は制限文字数に含まない。 別表1にフェーズIの書式、別表2にフェーズIIIの書式と記入例を示すので、参考にすること。 第3章 禁止事項と罰則規定 第8条 禁止事項 DLODを用いる場合は、次に挙げる行為を禁止する。 参加者が所在する国、地域の法令に違反する行為。 社会規範、公序良俗に反するものや、他人の権利を侵害し、または他人の迷惑となるようなものを、投稿、掲載、開示、提供または送信(以下これらを総称して「投稿など」とする)する行為。 他の参加者が使用するソフトウェア、ハードウェアなどの機能を破壊したり、妨害したりするようなプログラムなどの投稿などをする行為。 議論の場となる電子掲示板、及びまとめページのサーバー、またはネットワークの機能を破壊したり、妨害したりする行為。 議論の場となる電子掲示板、及びまとめページのサービス、広告を妨害する行為。 他の参加者の個人情報や履歴情報などを参加者に無断で収集、蓄積する行為。 他の参加者になりすましてDLODを利用する行為。 DLODに関連して、反社会的勢力に直接・間接に利益を提供する行為。 議論を妨げる煽り、不必要に差別の意図をもった発言、第三者を不快にする暴言や排他的馴れ合い、同一の内容を複数行書いたもの、過度な性的妄想、下品な書き込み。 「みんなの意見」「他の人もそう思ってる」など、自分の意見なのに他人もそう思ってると力説する行為。 根拠もなく、他人を卑下したり、差別したりする行為。 犯罪予告。 まとめ人が、フェーズI~VIで予め定めた期間を、それぞれ1日(24時間)以上進行を遅延させること。(各フェーズごとに24時間以内ならば遅延が発生しても良い。) 各フェーズが終了した後に、対象のスレッドに投稿などをすること。 フェーズIVが終了した後に、スレッドやまとめページの内容を改変すること。 第9条 参加者の違反に対する罰則 本ルール第1条から第8条までに記されているルールに、参加者が4回以上違反した場合(以下、この参加者を「違反者」とする)は、まとめ人は次に挙げる処罰を科すことが出来る。 違反者の違反対象となる投稿などを削除する。ただし、削除する場合は、Web魚拓などの信頼出来る形で証拠を残し、削除対象のレスのうち、最低でも最も古いもの3件のリンクを、まとめページに明記すること。 アクセスを規制する。ただし、アクセスを規制する場合は、対象となる投稿などの内容、規制理由、固定ハンドルネーム(存在しない場合は不要)、ホスト名をまとめページに明記すること。 違反対象の書き込みを、まとめページに反映しない。 第10条 まとめ人の違反に対する罰則 参加者は、まとめ人の違反内容を運営スレッドにて指摘することが出来る。まとめ人は、違反の有無に関わらず、参加者からの指摘内容をまとめページに明記しなければならない。ただし、参加者の指摘内容に、違反対象ルールの条数と違反理由が明記されていなければ、この限りではない。 第11条 まとめ人の義務 まとめ人は参加者の投稿などについて、次に挙げる義務を負う。 重大犯罪につながる可能性のある書き込みを発見した場合は、速やかに警察へ通報しなければならない。 警察署、または裁判所から情報開示の依頼があった場合は、速やかに従わなければならない。ただし、その際は依頼主が本物であるかどうかを充分に確認すること。 DLODを中断する場合、または重大なルール違反によって公正なDLODの継続が不可能となった場合は、速やかに運営スレッドでその旨を参加者に伝え、まとめページに「DLODとして成立しなかった」という旨を明記すること。 別表1 フェーズIの書式 表題【この括弧内に、字数制限を守ってメリット、またはデメリットを簡潔に記入】 内容: ここから、メリット、またはデメリットの推論や根拠を、字数制限を守って詳細に記入すること。また、引用元の文献名やURLを示したい場合は、本文中には出典番号[1][2][...]を記述し、文献名やURLは文末に示すこと。なお、文末の引用元の記述は制限文字数に含まない。 [1]著者(出版年)「参考文献名」出版社 pp.ページ数 [2]「Webページ名」 URL (アクセス年月日) 記入例(テーマ「日本の捕鯨中止のデメリット」、表題文字制限全角20字、内容文字制限全角400字の場合) 表題【Foot in the doorによる外交上の不都合】 内容: Foot in the doorとは、心理テクニックのひとつ。まず小さな要求をのませて、やがて大きなイエスを引き出す手法である[1][2]。 これは人対人の場合に適用される手法だが、国を動かしているのも結局は人である。日本が外交上、損害を被ってまで捕鯨中止を受け入れてしまった場合、諸外国に「日本は自分が損をしてでも外国のために無理な要求をのんでくれる」というイメージを与えることになるだろう。 調子に乗った諸外国から日本に対して無理難題が殺到したり、他の日本に取って不利な要求まで受け入れることになってしまったら、日本に取って大きなデメリットとなる。 [1]人生の達人研究会(2005)「またまたワルの知恵本」河出書房新社 pp.12-14 [2]「Foot-in-the-door technique - Wikipedia」 http //en.wikipedia.org/wiki/Foot-in-the-door_technique (2010/09/16アクセス) 別表2 フェーズIIIの書式 表題【この括弧内に、字数制限を守って反論や立証を要約したものを書く。】 内容: アンカー、または返信先のアドレスを必ず書くこと。そうしない場合、どれに対する意見なのか分からず、発言が無効となる。 ここから、メリット、またはデメリットの推論や根拠を、字数制限を守って詳細に記入すること。また、引用元の文献名やURLを示したい場合は、本文中には出典番号[1][2][...]を記述し、文献名やURLは文末に示すこと。なお、文末の引用元の記述は制限文字数に含まない。 >相手の書き込みの引用も制限文字数に含むので注意すること。 相手の主張をよく理解し、論理的に筋が通るように返事をすること。論点に関係のないことを書いてはいけない。 [1]著者(出版年)「参考文献名」出版社 pp.ページ数 [2]「Webページ名」 URL (アクセス年月日) 記入例(テーマ「日本の捕鯨中止のデメリット」、表題文字制限全角40字、内容文字制限全角800字、相手が出してきた英文と日本語訳の誤訳について指摘する場合) 表題【それは誤訳の総合商社ですよ】 内容: 99 >3. ESTIMATION OF NATURAL MORTALITY RATE ~[1] >3. 自然死亡率の推定 ~[2] あなたは[2]を振りかざしていろいろおっしゃってるようですけど、[3]によって誤訳が指摘されています。 これは、誰が言ったかどうかの問題ではなく、英語の問題です。 私のこの意見に文句がおありなら、[3]の誤訳指摘がどう間違っているのか、英語文法に基づいて指摘してください。 [1]「Report of the Scientific Committee - IWC」 http //www.iwcoffice.org/_documents/sci_com/SCRepFiles2007/59-Rep1.pdf (2010/09/16アクセス) [2]「Report of the Scientific Committee - IWC_2007_J」(訳:井上雄介) http //yonemoto.rcast.u-tokyo.ac.jp/PDF/Report_of_the_Scientific_Committee_2007_J_.pdf (2010/09/16アクセス) [3]「反捕鯨論者を狂わす石井敦監修のIWC 科学委員会公式文の悪質誤訳論文 玄洋日誌」 http //suisantaikoku.cocolog-nifty.com/genyounissi/2008/11/iwc-c41a.html (2010/09/16アクセス) (c)2010 danzo_kato Copyleft--all rights reversed DLODバージョン「DLOD(Alpha-20100919danzo_kato草案)」について、ご意見、ご感想、ご提言等があれば、よろしくお願い致します。 名前 コメント +++以下、広告+++
https://w.atwiki.jp/todo314/pages/387.html
Local Graph Sparsification for Scalable Clustering Venu Satuluri, Srinivasan Parthasarathy, Yiye Ruan SIGMOD 2011 概要だけ クラスタリング手法 (Metis, Metis+MQI, MLR-MCL, Graclus) を疎化で高速化したい 基本アイデアは、「辺の重要度 = 近傍のJaccard類似度」 これだけだと、最密なコミュニティの辺の重要度が高すぎて、他のコミュニティ内の辺がなくなってしまう 各頂点の疎具合を制限するために、次数をd^eと設定 Jaccard類似度はMinHashで高速近似計算 比較実験で、速くなったし、クラスタリングのある種の質もあまり堕ちなかった 感想 これでSIGMODに通るんですねという印象 実験が凄く長いので、疎化したことによる効果を推している SIGMOD クラスタリング 疎化 2016/12/28
https://w.atwiki.jp/asigami/pages/3553.html
曲名 アーティスト フォルダ 難易度 BPM NOTES/FREEZE(SHOCK) DEADLOCK -Out Of Reach- U1 undefined behavior A20+ 楽9 205 313/15 STREAM VOLTAGE AIR FREEZE CHAOS 52 51 16 35 3 楽譜面(9) / 踊譜面(13) / 激譜面(17) 譜面 https //livedoor.blogimg.jp/yanmar195/imgs/e/a/eaeb7471.png クリア難易度投票 スコア難易度投票 動画 https //www.youtube.com/watch?v=q9TfMpEB1c4 解説 2020/10/01以降、EXTRA SAVIOR PLUSの課題曲として登場。REFLEC BEAT groovin !! Upperからの移植曲。「Trick and DDR! HAPPY HALLOWEEN!!」 コメント コメント(感想など) 最新の10件を表示しています。コメント過去ログ
https://w.atwiki.jp/frontmission4/pages/108.html
|Battle|Tutorial| E.C.編 Durandal Simulator 01|02|03|04|05|06|07|08|09|10|11|12 南米編 U.S.N. Simulator 01|02|03|04|05|06|07|08|09|10|11|12 U.S.N. Simulator 04マップ 敵 U.S.N. Simulator 04 U.S.N.陸軍 戦闘訓練シミュレーター#04 天候 晴れ 時間 夜 → 朝(11ターン) 勝利条件 敵全滅 敗北条件 味方全滅 30ターン以内にクリアすると、「U.S.N. Simulator 09」追加 マップ 地形 進入不可 木 平地(0°≦傾斜≦15°) 砂地 岩地 浅瀬 平地(4脚移動不可) 段差 平地(15°<傾斜≦30°) 砂地(15°<傾斜≦30°) 岩地(15°<傾斜≦30°) 深瀬 平地(4脚移動可) 段差(柵など) 平地(30°<傾斜≦45°) 砂地(30°<傾斜≦45°) 岩地(30°<傾斜≦45°) マップ X 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ▼ 補給コンテナ投下地点(HP=-) 敵ユニットリンク設定 アタックリンク:[支援機]―→ | ディフェンスリンク:[支援機]―→ 敵ユニット動作敵ユニットは基本的に、ダメージを受けるか、接近すると行動を開始する 敵ユニット その他行動条件 1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 1ターン目に行動開始 11 3 or 4 or 5が撃破されると行動開始 12 8 or 9 or 10が撃破されると行動開始 上へ 敵 No. Name UNIT PILOT PARTS WEAPONS SUPPORT 獲得 Lv. Speed MG 武器熟練度 SKILLS Name Body HPNow / Max L Hand R Hand L Shoulder R Shoulder Atk. 金 Body Eva. Evasion SG L Arm 武器種 Def. L Arm APNow / Max AP Charge RF R Arm 攻撃属性 ITEMS R Arm BZ Legs Dmg.(Dmg. Cut) Legs BP Systems Resist MS Type Move × 経験値(基準) Armor Attack RK BP 機能(AP) AP Move GR 攻撃回数 Link ML Range EP(基準) BP CN HIt% / Area / Homing 1 Autopilot 6 1 MG 0 No Skills Valiant F Valiant F 680 / 680 Red Buster MGR-IB Duga L Hand 金 179 0% 3% SG 0 Valiant F 340 / 340 KN MS GR L Hand 22 22 / 22 22 RF 0 Valiant F 340 / 340 No Items 22 BZ 0 Valiant F 450 / 450 90×1 48×4 256×1 36 Turbo Systems 0% MS 0 2Legs 2 ∞ 8 4 経験値 90 Attack 0% RK 2 TB-60SP Item Space:2Power:40 1 10 12 Move 0% GR 2 ×1 ×1 ×1 Link 0% ML 1 1-1 6-8 4-6 EP 15 BP 0% CN 0 100%-100% Good 2 2 Autopilot 6 1 MG 0 No Skills Valiant F Valiant F 680 / 680 Red Buster MGR-IB Duga L Hand 金 179 0% 3% SG 0 Valiant F 340 / 340 KN MS GR L Hand 22 22 / 22 22 RF 0 Valiant F 340 / 340 No Items 22 BZ 0 Valiant F 450 / 450 90×1 48×4 256×1 36 Turbo Systems 0% MS 0 2Legs 2 ∞ 8 4 経験値 90 Attack 0% RK 2 TB-60SP Item Space:2Power:40 1 10 12 Move 0% GR 2 ×1 ×1 ×1 Link 0% ML 1 1-1 6-8 4-6 EP 15 BP 0% CN 0 100%-100% Good 2 3 Autopilot 6 3 MG 2 Terror Shot Ⅰ Husky Mk.Ⅲ Husky Mk.Ⅲ 320 / 320 22snLeosocial WS-100 L Hand 金 84 16% 12% SG 2 Husky Mk.Ⅲ 160 / 160 MG SH L Hand 16 12 / 12 12 RF 0 Husky Mk.Ⅲ 160 / 160 No Items 16 BZ 0 Husky Mk.Ⅲ 215 / 215 8×16 (30%) 29 -- Systems 0% MS 0 2Legs 6 100 6 経験値 80 Attack 0% RK 0 ----- 4 2 Move 0% GR 0 ×2 Link 0% ML 0 1-4 EP 15 BP 0% CN 0 80%-62% 4 Autopilot 6 3 MG 2 Terror Shot Ⅰ Husky Mk.Ⅲ Husky Mk.Ⅲ 320 / 320 22snLeosocial WS-100 L Hand 金 84 16% 12% SG 2 Husky Mk.Ⅲ 160 / 160 MG SH L Hand 16 12 / 12 12 RF 0 Husky Mk.Ⅲ 160 / 160 No Items 16 BZ 0 Husky Mk.Ⅲ 215 / 215 8×16 (30%) 29 -- Systems 0% MS 0 2Legs 6 100 6 経験値 80 Attack 0% RK 0 ----- 4 2 Move 0% GR 0 ×2 Link 0% ML 0 1-4 EP 15 BP 0% CN 0 80%-62% 5 Autopilot 6 4 MG 0 Block DMG 10 Calm 200 Calm 200 900 / 900 Press Needle Press Needle L Hand 金 252 12% 9% SG 0 Calm 200 450 / 450 PB PB L Hand 32 13 / 13 13 RF 0 Calm 200 450 / 450 No Items 32 BZ 0 Calm 200 600 / 600 128×1 128×1 63 Sensor Systems 0% MS 0 2Legs 4 ∞ ∞ 経験値 80 Attack 0% RK 0 SE4DS-Lynx RadarNormal:1-3Night:1-4 1 1 Move 30% GR 0 ×1 ×1 Link 0% ML 2 1-1 1-1 EP 15 BP 40% CN 0 90%-90% 90%-90% 6 Autopilot 6 1 MG 0 No Skills Valiant F Valiant F 680 / 680 Red Buster MGR-IB Duga L Hand 金 179 0% 3% SG 0 Valiant F 340 / 340 KN MS GR L Hand 22 22 / 22 22 RF 0 Valiant F 340 / 340 No Items 22 BZ 0 Valiant F 450 / 450 90×1 48×4 256×1 36 Turbo Systems 0% MS 0 2Legs 2 ∞ 8 4 経験値 90 Attack 0% RK 2 TB-60SP Item Space:2Power:40 1 10 12 Move 0% GR 2 ×1 ×1 ×1 Link 0% ML 1 1-1 6-8 4-6 EP 15 BP 0% CN 0 100%-100% Good 2 7 Autopilot 6 1 MG 0 No Skills Valiant F Valiant F 680 / 680 Red Buster MGR-IB Duga L Hand 金 179 0% 3% SG 0 Valiant F 340 / 340 KN MS GR L Hand 22 22 / 22 22 RF 0 Valiant F 340 / 340 No Items 22 BZ 0 Valiant F 450 / 450 90×1 48×4 256×1 36 Turbo Systems 0% MS 0 2Legs 2 ∞ 8 4 経験値 90 Attack 0% RK 2 TB-60SP Item Space:2Power:40 1 10 12 Move 0% GR 2 ×1 ×1 ×1 Link 0% ML 1 1-1 6-8 4-6 EP 15 BP 0% CN 0 100%-100% Good 2 8 Autopilot 6 3 MG 2 Terror Shot Ⅰ Husky Mk.Ⅲ Husky Mk.Ⅲ 320 / 320 22snLeosocial WS-100 L Hand 金 84 16% 12% SG 2 Husky Mk.Ⅲ 160 / 160 MG SH L Hand 16 12 / 12 12 RF 0 Husky Mk.Ⅲ 160 / 160 No Items 16 BZ 0 Husky Mk.Ⅲ 215 / 215 8×16 (30%) 29 -- Systems 0% MS 0 2Legs 6 100 6 経験値 80 Attack 0% RK 0 ----- 4 2 Move 0% GR 0 ×2 Link 0% ML 0 1-4 EP 15 BP 0% CN 0 80%-62% 9 Autopilot 6 3 MG 2 Terror Shot Ⅰ Husky Mk.Ⅲ Husky Mk.Ⅲ 320 / 320 22snLeosocial WS-100 L Hand 金 84 16% 12% SG 2 Husky Mk.Ⅲ 160 / 160 MG SH L Hand 16 12 / 12 12 RF 0 Husky Mk.Ⅲ 160 / 160 No Items 16 BZ 0 Husky Mk.Ⅲ 215 / 215 8×16 (30%) 29 -- Systems 0% MS 0 2Legs 6 100 6 経験値 80 Attack 0% RK 0 ----- 4 2 Move 0% GR 0 ×2 Link 0% ML 0 1-4 EP 15 BP 0% CN 0 80%-62% 10 Autopilot 6 4 MG 0 Block DMG 10 Calm 200 Calm 200 900 / 900 Press Needle Press Needle L Hand 金 252 12% 9% SG 0 Calm 200 450 / 450 PB PB L Hand 32 13 / 13 13 RF 0 Calm 200 450 / 450 No Items 32 BZ 0 Calm 200 600 / 600 128×1 128×1 63 Sensor Systems 0% MS 0 2Legs 4 ∞ ∞ 経験値 80 Attack 0% RK 0 SE4DS-Lynx RadarNormal:1-3Night:1-4 1 1 Move 30% GR 0 ×1 ×1 Link 0% ML 2 1-1 1-1 EP 15 BP 40% CN 0 90%-90% 90%-90% No. Name UNIT PILOT PARTS WEAPONS SUPPORT 獲得 Lv. Speed MG 武器熟練度 SKILLS Name Body HPNow / Max Weapon 1 Weapon 2 Weapon 3 Weapon 4 Atk. 金 Body Eva. Evasion SG L Arm 武器種 Def. L Arm APNow / Max AP Charge RF R Arm 攻撃属性 ITEMS R Arm BZ Legs Dmg.(Dmg. Cut) Legs BP Systems Resist MS Type Move × 経験値(基準) Armor Attack RK BP 機能(AP) AP Move GR 攻撃回数 Link ML Range EP(基準) BP CN HIt% / Area / Homing 11 Autopilot 5 5 MG 2 No Skills VH07 Gaston VH07 Gaston 1000 / 1000 VH07 MS VH07 MG VH07 MS L Hand 金 308 0% 12% SG 2 ----- MS MG MS L Hand 14 / 14 14 RF 0 ----- No Items BZ 0 ----- 140×1 7×10 140×1 -- Systems 0% MS 0 6 ∞ ∞ ∞ 経験値 80 Attack 0% RK 0 ----- 6 5 6 Move 0% GR 0 ×1 ×2 ×1 Link 0% ML 0 6-8 1-4 6-8 EP 15 BP 0% CN 0 72%-69% 80%-75% 72%-69% 12 Autopilot 5 5 MG 2 No Skills VH07 Gaston VH07 Gaston 1000 / 1000 VH07 MS VH07 MG VH07 MS L Hand 金 308 0% 12% SG 2 ----- MS MG MS L Hand 14 / 14 14 RF 0 ----- No Items BZ 0 ----- 140×1 7×10 140×1 -- Systems 0% MS 0 6 ∞ ∞ ∞ 経験値 80 Attack 0% RK 0 ----- 6 5 6 Move 0% GR 0 ×1 ×2 ×1 Link 0% ML 0 6-8 1-4 6-8 EP 15 BP 0% CN 0 72%-69% 80%-75% 72%-69% 上へ
https://w.atwiki.jp/warlockmota/pages/6.html
Warlock Master of the Arcane(简称“Warlock”、“秘术宗师”)是一款PC平台魔幻题材回合制策略游戏(TBS),由Ino-Co Plus制作,由Paradox Interactive于2012年5月8日发行,IGN评分7.5/10。 玩家可通过GamersGate或STEAM购买本作正版。本作以Steamworks作为DRM,没有STEAM则无法运行本作,不过发行后不久就出现了本作的汉化破解版,可不经联网免费游戏(注意:此为侵权行为)。 Warlock在过去的奇幻文学里一般译为“妖术师”、“邪术师”。魔兽争霸·魔兽世界将其作为术士的职业名,极大地影响了大众的认识。 缘起 初代游戏内容(发布时)基本目的 表现风格 地图格 游戏设置 地下世界 魔法 初代游戏内容(补丁与DLC)多人游戏 领主与神器 第四种族 古代法术和地形法术 末日模式 二代 缘起 本作的灵感之源是Ino-Co自家的Elven Legacy和Simtex Back于1995年开发的《Master of Magic》,并与席德梅尔的文明系列和Ino-Co自家的《王权2》有相似之处。具体说:本作与Elven Legacy系出同门,且本作使用的引擎是Ino-Co Plus制作《Elven Legacy》时使用的引擎的较新版本,使得二者在表面上很相似;本作把施法与内政管理相结合的系统则近于《Master of Magic》;本作的图像风格与《文明5》很像,但其相似之处仅此而已;本作与《王权》系列的背景都是阿达尼亚世界,有许多同名的单位和相同的单位等级,本作内置的教程也是由王权系列的标志性角色为玩家讲述的,但本作登场的单位与王权系列中同名单位的能力往往是不同的。 本作被中国大陆游戏测评者评为“文明类游戏”或“魔幻版文明”,这是不妥当的。 初代游戏内容(发布时) 基本目的 所谓策略游戏,就是管理与对抗。 本作是标准的回合制策略游戏,玩家扮演一位大法师,是阿达尼亚世界最强大的法师之一,其目的是支配整个世界,也包括支配其他的大法师。玩家在每个自己的回合管理城市、收集资源、召集军队、研究并使用魔法,与野外生物、其他大法师、神明等互动(包括战争),最终达成预先设置的胜利条件来赢得游戏(本作发布时,最基本的胜利条件是打败其他所有大法师)。 表现风格 本作的背景是阿达尼亚世界,这是一个剑与魔法的魔幻世界。玩家麾下可以有中世纪风格的弓手和骑士,也可以有精灵、半兽人、野兽、元素生物或亡灵。三个基础种族(人类、怪物、亡灵)风格截然不同(最基本地,人类的建筑属性和兵种消耗都重视金钱,怪物则重视食物,亡灵则重视魔力)。 地图格 和许多经典策略游戏一样,本作地图采用六角格。每个格子各有地形属性,会影响其通行性、建筑利用性和伤害修正。一些格子上有着资源点,可供建设特殊的建筑物。 游戏设置 在开始游戏前,玩家可以选择难度、模式、胜利条件、世界尺寸、陆地比例、横向地图边界、地下世界数量、其他大法师数量等,并要选择自己的大法师。玩家可以选择预设的大法师,也可以自行选定大法师的名字、头像、所率种族与特殊能力,某些能力将对接下来的游戏产生深远的影响。 地下世界 通过地图上的传送门,玩家的军队可以进入其他的位面(地下世界),地下世界通常有着与阿达尼亚截然不同的地形、包括龙在内的大量野生怪物和稀有的资源点。 魔法 本作的法术种类繁多、效果各异,从伤害敌人、控制敌军行动、召唤单位、给予加持到加快施法速度、苏生死者、打断对方施法、获得一个额外的回合,直至直接取得胜利。特定的法术还能发动强力的法术连击。 初代游戏内容(补丁与DLC) 本作最初发售时没有多人游戏功能、没有领主、没有神器。在一年多的时间里,这些都被补丁和DLC弥补。 此处不详细记述平衡性变更、BUG修复和细节优化。 Powerful Lords DLC 2012年5月9日发布,免费授予预订游戏的玩家,其他玩家想得到则要花费1.99美元(欧版1.99欧元)来取得激活码。 内容:追加了两项开始游戏前可以选择的大法师能力。 Power of the Serpent DLC 2012年5月29日发布,售价2.99美元(欧版2.99欧元)。 内容:追加了一位蜥蜴大法师、两项蜥蜴相关的大法师能力、资源点“蜥蜴村庄”及其相应建筑、四种蜥蜴单位。 补丁1.2 2012年7月16日发布。进行了一些平衡性变更、BUG修复和细节优化,并加入以下内容: 多人游戏 加入了基于Steam的多人游戏功能。 汉化破解版无法使用多人游戏功能。 本作没有传统策略游戏标配的热座模式,是个缺憾。 领主与神器 加入了领主系统与神器系统。领主是英雄单位,比同类型的一般单位更强力、升级更快且能拥有一些强大的技能。领主可以佩戴神器来强化其能力,不过领主死亡时其佩戴的神器也会丢失。玩家可以通过完成任务、探索地图上的怪物巢穴等方式获取领主与神器,此外也会随机出现前来等待玩家付钱雇用的领主或向玩家出售神器的商人。 补丁1.2.1 2012年7月20日发布。进行了一些细节优化,并加入以下内容: 多人模式AI接管 当一位玩家掉线,他的阵营会被AI接管。 补丁1.2.2 2012年8月2日发布。进行了一些平衡性变更、BUG修复和细节优化。 Master of Artifacts DLC 2012年8月2日发布。售价1.99美元(欧版1.99欧元)。 内容:追加了能创造神器的法术。 Return of the Elves DLC 2012年8月2日发布。售价2.99美元(欧版2.99欧元)。 内容:追加了新种族阿瑞斯精灵、一位阿瑞斯精灵大法师、两项大法师能力、 第四种族 第四种族阿瑞斯精灵是一群富有个性的黑暗精灵。 补丁1.3 2012年9月26日发布。进行了一些BUG修复和细节优化,强化了部分地形的影响效果,并加入以下内容: 法术交换 玩家可以通过外交界面中的法术选项把自己掌握的法术教给其他大法师,也能这样习得其他大法师掌握的法术。 补丁1.3.1 2012年10月11日发布。进行了一些BUG修复和细节优化。 补丁1.4 2012年11月13日发布。进行了一些平衡性变更、BUG修复和细节优化,并加入以下内容: 地下世界新增超级野外生物,它们在有玩家单位进入地下世界后才会出现,出现后会寻找传送门以便侵入阿达尼亚、对玩家展开攻击。 古代法术和地形法术 新增古代法术和地形法术。地形法术能改变地形,使沧海变桑田,还能产生地图上所没有的地形。古代法术无法通过研究获得,只能拾取。 Armageddon DLC 2012年11月16日发布。售价2.99美元(欧版2.99欧元)。 内容:追加了末日模式、两位新的大法师、四项新的大法师能力。 末日模式 在这个模式下,整个阿达尼亚世界受到德雷默的侵袭,打败其他所有大法师也无法赢得胜利,玩家必须对抗德雷默。此外,虽然玩家不能选择德雷默种族,在末日模式下通过特定的方法还是能让德雷默单位永久效忠,参见小技巧。 在末日模式下,玩家要进入德雷默世界作战,此时德雷默世界也被表现为一个地下世界,不过并没有通往它的传送门,必须使用特殊的法术才能进入。 补丁1.4.1 2012年12月24日发布。进行了一些平衡性变更、BUG修复和细节优化。 二代 Warlock 2 The Exiled(简称“放逐”)是初代续作,仍由Ino-Co Plus制作、Paradox Interactive发行,于2014年4月10日上市。其剧情紧接初代末日模式结局:米拉巴斯打败了德雷玛格,但趁他在德雷默世界奋战,大馆长施放了归一术而成为超越神的归一者,将许多其他大法师击杀或流放。米拉巴斯组织起一支由位面行者组成的军队,开始返回阿达尼亚的漫长旅程。 在放逐的基本游戏模式“放逐模式”下,玩家要穿过多个地下世界、完成一系列的任务、返回阿达尼亚并击败归一者。 放逐也提供了沙盒模式、MOD编辑器等,自由度比初代更高。魔法研究、城市管理等多方面亦有改进,且加入了城市数限制和人民满意度等系统。
https://w.atwiki.jp/wnt0/pages/19.html
集約オブジェクト内の各オブジェクトへのアクセス手段を統一する 普通はSTLコンテナのiteratorを使う 集約オブジェクトの変更があっても、iteratorオブジェクトを介するので取得側コードを変更する必要はない http //www.dofactory.com/Patterns/PatternIterator.aspx を c++ にした Structural example #include iostream #include string using namespace std; // prototypetemplate class T class Iterator;template class T class ConcreteIterator; // The Aggregate abstract classtemplate class T class Aggregate {public virtual ~Aggregate() { } virtual Iterator T * CreateIterator() = 0;}; // The ConcreteAggregate classtemplate class T class ConcreteAggregate public Aggregate T {public // constructor ConcreteAggregate(int size) { _items = new T[size]; _max_size = size; _count = 0; } // destructor virtual ~ConcreteAggregate() { delete [] _items; } // CreateIterator Iterator T * CreateIterator() { return new ConcreteIterator T (this); } // Count int Count() { return _count; } // Get T* Get(int index) { return _items[index]; } // Set void Set(const T value) { if (_count _max_size) { _items[_count++] = value; } }private T *_items; int _max_size; int _count;}; // The Iterator abstract classtemplate class T class Iterator {public virtual ~Iterator() { } virtual T* First() = 0; virtual T* Next() = 0; virtual T* CurrentItem() = 0; virtual bool IsDone() = 0;}; // The ConcreteIterator classtemplate class T class ConcreteIterator public Iterator T {public // constructor ConcreteIterator(ConcreteAggregate T *aggregate) { _aggregate = aggregate; _current = 0; } // First T* First() { return _aggregate- Get(0); } // Next T* Next() { T *ret = NULL; if (_current _aggregate- Count() - 1) { ret = _aggregate- Get(++_current); } return ret; } // CurrentItem T* CurrentItem() { return _aggregate- Get(_current); } // IsDone bool IsDone() { return (_current = _aggregate- Count()); }private ConcreteAggregate T *_aggregate; int _current;}; // clientint main() { ConcreteAggregate string *a = new ConcreteAggregate string (4); a- Set("Item A"); a- Set("Item B"); a- Set("Item C"); a- Set("Item D"); ConcreteIterator string *i = new ConcreteIterator string (a);// Iterator string *i = a- CreateIterator(); // 上と同じ string *item = i- First(); while (item != NULL) { cout *item endl; item = i- Next(); } delete a; delete i; return 0;} Real World example #include iostream #include string using namespace std; // prototypetemplate class T class IAbstractIterator;template class T class Iterator; // A collection itemclass Item {public // constructor Item(const string name) { _name = name; } // Get string GetName() { return _name; }private string _name;}; // The Aggregate interface classtemplate class T class IAbstractCollection {public virtual ~IAbstractCollection() { }; virtual Iterator T * CreateIterator() = 0;}; // The ConcreteAggregate classtemplate class T class Collection public IAbstractCollection T {public // constructor Collection(int size) { _items = new T[size]; _max_size = size; _count = 0; } // destructor virtual ~Collection() { delete [] _items; } // CreateIterator Iterator T * CreateIterator() { return new Iterator T (this); } // Count int Count() { return _count; } // Get T* Get(int index) { return _items[index]; } // Set void Set(const T value) { if (_count _max_size) { _items[_count++] = value; } }private T *_items; int _max_size; int _count;}; // The Iterator interface classtemplate class T class IAbstractIterator {public virtual ~IAbstractIterator() { }; virtual T* First() = 0; virtual T* Next() = 0; virtual T* CurrentItem() = 0; virtual bool IsDone() = 0;}; // The ConcreteIterator classtemplate class T class Iterator public IAbstractIterator T {public // constructor Iterator(Collection T *collection) { _collection = collection; _current = 0; _step = 1; } // First T* First() { _current = 0; return _collection- Get(0); } // Next T* Next() { _current += _step; if (!IsDone()) { return _collection- Get(_current); } else { return NULL; } } // GetStep int GetStep() { return _step; } // SetStep void SetStep(int step) { _step = step; } // CurrentItem T* CurrentItem() { return _collection- Get(_current); } // IsDone bool IsDone() { return (_current = _collection- Count()); }private Collection T *_collection; int _current; int _step;}; // clientint main() { Collection Item* *collection = new Collection Item* (9); collection- Set(new Item("Item 0")); collection- Set(new Item("Item 1")); collection- Set(new Item("Item 2")); collection- Set(new Item("Item 3")); collection- Set(new Item("Item 4")); collection- Set(new Item("Item 5")); collection- Set(new Item("Item 6")); collection- Set(new Item("Item 7")); collection- Set(new Item("Item 8")); // Create iterator Iterator Item* *iterator = new Iterator Item* (collection); // Skip every other item iterator- SetStep(2); for (Item **item = iterator- First(); !iterator- IsDone(); item = iterator- Next()) { cout (*item)- GetName() endl; } delete collection; delete iterator; return 0;} 抽象クラスなし #include iostream #include string using namespace std; // prototypeclass BookIterator; // 集約されるオブジェクトクラスclass Book {public Book(const string name) { m_name = name; } string GetName() { return m_name; }private string m_name;}; // Aggregate 集約クラスclass BookAggregate {public // constructor BookAggregate() { m_plist = NULL; m_list_size = 0; } // destructor ~BookAggregate() { BookList *p, *next; for (p = m_plist; p != NULL; p = next) { delete p- book; next = p- next; delete p; } } // Add void Add(Book *book) { // リスト最後尾へ追加 BookList *p, *p_bfr = NULL; int size = 1; for (p = m_plist; p != NULL; p_bfr = p, p = p- next, ++size); p = new BookList; p- book = book; if (m_plist == NULL) { // 初回は先頭を確保 m_plist = p; } if (p_bfr != NULL) { // 初回以外は前の要素へ今作った要素へのポインタを確保 p_bfr- next = p; } // リストサイズ更新 m_list_size = size; } // Get Book* Get(int index) { BookList *p, *p_bfr = NULL; int i; if (index 0 || index = m_list_size) { return NULL; } for (i = 0, p = m_plist; p != NULL; ++i, p = p- next) { if (i == index) { return p- book; } } return NULL; } // Size int Size() { return m_list_size; } // CreateIterator BookIterator* CreateIterator();private // リスト構造体定義 struct BookList { Book *book; BookList *next; BookList() { book = NULL; next = NULL; } }; // struct BookList BookList *m_plist; // list int m_list_size; // size}; // Iterator 反復子クラスclass BookIterator {public // constructor BookIterator(BookAggregate *aggregate) { m_aggregate = aggregate; m_current = 0; } // First void First() { m_current = 0; } // Next void Next() { ++m_current; } // IsDone bool IsDone() { return (m_current = m_aggregate- Size()); } // CurrentItem Book* CurrentItem() { return m_aggregate- Get(m_current); } // Destroy void Destroy() { delete this; }private BookAggregate *m_aggregate; int m_current;}; // BookAggregate CreateIteratorBookIterator* BookAggregate CreateIterator() { return new BookIterator(this);} // clientint main() { BookAggregate *list = new BookAggregate(); // 登録 list- Add(new Book("book 1")); list- Add(new Book("book 2")); list- Add(new Book("book 3")); // iterator で参照 BookIterator *it = list- CreateIterator(); for (it- First(); !it- IsDone(); it- Next()) { cout it- CurrentItem()- GetName() endl; } // 終了処理 it- Destroy(); delete list; return 0;} 出力 book 1 book 2 book 3 http //www.techscore.com/tech/DesignPattern/Iterator/Iterator1.html/ ここのJavaコードをc++にした。 #include iostream #include string using namespace std; // 生徒クラスclass Student {public Student(const string name, int sex) {m_name = name;m_sex = sex;}string getName() {return m_name;}int getSex() {return m_sex;}private string m_name;int m_sex;}; // 生徒リストclass StudentList {public StudentList(int count) {m_students = new Student*[count];m_last = 0;}~StudentList() {for (int i=0; i getLastNum(); ++i) {delete m_students[i];}delete [] m_students;}void add(Student* student) {m_students[m_last++] = student;}Student* getStudentAt(int index) {return m_students[index];}int getLastNum() {return m_last;}protected Student **m_students;private int m_last;}; // 新しい生徒リスト#include vector class NewStudentList {public virtual ~NewStudentList() {for (int i=0; i m_students.size(); ++i) {delete m_students.at(i);}}void add(Student* student) {m_students.push_back(student);}Student* getStudentAt(int index) {return m_students.at(index);}int getListSize() {// インターフェイスが変わったreturn m_students.size();}protected vector Student* m_students;}; // イテレータclass Iterator {public virtual bool hasNext() = 0;virtual void* next() = 0;}; // アグリゲートclass Aggregate {public virtual Iterator* iterator() = 0;}; // プロトタイプ(前方)宣言// 継承していることを前方宣言で表すことはできない//class MyStudentListIterator; #if 0// イテレータするための生徒リストclass MyStudentList public StudentList, public Aggregate{public MyStudentList(int count) StudentList(count) { }Iterator* iterator();// MyStudentListIterator を使うので、宣言後に。};#else// イテレータするための新しい生徒リストclass MyStudentList public NewStudentList, public Aggregate{public Iterator* iterator();};#endif // イテレータの実装class MyStudentListIterator public Iterator {public MyStudentListIterator(MyStudentList* list) {m_StudentList = list;m_index = 0;}bool hasNext() {#if 0if (m_StudentList- getLastNum() m_index) {return true;} else {return false;}#else// 新しい生徒リストはインターフェイスが変わったif (m_StudentList- getListSize() m_index) {return true;} else {return false;}#endif}void* next() {return (void*)m_StudentList- getStudentAt(m_index++);}private MyStudentList *m_StudentList;int m_index;}; // MyStudentListIterator 宣言後に書くIterator* MyStudentList iterator(){// ポインタ/参照ではないので、前方宣言ではコンパイルエラーreturn new MyStudentListIterator(this);} int main(int argc, char **argv) {// リスト登録#if 0MyStudentList *list = new MyStudentList(2);#else// 新しい生徒リストに変更MyStudentList *list = new MyStudentList;#endiflist- add(new Student("たろう", 1));list- add(new Student("はなこ", 2)); // イテレータを使って表示Iterator* itr = list- iterator();while (itr- hasNext()) {cout ((Student*)itr- next())- getName() endl;}delete list; return 0;} 参考サイト デザインパターンを“喩え話”で分かり易く理解する http //www.netlaputa.ne.jp/~hijk/study/oo/designpattern.html TECHSCORE http //www.techscore.com/tech/DesignPattern/index.html/ Programing Place http //www.geocities.jp/ky_webid/index_old.html デザインパターンの骸骨たち http //www002.upp.so-net.ne.jp/ys_oota/mdp/ デザインパターンの使い方 Iterator http //japan.internet.com/developer/20090529/26.html