/
1076.nako3
133 lines (124 loc) · 3.68 KB
/
1076.nako3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
### [作品情報]
### 掲載URL=https://n3s.nadesi.com/id.php?1076
### タイトル=パズルゲーム
### 作者=nyannko(user_id=0)
### ライセンス=CC0
### 説明=パズルですパクリのため著作権放棄
### 対象バージョン=3.3.18
### URL=
### 種類=wnako
### タグ=
### 更新日時=2022-05-26 14:41:51
###
# -------------------------------
# 15パズルのプログラム
# -------------------------------
データ=[]
DW=90 # ブロック幅
上下左右=[[-1,0],[1,0],[0,-1],[0,1]]
Fステージ=「#nako3_canvas_1」
シャッフル回数=0
初期化処理。
# マウスイベントの処理 --- (*1)
Fステージをマウス押した時には
Y=INT(マウスY÷DW)
X=INT(マウスX÷DW)
[Y,X]のブロック移動。
ブロック描画。
0.1秒後には
クリア確認。
もし、それがオンならば、
初期化処理。
ここまで。
ここまで。
ここまで
●初期化処理とは # --- (*2)
ブロック初期化。
番号シャッフル。
ここまで。
●ブロック初期化とは
データ=[]
Yを0から3まで繰り返す
データ[Y] = []
Xを0から3まで繰り返す
データ[Y][X] = 1 + (Y * 4 + X)
ここまで
ここまで
データ[3][3] = 0 # 空きブロック
ここまで
●(YXの)ブロック移動とは # --- (*3)
Y=YX[0]。X=YX[1]
RY=-1。RX=-1。
#空白のブロック位置を探す
上下左右を反復
FY=対象[0] + Y。
もし((FY<0)または(FY>3))ならば、続ける。
FX=対象[1] + X。
もし((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
番号シャッフルGO
ここまで。
●番号シャッフルGOとは
もし、シャッフル回数>30ならば、戻る。# --- (*5)
オンの間
Y=4の乱数
X=4の乱数
[Y,X]のブロック移動。
もし、それがオンならば、抜ける。
ここまで。
ブロック描画。
0.1秒後には
シャッフル回数=シャッフル回数+1
番号シャッフルGO
ここまで。
ここまで
●クリア確認とは # --- (*6)
Yを0から3まで繰り返す
Xを0から3まで繰り返す
V=データ[Y][X]
もし、V=0ならば、続ける。
もし、V≠(Y*4+X+1)ならば、オフで戻る。
ここまで
ここまで
「ゲームクリア」と言う。
オンで戻る。
ここまで。
●ブロック描画とは
[0,0,DW*4,DW*4]の描画クリア。
DW2=DW÷2
黒色に線色設定
「40px Aria」に描画フォント設定
Yを0から3まで繰り返す
Xを0から3まで繰り返す
DX=X*DW
DY=Y*DW
V=データ[Y][X]
もし、V > 0ならば
「#733」に塗色設定。
[DX, DY, DW, DW]へ四角描画。
「#baa」に塗色設定。
[DX+DW2, DY+DW2]へ(DW2-3)の円描画。
「#333」に塗色設定。
[DX+17, DY+60]に(Vを2でゼロ埋め)を文字描画。
違えば
「#999」に塗色設定。
[DX, DY, DW, DW]へ四角描画。
ここまで。
ここまで
ここまで
ここまで。