Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2016/10/10 (月)

ひとまずの完成と、ダメらしい話し

| 09:08 | ひとまずの完成と、ダメらしい話し - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - ひとまずの完成と、ダメらしい話し - 雪乃☆雫のなでしこ日和 ひとまずの完成と、ダメらしい話し - 雪乃☆雫のなでしこ日和 のブックマークコメント

 ・・・とゆうわけで(?)発覚した、問題点について。

 問題点は、天井近くまでみ上がっている時の挙動です。

 ワタシはね、んなんなったらもう、早々にあきらめですよw

 だから、考えもしなかったんだけど、石が消えた時点で、まだメイン画面に見えていない、天井より上の位置にも落下石があった場合に、それが消滅してしまう。

 また、石固定処理時に、石落下位置の天井に落下石の上端が達していると、こに消せる石があっても石を消去する前に、ゲームオーバーとなってしまう・・・など。

 後者は、なるほど確かに、石落下位置の上の方に同じ色が二個まさっていて、後一個同じ色が欲しい・・・というところへ望みの色の石が落ちてきたとしても、消えずに同色の石が3つくっついた物が表示された状態の画面でゲームオーバーになってしまうっていうのは、の分のスコアも当然入らないわけだから、ちょっともやもやしてしまうね。

 これは、たぶん連鎖まで終わらせた後にゲームオーバー判定を移動させれば、いいんだろう。

 しかし・・・

 天井より上の石が消滅してしまうっていうのは・・・なんかダメなの? むしろ、助かるような気が・・・と言ったら、「当たり前でしょ。こで、連鎖を起こして持ちこたえてこじゃん」っと言われてしまった。

 うえぇ~、マヂか?! 奥が深いな。ワタシには到底ムリだが;;;

 して、これを直すにはどうしたらいいんだ?

 固定石と消去石の配列を2段分大きくするとか・・・?



 ・・・なにげに直せそうではあるんだけど、なんかもう面倒だから、ひとまずこーいう仕様だと言い張る(えっ?!)

 天井の上にヨユウはなく、オーバーした石は消え失せるし、石落下位置があふれたら即アウトってことでっ;;;

 なぜなら、ちょっと忘れかけていたけど、ジョイパッドに対応したゲームでも作ってみようと思い立ったのがもの発端だったことを思い出したのです!(爆)

 っと言うわけで、気が向いたら、いずれこの問題は解決するかも知れないし、の際には、教えを頂いたことを元に、石消去の部分も全面的に見直すかも知れないけれど、とりあえずこのまま先に進みます~(ええぇっ;)



 でっ、取りあえずはこんな感じ~。

#-----------------------------------------------------------------------
# なでこらキーボード版 ダメっぽいけどver1.00
#-----------------------------------------------------------------------
# INI
設定ファイル名とは文字列=「{母艦パス}なでこら.ini」

#-----母艦設計----------------------------------------------------------
!母艦設計=「母艦の可視はオフ」

#---メニュー----
『#親部品名,部品名,テキスト,ショートカット,オプション,イベント
なし,ファイルメニュー,ファイル(&F),,,
 -,新規メニュー,新しいゲーム(&N),Ctrl+N,,新規ゲーム
 -,-,,,,
 -,成績表メニュー,成績表(&S),Ctrl+S,,成績表表示
 -,成績リセットメニュー,成績リセット(&D),Ctrl+D,,成績リセット
 -,-,,,,
 -,閉じるメニュー,閉じる(&X),Ctrl+X,,終わる
なし,設定メニュー,設定(&O),,,
 -,選択メニュー,コントローラー選択(&C),,,
 --,キーボード選択メニュー,キーボード(&K),,チェック,
 --,ジョイパッド選択メニュー,ジョイパッド(&J),,,
 -,-,,,,
 -,キーボード設定メニュー,キーボードのキー設定(&K),,,
 -,ジョイパッド設定メニュー,ジョイパッドのキー設定(&J),,,
なし,ヘルプメニュー,ヘルプ(&H),,,
 -,ルールメニュー,遊び方(&R),Ctrl+R,,遊び方
 -,-,,,,
 -,バージョンメニュー,バージョン情報(&A),Ctrl+A,,バージョン
』をメニュー一括作成。

設定メニューの有効はオフ。

