作者laechan (揮淚斬馬雲)
看板mud_sanc
標題Re: [wizs] 隨機地圖的生成
時間Sat Nov 24 19:45:23 2018
改寫 javascript 的過程中有三個難題要克服
1.原排版輸出 x-x 圖(這個已解決)
2.random 的使用
3.陣列的初始化以及累加
首先是 random 的部份,剛 try 了一下:
<script type="text/javascript">
document.write(""+Math.random()+"<BR>");
for(i=0;i<10;i++)
document.write(""+parseInt(10*Math.random())+"<BR>");
</script>
輸出結果:
0.6443187190798478
5
9
9
0
9
4
6
4
2
6
也就是說,如果我要 0~9,過往就是 random(10),改寫成
javascript 時就是 parseInt(10*Math.random())。
======
再來是陣列的初始化及累加的部份,剛搜到了以下這篇
http://sweeteason.pixnet.net/blog/post/41263148
它有提到一個東西
JSON.stringify(arr);
我剛 try 了一下:
<script type="text/javascript">
tmps=[];
tmps.push(1);
tmps.push([2,3]);
document.write("sizeof(tmps)="+tmps.length+"<BR>"+
"tmps="+JSON.stringify(tmps)+"<BR>"+
"tmps[1]="+JSON.stringify(tmps[1]));
</script>
輸出結果:
sizeof(tmps)=2
tmps=[1,[2,3]]
tmps[1]=[2,3]
陣列累加單元素、陣列累加陣列都是順利的,陣列的列印也
很順利。
運氣不錯,應該可以玩改寫了。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.106.224
※ 文章網址: https://webptt.com/m.aspx?n=bbs/mud_sanc/M.1543059928.A.3C4.html
今晚的最後一項研究是 tmps-=({xxx}); 以及 tmps1+=({tmps2}) 的
javascript 用法,tmps+= 用的是 push,兩陣列相加用的是 concat
,不過,沒有明顯的 tmps-=({xxx}); 用法。
不過有個東西:
filter : 陣列過濾,透過 filter 的過濾條件返回一個新陣列 (非常好用)
var arr = ["jack", "john", "may", "su", "Ada"];
var arr2 = arr.filter(function (value) {
return value.length > 3; // 這裡可當成 if ... 為 true
});
arr2.join("、");
ANS:
jack、john
模仿上面
tmps = [[1,2],[3,4],[5,6],[3,4]];
假設要把上述陣列的 [3,4] 拿掉,可以這樣寫:
tmps2 = tmps.filter(function(value){
return value!=[3,4];
});
tmps=tmps2;
document.write(JSON.stringify(tmps));
網頁執行結果:
[[1,2],[5,6]]
這樣就沒問題了。
Laechan
※ 編輯: laechan (122.117.106.224), 11/25/2018 22:46:34