Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2016-09-22

INIファイルで成績表

| 04:16

 久々の、新しい学習・・・かもしない

 なでしこで、一番最初に作ったプログラム、『15パズル』を作った時には、まだINIファイルってものを、よく知らなかった。

 の命令があるのは見ていても、何するもんだか分かってなかった。

 だから、ハイスコアの表示を作った時も、うだうだ考えた挙げ句、手数やタイムの数値を単にテキストファイルに保存して、配列として扱っていたんだけど、あの頃よりはワタシも色々とひらめいて、だいぶ賢くなったんだからね!

 ハイスコアだけじゃなくて、ゆくゆくはキーコンフィグなどの設定情報なども、INIファイルに保存しておけるようにしたいとゆう希望なんだケド、まあとにかく手始めに、ハイスコアの表示をINIファイルでやってみる。

#-----------------------------------------------------------
# INI
設定ファイル名とは文字列=「{母艦パス}なでこら.ini」
ハイスコア表示件数とは整数=10
成績とは整数。
#-----------------------------------------------------------

#-----成績表------------------------------------------------------------
*成績記録
  設定ファイル名のINI開いてコンフィグに代入。
  Cとは整数。記録とは整数。順位とは整数=0
  Cをハイスコア表示件数から1まで繰り返す。
    記録=(成績[C-1,1])を整数変換。
    もし、記録<スコアならば、順位=C。
  Cをハイスコア表示件数から1まで繰り返す。
    もし、順位=0でなければ、
      もし、順位=Cならば、
        コンフィグで「ハイスコア」の「Date_{C-1}」に今日INI書く。
        コンフィグで「ハイスコア」の「Score_{C-1}」にスコアをINI書く。
        コンフィグで「ハイスコア」の「Level_{C-1}」にレベルをINI書く。
      違えばもし、順位<Cならば、
        コンフィグで「ハイスコア」の「Date_{C-1}」に成績[C-2,0]をINI書く。
        コンフィグで「ハイスコア」の「Score_{C-1}」に成績[C-2,1]をINI書く。
        コンフィグで「ハイスコア」の「Level_{C-1}」に成績[C-2,2]をINI書く。
  コンフィグのINI閉じる。
  成績読み込み。
  もし、順位=0でなければ、
    ダイアログタイトルは「新記録!」
    「おめでとうございます。{改行}ハイスコアが出ました☆{改行}{改行}歴代{順位を2で文字列右寄せ}位のスコアです。」と言う。
    成績表表示。

*成績読み込み
  もし、設定ファイル名が存在するならば
    設定ファイル名のINI開いてコンフィグに代入。
    (ハイスコア表示件数)
      Cとは整数。C=回数-1
      コンフィグで「ハイスコア」の「Date_{C}」をINI読んで成績[C,0]に代入。
      コンフィグで「ハイスコア」の「Score_{C}」をINI読んで成績[C,1]に代入。
      コンフィグで「ハイスコア」の「Level_{C}」をINI読んで成績[C,2]に代入。
    コンフィグのINI閉じる。
  違えば
    成績クリア
#-----------------------------------------------------------
*成績表表示
  文字書体は「MS ゴシック」
  HSとは文字列=「   ★☆★ ハイスコア ★☆★」&改行&改行
  (ハイスコア表示件数)
    Cとは整数回数-1。
    Dとは文字列。D=(成績[C,0])を文字列変換もし、D=0ならば、D=「----/--/--」
    Sとは文字列。S=(成績[C,1])を文字列変換もし、S=0ならば、S=「-------」
    Lとは文字列。L=(成績[C,2])を文字列変換もし、L=0ならば、L=「--」
    HS=HS&「{回数を2で文字列右寄せ}位 {Sを7で文字列右寄せ}点 {Lを2で文字列右寄せ}レベル {D}」&改行
  ダイアログタイトルは「成績表」
  HSを言う。

*成績リセット
  ダイアログタイトルは「成績表リセット」
  「リセットしてもいい?」と二択。
    もしそれはいならば、成績クリア

*成績クリア
    設定ファイル名のINI開いてコンフィグに代入。
    (ハイスコア表示件数)
      Cとは整数。C=回数-1
      コンフィグで「ハイスコア」の「Date_{C}」に0をINI書く。
      コンフィグで「ハイスコア」の「Score_{C}」に0をINI書く。
      コンフィグで「ハイスコア」の「Level_{C}」に0をINI書く。
      コンフィグで「ハイスコア」の「Date_{C}」をINI読んで成績[C,0]に代入。
      コンフィグで「ハイスコア」の「Score_{C}」をINI読んで成績[C,1]に代入。
      コンフィグで「ハイスコア」の「Level_{C}」をINI読んで成績[C,2]に代入。
    コンフィグのINI閉じる
