🌸 「なでしこ」
>
🍯 「貯蔵庫」
🍯 なでしこ3貯蔵庫
🌟新規
📒一覧
🔌
🔍検索
🚪ログイン
ログイン
していません。
[
📌文法
] [
🎨命令一覧
]
[編集モード] 15パズル/なでしこ3本の特典 🔒
15パズル(なでしこ本の特典)
プログラム:
(→大)
(→textarea)
(→左右に配置)
### なでしこ3本の特典 ### # [file] ../src/ch5/puzzle15_v2.nako3 # [説明URL] https://nadesi.com/top/go.php?46 データ=[] # ブロックの値 DW=90 # ブロック幅 シャッフル回数=0 # シャッフルの時利用する IM=「」 画像URL=「https://n3s.nadesi.com/images/tokuten/tokuten02.png」 画像URLの画像読んだ時には IM=対象。 初期化処理。 ここまで。 # マウスイベントの処理 描画中キャンバスをマウス押した時には Y=INT(マウスY÷DW) X=INT(マウスX÷DW) [Y,X]のブロック移動。 ステージ描画。 0.1秒後には もし、クリア確認=OKならば、初期化処理。 ここまで。 ここまで ●初期化処理とは ブロック初期化して、番号シャッフル。 ここまで。 ●ブロック初期化とは データ=[] Yを0から3まで繰り返す データ[Y] = [] Xを0から3まで繰り返す データ[Y][X] = 1 + (Y × 4 + X) ここまで。 ここまで。 データ[3][3] = 0 # 空きブロック ここまで。 ●(YXの)ブロック移動とは Y=YX[0]。X=YX[1]。 RY=-1。RX=-1。 上下左右=[[-1,0],[1,0],[0,-1],[0,1]] #空白のブロック位置を探す 上下左右を反復 FY=対象[0] + Y。 FX=対象[1] + X。 もし((FY<0)または(FY>3))ならば、続ける。 もし((FX<0)または(FX>3))ならば、続ける。 V=データ[FY][FX] もし、V=0ならば RY=FY。RX=FX。抜ける。 ここまで ここまで。 もし(RX=-1)ならば、オフで戻る。#見つからなかった場合 # ブロックを入れ替える TMP=データ[Y][X] データ[Y][X]=データ[RY][RX] データ[RY][RX]=TMP それはオン。 ここまで ●番号シャッフルとは # --- (*4) シャッフル回数に0を代入して、番号シャッフル実行。 ここまで。 ●番号シャッフル実行とは もし、シャッフル回数>30ならば、戻る。# --- (*5) オンの間 Y=4の乱数。X=4の乱数。 [Y,X]のブロック移動。 もし、それがオンならば、抜ける。 ここまで。 ステージ描画。 0.1秒後には シャッフル回数=シャッフル回数+1 番号シャッフル実行。 ここまで。 ここまで ●クリア確認とは # --- (*6) Yを0から3まで繰り返す Xを0から3まで繰り返す V=データ[Y][X] もし、V=0ならば、続ける。 もし、V≠(Y×4+X+1)ならば、NGで戻る。 ここまで。 ここまで。 「ゲームクリア」と言う。 それはOK。 ここまで。 ●ステージ描画とは Yを0から3まで繰り返す Xを0から3まで繰り返す XとYにタイル描画。 ここまで。 ここまで。 ここまで。 ●(XとYに)タイル描画とは V=データ[Y][X] - 1 もし(V=-1)ならば、V=15。 SX=DW×(V%4)。SY=DW×INT(V÷4) DX=DW×X。DY=DW×Y もし、V=15ならば 「」へ線色設定。 「#c0c0c0」へ塗り色設定 [DX,DY,DW,DW]へ四角描画。 違えば IMの[SX,SY,DW,DW]を[DX,DY,DW,DW]へ画像部分描画。 「#909090」へ塗り色設定。 「bold 12px serif」に描画フォント設定。 [DX,DY+12]へ(V+1)を文字描画。 ここまで。 ここまで。
▶ 実 行 [F9]
クリア
一時保存
デバッグ
ブレイクポイント:
→ 再開
↓ 一行次へ
キャンバス: 幅
× 高
上書き保存
表示ページ
→直前に実行(または一時保存)した内容を復元
なでしこバージョン: v
素材のアップロード
ログイン
するとファイルをアップロードできます。