{"id":5060,"date":"2025-04-03T06:32:46","date_gmt":"2025-04-03T06:32:46","guid":{"rendered":"https:\/\/sv-turm-kamp-lintfort.com\/?page_id=5060"},"modified":"2025-04-03T06:32:46","modified_gmt":"2025-04-03T06:32:46","slug":"5060-2","status":"publish","type":"page","link":"https:\/\/sv-turm-kamp-lintfort.com\/?page_id=5060","title":{"rendered":""},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"de\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <title>DWZ-Rechner<\/title>\n  <style>\n    body { font-family: sans-serif; max-width: 600px; margin: 20px auto; }\n    fieldset { margin-bottom: 1.5em; }\n    legend { font-weight: bold; }\n    label { display: block; margin: 0.5em 0; }\n    .result span { font-weight: bold; }\n  <\/style>\n<\/head>\n<body>\n\n  <h2>DWZ-Rechner<\/h2>\n  <!-- Formularfelder f\u00fcr Spieler 1 -->\n  <fieldset>\n    <legend>Spieler 1<\/legend>\n    <label>Name (optional):\n      <input type=\"text\" id=\"name1\" placeholder=\"Name Spieler 1 (optional)\" \/>\n    <\/label>\n    <label>DWZ:\n      <input type=\"number\" id=\"dwz1\" placeholder=\"DWZ Spieler 1\" min=\"100\" required \/>\n    <\/label>\n    <label>Alter:\n      <input type=\"number\" id=\"age1\" placeholder=\"Alter Spieler 1\" min=\"1\" required \/>\n    <\/label>\n  <\/fieldset>\n\n  <!-- Formularfelder f\u00fcr Spieler 2 -->\n  <fieldset>\n    <legend>Spieler 2<\/legend>\n    <label>Name (optional):\n      <input type=\"text\" id=\"name2\" placeholder=\"Name Spieler 2 (optional)\" \/>\n    <\/label>\n    <label>DWZ:\n      <input type=\"number\" id=\"dwz2\" placeholder=\"DWZ Spieler 2\" min=\"100\" required \/>\n    <\/label>\n    <label>Alter:\n      <input type=\"number\" id=\"age2\" placeholder=\"Alter Spieler 2\" min=\"1\" required \/>\n    <\/label>\n  <\/fieldset>\n\n  <!-- Partieergebnis Auswahl -->\n  <fieldset>\n    <legend>Partieergebnis<\/legend>\n    <label>\n      <input type=\"radio\" name=\"result\" value=\"1\" checked \/>\n      Sieg Spieler 1 (1-0)\n    <\/label>\n    <label>\n      <input type=\"radio\" name=\"result\" value=\"0.5\" \/>\n      Remis (0,5 &#8211; 0,5)\n    <\/label>\n    <label>\n      <input type=\"radio\" name=\"result\" value=\"0\" \/>\n      Sieg Spieler 2 (0-1)\n    <\/label>\n  <\/fieldset>\n\n  <!-- Berechnungsbutton -->\n  <button type=\"button\" onclick=\"berechneDWZ()\">Berechnen<\/button>\n\n  <!-- Ausgabe der neuen DWZ -->\n  <fieldset class=\"result\">\n    <legend>Ergebnis<\/legend>\n    <p><span id=\"out1\">Spieler\u00a01 neue DWZ:<\/span> <span id=\"new1\"><\/span><\/p>\n    <p><span id=\"out2\">Spieler\u00a02 neue DWZ:<\/span> <span id=\"new2\"><\/span><\/p>\n  <\/fieldset>\n\n  <script>\n    function berechneDWZ() {\n      \/\/ Eingabewerte aus den Feldern holen und in passende Typen konvertieren\n      const name1 = document.getElementById(\"name1\").value.trim();\n      const name2 = document.getElementById(\"name2\").value.trim();\n      const R0_1 = Number(document.getElementById(\"dwz1\").value);\n      const R0_2 = Number(document.getElementById(\"dwz2\").value);\n      const age1 = Number(document.getElementById(\"age1\").value);\n      const age2 = Number(document.getElementById(\"age2\").value);\n      \/\/ Ergebnis des Spiels auslesen (Wert f\u00fcr Spieler 1, 1\/0.5\/0)\n      const resultElems = document.getElementsByName(\"result\");\n      let W1;\n      for (const r of resultElems) {\n        if (r.checked) { W1 = Number(r.value); break; }\n      }\n      const W2 = 1 - W1;  \/\/ Gegenpunkte f\u00fcr Spieler 2 (da Zweierduell)\n\n      \/\/ Hilfsfunktion: Gewinnerwartung P(D) berechnen aus DWZ-Differenz\n      function erwartungswert(Ra, Rb) {\n        const D = Ra - Rb;\n        const P = 1 \/ (1 + Math.pow(10, -D \/ 400));\n        return P;\n      }\n      const We1 = erwartungswert(R0_1, R0_2);   \/\/ Erwartete Punkte f\u00fcr Spieler 1 gegen Spieler 2\n      const We2 = erwartungswert(R0_2, R0_1);   \/\/ Erwartete Punkte f\u00fcr Spieler 2 gegen Spieler 1\n      \/\/ (We2 k\u00f6nnte auch als 1 - We1 berechnet werden, da es ein Zwei-Spieler-Match ist)\n\n      \/\/ Hilfsfunktion zur Berechnung des Entwicklungskoeffizienten E f\u00fcr einen Spieler\n      function berechneE(R0, age, W, We) {\n        \/\/ Grundwert E0:\n        const J = (age <= 20 ? 5 : (age <= 25 ? 10 : 15));\n        const E0 = Math.pow(R0 \/ 1000, 4) + J;\n        \/\/ Beschleunigungsfaktor fB (nur f\u00fcr Jugendliche <=20 mit W >= We)\n        let fB = 1;\n        if (age <= 20 &#038;&#038; W >= We) {\n          fB = R0 \/ 2000;\n          if (fB < 0.5) fB = 0.5;\n          if (fB > 1.0) fB = 1.0;\n        }\n        \/\/ Bremszuschlag SBr (f\u00fcr R0 < 1300 und schlechtes Ergebnis W < We)\n        let SBr = 0;\n        if (R0 < 1300 &#038;&#038; W < We) {\n          SBr = Math.exp((1300 - R0) \/ 150) - 1;\n        }\n        \/\/ E berechnen und runden\n        let E = E0 * fB + SBr;\n        E = Math.round(E);\n        \/\/ Grenzen f\u00fcr E anwenden: mindestens 5\n        if (E < 5) E = 5;\n        \/\/ Obergrenze: falls SBr=0 (normaler Fall), max 30 (f\u00fcr etablierte Spieler)\n        \/\/ (Annahme: etablierter Spieler, Index > 5, daher 30. Bei Index <=5 w\u00e4re 5*Index die Grenze.)\n        if (SBr === 0 &#038;&#038; E > 30) {\n          E = 30;\n        }\n        \/\/ Falls SBr > 0, begrenzen auf 150\n        if (SBr > 0 && E > 150) {\n          E = 150;\n        }\n        return E;\n      }\n\n      const E1 = berechneE(R0_1, age1, W1, We1);\n      const E2 = berechneE(R0_2, age2, W2, We2);\n\n      \/\/ \u00c4nderungsfaktor K = 800 \/ (E + n), hier n = 1 (eine Partie)\n      const K1 = 800 \/ (E1 + 1);\n      const K2 = 800 \/ (E2 + 1);\n      \/\/ Neue DWZ berechnen\n      let Rn1 = R0_1 + K1 * (W1 - We1);\n      let Rn2 = R0_2 + K2 * (W2 - We2);\n      \/\/ Runden der neuen DWZ auf ganze Zahlen\n      Rn1 = Math.round(Rn1);\n      Rn2 = Math.round(Rn2);\n\n      \/\/ Ausgabe vorbereiten (Name verwenden falls angegeben, sonst \"Spieler 1\/2\")\n      const label1 = name1 ? name1 + \" neue DWZ:\" : \"Spieler\u00a01 neue DWZ:\";\n      const label2 = name2 ? name2 + \" neue DWZ:\" : \"Spieler\u00a02 neue DWZ:\";\n      document.getElementById(\"out1\").innerText = label1;\n      document.getElementById(\"out2\").innerText = label2;\n      document.getElementById(\"new1\").innerText = Rn1;\n      document.getElementById(\"new2\").innerText = Rn2;\n    }\n  <\/script>\n\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>DWZ-Rechner DWZ-Rechner Spieler 1 Name (optional): DWZ: Alter: Spieler 2 Name (optional): DWZ: Alter: Partieergebnis Sieg Spieler 1 (1-0) Remis (0,5 &#8211; 0,5) Sieg Spieler 2 (0-1) Berechnen Ergebnis Spieler\u00a01 neue DWZ: Spieler\u00a02 neue DWZ:<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-5060","page","type-page","status-publish","hentry"],"blocksy_meta":[],"acf":[],"_links":{"self":[{"href":"https:\/\/sv-turm-kamp-lintfort.com\/index.php?rest_route=\/wp\/v2\/pages\/5060","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sv-turm-kamp-lintfort.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sv-turm-kamp-lintfort.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sv-turm-kamp-lintfort.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sv-turm-kamp-lintfort.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5060"}],"version-history":[{"count":1,"href":"https:\/\/sv-turm-kamp-lintfort.com\/index.php?rest_route=\/wp\/v2\/pages\/5060\/revisions"}],"predecessor-version":[{"id":5061,"href":"https:\/\/sv-turm-kamp-lintfort.com\/index.php?rest_route=\/wp\/v2\/pages\/5060\/revisions\/5061"}],"wp:attachment":[{"href":"https:\/\/sv-turm-kamp-lintfort.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5060"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}