#-----------------------------------------------------------------------

 成績読み込みは、起動時に行い、成績記録は、ゲームオーバー時に行う。

 表示のものは、相変わらずの「言う」であるwww


 あと、さらですけど、これまでは起動するといきなりゲームが始まってて、メニューの新規ゲームはダミーで、ゲームオーバーするごといちいち再起動必要だったんだけど、ようやくちゃんとしました;

#-----------------------------------------------------------------------
*新規ゲーム
  固定石初期化。
  メイン画面初期化。
  消去数=0。レベル=0。スコア=0

  次石決定。
  次石落下。
  落下処理。
  メインループ。
#-----------------------------------------------------------------------
トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20160922

2016-09-16

消去数、連鎖数の表示とレベルアップメーター

| 23:15

 夏のは、なでしこ自体ほとんど開いてもなくって、当然なでこらも未着手でした。

 ですが、前の記事に書いてた消去数と連鎖数の表示については、UPしてなかったけど予定どうりさくっと追加出来ていたので、一応念のため載せておく。

 ちなみに、消去数の表示タイトルを何にしようか・・・という、どーでもいいことに一番無駄に時を使った(爆)

(タイトルを「すこあ」とか「れべる」とか、無意味にひらがな表記にしてたせいです。スペースの都合上、あんまり長くもできないし・・・; 結局、昔のコラムスで、JEWELSと表示されていたことから「じゅえる」にしてみたんだけど、どうかねえ;;;)

 ついでに、次レベルアップするまであとどのくらいかを示す、メーター表示をつけてみたよ。

 たいした機能じゃないけど、なんかこういう視覚的な表示あると、ゲームっぽさがUPするような気がするんだよね~w

#-----------------------------------------------------------------------
*消去数表示
  線色は$FFDDCC。塗り色は$FFDDCC。文字書体は「MS Pゴシック|18|太字」。文字色は$882211。
  表画面の右辺ラベルX,消去数Yから右辺ラベルX+65,消去数Y+30へ四角。
  表画面の右辺ラベルX,消去数Y,65,30へ消去数を中央,中央で枠内文字描画。

*連鎖表示
  線色は$FFDDCC。。塗り色は$FFDDCC。。
  表画面の右辺ラベルX,連鎖Yから右辺ラベルX+60,連鎖Y+60へ。

  文字書体は「MS Pゴシック|14|太字」。文字色は$FFFFFF。
  表画面の右辺ラベルX+5+1,連鎖Y+65+2へ「れんさ!」を文字描画。
  文字色は$CC3322。
  表画面の右辺ラベルX+5,連鎖Y+65へ「れんさ!」を文字描画。

  文字書体は「MS Pゴシック|28|太字」。文字色は$882211。
  表画面の右辺ラベルX,連鎖Y,60,60へ連鎖数を中央,中央で枠内文字描画。

*連鎖表示クリア
  線色は$FFBBAA。塗り色は$FFBBAA。
  表画面の右辺ラベルX,連鎖Yから母艦のクライアント幅,母艦のクライアント高さへ四角。

*レベルアップメーター表示
  レベルアップメータークリア。
  線色黄色塗り色黄色。
  表画面の右辺ラベルX+5,スコアY+5から右辺ラベルX+5+(消去数%10)*5,スコアY+20へ四角。

*レベルアップメータークリア
  線色は背景色。塗り色は背景色。
  表画面の右辺ラベルX+5,スコアY+5から右辺ラベルX+55,スコアY+20へ四角。
#-----------------------------------------------------------------------

 連鎖表示は「*連鎖」の中で、消去数とレベルアップメーター表示は「*石消去」の中から呼んで、表示を反映させている。

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20160916

2016-09-06

直ってる!

| 00:40

 八月中は、なんか一も更新しなかった・・・

 北海道の夏は、年々暑くなってる気がする(´д`)

 台風はいっぱい来るし、やってられないよぅ!

 それはさておき、久々に帰って来て、最新版をDLしてみたら、懸案の(?)「母艦中央移動」がきかず、ぴゅっと動いてしまう現象が、直っていた!(喜)

 正確には、いっこ前のバージョンで修正されてたらしいので、さらですけど;;;

 いやーしかし、これが嫌さに古い古いバージョンを使ったりもしてたもんで、良かった良かった♪

 しかし・・・

 ・・・コロッケって、何?

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20160906