사용자:Jinhoftyu/백괴던전.js: 두 판 사이의 차이
편집 요약 없음 |
편집 요약 없음 |
||
(같은 사용자의 중간 판 14개는 보이지 않습니다) | |||
8번째 줄: | 8번째 줄: | ||
for (var y = 0; y < mapY; y++) { | for (var y = 0; y < mapY; y++) { | ||
for (var x = 0; x < mapX; x++) { | for (var x = 0; x < mapX; x++) { | ||
if (y == 0 || y == mapY - 1) { | if (y == 0 || y == mapY - 1 || x == 0 || x == mapX - 1) { | ||
base[y][x] = "#"; | base[y][x] = "#"; | ||
} else if (x == 1 && y == 1) { | } else if (x == 1 && y == 1) { | ||
23번째 줄: | 23번째 줄: | ||
var item = []; | var item = []; | ||
var log = ""; | var log = ""; | ||
var console = document.getElementById("console"); | |||
function refLog() { | function refLog() { | ||
var size = 0; | var size = 0; | ||
for (var i = 0; i < log.length; i++) { | for (var i = 0; i < log.length; i++) { | ||
if (log.charAt(i) == " | if (log.charAt(i) == "<br />") { | ||
size++; | size++; | ||
} | } | ||
} | } | ||
if (size > 3) { | if (size > 3) { | ||
log = log.substring(log.indexOf("<br />") + 1); | |||
} | } | ||
console.innerHTML = log; | |||
stats.innerHTML = temp2; | |||
} | } | ||
var map = document.getElementById("map"); | var map = document.getElementById("map"); | ||
66번째 줄: | 68번째 줄: | ||
var pw = 10; | var pw = 10; | ||
var maxpw = 10; | var maxpw = 10; | ||
var temp2 = name + " the " + role + " t:" + time + " | var temp2 = name + " the " + role + " t:" + time + "<br />Dlvl:" + level + " Lv:" + xl + " HP:" + hp + "/" + maxhp + " Pw:" + pw + "/" + maxpw; | ||
stats.innerHTML = temp2; | stats.innerHTML = temp2; | ||
document.addEventListener('keydown', function(event) { | document.addEventListener('keydown', function(event) { | ||
if (event.code === ' | if (event.code === 'KeyD') { | ||
move(1, 0); | |||
} | } | ||
if (event.code === ' | if (event.code === 'KeyA') { | ||
move(-1, 0); | |||
} | } | ||
if (event.code === ' | if (event.code === 'KeyW') { | ||
move(0, -1); | |||
} | } | ||
if (event.code === ' | 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(); | 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(); | mapGen(); | ||
refreshMap(); | refreshMap(); | ||
refLog(); |
2023년 10월 26일 (목) 00:23 기준 최신판
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();