前提・実現したいこと
簡略化モデル:
①
maze[
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,1,0],
[0,0,0,0,0]]
において、positionを3,3とする。
②
positionの上下左右2個先の位置について考える(打ち消し線部分)
このモデルでは、北と西は値が0であるという情報がほしい
発生している問題・エラーメッセージ
if文で本来resultに値がはいっているはずなのに、空のままで出力される
該当のソースコード
GoogleAppsScript
1//main.gs 2function main(n) { 3 //初期宣言----------------------------------------- 4 5 n=11; 6 //とりあえずnの値を代入 7 8 var maze = []; 9 var array = []; 10 11 for(var j = 0; j < n; j++) { 12 array.push(0); 13 } 14 //arrayに[0,0,..](0が11個)を代入 15 16 for(var i = 0; i < n; i++) { 17 maze.push(array.slice()); 18 } 19 //mazeに[array,array,...](arrayが11個)を代入 20 21 22 //スタート位置を書き換え----------------------------- 23 24 var start = [random((n - 1) / 2) * 2 + 1, random((n - 1) / 2) * 2 + 1]; 25 //startに[1から9までの奇数,1から9までの奇数]を代入 26 27 maze[start[0]][start[1]] = 1; 28 //2次元配列mazeを書き換え 29 30 var position = [start[0],start[1]]; 31 //現在地を登録 32 33 Logger.log("position:" + position);//position:3,5 34 Logger.log(maze); 35 36 //メインディッシュ--------------------------------- 37 38 var result = check(maze, position); 39 Logger.log(result);//[]空っぽ... 40}
GoogleAppsScript
1//sub.gs 2function random(max) { 3 //0からmax-1までの整数を返却 4 return Math.floor(Math.random() * max); 5} 6 7function check(maze, position) { 8 var result = []; 9 10 if(position[0] - 2 = 1) { //2個先がマップ外かどうか。マップ外(true)なら東側の判定へ 11 } else if(maze[position[0] - 2][position[1]] = 0) { //2個先が0かどうか。0だったらresultに北(便宜上0)をpush 12 result.push(0); 13 } 14 //北側の判定 15 16... // その他の方角の判定 17 18return result;
試したこと
maze[][]に数式を入れるのがだめなのかなと思い、var a = position[0] - 2; maze[a][]のようにしても駄目でした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー