Advertisement
Guest User

Untitled

a guest
Nov 28th, 2024
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 10.43 KB | None | 0 0
  1. <html>
  2.  
  3.     <head>
  4.  
  5.         <style>
  6.             body {
  7.                 /*background-image: url('1_bg1.gif');*/
  8.                 background-color: rgb(110, 110, 110);
  9.                 background-repeat: repeat;
  10.                 image-rendering: pixelated;
  11.  
  12.                 color: #ffee30;
  13.                 font-size: 160%;
  14.                 font-family: 'Times New Roman', Times, serif;
  15.             }
  16.  
  17.             #maintable {
  18.                 width: 100%;
  19.                 height: auto;
  20.             }
  21.  
  22.             #maintable,
  23.             #maintable tr,
  24.             #maintable td
  25.             {
  26.                 border: 1px solid #ffee30;
  27.                 border-collapse: collapse;
  28.                 /*text-align: center;*/
  29.             }
  30.  
  31.             #playfield {
  32.                 width: 67%;
  33.                 text-align: center;
  34.             }
  35.         </style>
  36.  
  37.         <style>
  38.             .dropbox {
  39.                 width: 24px;
  40.                 height: 24px;
  41.                 padding: 10px;
  42.                 border: 0px solid #aaaaaa;
  43.                 text-align: center;
  44.             }
  45.  
  46.             .opcard {
  47.                 cursor: grab;
  48.                 font-weight: bold;
  49.                 font-size: 150%;
  50.                 margin: auto;
  51.             }
  52.  
  53.             .number {
  54.                 padding-left: 15px;
  55.                 padding-right: 15px;
  56.                 margin: auto;
  57.             }
  58.  
  59.             #game,
  60.             #game tr,
  61.             #game td
  62.             {
  63.                 /*border: 1px solid #ffee30;*/
  64.                 border-collapse: collapse;
  65.                 text-align: center;
  66.                 margin: auto;
  67.             }
  68.  
  69.            
  70.             #game tr,
  71.             #game td {
  72.                 border: 1px solid #ffee30;
  73.                  /*border-collapse: collapse;*/
  74.             }
  75.            
  76.  
  77.  
  78.             #stacks,
  79.             #stacks tr,
  80.             #stacks td
  81.             {
  82.                 border: 1px solid #ffee30;
  83.                 border-collapse: collapse;
  84.                 /*text-align: center;*/
  85.             }
  86.  
  87.            
  88.         </style>
  89.  
  90.     </head>
  91.  
  92.  
  93.     <body>
  94.  
  95.         <!--back button-->
  96.         <div>
  97.             <p onclick="go_back()" style="text-decoration: none; color: #ffee30; margin: 0px; cursor:pointer; position: absolute;">Zurück</p>
  98.             <script>
  99.                 function go_back() {
  100.                   parent.document.getElementById("frame").src = "1.html";
  101.                 }
  102.             </script>
  103.         </div>
  104.        
  105.  
  106.         <!-- title -->
  107.         <h2 style="text-align: center; text-decoration: underline;">
  108.             <p style="text-decoration: none; color: #ffee30;">Das Zahlenspiel!</p>
  109.         </h2>
  110.  
  111.  
  112.         <!-- page -->
  113.         <table id="maintable">
  114.             <tr id="toprow">
  115.  
  116.                 <td id="playfield">
  117.  
  118.                     <table id="game">
  119.                         <br>
  120.  
  121.                         <tr>
  122.                             <td style="border-style: dashed !important;">
  123.                                 <div id="box0" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)"></div>
  124.                             </td>
  125.  
  126.                             <td>
  127.                                 <h1 class="number">1</h1>
  128.                             </td>
  129.  
  130.                             <td>
  131.                                 <div id="box1" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)"></div>
  132.                             </td>
  133.  
  134.                             <td>
  135.                                 <h1 class="number">1</h1>
  136.                             </td>
  137.  
  138.                             <td>
  139.                                 <div id="box2" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)"></div>
  140.                             </td>
  141.  
  142.                             <td>
  143.                                 <h1 class="number">1</h1>
  144.                             </td>
  145.  
  146.                             <td>
  147.                                 <div id="box3" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)"></div>
  148.                             </td>
  149.  
  150.                             <td>
  151.                                 <h1 class="number">1</h1>
  152.                             </td>
  153.  
  154.                             <td>
  155.                                 <div id="box4" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)"></div>
  156.                             </td>
  157.  
  158.                             <td style="border-style: hidden; border-left-style: solid;">
  159.                                 <h1 class="number">=</h1>
  160.                             </td>
  161.  
  162.                         </tr>
  163.                     </table>
  164.                    
  165.                     <br>
  166.  
  167.                     <table id="stacks">
  168.                         <tr>
  169.                             <td>
  170.                                 <div id="stack_plus" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)">
  171.                                     <!-- <p id="card1" class="opcard" draggable="true" ondragstart="dragpoint(event)"> + </p> -->
  172.                                 </div>
  173.                             </td>
  174.                             <td>
  175.                                 <div id="stack_minus" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)">
  176.                                 </div>
  177.                             </td>
  178.                             <td>
  179.                                 <div id="stack_mal" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)">
  180.                                 </div>
  181.                             </td>
  182.                             <td>
  183.                                 <div id="stack_geteilt" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)">
  184.                                 </div>
  185.                             </td>
  186.                             <td>
  187.                                 <div id="stack_klammerauf" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)">
  188.                                 </div>
  189.                             </td>
  190.                             <td>
  191.                                 <div id="stack_klammerzu" class="dropbox" ondrop="droppoint(event)" ondragover="allowDropOption(event)">
  192.                                 </div>
  193.                             </td>
  194.                         </tr>
  195.  
  196.                     </table>
  197.  
  198.                    
  199.                 </td>
  200.  
  201.  
  202.                 <td id="rightwing" rowspan="2">
  203.                     a
  204.                 </td>
  205.  
  206.             </tr>
  207.  
  208.  
  209.             <tr id="bottomrow">
  210.  
  211.                 <td id="bottomfield">
  212.                     a
  213.                     <p>
  214.                         <la-tex>
  215.                             a+b
  216.                         </la-tex>
  217.                     </p>
  218.                 </td>
  219.  
  220.             </tr>
  221.  
  222.         </table>
  223.  
  224.  
  225.  
  226.     </body>
  227.  
  228.     <script>
  229.         function droppoint(event) {
  230.             // Get id of dropped P
  231.             let data = event.dataTransfer.getData("id")
  232.  
  233.             // Only remove dragged card if target is stack
  234.             if (event.target.nodeName == "P") {
  235.                 if (event.target.parentNode.id.startsWith("stack")) {
  236.                     document.getElementById(data).remove()
  237.                     fill_stacks()
  238.                     return
  239.                 }
  240.             } else if (event.target.id.startsWith("stack")) {
  241.                 document.getElementById(data).remove()
  242.                 fill_stacks()
  243.                 return
  244.             }
  245.  
  246.             // Fill box
  247.             if (event.target.nodeName == "P") {
  248.                 // if box is filled so user dropped on P node
  249.                 event.target.parentNode.appendChild(document.getElementById(data))
  250.                 event.target.remove()
  251.             } else {
  252.                 // if box is empty or user dropped on filled box edge (node will be DIV)
  253.                 while (event.target.firstChild) {
  254.                     event.target.removeChild( event.target.firstChild )
  255.                 }
  256.                 event.target.appendChild(document.getElementById(data))
  257.             }
  258.            
  259.             event.preventDefault()
  260.             fill_stacks()
  261.         }
  262.  
  263.         function allowDropOption(event) {
  264.             event.preventDefault()
  265.         }
  266.  
  267.         function dragpoint(event) {
  268.             event.dataTransfer.setData("id", event.target.id)
  269.         }
  270.  
  271.         const zeichen = {
  272.             "":""
  273.         }
  274.  
  275.         const operatoren = {
  276.             "stack_plus":"+",
  277.             "stack_minus":"−",
  278.             "stack_mal":"⋅",
  279.             "stack_geteilt":":",
  280.             "stack_klammerauf":"(",
  281.             "stack_klammerzu":")"
  282.         }
  283.  
  284.         const stacks = {
  285.             "stack_plus":document.getElementById("stack_plus"),
  286.             "stack_minus":document.getElementById("stack_minus"),
  287.             "stack_mal":document.getElementById("stack_mal"),
  288.             "stack_geteilt":document.getElementById("stack_geteilt"),
  289.             "stack_klammerauf":document.getElementById("stack_klammerauf"),
  290.             "stack_klammerzu":document.getElementById("stack_klammerzu")
  291.         }
  292.  
  293.  
  294.         function fill_stacks() {
  295.  
  296.             for (var stackname in stacks) {
  297.                 stack = stacks[stackname]
  298.                 console.log(stacks)
  299.  
  300.                 // Skip stack if has child
  301.                 if (stack.firstElementChild) {
  302.                     continue
  303.                 }
  304.  
  305.                 // Clear stack
  306.                 while (stack.firstChild) {
  307.                     stack.removeChild(stack.firstChild)
  308.                 }
  309.                 // New card
  310.                 var card = document.createElement('p')
  311.                 //var tex = document.createElement('la-tex')
  312.                 //card.appendChild(tex)
  313.                 card.id = crypto.randomUUID()
  314.                 card.textContent = operatoren[stackname]
  315.                 card.className = "opcard"
  316.                 //tex.style = "margin: auto;"
  317.                 card.draggable = true
  318.                 card.setAttribute("ondragstart", 'dragpoint(event)')
  319.                 card.setAttribute("data-operator", stackname.replace("stack_",""))
  320.                 stack.appendChild(card)
  321.             }
  322.         }
  323.  
  324.     </script>
  325.  
  326.     <script>
  327.         window.addEventListener("load", function(){
  328.             fill_stacks()
  329.         })
  330.     </script>
  331.  
  332. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement