iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 24
2
自我挑戰組

一週程式專案挑戰系列 第 24

[專案03]寶石搶地盤(三)六角形地圖

好像又越級打怪,想做一個可以決定地圖大小的遊戲,這樣之後要做類似遊戲就可以引用。

這邊程式切成三段,
分別是設定、建立陣列、輸出地圖。

設定

<!-- index -->
var map= document.getElementById("map");
var mapSize =5;

var mapData={
	empty:0,
	red:3,
	white:3,
	hole:3
};

var mapLen= mapSize*2-1;
var mapArr= new Array(mapLen);
mapData.empty= (9/5)*(3**mapSize)+-(4/5)*((-2)**mapSize);

initMap();
drawMap();

建立陣列
這邊有一個FIXME,
感覺還有更漂亮寫法。

//initMap
function initMap(){
	map.innerHTML="";
	
	let copyArr=[];
	for(let row= 0; row<mapLen; ++row){
		copyArr.push("em");
	}
	for(let col=0; col<mapLen; ++col){
		<!-- FIXME:can be good -->
		let now= mapSize-1;
		if(col<mapSize){
			now= now- col;
		}
		else{
			now= col-4;
		}
		
		mapArr[col]= copyArr.slice(now);
		console.log(col,mapArr[col]);
	}
}

輸出地圖
地圖是以行為主,
第一次碰到有點不知所措。

打算用包裝成一行一行,
再來做位移。

不過這樣串接是錯的,
還在搶修中。

//view

function drawMap(){
	for(let col=0; col<mapLen; ++col){
		map.innerHTML+="<div class=col>"
		
		for(let row=0; row< mapArr[row].length; ++row){
			map.innerHTML+=
			`<div class="poly">
			</div>`;
		}
		
		map.innerHTML+="<div>";
	}
}

上一篇
[專案03]寶石搶地盤(二)六角形板塊數量公式
下一篇
[專案03]寶石搶地盤(四)可自訂地圖大小
系列文
一週程式專案挑戰26

尚未有邦友留言

立即登入留言