사용자:Jinhoftyu/백괴던전: 두 판 사이의 차이
편집 요약 없음 |
편집 요약 없음 |
||
10번째 줄: | 10번째 줄: | ||
width: calc(100% - 12px); | width: calc(100% - 12px); | ||
border: 1px solid black; | border: 1px solid black; | ||
padding: | padding: 5px; | ||
} | } | ||
#notice { | |||
background: black; | |||
color: white; | |||
font-size: 16px; | |||
font-family: monospace; | |||
padding: 0.5em; | |||
} | |||
}} | }} | ||
<span style="font-family:'Source Code Pro', monospace"> | <span style="font-family:'Source Code Pro', monospace"> | ||
<span id="map"></span> | <span id="map"></span> | ||
<span id="stats"></span> | <span id="stats"></span> |
2023년 10월 21일 (토) 21:14 판
var mapX = 40; var mapY = 10; var base = new Array(mapY); for (var i = 0; i < base.length; i++) { base[i] = new Array(mapX); } function mapGen() { for (var y = 0; y < mapY; y++) { for (var x = 0; x < mapX; x++) { if (y == 0 || y == mapY - 1 || x == 0 || x == mapX - 1) { base[y][x] = "#"; } else if (x == 1 && y == 1) { base[y][x] = "<"; } else if (x == mapX - 2 && y == mapY - 2) { base[y][x] = ">"; } else { base[y][x] = "."; } } } } var entity = []; var item = []; var log = ""; var console = document.getElementById("console"); function refLog() { var size = 0; for (var i = 0; i < log.length; i++) { if (log.charAt(i) == "<br />") { size++; } } if (size > 3) { log = log.substring(log.indexOf("<br />") + 1); } console.innerHTML = log; stats.innerHTML = temp2; } var map = document.getElementById("map"); var plx = 1; var ply = 1; function refreshMap() { var temp = ""; for (var y = 0; y < mapY; y++) { for (var x = 0; x < mapX; x++) { var floor = base[y][x]; var s = " "; if (floor != "\0") { s = floor; } if (plx == x && ply == y) { s = "@"; } temp += s; } temp += "<br />"; } map.innerHTML = temp; } var stats = document.getElementById("stats"); var name = "Jinhoftyu"; var role = "Wizard"; var time = 0; var level = 1; var xl = 1; var hp = 15; var maxhp = 15; var pw = 10; var maxpw = 10; var temp2 = name + " the " + role + " t:" + time + "<br />Dlvl:" + level + " Lv:" + xl + " HP:" + hp + "/" + maxhp + " Pw:" + pw + "/" + maxpw; stats.innerHTML = temp2; document.addEventListener('keydown', function(event) { if (event.code === 'KeyD') { move(1, 0); } if (event.code === 'KeyA') { move(-1, 0); } if (event.code === 'KeyW') { move(0, -1); } if (event.code === 'KeyS') { move(0, 1); } }); function move(dx, dy) { if (base[ply + dy][plx + dx] != '#') { plx += dx; ply += dy; var floor = base[ply][plx]; if (floor != '.' && floor != '\0') { log += "You are standing in " + floorDes(floor) + ".<br />"; } turn(); } } function turn() { time++; refreshMap(); refLog(); } function floorDes(c) { var s; switch (c) { case "<": s = "staircase leading upward"; break; case ">": s = "staircase leading downward"; break; default: s = "nothing"; } return s; } mapGen(); refreshMap(); refLog();