#---母艦----
母艦のタイトルは「なでこら」
母艦を$FFBBAAで画面クリア母艦のスタイルは「枠固定」
母艦オフに最大化ボタン有効変更。
母艦のクライアント幅は330。母艦のクライアント高さは480。
母艦中央移動
#-----------------------------------------------------------------------

#-----宣言--------------------------------------------------------------
マス目とは整数=32。

石落下位置Xとは整数=マス目*3。
石落下位置Yとは整数=0-マス目*2。
落下Xとは整数=石落下位置X
落下Yとは整数=石落下位置Y

メインXとは整数=30。
メインYとは整数=50。
スコアXとは整数=メインX/2
スコアYとは整数=メインY/3
右辺ラベルXとは整数=メインX+マス目*6+25
ネクストXとは整数=メインX+マス目*6+40
ネクストYとは整数=メインY+30
レベルYとは整数=メインY+マス目*3+80
消去数Yとは整数=メインY+マス目*3+160
連鎖Yとは整数=メインY+マス目*12-50

石とは配列    #石の種類(形状,色)
石=「●,$DD0000
◆,$FF7700
■,$0077FF
★,$EEEE00
▲,$EE00EE
▼,$00DD00」
#-----------------------------------------------------------
次石とは配列   #次に落下する石
落下石とは配列  #落下中の石
固定石とは配列  #落下し終わり固定された石
消去石とは配列  #消去する予定の石
石消去フラグとは整数オフ。

# 移動可能かどうかを調べる
縦移動フラグとは整数オフ。
右移動フラグとは整数オフ。
左移動フラグとは整数オフ。

# 移動中かどうか
右移動中とは整数オフ。
左移動中とは整数オフ。

# 押しっぱなしかどうかを調べる
右キー押下状態とは整数オフ。
左キー押下状態とは整数オフ転キー押下状態とは整数オフ。

# キー設定
左移動キーとは整数=$25 #VK_LEFT
右移動キーとは整数=$27 #VK_RIGHT
落下キーとは整数=$28 #VK_DOWN
//転キーとは整数=$26 #VK_UP
転キーとは整数=$20 #VK_SPACE

# カウンター
消去数とは整数=0
連鎖数とは整数=1

# スコア・レベル表示
レベルとは整数=0
スコアとは整数=0

終了フラグとは整数オフ
#-----------------------------------------------------------
#---裏画面----
石用とはイメージ。
石用について。
  可視はオフ。
  幅はマス目*6。高さはマス目

マス目用とはイメージ
マス目用について
  可視はオフ。
  幅はマス目。高さはマス目。
  $332211で画面クリア。

石転用とはイメージ。
石転用について。
  可視はオフ。
  幅はマス目。高さはマス目*3。

メイン合成用とはイメージ
メイン合成用について
  可視はオフ。
  幅はマス目*6。高さはマス目*13。

#---画面----
表画面とはイメージ
表画面について
  Xは0。Yは0。
  幅は母艦のクライアント幅。高さは母艦のクライアント高さ。
  $FFBBAAで画面クリア。

メイン画面とはイメージ
メイン画面について
  可視はオフ。
  幅はマス目*6。高さはマス目*13。

次石表示用とはイメージ
次石表示用について。
  可視はオフ。
  幅はマス目。高さはマス目*3。

落下用とはイメージ
落下用について。
  可視はオフ。
  幅はマス目。高さはマス目*3。
#-----------------------------------------------------------
# 成績表
ハイスコア表示件数とは整数=10
成績とは整数。
成績読み込み
#-----------------------------------------------------------------------

#-----メインルーチン----------------------------------------------------
画面準備
母艦の可視はオン。

*新規ゲーム
  固定石初期化。
  メイン画面初期化。
  消去数=0。レベル=0。スコア=0
  スコア表示。
  レベル表示。
  消去数表示。
  レベルアップメータークリア。

  次石決定。
  次石落下。
  落下処理。
  メインループ。
#-----------------------------------------------------------------------
*メインループ
  終了フラグはオフ
  (終了フラグ=オフ)の
    0.01秒待つ
    もし、縦移動フラグ=オンならば
      落下処理。
    違えば
      石固定処理。
      次石落下。
#-----------------------------------------------------------------------
*次石決定
  3
    r=6の乱数。次石¥(回数-1)=r。
    x=r*マス目。y=0。
    石用のx,y,マス目,マス目を次石表示用の0,(回数-1)*マス目へ画像部分コピー。
    次石表示用を表画面のネクストX,ネクストYへ画像コピー。

