Skip to content

Commit 3bf0731

Browse files
committed
時には諦めも肝心(外部ファイルの読み込み)
外部ファイルの読み込みを再実装
1 parent 11d73b7 commit 3bf0731

File tree

3 files changed

+30
-23
lines changed

3 files changed

+30
-23
lines changed

Data/Stage/1.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export default {
2+
"size":{
3+
"Height" : 10,
4+
"Width" : 10
5+
},
6+
"target":{
7+
"hand":15
8+
}
9+
};

Script/script.js

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,17 @@ const [BASE_SCORE,SCORE_EXPONENT]=[100,1.5];
44
const ANIM_SPEED=100;
55
const SHORTEST_CHAIN=3;
66
const MAIN_BOARD = document.querySelector("#puz_board");
7+
const DATALINK = "../Data/Stage/1.js";
78
// SECTOR_2:変数群
8-
let chain_now
9-
let chainable=false;
9+
let [chain_now,chainable]=[false,false];
1010
let chain_info={color : null,count : 0};
1111
let score=0;
12-
let hand=0;
1312
let chain_yx =new Array();//[i].(x | y)
1413
let adj_list = new Array();//[i].(y | x)
1514
let puz_board=new Array();// [y][x].(obj | field).(type | power)
1615
//SECTOR_2.5:準const変数群
1716
let PUZ_BOARD_BONE=new Array();
18-
let [HEIGHT,WIDTH]=[0,0];
17+
let DATA={};
1918
// SECTOR_3:関数マニュアル
2019
// fallable(obj_type) : 該当オブジェクトが落下物か確認
2120
// is_adj_break(obj_type) : 該当オブジェクトがadj_breakを持つか確認
@@ -36,24 +35,22 @@ function update_cell(y,x){
3635
PUZ_BOARD_BONE[y][x].querySelector("img.field").src = 'Pictures/Fields/'+puz_board[y][x].field.type+'.svg'
3736
}
3837
function update_display(){
39-
for(let i=0;i<HEIGHT;i++)for(let j=0;j<WIDTH;j++)update_cell(i,j);
40-
document.querySelector("#puz_info").innerText = "Score : "+score+" Hand : "+hand;
38+
for(let i=0;i<DATA.size.Height;i++)for(let j=0;j<DATA.size.Width;j++)update_cell(i,j);
39+
document.querySelector("#puz_info").innerText = "Score : "+score+" Hand : "+DATA.target.hand;
4140
}
4241
function obj_erase(y,x,isobj=true){
4342
const TARGET = isobj?puz_board[y][x].obj:puz_board[y][x].field;
4443
[TARGET.type,TARGET.power] = [0,0];
4544
update_cell(y,x);
4645
}
4746
function load_board(){
48-
[HEIGHT,WIDTH]=[10,10];
49-
hand=10;
50-
puz_board=new Array(HEIGHT).fill().map(_=>Array(WIDTH).fill().map(_=>({obj : {type : 0,power : 0},field : {type : 0,power : 0}})));
51-
PUZ_BOARD_BONE=new Array(HEIGHT).fill().map(_=>Array(WIDTH));
47+
puz_board=new Array(DATA.size.Height).fill().map(_=>Array(DATA.size.Width).fill().map(_=>({obj : {type : 0,power : 0},field : {type : 0,power : 0}})));
48+
PUZ_BOARD_BONE=new Array(DATA.size.Height).fill().map(_=>Array(DATA.size.Width));
5249
MAIN_BOARD.innerHTML = null;
53-
for (let i = 0; i < HEIGHT; i++) {
50+
for (let i = 0; i < DATA.size.Height; i++) {
5451
const TR = document.createElement("tr");
5552
TR.classList.add("puz_board_tr");
56-
for (let j = 0; j < WIDTH; j++) {
53+
for (let j = 0; j < DATA.size.Width; j++) {
5754
const TD = document.createElement("td");
5855
TD.classList.add("inboard");
5956
TD.onmouseover = onmouce_cell;
@@ -65,8 +62,8 @@ function load_board(){
6562
}
6663
MAIN_BOARD.appendChild(TR);
6764
}
68-
for(let i=0;i < HEIGHT;i++){
69-
for(let j=0;j < WIDTH;j++){
65+
for(let i=0;i < DATA.size.Height;i++){
66+
for(let j=0;j < DATA.size.Width;j++){
7067
if(i==5){
7168
puz_board[i][j].obj.type=-(j%3);
7269
}else if(i>6){
@@ -102,12 +99,12 @@ function falling_orb(){
10299
let fallseedtimer = null;
103100
function fall_orb_seed(){
104101
let refall=false;
105-
for(let i=HEIGHT-1;i>0;i--)/*性質上、下から探索したほうがいい*/{
106-
for(let j=0;j<WIDTH;j++)refall=fall_obj(i-1,j,i,j)||refall;//C-shift
107-
for(let j=1;j<WIDTH;j++)refall=fall_obj(i-1,j,i,j-1)||refall;//L-shift
108-
for(let j=0;j<WIDTH-1;j++)refall=fall_obj(i-1,j,i,j+1)||refall;//R-shift
102+
for(let i=DATA.size.Height-1;i>0;i--)/*性質上、下から探索したほうがいい*/{
103+
for(let j=0;j<DATA.size.Width;j++)refall=fall_obj(i-1,j,i,j)||refall;//C-shift
104+
for(let j=1;j<DATA.size.Width;j++)refall=fall_obj(i-1,j,i,j-1)||refall;//L-shift
105+
for(let j=0;j<DATA.size.Width-1;j++)refall=fall_obj(i-1,j,i,j+1)||refall;//R-shift
109106
}
110-
for(let i=0;i<WIDTH;i++){
107+
for(let i=0;i<DATA.size.Width;i++){
111108
if(puz_board[0][i].obj.type==0){
112109
puz_board[0][i].obj={type : ~~(Math.random()*ORB_COLORS)+1,power : 1};
113110
refall=true;
@@ -142,7 +139,7 @@ function chain_toggler(cell){
142139
chain_now=false;
143140
if(!(chain_info.count<SHORTEST_CHAIN)){
144141
score+=~~(chain_info.count**SCORE_EXPONENT*BASE_SCORE);
145-
hand--;
142+
DATA.target.hand--;
146143
chain_yx.forEach(function(pos){
147144
break_obj(pos.y,pos.x,true);
148145
for(let dy=-1;dy<=1;dy++){
@@ -165,7 +162,7 @@ function chain_toggler(cell){
165162
});
166163
chain_info={count : 0,color : null};
167164
adj_list=chain_yx=[];
168-
if(hand<=0){
165+
if(DATA.target.hand<=0){
169166
alert("ゲームオーバー! スコアは"+score+"でした!");
170167
board_init();
171168
}
@@ -177,13 +174,14 @@ function chain_toggler(cell){
177174
}
178175
}
179176
function board_init(){
177+
console.log(DATA);
180178
load_board();
181179
falling_orb();
182180
score=0;
183181
adj_list=chain_yx=[];
184182
update_display();
185183
}
186-
board_init();
184+
import(DATALINK).then(x => {DATA = x.default ; board_init()});
187185
//1~:オーブ
188186
//0:無空間
189187
//~-1:妨害ブロック

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
<p id="puz_info">Score : 0 Hand : ??</p>
1313
<table class="board" id="puz_board"></table>
1414
</div>
15-
<script src="Script/script.js"></script>
15+
<script src="Script/script.js" type="module"></script>
1616
</body>
1717
</html>

0 commit comments

Comments
 (0)