Topographische Karten Solver
löst topographische rätsel in freewar, bei fragen bei Baum (w1) melden
HTML
<html>
<head>
</head>
<body>
Topographische Kartensolver von Baum:<br> Nur ungerade Zahlen bitte angeben, Felder sind per klick zwischen Berg und Unbekannt änderbar.<br> Wasser und sonstige Felder wie der Vulkan werden nicht berücksichtigt. <br>Wer zu doof ist die nicht zu finden ist
selbst schuld ¯\_(ツ)_/¯. <br>
<input placeholder="größe" id="size"><button onclick="generate()">
generiere karte
</button>
<button onclick="getpositions()">
lößbare positionen
</button>
<div id="output">
</div>
<table id="maptable" style="border-collapse: collapse;">
</table>
</body>
</html>
JavaScript
function generate() {
document.getElementById("maptable").innerHTML = "";
var amt = parseInt(document.getElementById("size").value)
if (isNaN(amt) || amt % 2 == 0) {
alert("nur ungerade zahlen bitte!");
return;
}
for (var i = 0; i < amt; i++) {
var newtr = document.createElement("tr");
newtr.style = 'padding: 0px; margin: 0px; border: none;line-height:0;'
document.getElementById("maptable").appendChild(newtr)
for (var j = 0; j < amt; j++) {
var img = document.createElement("img");
img.src = 'http://www.welt1.freewar.de/freewar/images/map/std.jpg'
img.onclick = handleimage;
newtr.appendChild(img)
}
}
}
function getpositions() {
var maparr = []
var trs = document.getElementById("maptable").getElementsByTagName("tr");
for (let tr of trs) {
var trarr = []
var trimgs = tr.getElementsByTagName("img");
for (let img of trimgs) {
if (img.src == 'http://www.welt1.freewar.de/freewar/images/map/std.jpg') {
trarr.push(0);
} else {
trarr.push(1);
}
}
maparr.push(trarr)
}
var positions = chechfield(maparr);
document.getElementById("output").innerHTML = "";
var out = "Folgene Positionen wurden gefunden:";
for (let posout of positions) {
out += "\n" + posout;
}
document.getElementById("output").innerText = out;
}
function handleimage() {
if (this.src == 'http://www.welt1.freewar.de/freewar/images/map/std.jpg') {
this.src = 'http://welt1.freewar.de/freewar/images/map/47_Ins.jpg'
} else {
this.src = 'http://www.welt1.freewar.de/freewar/images/map/std.jpg'
}
}
function chechfield(arr) {
foundstuff = [];
var middley = Math.floor(arr.length / 2)
var middlex = Math.floor(arr[0].length / 2)
for (let pos of fields) {
var found = true;
let xko = parseInt(pos.split(",")[0])
let yko = parseInt(pos.split(",")[1])
for (var y = 0; y < arr.length; y++) {
for (var x = 0; x < arr[0].length; x++) {
if...