Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2009/03/31 (火)

いよいよ完成! かな?

| 21:01 | いよいよ完成! かな? - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - いよいよ完成! かな? - 雪乃☆雫のなでしこ日和 いよいよ完成! かな? - 雪乃☆雫のなでしこ日和 のブックマークコメント

 まずは課題の解決から。

 表示順位数を先に宣言しておくことで、何位まで表示するかを後から容易に変更できるようになりました!

 「言う」では8位以上表示しきれずに、詳細ってボタン表示されてしまいますけどね(汗)

 調子に乗って5位まで表示させるようにしました。

#-----成績表表示-----------------------------------------------
*成績表表示
  s=「★☆★成績表★☆★{改行}{改行}◎手数のハイスコア{改行}」
  数を1から表示順位数まで繰り返す
    もし、成績¥数がならば
      s=「{s} {数}位  ---手{改行}」
    違えば
      s=「{s} {数}位  {成績¥数}手{改行}」
  s=「{s}{改行}◎タイムのハイスコア{改行}」
  数を(表示順位数+1)から(表示順位数*2)まで繰り返す
    分=成績¥数/60を切り下げ。
    秒=成績¥数%60。
    分=分を2でゼロ埋め。秒=秒を2でゼロ埋め
    もし、成績¥数がならば
      s=「{s} {数-表示順位数}位  --分--秒{改行}」
    違えば
      s=「{s} {数-表示順位数}位  {分}分{秒}秒{改行}」
  ダイアログタイトルは「成績表」
  sを言う。

#--------------------------------------------------------------
#-----成績表記録-----------------------------------------------
*成績表記録
  #手数のハイスコア
  手数順位=0
  数を表示順位数から1まで繰り返す。
    もし、(成績¥数>手数 または 成績¥数=ならば
      手数順位=数
  数を表示順位数から1まで繰り返す。
    もし、手数順位=0でなければ
      もし、手数順位=数ならば
        成績¥数=手数
      もし、手数順位<数ならば
        成績¥数=成績¥(数-1)


  #タイムのハイスコア
  タイム順位=0
  数を(表示順位数*2)から(表示順位数+1)まで繰り返す。
    もし、(成績¥数>経過 または 成績¥数=ならば
      タイム順位=数
  数を(表示順位数*2)から(表示順位数+1)まで繰り返す。
    もし、タイム順位=0でなければ
      もし、タイム順位=数ならば
        成績¥数=経過
      もし、タイム順位<数ならば
        成績¥数=成績¥(数-1)

  s=「」
  数を1から表示順位数まで繰り返す
    s=「{s}{成績¥数}{改行}」
  数を(表示順位数+1)から(表示順位数*2)まで繰り返す
    s=「{s}{成績¥数}{改行}」

  sを「成績表.txt」へ保存。
#--------------------------------------------------------------

 前のUD様にいただいたコメントから、「成績表.txt」を毎行読んで反復する時に、回数を-1すれば成績¥0から値が入っていくことを学びましたが、順位のところをまた全部+1しないとならないのが面倒で、のままになってます(汗)


 成績表読み書きの部分を作るにあたって、何度も成績表のテキストを手動でにした(笑)

 それはさておいても、成績表はリセットできたほうがいいと思うので、成績リセットをメニュー追加することに。

#-----成績リセット---------------------------------------------
*成績リセット
  ダイアログタイトルは「成績表リセット」
  「リセットしてもいい?」と二択。
    もしそれはいならば
      (表示順位数*2)
      成績¥回数
      を「成績表.txt」へ保存。
#--------------------------------------------------------------

 違いでいきなりリセットされるとショックなので、2択で確認メッセージを表示

 テキストをクリアするだけなら、保存すればいいだけだけど、それだと現在の成績表表示は変わらないので、成績配列の中身もにしないとね。


 あと追加で、前「15パズル.jpg」が存在しなかった場合の処理を追加しましたが、じゃあもし「15パズル.jpg」が違う画像にし変わってた場合は?

 もしかしたら毎自分の好きな画像でやりたいと思って、「15パズル.jpg」自体を違う画像にする場合があるもしない

 自分はわかってるからいいけど、人にあげた場合とか、400*400の画像にしてくれるとは思えないんだよね。


 実際に試してみると、予想通り大きな画像の端っこだけが表示される上、ギブアップしたら母艦が大変なことに!(滝汗)

 これ避するには、画像変更の時と同様、もし400*400の画像じゃなかったら、違う「15パズル.jpg」をリサイズして表示させられるようにしないとね。

#--------------------------------------------------------------
もし、パズル画像の存在が1ならば
  作業用の画像はパズル画像。
  もし、作業用のW=盤サイズ かつ 作業用のH=盤サイズでなければ  #画像ファイルがデフォルトの物と違う場合
    リサイズし変更
  違えば
    作業用を裏画面の0,0へ画像コピー。
    
違えば
  十五																	#画像ファイルが無かった場合	
#--------------------------------------------------------------

 「*画像変更」は、フォルダ選択から始まってしまうので、ルーチンを二つに分割して「*リサイズし変更」をつくり、ここへ飛ばすようにした。


 15パズル的には、このくらいでもう十分かなあ?

ゲスト



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