*次石落下
  連鎖表示クリア。
  次石表示用を落下用の0,0へ画像コピー
  落下石=次石。
  次石決定
  落下X=石落下位置X。落下Y=石落下位置Y

  縦移動フラグ=オン

*落下処理
  LSとは整数=レベル*0.01   # 落下速度は「{(0.1-LS)*10}秒」
  10
    キー処理
    落下用をメイン合成用の落下X,落下Yへ画像コピー。
    メイン合成用を表画面のメインX,メインYへ画像コピー
    メイン画面をメイン合成用の0,0へ画像コピー。
    # 落下キーを押していない時のウェイト
    もし、落下フラグがオンでなければ、
      (0.1-LS)秒待つ。
    # 左右キーは押し続けた時は一気に動くが、連打した時は一マスごと動くようにする。
    もし、(左移動中=オン)かつ(左キー押下状態=オフならば、
      左キー押下状態=オン。
      0.1秒待つ。
    もし、(右移動中=オン)かつ(右キー押下状態=オフならば、
      右キー押下状態=オン。
      0.1秒待つ。

  落下Y=落下Y+マス目
  移動判定
#-----------------------------------------------------------------------
*キー処理
  # 左移動。
  もし(左移動キーのキー状態=オン)ならば
    移動判定
    もし、左移動フラグ=オンならば
      落下X=落下X-マス目。
      左移動中=オン。
  違えば、
    左キー押下状態=オフ。
    左移動中=オフ。

  # 右移動。
  もし(右移動キーのキー状態=オン)ならば
    移動判定
    もし、右移動フラグ=オンならば
      落下X=落下X+マス目。
      右移動中=オン。
  違えば、
    右キー押下状態=オフ。
    右移動中=オフ。

  # 石を落とす
  もし、(落下キーのキー状態=オン)ならば
    落下フラグ=オン
  違えば
    落下フラグ=オフ

  # 石を転
  もし、(転キーのキー状態=オンならば
    もし転キー押下状態=オフならば  # 押しっぱなしでは転し続けない
     転キー押下状態=オン。
     A=落下石¥0。B=落下石¥1。C=落下石¥2。
     落下石¥0=C。
     落下石¥1=A。
     落下石¥2=B。
     3
       x=落下石¥(回数-1)*マス目。y=0。
       石用のx,y,マス目,マス目を石転用の0,(回数-1)*マス目へ画像部分コピー。
       落下用クリア。
       石転用を落下用の0,0へ画像コピー。
  違えば転キー押下状態=オフ移動判定
  # はみ出しの処理。
  # 石が壁、床、他の石にぶつからずに動けるかどうかを判定。
  落下マスXとは整数=落下X/マス目
  落下マスYとは整数=落下Y/マス目+2  # 一番下の石があるマス目

 # 縦方向
  # 床
  もし、落下Y>=マス目*11ならば、縦移動フラグ=オフ。
  # 他の石
  違えばもし、固定石¥(落下マスX),(落下マスY)=-1ならば、縦移動フラグ=オン。
  違えば、縦移動フラグ=オフ。

 # 横方向
  # 左の壁
  もし、(落下X-マス目<0)ならば、
    左移動フラグ=オフ。
    左移動中=オン。
  # 他の石
  違えばもし、固定石¥(落下マスX-1),(落下マスY)=-1でなければ、
    左移動フラグ=オフ。
    左移動中=オン。
  違えば、左移動フラグ=オン。
  # 右のカベ
  もし、(落下X+マス目>=マス目*6)ならば、
    右移動フラグ=オフ。
    右移動中=オン。
  # 他の石
  違えばもし、固定石¥(落下マスX+1),(落下マスY)=-1でなければ、
    右移動フラグ=オフ。
    右移動中=オン。
  違えば、右移動フラグ=オン。
#-----------------------------------------------------------------------
*石固定処理
  # 落下しきった石をメイン画面に固定する。
  # 固定石配列の書き換えと、メイン画面への石画像表示。
  落下マスXとは整数=落下X/マス目
  落下マスYとは整数=落下Y/マス目-1  # 一番上の石があるマス目

  もし、((落下マスY)<0)かつ(落下マスX=3)ならば、ゲームオーバー。
  違えば、
    xxとは整数。yyとは整数。
    3
      xx=(落下マスX)。yy=(落下マスY)+(回数-1)
      もし、yy>=0ならば
        固定石¥xx,yy=落下石¥(回数-1)

    固定石描画。
    落下フラグ=オフ。
    0.3秒待つ

    消去石初期化
    3
      もし、落下マスY+(回数-1)<0でなければ、		#の石が画面外でなければ
        落下マスX,落下マスY+(回数-1)で消去判定
    もし、石消去フラグ=オンならば、石消去。隙埋め。連鎖

*固定石描画
    xxとは整数。yyとは整数。
    メイン画面初期化。
    メイン合成用の0,0へメイン画面を画像コピー。
    6
      xx=(回数-1)
      13
        yy=(回数-1)
        x=固定石¥xx,yy。y=0。
        石用のx*マス目,y,マス目,マス目をメイン合成用のxx*マス目,yy*マス目へ画像部分コピー。
    メイン画面の0,0へメイン合成用を画像コピー。
    メイン画面をメイン合成用の0,0へ画像コピー。
    メイン合成用を表画面のメインX,メインYへ画像コピー。
#-----------------------------------------------------------------------
*消去判定(x,yで)
  Cとは整数=1。
  f1とは整数オン。f2とは整数オン。
  # 左右
  5
    もしf1=オフでなければ
      もし、(x-回数<0)ならばf1オフ   # 左の壁
      違えばもし、(固定石¥(x-回数),y)=(固定石¥x,y)ならば、
        C=C+1。
        もし、消去石¥(x-回数),y=1でなければ、消去石¥(x-回数),y=0。
      違えばf1オフ。
    もし、f2=オフでなければ
      もし、(x+回数>5)ならば、f2=オフ   # 右の壁
      違えばもし、(固定石¥(x+回数),y)=(固定石¥x,y)ならば
        C=C+1。
        もし、消去石¥(x+回数),y=1でなければ、消去石¥(x+回数),y=0。
      違えば、f2=オフ。
    もし、(f1=オフ)かつ(f2=オフならば抜ける。
  もし、C>=3ならば、
    消去石¥x,y=0。オンに消去フラグ設定。石消去フラグ=オン。
  違えばオフに消去フラグ設定。

  C=1。f1=オン。f2=オン。
  # 上下
  12
    もしf1=オフでなければ
      もし、(y-回数<0)ならばf1オフ   # 上端
      違えばもし、(固定石¥x,(y-回数))=(固定石¥x,y)ならば、
        C=C+1。
        もし、消去石¥x,(y-回数)=1でなければ、消去石¥x,(y-回数)=0。
      違えばf1オフ。
    もし、f2=オフでなければ
      もし、(y+回数>12)ならば、f2=オフ   # 床
      違えばもし、(固定石¥x,(y+回数))=(固定石¥x,y)ならば
        C=C+1。
        もし、消去石¥x,(y+回数)=1でなければ、消去石¥x,(y+回数)=0。
      違えば、f2=オフ。
    もし、(f1=オフ)かつ(f2=オフならば抜ける。
  もし、C>=3ならば、
    消去石¥x,y=0。オンに消去フラグ設定。石消去フラグ=オン。
  違えばオフに消去フラグ設定。

  C=1。f1=オン。f2=オン。
  # 斜め\
  5
    もしf1=オフでなければ
      もし、(x-回数<0)または(y-回数<0)ならばf1オフ   # 左の壁 または 上端
      違えばもし、(固定石¥(x-回数),(y-回数))=(固定石¥x,y)ならば、
        C=C+1。
        もし、消去石¥(x-回数),(y-回数)=1でなければ、消去石¥(x-回数),(y-回数)=0。
      違えばf1オフ。
    もし、f2=オフでなければ
      もし、(x+回数>5)または(y+回数>12)ならば、f2=オフ   # 右の壁 または 床
      違えばもし、(固定石¥(x+回数),(y+回数))=(固定石¥x,y)ならば
        C=C+1。
        もし、消去石¥(x+回数),(y+回数)=1でなければ、消去石¥(x+回数),(y+回数)=0。
      違えば、f2=オフ。
    もし、(f1=オフ)かつ(f2=オフならば抜ける。
  もし、C>=3ならば、
    消去石¥x,y=0。オンに消去フラグ設定。石消去フラグ=オン。
  違えばオフに消去フラグ設定。

  C=1。f1=オン。f2=オン。
  # 斜め/
  5
    もしf1=オフでなければ
      もし、(x-回数<0)または(y+回数>12)ならばf1オフ   # 左の壁 または 床
      違えばもし、(固定石¥(x-回数),(y+回数))=(固定石¥x,y)ならば、
        C=C+1。
        もし、消去石¥(x-回数),(y+回数)=1でなければ、消去石¥(x-回数),(y+回数)=0。
      違えばf1オフ。
    もし、f2=オフでなければ
      もし、(x+回数>5)または(y-回数<0)ならば、f2=オフ   # 右の壁 または 上端
      違えばもし、固定石¥(x+回数),(y-回数)=固定石¥x,yならば
        C=C+1。
        もし、消去石¥(x+回数),(y-回数)=1でなければ、消去石¥(x+回数),(y-回数)=0。
      違えば、f2=オフ。
    もし、(f1=オフ)かつ(f2=オフならば抜ける。
  もし、C>=3ならば、
    消去石¥x,y=0。オンに消去フラグ設定。石消去フラグ=オン。
  違えばオフに消去フラグ設定。

*消去フラグ設定(Aに)
  xxとは整数。yyとは整数。
  6
    xx=(回数-1)
    13
      yy=(回数-1)
      もし、消去石¥xx,yy=0ならば、
        もし、A=オンならば、消去石¥xx,yy=1
        違えばもし、A=オフならば、消去石¥xx,yy=-1

*石消去
  xxとは整数。yyとは整数。
  6
    xx=(回数-1)
    13
      yy=(回数-1)
      もし、消去石¥xx,yy=1ならば、
        固定石¥xx,yy=-1。
        消去数=消去数+1
        スコア=スコア+10*(レベル+1)*(連鎖数^2)
        スコア表示。
        レベル表示。
        消去数表示。
        レベルアップメーター表示。
  固定石描画。0.3秒待つ。

*隙埋め
  xxとは整数。yyとは整数。Cとは整数。
  6
    xx=(回数-1)
    13
      yy=(回数-1)
      もし、消去石¥xx,yy=1ならば、
        Cでyyから0まで繰り返す
          もし、C=0ならば、
            固定石¥xx,C=-1
          違えば、
            固定石¥xx,C=固定石¥xx,(C-1)
  固定石描画。0.3秒待つ。

*連鎖
  消去石初期化。
  xxとは整数。yyとは整数。
  6
    xx=(回数-1)
    13
      yy=(回数-1)
      もし、固定石¥xx,yy<0でなければ
        xx,yyで消去判定。

  もし、石消去フラグ=オンならば、
    連鎖数=連鎖数+1
    連鎖表示。0.5秒待つ
    石消去。隙埋め。連鎖
  違えば、
    連鎖数=1
#-----------------------------------------------------------------------
*画面準備
  # マス目を描く
  線太さは0。線色は$443322。塗り色は$443322。
  マス目用の0,0から2,マス目-4へ四角。
  マス目用の0,0からマス目-4,2へ四角。
  線太さは0。線色は$221100。塗り色は$221100。
  マス目用のマス目-2,4からマス目,マス目へ四角。
  マス目用の4,マス目-2からマス目,マス目へ四角。

  #マス目をコピー。
  3
    C=回数-1
    マス目用を次石表示用の0,C*マス目へ画像コピー。

  メイン画面初期化
  メイン画面をメイン合成用の0,0へ画像コピー。

  # 表画面
  文字書体は「MS Pゴシック|14|太字」。文字色は$FFFFFF。
  表画面のスコアX+1,スコアY+2へ「すこあ」を文字描画。
  表画面の右辺ラベルX+1,ネクストY-25+2へ「ねくすと」を文字描画。
  表画面の右辺ラベルX+1,レベルY-25+2へ「れべる」を文字描画。
  表画面の右辺ラベルX+1,消去数Y-25+2へ「じゅえる」を文字描画。
  文字色は$CC3322。
  表画面のスコアX,スコアYへ「すこあ」を文字描画。
  表画面の右辺ラベルX,ネクストY-25へ「ねくすと」を文字描画。
  表画面の右辺ラベルX,レベルY-25へ「れべる」を文字描画。
  表画面の右辺ラベルX+1,消去数Y-25へ「じゅえる」を文字描画。

  メイン画面を表画面のメインX,メインYへ画像コピー。
  次石表示用を表画面のネクストX,ネクストYへ画像コピー。
  スコア表示。
  レベル表示。
  消去数表示。
  レベルアップメータークリア。

  # 石用に石を描く
  6
    C=回数-1
    マス目用を石用のC*マス目,0へ画像コピー。
    文字書体は「MS ゴシック|23|太字」。文字色は石¥C,1。
    石用のC*マス目,0へ石¥C,0を文字表示。

*メイン画面初期化
  6
    マス目用をメイン画面のマス目*(回数-1),0へ画像コピー。
  13
    メイン画面の0,0,マス目*6,マス目をメイン画面の0,マス目*(回数-1)へ画像部分コピー。

*スコア表示
  文字書体は「MS Pゴシック|14|太字」
  XXとは整数=「すこあ」の文字幅取得+スコアX+2
  線色は$FFDDCC。塗り色は$FFDDCC。文字書体は「MS Pゴシック|18|太字」。文字色は$882211。
  表画面のXX,スコアY-5からメインX+マス目*6,スコアY+23へ四角。
  表画面のXX,スコアY-5,145,28へスコアを右,中央で枠内文字描画。

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

*消去数表示
  線色は$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へ四角。

#-----------------------------------------------------------------------
*固定石初期化
  xxとは整数。yyとは整数。
  6
    xx=(回数-1)
    13
      yy=(回数-1)
      固定石¥xx,yy=-1

*消去石初期化
  石消去フラグ=オフ。
  xxとは整数。yyとは整数。
  6
    xx=(回数-1)
    13
      yy=(回数-1)
      消去石¥xx,yy=-1
#-----------------------------------------------------------------------
*ゲームオーバー
  「ゲームオーバー」と言う。
  終了フラグはオン。
  成績記録。
#-----------------------------------------------------------------------

#-----成績表------------------------------------------------------------
*成績記録
  設定ファイル名の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閉じる
#-----ヘルプメニュー----------------------------------------------------
*遊び方
  ダイアログタイトルは「なでこらについて」
  「【いわゆるコラ○スのルール】
  フィールドに上から縦1列3個1組で落ちてくるブロックを、
  左右に動かしたり転させたりしながら、同色同型のものを
  縦・横・斜めに3つ以上揃えるとのブロックが消えます。
  連鎖すると、得られる得点が高くなります。
  左から4列目の上端までブロックがみ上がってしまったら、
  ゲームオーバーです。
  なお、魔法石は出現しませんw

【キー設定】
  ←・→ で左右に動かす。
   ↓  で落下。
  スペースで転。」を言う。
#-----------------------------------------------------------
*バージョン
  ダイアログタイトルは「バージョン情報」
  「{二重カッコ}なでこら{二重カッコ閉じ}{改行} Version 1.00{改行}{改行} by 雪乃☆雫」と言う。
#-----------------------------------------------------------------------

#-----------------------------------------------------------------------
●枠内文字描画({グループ=?}OBJのX,Y,W,HへSをA,Vで)
  xxとは整数。yyとは整数。
  もし、A=左ならば
    xx=X
  違えばもし、A=中央ならば
    xx=X+(W-(Sの文字幅取得))/2
  違えばもし、A=右ならば
    xx=(X+W)-(Sの文字幅取得)
  もし、V=上ならば
    yy=Y
  違えばもし、V=中央ならば
    yy=Y+(H-(Sの文字高さ取得))/2
  違えばもし、V=下ならば
    yy=(Y+H)-(Sの文字高さ取得)
  OBJのxx,yyへSを文字描画。
#-----------------------------------------------------------------------

 どうかな? 一応それっぽく遊べはすると、思うんだけど・・・

hanatai001hanatai0012016/10/12 03:55すごいですね!!
ちゃんと遊べて楽しいです!!

雪乃☆雫雪乃☆雫2016/10/12 18:01>hanatai001さん
 ありがとうございます☆
 遊んで下さったんですね!
 うれし~(≧▽≦)
 もし記事にあげた問題点のほかに、バグってるとか、本家の動作はこうじゃないよ!とかあったら、教えて下さいね~(直すかどうかは不明デスがっ;;;;)

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