2015年03月31日

リファクタリングの実施中

リファクタリング (refactoring) とはコンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理すること。
引用元:Wikipedia
Holdall2ですが、2月ごろから開発が軌道に乗り始めましたが、ここにきて開発が停滞しています。
Holdallの制作により、どのようなデータを用意して、どのような処理をさせればよいか、全体像はつかめています。
しかし、それと同時にメンテナンスをする難しさも痛感しました。
そこで、今回は定期的に開発中のソースコードを整理しながら制作することにしました。
リファクタリングについてはTaddiの中で以下のようにルールを決めました。
  1. タイミング
    一つのまとまった処理が完結した時
    (例)メニュー画面の「そうび」の部分が完成した時
  2. 対象
    - 変数、関数の命名規則
    - モジュールの相関関係
    - コメントの編集
    - ソースコードの整形

現在は、ダンジョン内でメニューを開くところまでできています。

つよさの確認、装備の変更も実装しました。

装備については、今回から主装備、副装備の概念を導入しました。

両手武器、片手武器、盾を装備することになるので、この処理にはてこずりましたが、

現在は、おおよそ想定した通りに動く状態になりました。


そして、制作を始めて最初のリファクタリング・・・。

始めて2週間近くになりますが、まだ終わりません。

特に変数の命名については、前作のソースコードを引っ張ってきている部分もあるため、

統一するのに手間取っています。


data_itemという変数があるかと思えば、item_dataという変数があったりで、混乱の原因がそこらじゅうに転がっています。

(異なるモジュール空間なので実害はないですが、視認性は最悪(T_T) )


こんな時、頼りになるのはLe.Antillaの検索「指定キーワードへ移動」です。

複数のソースファイルを縦断して検索することができるので、置き換え忘れを防ぐことができるだけでなく、

モジュールの相関関係を調べるときにも役立ちます。


難航している今回のリファクタリングですが、そろそろ目途もついてきたので、今週中には終わらせたいと思います。

posted by Taddi at 21:24| Comment(0) | 開発日記(Holdall2)

2015年03月07日

指定年月日から現在の年齢と次の誕生日までの日数を算出

本家掲示板で投稿したものです。
Fairfieldの公式と年齢算出式は
なぜそうなるのか細かな理屈を理解していないので、
自分自身の忘備用に残しておきます。

#module
    #defcfunc getday int y,int m, int d ;Fairfieldの公式によるグレゴリオ暦換算
    return 365 * y + (y/4) - (y/100) + (y/400) + (306 * (m+1) / 10) + d - 428
#global

    mes "生年月日を入力(yyyymmdd)"
    birthday=0 : input birthday,120,20,8
    button "算出",*calc : stop

*calc
    ty=gettime(0) : tm=gettime(1) : td=gettime(3)
    by=birthday/10000 : bm=birthday\10000/100 : bd=birthday\100
    today=ty*10000+tm*100+td : age=(today-birthday)/10000    ;年齢算出
    if (bm*100+bd)-(tm*100+td)<1{cy=ty+1}else{cy=ty}    ;今年の誕生日を迎えている
    next_age=getday(cy,bm,bd)-getday(ty,tm,td)    ;次の誕生日までの日数算出
    dialog "今の年齢は"+age+"歳です。\n"+next_age+"日後に"+(age+1)+"歳になります。"

ちなみに、未来の日付を入力するとエラーは起きませんが、
正しい値を表示しないと思うのでそのあたりはご注意ください。

posted by Taddi at 02:41| Comment(0) | HSP忘備録

2015年03月06日

活動再開

Taddiです。
長らく冬眠しておりましたが、ぼちぼち活動を再開していきます。

changさま、Holdallへのコメントありがとうございました。
これまで返信せず申し訳ありません。
(掲示板のスパムは確認していたのですが、ブログのコメントは盲点でした。)

以下、changさまへの返信です。

コンプリートおめでとうございます。
良かったと指摘いただいた部分は次回作にもぜひ引き継いでいきたいと思います。
イベントのボリュームについては、検討したいと思います。
隠し扉など単純に増やすことは可能ですが、やみくもに増やしてもストレスになるので、
バランスが難しい部分です。
最後に、サブシナリオについてですが、できれば次回作で実現したいと思います。
貴重なご意見ありがとうございました。

ちなみにHOLDALL2ですが、カメ並みの速度で開発進行中です。
2作目だし前回のエディタでシナリオだけ作れば・・・。
なんて甘い考えで始めたのですが、
前作に残されていた根深い問題を解決するために結局、初めから作り直すことにしました。

今年の年末にはある程度、カタチにしたいと考えています。
今後も期待せず、気長にお待ちください。
次回からは本編の仕様等を覚書のように紹介していきたいと思います。

posted by Taddi at 22:57| Comment(0) | 雑記