2015年05月17日

開発が超低速モードの時は

前回の更新から1ヶ月半が過ぎました。
やはり新年度に入ると仕事や家庭が忙しくなり、趣味に時間を割くことが難しくなります。
それに伴って、Holdall2の開発は超低速モードです。

しかし、進展があろうがなかろうが、スクリプトに目を通し続けることが、開発し続ける上で必要不可欠だと考えています。
そこでTaddiは、プログラミングできない時も、空き時間にスクリプトを見直せるようにプリントアウトするようにしています。
そうすると自然に、スクリプト内のコメントや、条件式なども見栄えを意識するようになるので、久しぶりにプログラミングをする時にも、スムーズに開発に取り掛かることができます。

sakura.png

プリントアウトする時はサクラエディタを使用しています。
色分け印刷できるので見やすく、強調キーワードを複数指定できるのが魅力です。
ちなみに、スクリプトから定数と自作命令を抽出して強調キーワードに指定しています。

RPGのように開発が長期に及ぶ作品は、やはりスクリプトの視認性が重要ですね。
締切があるわけではないので、今後もマイペースに進めていきます。
タグ:HSP
posted by Taddi at 12:04| Comment(2) | 雑記

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忘備録