Hypertext Markup "index"

Admin User, erstellt 14. März 2024
         
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title editable="nocomment">Example 11</title>
</head>
<!-- Modern Albufeira Prolog Interpreter -->
<!-- Prolog audio -->
<!-- -->
<!-- Warranty & Liability -->
<!-- To the extent permitted by applicable law and unless explicitly -->
<!-- otherwise agreed upon, XLOG Technologies AG makes no warranties -->
<!-- regarding the provided information. XLOG Technologies AG assumes -->
<!-- no liability that any problems might be solved with the information -->
<!-- provided by XLOG Technologies AG. -->
<!-- -->
<!-- Rights & License -->
<!-- All industrial property rights regarding the information - copyright -->
<!-- and patent rights in particular - are the sole property of XLOG -->
<!-- Technologies AG. If the company was not the originator of some -->
<!-- excerpts, XLOG Technologies AG has at least obtained the right to -->
<!-- reproduce, change and translate the information. -->
<!-- -->
<!-- Reproduction is restricted to the whole unaltered document. -->
<!-- Reproduction of the information is only allowed for non-commercial -->
<!-- uses. Selling, giving away or letting of the execution of the -->
<!-- library is prohibited. The library can be distributed as part of -->
<!-- your applications and libraries for execution provided this comment -->
<!-- remains unchanged. -->
<!-- -->
<!-- Restrictions -->
<!-- Only to be distributed with programs that add significant and primary -->
<!-- functionality to the library. Not to be distributed with additional -->
<!-- software intended to replace any components of the library. -->
<!-- -->
<!-- Trademarks -->
<!-- Jekejeke is a registered trademark of XLOG Technologies AG. -->
<body>
<link rel="stylesheet" href="palette.css" type="text/css">
<h1>Example 11: Turtle Graphics</h1>
<p><textarea rows="9" cols="70" id="text" spellcheck="false">
sierpinski(D, 0) :- !, line(D), turn(-pi*2/3), line(D),
turn(-pi*2/3), line(D), turn(pi*4/3).
sierpinski(D, L) :- D1 is D/2, L1 is L-1,
sierpinski(D1, L1), move(D1), sierpinski(D1, L1),
turn(-pi*2/3), move(D1), turn(pi*2/3), sierpinski(D1, L1),
turn(pi*2/3), move(D1), turn(-pi*2/3).
:- begin, sierpinski(400, 7), end.
</textarea></p>
<p><button id="launch" style="padding: 0.5em; color: black" disabled></button></p>
<p style="white-space: pre-wrap; word-break: break-all; font-family: monospace" id="demo"></p>
<script type="module">
import {init, show, post, set_cursor,
consult_async, clear, Compound, perform_async,
} from "../../../01_ciao/lib/player/canned/dogelog.mjs";
let elem2 = document.getElementById("demo");
elem2.innerHTML = "";
set_cursor(elem2);
await perform_async(new Compound("ensure_loaded", ["turtle.p"]));
init();
async function main_async() {
let elem = document.getElementById("launch");
if (elem.innerText === "⏵") {
elem.innerText = "⏹";
elem.style.color = "red";
let text = document.getElementById("text").value;
document.getElementById("demo").innerHTML = "";
let elem2 = document.getElementById("demo");
elem2.innerHTML = "";
set_cursor(elem2);
clear();
try {
await consult_async(text);
} catch (err) {
show(err);
}
elem.disabled = false;
elem.innerText = "⏵";
elem.style.color = "black";
} else {
elem.disabled = true;
post(new Compound("system_error", ["user_abort"]));
}
}
let elem = document.getElementById("launch");
elem.addEventListener("click", main_async);
elem.disabled = false;
</script>
</body>
</html>