ホムンクルスAIについての独り言
[ラグナロクオンライン]のホムンクルスシステムで使用する ホムンクルスAIのカスタマイズについてのメモ
プロフィール

モルティシア

Author:モルティシア
何時の間にやら貧乏キャラが定着しそのまま「安ケミ」と呼ばれるようになった「安っぽいケミ」
一時休止していたものの、最近ふたたびホムンクルスのカスタムAIの開発&公開を再開
メマー無しPC3の42転職
[完全製薬・完全露店]キャラ

カテゴリー

月別アーカイブ

最近の記事

最近のコメント

最近のトラックバック

ブロとも申請フォーム

この人とブロともになる

リンク

このブログをリンクに追加する

ブログ内検索

RSSフィード

FC2カウンター

メールフォーム

名前:
メール:
件名:
本文:

スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

命名規則
昔のソースのリファクタリング、のんびりゆっくり実行中

すっかり忘れていたのですが、まず最初に決めるのはプログラミング規約
ここ決めておかないと一ヵ月後の自分のソースを読むのが辛くなります
経験から、自分しか弄らないソースでも決めておくと可読性がぐんとあがるのです
…ということを数年働く中で身を持って学びました

そんなわけで、ちょっと遅いですが今からさくっと決めてしまいます

このAIは次のルールで作っていく予定

(省略していますので読む場合は[続きを読む...]をクリックしてください)
さくっとこんな感じに
・グローバル変数:全部大文字&アンダーバー
・ローカル変数:全部小文字&アンダーバー
・メソッドやクラス名:キャメルケース
・ファイル名:そのファイルの中で主に書くクラス名と同じにする、キャメルケース
・フォルダ名:小文字オンリー

さらに細かく
・グローバル変数はできるだけ使わないようにし、各機能がワンミスで干渉しないようにしておく
・ネストはできるだけ2つ以下
・インデントは半角4文字で統一
・1メソッドの長さは最高で100行以内
・継承は1段階まで、孫までつくるのはできるだけ避ける(Luaも継承っぽいのできるらしいですね)
・メソッドを呼び出すだけのメソッドは禁止

ぱっと思いつく範囲でこんな感じでしょうか
基準は私の好みです
自分で管理するのだから、自分が見慣れた形式のほうがいいかなという考え

AI.luaとAI()メソッドだけは、Roのクライアントによって指定されているので変更するわけには行かないためこれだけ例外
あと、GetMsg()とかみたいな最初から組み込まれている関数もどうしようもないので例外

かえってデフォルト関数とオリジナル関数が見分けつき易いかもしれない

そう決めた後にゴリゴリ変更中
デフォルトの単純な仕組みしかないのに変更箇所が多すぎる…

あとちょくちょく動きを確認するためこれだけ先に入れて起きました

--------
function try(func, ...)
 local ok,err = pcall(func, unpack(arg)) -- 関数の呼び出し
 if (not ok) then
  fp = io.open("AI/USER_AI/err.txt", "a")
  fp:write(string.format("\t%s\n", err))
  fp:close()
  AI = function() end
 end
end
--------

かつてホムAIスレにあったメソッド
try([実行する処理名],[渡すパラメタ]) で実行するとその処理を pcall()関数で実行
これによって、エラーで全体が止まることなく、さらにエラー内容も書き出すというちょっと便利なコードです。

こいつを追記して、次のように変更することでエラーでRoのクライアントがいちいち止まることがなくなるのです

外部ファイルのrequireが失敗しないかのチェックはこんな感じ
--------
try(function()
 require "./AI/USER_AI/require.lua"
end)
--------

メイン処理は一度別メソッドに分けてからこんな感じ
--------
function AI(my_id)
 try(mainAI, my_id)
end

function mainAI(my_id)
 local msg = GetMsg (my_id) -- command
 ~~
end
--------

さぁて、ちまちまと記述を統一です
スポンサーサイト
この記事に対するコメント

この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://yasukemi.blog49.fc2.com/tb.php/100-00abe844
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。