original reinkopiert
| @ -332,27 +332,27 @@ | ||||
|  | ||||
|         // Teilen via WhatsApp | ||||
|         function shareViaWhatsApp() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const url = 'https://api.whatsapp.com/send?text=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|  | ||||
|         // Teilen via Telegram | ||||
|         function shareViaTelegram() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const url = 'https://t.me/share/url?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
| @ -360,16 +360,16 @@ | ||||
|         // Teilen via E-Mail | ||||
|         function shareViaEmail() { | ||||
|             const subject = encodeURIComponent('Klick the Witch'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             window.location.href = 'mailto:?subject=' + subject + '&body=' + body; | ||||
|         } | ||||
|          | ||||
|         function copyToClipboard() { | ||||
|             const text = 'Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'; | ||||
|             const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'; | ||||
|             navigator.clipboard.writeText(text).then(function() { | ||||
|                 alert('Text wurde in die Zwischenablage kopiert!'); | ||||
|                 alert('Text has been copied to the clipboard!'); | ||||
|             }, function(err) { | ||||
|                 alert('Fehler beim Kopieren in die Zwischenablage: ', err); | ||||
|                 alert('Error copying to clipboard!: ', err); | ||||
|             }); | ||||
|         } | ||||
|  | ||||
|  | ||||
| @ -332,27 +332,27 @@ | ||||
|  | ||||
|         // Teilen via WhatsApp | ||||
|         function shareViaWhatsApp() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'); | ||||
|             const url = 'https://api.whatsapp.com/send?text=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|  | ||||
|         // Teilen via Telegram | ||||
|         function shareViaTelegram() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'); | ||||
|             const url = 'https://t.me/share/url?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
| @ -360,16 +360,16 @@ | ||||
|         // Teilen via E-Mail | ||||
|         function shareViaEmail() { | ||||
|             const subject = encodeURIComponent('Capybara Jump and Run'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'); | ||||
|             window.location.href = 'mailto:?subject=' + subject + '&body=' + body; | ||||
|         } | ||||
|          | ||||
|         function copyToClipboard() { | ||||
|             const text = 'Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'; | ||||
|             const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/capybara-jump-and-run/'; | ||||
|             navigator.clipboard.writeText(text).then(function() { | ||||
|                 alert('Text wurde in die Zwischenablage kopiert!'); | ||||
|                 alert('Text has been copied to the clipboard!'); | ||||
|             }, function(err) { | ||||
|                 alert('Fehler beim Kopieren in die Zwischenablage: ', err); | ||||
|                 alert('Error copying to clipboard!: ', err); | ||||
|             }); | ||||
|         } | ||||
|          | ||||
|  | ||||
							
								
								
									
										97
									
								
								programmieren/spiele/cookie-klicker/cookie-clicker.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,97 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="de"> | ||||
| <head> | ||||
|   <meta charset="UTF-8"> | ||||
|   <title>Cookie Clicker</title> | ||||
|   <style> | ||||
|     body { | ||||
|       text-align: center; | ||||
|       font-family: sans-serif; | ||||
|       color: rgb(255, 255, 255); | ||||
|       padding-top: 50px; | ||||
|       background:  #3498db; | ||||
|     } | ||||
|  | ||||
|     #score, #highscore { | ||||
|       font-size: 2em; | ||||
|       margin-bottom: 10px; | ||||
|     } | ||||
|  | ||||
|     #clickTarget { | ||||
|       width: 150px; | ||||
|       height: 150px; | ||||
|       cursor: pointer; | ||||
|       transition: transform 0.1s ease; | ||||
|       display: inline-block; | ||||
|     } | ||||
|     #clickTargetreversed { | ||||
|         width: 150px; | ||||
|         height: 150px; | ||||
|         cursor: pointer; | ||||
|         transition: transform 0.1s ease; | ||||
|         display: inline-block; | ||||
|       } | ||||
|  | ||||
|     #clickTarget:active { | ||||
|       transform: scale(0.80); | ||||
|     } | ||||
|  | ||||
|     svg { | ||||
|       width: 100%; | ||||
|       height: 100%; | ||||
|     } | ||||
|  | ||||
|     #clickTarget.clicked { | ||||
|         filter: brightness(1.5); | ||||
|       } | ||||
|        | ||||
|   </style> | ||||
| </head> | ||||
| <body> | ||||
|  | ||||
|   <div id="score">Score: 0</div> | ||||
|   <div id="highscore">Highscore: 0</div> | ||||
|  | ||||
|   <!--  Klickbarer SVG-Button --> | ||||
|   <div id="clickTarget" onclick="addPoint()"> | ||||
|     <svg id="cookie" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> | ||||
|       <path fill="#ffc23d" d="M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/> | ||||
|     </svg> | ||||
|     <audio id="clickSound" src="crunchy-bite-95979.mp3"></audio> | ||||
|   </div> | ||||
|    | ||||
|  | ||||
|   <script> | ||||
|     let score = 0; | ||||
|     let highscore = localStorage.getItem('highscore') || 0; | ||||
|  | ||||
|     document.getElementById('highscore').textContent = "Highscore: " + highscore; | ||||
|  | ||||
|     function addPoint() { | ||||
|         score++; | ||||
|         document.getElementById('score').textContent = "Punkte: " + score; | ||||
|        | ||||
|         if (score > highscore) { | ||||
|           highscore = score; | ||||
|           localStorage.setItem('highscore', highscore); | ||||
|           document.getElementById('highscore').textContent = "Highscore: " + highscore; | ||||
|         } | ||||
|              | ||||
|         if (score % 100 == 0) { | ||||
|             const cookie = document.getElementById('clickTarget'); | ||||
|             cookie.classList.add('clicked'); | ||||
|             setTimeout(() => cookie.classList.remove('clicked'), 333); | ||||
|                         | ||||
|           } | ||||
|                | ||||
|         //  Sound abspielen | ||||
|         const clickSound = document.getElementById('clickSound'); | ||||
|         clickSound.currentTime = 0; // damit der Sound bei mehreren schnellen Klicks neu startet | ||||
|         clickSound.play(); | ||||
|       } | ||||
|        | ||||
|   </script> | ||||
|  | ||||
| </body> | ||||
| <footer>Sound Effect by <a href="https://pixabay.com/users/freesound_community-46691455/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=95979">freesound_community</a> from <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=95979">Pixabay</a></footer> | ||||
| </html> | ||||
							
								
								
									
										1
									
								
								programmieren/spiele/cookie-klicker/cookie-solid.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1 @@ | ||||
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path fill="#ffc23d" d="M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg> | ||||
| After Width: | Height: | Size: 767 B | 
							
								
								
									
										
											BIN
										
									
								
								programmieren/spiele/cookie-klicker/crunchy-bite-95979.mp3
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										384
									
								
								programmieren/spiele/cookie-klicker/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,384 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="de"> | ||||
| <head> | ||||
|     <meta charset="UTF-8"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|     <title>Creative Crafter</title> | ||||
|     <!-- Ladeanimation --> | ||||
|     <script type="module" src="https://cdn.jsdelivr.net/npm/ldrs/dist/auto/quantum.js"></script> | ||||
|     <!-- Stylesheet --> | ||||
|     <style> | ||||
|         @font-face { font-family: "Titillium"; src: url("/Titillium-Web-Regular.ttf"); } | ||||
|  | ||||
|         body, html { | ||||
|             font-family: 'Titillium'; | ||||
|             height: 100%; | ||||
|             margin: 0; | ||||
|             display: flex; | ||||
|             flex-direction: column; | ||||
|             align-items: center; | ||||
|             text-align: center; | ||||
|             background-color: #e6f7ff; | ||||
|         } | ||||
|  | ||||
|         h1, h2 { text-align: center; } | ||||
|  | ||||
|         /* Ladeanimation */ | ||||
|         .loader-container { | ||||
|             display: none; | ||||
|             justify-content: center; | ||||
|             align-items: center; | ||||
|             height: 100%; | ||||
|             width: 100%; | ||||
|             position: fixed; | ||||
|             top: 0; | ||||
|             left: 0; | ||||
|             background-color: rgba(173, 216, 230, 0.8); | ||||
|             z-index: 9999; | ||||
|         } | ||||
|  | ||||
|         .loading .loader-container { display: flex; } | ||||
|  | ||||
|         /* Button-Style */ | ||||
|         .button-share { | ||||
|             --white: #fff; | ||||
|             cursor: pointer; | ||||
|             background: linear-gradient(to bottom, #6e3bff, #7e51ff); | ||||
|             color: #fff; | ||||
|             border: 1px solid #af93ff; | ||||
|             border-radius: 8px; | ||||
|             position: relative; | ||||
|             font-family: Arial, Helvetica, sans-serif; | ||||
|             text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25); | ||||
|             box-shadow: 0 8px 10px -4px #503b89, 0 0 0 2px #562cce; | ||||
|             font-size: 25px; | ||||
|             display: inline-flex; | ||||
|             align-items: center; | ||||
|             gap: 8px; | ||||
|             margin-top: 20px; | ||||
|         } | ||||
|  | ||||
|         .button { | ||||
|             padding: 16px 32px; /* Doppelte Größe */ | ||||
|             border-radius: 8px; | ||||
|             background: linear-gradient(to bottom, #007bff, #0056b3); /* Blau */ | ||||
|             box-shadow: 0 2px 4px rgba(0,0,0,0.7); | ||||
|             transition: all 0.2s; | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             gap: 8px; | ||||
|             margin-top: 20px; /* Abstand zum oberen Inhalt */ | ||||
|         } | ||||
|  | ||||
|         .button:hover { | ||||
|             box-shadow: 0 4px 8px rgba(0,0,0,0.6); | ||||
|         } | ||||
|  | ||||
|         .button:active { | ||||
|             box-shadow: 0 0px 1px rgba(0,0,0,0.8); | ||||
|             transform: scale(0.995); | ||||
|         } | ||||
|  | ||||
|         .button-text { | ||||
|             font-weight: 600; | ||||
|             color: white; | ||||
|             font-size: 1.5em; /* Textgröße anpassen */ | ||||
|         } | ||||
|  | ||||
|         .icon path.bm { | ||||
|             stroke-dasharray: 3; | ||||
|             stroke-dashoffset: 3; | ||||
|             stroke-width: 1px; | ||||
|             transform: translateX(-23px) translateY(16px) scale(2) rotate(-44deg); | ||||
|         } | ||||
|  | ||||
|         .icon-container { | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             justify-content: center; | ||||
|             padding: 8px 10px; | ||||
|             background-color: #fff; | ||||
|             border-radius: 50%; | ||||
|             box-shadow: inset 0 -2px 4px 0 #c6c6c6, 0 3px 6px rgba(0, 0, 0, 0.25); | ||||
|             text-align: center; | ||||
|             z-index: 10; | ||||
|         } | ||||
|  | ||||
|         .icon-container .icon { | ||||
|             width: 25px; | ||||
|             height: 30px; | ||||
|             stroke: #592cd6; | ||||
|             margin-top: -2px; | ||||
|             z-index: 4; | ||||
|             /* Für das Teilen-Icon die Rotation entfernen */ | ||||
|         } | ||||
|  | ||||
|         .content { | ||||
|             pointer-events: none; | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             justify-content: center; | ||||
|             z-index: 1; | ||||
|             position: relative; | ||||
|             height: 100%; | ||||
|             width: 100%; | ||||
|             padding: 4px; | ||||
|             gap: 16px; | ||||
|             border-radius: 7px; | ||||
|             font-weight: 600; | ||||
|             transition: all 0.3s ease; | ||||
|         } | ||||
|  | ||||
|         .letters { | ||||
|             transition: all 0.3s ease; | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             justify-content: center; | ||||
|             padding: 4px; | ||||
|         } | ||||
|  | ||||
|         .letters span { | ||||
|             display: block; | ||||
|             color: transparent; | ||||
|             position: relative; | ||||
|             left: 6px; | ||||
|             animation: letterShow 1.2s ease backwards calc(var(--i) * 0.03s); | ||||
|         } | ||||
|  | ||||
|         .letters span::before, .letters span::after { | ||||
|             content: attr(data-label); | ||||
|             position: absolute; | ||||
|             color: var(--white); | ||||
|             text-shadow: -1px 1px 2px var(--purple-500); | ||||
|             left: 0; | ||||
|         } | ||||
|  | ||||
|         .letters span::before { | ||||
|             opacity: 0; | ||||
|             transform: translateY(-100%); | ||||
|         } | ||||
|  | ||||
|         .button:hover .letters span::before { | ||||
|             animation: letterShow 0.7s ease calc(var(--i) * 0.03s); | ||||
|         } | ||||
|  | ||||
|         .button:hover .letters span::after { | ||||
|             opacity: 1; | ||||
|             animation: letterHide 0.7s ease calc(var(--i) * 0.03s); | ||||
|         } | ||||
|  | ||||
|         @keyframes letterShow { | ||||
|             0% { transform: translateY(50%); opacity: 0; filter: blur(20px); } | ||||
|             20% { transform: translateY(70%); opacity: 1; } | ||||
|             50% { transform: translateY(-15%); opacity: 1; filter: blur(0); } | ||||
|             100% { transform: translateY(0); opacity: 1; } | ||||
|         } | ||||
|  | ||||
|         @keyframes letterHide { | ||||
|             0% { transform: translateY(0); opacity: 1; } | ||||
|             100% { transform: translateY(-70%); opacity: 0; filter: blur(3px); } | ||||
|         } | ||||
|  | ||||
|         /* Modal-Stile */ | ||||
|         .modal { | ||||
|             display: none; | ||||
|             position: fixed; | ||||
|             z-index: 1000; | ||||
|             left: 0; | ||||
|             top: 0; | ||||
|             width: 100%; | ||||
|             height: 100%; | ||||
|             overflow: auto; | ||||
|             background-color: rgba(0,0,0,0.5); | ||||
|         } | ||||
|  | ||||
|         .modal-content { | ||||
|             background-color: #fefefe; | ||||
|             margin: 15% auto; | ||||
|             padding: 20px; | ||||
|             border: 1px solid #888; | ||||
|             width: 80%; | ||||
|             max-width: 400px; | ||||
|             text-align: center; | ||||
|             border-radius: 10px; | ||||
|         } | ||||
|  | ||||
|         .close { | ||||
|             color: #aaa; | ||||
|             float: right; | ||||
|             font-size: 28px; | ||||
|             font-weight: bold; | ||||
|             cursor: pointer; | ||||
|         } | ||||
|  | ||||
|         .close:hover, | ||||
|         .close:focus { | ||||
|             color: black; | ||||
|         } | ||||
|  | ||||
|         .social-icons { | ||||
|             display: flex; | ||||
|             justify-content: center; | ||||
|             gap: 20px; | ||||
|             margin-top: 20px; | ||||
|         } | ||||
|  | ||||
|         .social-icons a img { | ||||
|             width: 60px; | ||||
|             height: 60px; | ||||
|             transition: transform 0.2s; | ||||
|         } | ||||
|  | ||||
|         .social-icons a img:hover { | ||||
|             transform: scale(1.1); | ||||
|         } | ||||
|     </style> | ||||
| </head> | ||||
| <body> | ||||
|     <!-- Ladeanimation --> | ||||
|     <div class="loader-container"> | ||||
|         <l-quantum size="90" speed="1.75" color="black"></l-quantum> | ||||
|     </div> | ||||
|  | ||||
|     <h1><img src="/icons/Controller.png" height="150"><br/>Creative Crafter</h1> | ||||
|     <h1>Flappy Witch</h1> | ||||
|     <div align='center'> | ||||
|         <img src="/programmieren/spiele/cookie-klicker/logo.png" width="250"> | ||||
|     </div> | ||||
|     <br/> | ||||
|     <div align='center'> | ||||
|         <!-- Spielen-Button --> | ||||
|             <button class="button" onclick="window.location.href=`/programmieren/spiele/cookie-klicker/cookie-clicker.html`"> | ||||
|                 <div class="button-inner"> | ||||
|                     <span class="button-text"><img src="/icons/playbutton.png" alt="Icon" style="width:20px; height:20px; margin-right:5px;"> Play</span> | ||||
|                 </div> | ||||
|             </button> | ||||
|          | ||||
|         </a> | ||||
|         <br/><br/> | ||||
|         <!-- Neuer Teilen-Button --> | ||||
|         <button class="button-share" onclick="openSharePopup()"> | ||||
|             <div class="icon-container"> | ||||
|                 <svg viewBox="0 0 24 24" fill="none" class="icon"> | ||||
|                     <!-- Teilen-Icon --> | ||||
|                     <path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"></path> | ||||
|                     <polyline points="16 6 12 2 8 6"></polyline> | ||||
|                     <line x1="12" y1="2" x2="12" y2="15"></line> | ||||
|                 </svg> | ||||
|             </div> | ||||
|             <div class="content"> | ||||
|                 <div class="letters"> | ||||
|                     <span data-label="S" style="--i:0;">S</span> | ||||
|                     <span data-label="h" style="--i:1;">h</span> | ||||
|                     <span data-label="a" style="--i:2;">a</span> | ||||
|                     <span data-label="r" style="--i:3;">r</span> | ||||
|                     <span data-label="e" style="--i:4;">e</span> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </button> | ||||
|     </div> | ||||
|  | ||||
|     <!-- Popup-Fenster zum Teilen --> | ||||
|     <div id="shareModal" class="modal"> | ||||
|         <div class="modal-content"> | ||||
|             <span class="close" onclick="closeSharePopup()">×</span> | ||||
|             <h2>Share with:</h2> | ||||
|             <div class="social-icons"> | ||||
|                 <a href="#" onclick="shareViaWhatsApp()"> | ||||
|                     <img src="/icons/whatsapp.svg" alt="WhatsApp" /> | ||||
|                 </a> | ||||
|                 <a href="#" onclick="shareViaPinterest()"> | ||||
|                     <img src="/icons/pinterest.svg" /> | ||||
|                 </a> | ||||
|                 <a href="#" onclick="shareViaTelegram()"> | ||||
|                     <img src="/icons/telegram.svg" alt="Telegram" /> | ||||
|                 </a> | ||||
|                 <a href="#" onclick="shareViaEmail()"> | ||||
|                     <img src="/icons/email.svg" alt="E-Mail" /> | ||||
|                 </a> | ||||
|                 <!-- Kopieren --> | ||||
|                 <a href="#" onclick="copyToClipboard()"> | ||||
|                     <img src="/icons/copy.svg" /> | ||||
|                 </a> | ||||
|                 <!-- Weitere Sharing-Optionen kannst du hier hinzufügen --> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
|  | ||||
|     <br/><br/><br/> | ||||
|     <div align='center'> | ||||
|         <img src="/programmieren/spiele/cookie-klicker/screenshot.png/" width="500"> | ||||
|     </div> | ||||
|  | ||||
|     <!-- JavaScript für Ladeanimation und Teilen-Funktion --> | ||||
|     <script> | ||||
|         // Ladeanimation beim Laden der Seite anzeigen | ||||
|         document.body.classList.add('loading'); | ||||
|         // Ladeanimation entfernen, wenn die Seite vollständig geladen ist | ||||
|         window.addEventListener('load', () => { | ||||
|             document.body.classList.remove('loading'); | ||||
|         }); | ||||
|  | ||||
|         // Funktion zum Öffnen des Popup-Fensters | ||||
|         function openSharePopup() { | ||||
|             document.getElementById("shareModal").style.display = "block"; | ||||
|         } | ||||
|  | ||||
|         // Funktion zum Schließen des Popup-Fensters | ||||
|         function closeSharePopup() { | ||||
|             document.getElementById("shareModal").style.display = "none"; | ||||
|         } | ||||
|  | ||||
|         // Teilen via WhatsApp | ||||
|         function shareViaWhatsApp() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/'); | ||||
|             const url = 'https://api.whatsapp.com/send?text=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|  | ||||
|         // Teilen via Telegram | ||||
|         function shareViaTelegram() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/'); | ||||
|             const url = 'https://t.me/share/url?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         // Teilen via E-Mail | ||||
|         function shareViaEmail() { | ||||
|             const subject = encodeURIComponent('Klick the Witch'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/'); | ||||
|             window.location.href = 'mailto:?subject=' + subject + '&body=' + body; | ||||
|         } | ||||
|          | ||||
|         function copyToClipboard() { | ||||
|             const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/cookie-clicker/'; | ||||
|             navigator.clipboard.writeText(text).then(function() { | ||||
|                 alert('Text has been copied to the clipboard!'); | ||||
|             }, function(err) { | ||||
|                 alert('Error copying to clipboard!: ', err); | ||||
|             }); | ||||
|         } | ||||
|  | ||||
|         // Schließt das Popup bei Klick außerhalb des Inhalts | ||||
|         window.onclick = function(event) { | ||||
|             const modal = document.getElementById('shareModal'); | ||||
|             if (event.target == modal) { | ||||
|                 closeSharePopup(); | ||||
|             } | ||||
|         } | ||||
|     </script> | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										
											BIN
										
									
								
								programmieren/spiele/cookie-klicker/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 16 KiB | 
							
								
								
									
										
											BIN
										
									
								
								programmieren/spiele/cookie-klicker/screenshot.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 34 KiB | 
| @ -332,27 +332,27 @@ | ||||
|  | ||||
|         // Teilen via WhatsApp | ||||
|         function shareViaWhatsApp() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/fruit-or-no/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/'); | ||||
|             const url = 'https://api.whatsapp.com/send?text=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|  | ||||
|         // Teilen via Telegram | ||||
|         function shareViaTelegram() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/fruit-or-no/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/'); | ||||
|             const url = 'https://t.me/share/url?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/fruit-or-no/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/fruit-or-no/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
| @ -360,16 +360,16 @@ | ||||
|         // Teilen via E-Mail | ||||
|         function shareViaEmail() { | ||||
|             const subject = encodeURIComponent('Fruit or No'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/fruit-or-no/'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/'); | ||||
|             window.location.href = 'mailto:?subject=' + subject + '&body=' + body; | ||||
|         } | ||||
|          | ||||
|         function copyToClipboard() { | ||||
|             const text = 'Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/fruit-or-no/'; | ||||
|             const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/fruit-or-no/'; | ||||
|             navigator.clipboard.writeText(text).then(function() { | ||||
|                 alert('Text wurde in die Zwischenablage kopiert!'); | ||||
|                 alert('Text has been copied to the clipboard!'); | ||||
|             }, function(err) { | ||||
|                 alert('Fehler beim Kopieren in die Zwischenablage: ', err); | ||||
|                 alert('Error copying to clipboard!: ', err); | ||||
|             }); | ||||
|         } | ||||
|          | ||||
|  | ||||
| @ -96,6 +96,11 @@ | ||||
|             <div class="category-description">Experience the timeless classic by guiding the snake, collecting food, avoiding collisions! Play now.</div> | ||||
|             <a href="/programmieren/spiele/snake">Mehr erfahren</a> | ||||
|         </div> | ||||
|         <div class="category"> | ||||
|             <div class="category-title">Cookie Clicker</div> | ||||
|             <div class="category-description">Click the cookie as fast as you can to earn points. Beat your high score and enjoy fun extras like sounds and effects!</div> | ||||
|             <a href="/programmieren/spiele/cookie-klicker">Mehr erfahren</a> | ||||
|         </div> | ||||
|     </div> | ||||
| </body> | ||||
| </html> | ||||
|  | ||||
							
								
								
									
										534
									
								
								programmieren/spiele/klick-the-witch/Klick the Witch 1.2.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -248,7 +248,7 @@ | ||||
|     <br/> | ||||
|     <div align='center'> | ||||
|         <!-- Spielen-Button --> | ||||
|             <button class="button" onclick="window.location.href=`/programmieren/spiele/klick-the-witch/witc1h.html`"> | ||||
|             <button class="button" onclick="window.location.href=`/programmieren/spiele/klick-the-witch/Klick the Witch 1.2.html`"> | ||||
|                 <div class="button-inner"> | ||||
|                     <span class="button-text"><img src="/icons/playbutton.png" alt="Icon" style="width:20px; height:20px; margin-right:5px;"> Play</span> | ||||
|                 </div> | ||||
| @ -332,27 +332,27 @@ | ||||
|  | ||||
|         // Teilen via WhatsApp | ||||
|         function shareViaWhatsApp() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const url = 'https://api.whatsapp.com/send?text=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|  | ||||
|         // Teilen via Telegram | ||||
|         function shareViaTelegram() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const url = 'https://t.me/share/url?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
| @ -360,16 +360,16 @@ | ||||
|         // Teilen via E-Mail | ||||
|         function shareViaEmail() { | ||||
|             const subject = encodeURIComponent('Klick the Witch'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'); | ||||
|             window.location.href = 'mailto:?subject=' + subject + '&body=' + body; | ||||
|         } | ||||
|          | ||||
|         function copyToClipboard() { | ||||
|             const text = 'Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/klick-the-witch/'; | ||||
|             const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/klick-the-witch/'; | ||||
|             navigator.clipboard.writeText(text).then(function() { | ||||
|                 alert('Text wurde in die Zwischenablage kopiert!'); | ||||
|                 alert('Text has been copied to the clipboard!'); | ||||
|             }, function(err) { | ||||
|                 alert('Fehler beim Kopieren in die Zwischenablage: ', err); | ||||
|                 alert('Error copying to clipboard!: ', err); | ||||
|             }); | ||||
|         } | ||||
|          | ||||
|  | ||||
| Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 21 KiB | 
| Before Width: | Height: | Size: 230 KiB After Width: | Height: | Size: 715 KiB | 
| Before Width: | Height: | Size: 978 KiB After Width: | Height: | Size: 1.1 MiB | 
| @ -332,27 +332,27 @@ | ||||
|  | ||||
|         // Teilen via WhatsApp | ||||
|         function shareViaWhatsApp() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/snake/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/'); | ||||
|             const url = 'https://api.whatsapp.com/send?text=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|  | ||||
|         // Teilen via Telegram | ||||
|         function shareViaTelegram() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/snake/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/'); | ||||
|             const url = 'https://t.me/share/url?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/snake/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/snake/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
| @ -360,12 +360,12 @@ | ||||
|         // Teilen via E-Mail | ||||
|         function shareViaEmail() { | ||||
|             const subject = encodeURIComponent('Snake'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/snake/'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/'); | ||||
|             window.location.href = 'mailto:?subject=' + subject + '&body=' + body; | ||||
|         } | ||||
|          | ||||
|         function copyToClipboard() { | ||||
|             const text = 'Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/snake/'; | ||||
|             const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/snake/'; | ||||
|             navigator.clipboard.writeText(text).then(function() { | ||||
|                 alert('Text has been copied to the clipboard!'); | ||||
|             }, function(err) { | ||||
|  | ||||
| @ -1,51 +1,222 @@ | ||||
| <!DOCTYPE html> | ||||
| <!-- saved from url=(0060)https://test.creative-crafter.de/programmieren/spiele/Snake/ --> | ||||
| <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | ||||
|      | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|     <title>Snake Game</title> | ||||
|     <style> | ||||
|         body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #000; } | ||||
|         canvas { border: 1px solid #fff; } | ||||
|         #startScreen { display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: white; text-align: center; } | ||||
|     </style> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|   <meta charset="UTF-8" /> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1.0"/> | ||||
|   <title>Snake Game</title> | ||||
|   <style> | ||||
|     * { box-sizing: border-box; } | ||||
|     body { | ||||
|       margin: 0; | ||||
|       background: linear-gradient(135deg, #3498db, #9b59b6); | ||||
|       color: white; | ||||
|       font-family: "Coda", system-ui; | ||||
|       font-weight: 800; | ||||
|       font-style: normal; | ||||
|       display: flex; | ||||
|       justify-content: center; | ||||
|       align-items: center; | ||||
|       height: 100vh; | ||||
|       position: relative; | ||||
|       overflow: hidden; | ||||
|     } | ||||
|     canvas { | ||||
|       border: 4px solid #ffffff81; | ||||
|       box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); | ||||
|       background-color: #2c3e5085; | ||||
|     } | ||||
|     #overlay { | ||||
|       position: absolute; | ||||
|       top: 50%; | ||||
|       left: 50%; | ||||
|       transform: translate(-50%, -50%); | ||||
|       text-align: center; | ||||
|       display: none; | ||||
|     } | ||||
|     #overlay h1 { | ||||
|       font-size: 3em; | ||||
|       margin-bottom: 0.5em; | ||||
|       text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); | ||||
|     } | ||||
|     #scoreboard { | ||||
|       position: absolute; | ||||
|       top: 20px; | ||||
|       left: 20px; | ||||
|       font-size: 18px; | ||||
|       z-index: 2; | ||||
|     } | ||||
|     .score-text { | ||||
|       font-size: 1.5em; | ||||
|       font-weight: bold; | ||||
|     } | ||||
|     .highscore-text { | ||||
|       font-size: 1.5em; | ||||
|       font-weight: bold; | ||||
|     } | ||||
|   </style> | ||||
| </head> | ||||
| <body> | ||||
|     <canvas id="gameCanvas" width="400" height="400"></canvas> | ||||
|     <div id="startScreen" style="display: block;"><h1>Snake Game</h1><p>Press Space to Start</p></div> | ||||
|     <script> | ||||
|         const canvas = document.getElementById('gameCanvas'), ctx = canvas.getContext('2d'), startScreen = document.getElementById('startScreen'); | ||||
|         const gridSize = 20; let snake = [{ x: 200, y: 200 }], direction = { x: 0, y: 0 }, food = { x: 0, y: 0 }, gameOver = false, gameStarted = false; | ||||
|   <canvas id="gameCanvas" width="400" height="400"></canvas> | ||||
|   <div id="scoreboard"> | ||||
|     <div class="score-text">Score: <span id="score">0</span></div> | ||||
|     <div class="highscore-text">Highscore: <span id="highscore">0</span></div> | ||||
|   </div> | ||||
|   <div id="overlay"> | ||||
|     <h1>Snake Game</h1> | ||||
|     <p>Press Space to Start</p> | ||||
|   </div> | ||||
|  | ||||
|         const getRandomFoodPosition = () => ({ x: Math.floor(Math.random() * (canvas.width / gridSize)) * gridSize, y: Math.floor(Math.random() * (canvas.height / gridSize)) * gridSize }); | ||||
|         const drawRect = (x, y, color) => { ctx.fillStyle = color; ctx.fillRect(x, y, gridSize, gridSize); }; | ||||
|         const update = () => { | ||||
|             if (gameOver) return; | ||||
|             const head = { x: snake[0].x + direction.x, y: snake[0].y + direction.y }; | ||||
|             if (head.x < 0 || head.x >= canvas.width || head.y < 0 || head.y >= canvas.height || snake.some(segment => segment.x === head.x && segment.y === head.y)) { | ||||
|                 gameOver = true; | ||||
|                 location.reload(); // Reload the page when the game is over | ||||
|                 return; | ||||
|             } | ||||
|             snake.unshift(head); | ||||
|             if (head.x === food.x && head.y === food.y) food = getRandomFoodPosition(); else snake.pop(); | ||||
|         }; | ||||
|         const draw = () => { ctx.clearRect(0, 0, canvas.width, canvas.height); snake.forEach(segment => drawRect(segment.x, segment.y, 'lime')); drawRect(food.x, food.y, 'red'); }; | ||||
|         const gameLoop = () => { update(); draw(); if (!gameOver) setTimeout(gameLoop, 100); }; | ||||
|         const resetGame = () => { snake = [{ x: 200, y: 200 }]; direction = { x: 0, y: 0 }; food = getRandomFoodPosition(); gameOver = false; gameLoop(); }; | ||||
|   <script> | ||||
|     const canvas = document.getElementById('gameCanvas'); | ||||
|     const ctx = canvas.getContext('2d'); | ||||
|     const overlay = document.getElementById('overlay'); | ||||
|     const scoreDisplay = document.getElementById('score'); | ||||
|     const highscoreDisplay = document.getElementById('highscore'); | ||||
|  | ||||
|         window.addEventListener('keydown', e => { | ||||
|             switch (e.key) { | ||||
|                 case 'ArrowUp': case 'w': if (direction.y === 0) direction = { x: 0, y: -gridSize }; break; | ||||
|                 case 'ArrowDown': case 's': if (direction.y === 0) direction = { x: 0, y: gridSize }; break; | ||||
|                 case 'ArrowLeft': case 'a': if (direction.x === 0) direction = { x: -gridSize, y: 0 }; break; | ||||
|                 case 'ArrowRight': case 'd': if (direction.x === 0) direction = { x: gridSize, y: 0 }; break; | ||||
|                 case ' ': if (gameOver) resetGame(); else if (!gameStarted) { startScreen.style.display = 'none'; gameStarted = true; gameLoop(); } break; | ||||
|             } | ||||
|         }); | ||||
|     const gridSize = 20; | ||||
|     let snake = [{ x: 200, y: 200 }]; | ||||
|     let direction = { x: 0, y: 0 }; | ||||
|     let nextDirection = { x: 0, y: -gridSize }; | ||||
|     let food = {}; | ||||
|     let score = 0; | ||||
|     let highscore = parseInt(localStorage.getItem('snakeHighscore')) || 0; | ||||
|     let gameRunning = false; | ||||
|     let gameOver = false; | ||||
|     let speed = 100; | ||||
|     let timeoutId; | ||||
|  | ||||
|         food = getRandomFoodPosition(); | ||||
|         startScreen.style.display = 'block'; | ||||
|     </script> | ||||
|     highscoreDisplay.textContent = highscore; | ||||
|  | ||||
| </body></html> | ||||
|     function getRandomPosition() { | ||||
|       return { | ||||
|         x: Math.floor(Math.random() * (canvas.width / gridSize)) * gridSize, | ||||
|         y: Math.floor(Math.random() * (canvas.height / gridSize)) * gridSize | ||||
|       }; | ||||
|     } | ||||
|  | ||||
|     function placeFood() { | ||||
|       food = getRandomPosition(); | ||||
|       while (snake.some(s => s.x === food.x && s.y === food.y)) { | ||||
|         food = getRandomPosition(); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     // Funktion zum Zeichnen eines abgerundeten Rechtecks (für die Snake) | ||||
|     function drawRoundedRect(x, y, width, height, radius, color) { | ||||
|       ctx.fillStyle = color; | ||||
|       ctx.beginPath(); | ||||
|       ctx.moveTo(x + radius, y); | ||||
|       ctx.lineTo(x + width - radius, y); | ||||
|       ctx.arcTo(x + width, y, x + width, y + height, radius); | ||||
|       ctx.lineTo(x + width, y + height - radius); | ||||
|       ctx.arcTo(x + width, y + height, x + width - radius, y + height, radius); | ||||
|       ctx.lineTo(x + radius, y + height); | ||||
|       ctx.arcTo(x, y + height, x, y + height - radius, radius); | ||||
|       ctx.lineTo(x, y + radius); | ||||
|       ctx.arcTo(x, y, x + radius, y, radius); | ||||
|       ctx.closePath(); | ||||
|       ctx.fill(); | ||||
|     } | ||||
|  | ||||
|     function update() { | ||||
|       direction = nextDirection; | ||||
|  | ||||
|       const head = { | ||||
|         x: snake[0].x + direction.x, | ||||
|         y: snake[0].y + direction.y | ||||
|       }; | ||||
|  | ||||
|       if ( | ||||
|         head.x < 0 || head.x >= canvas.width || | ||||
|         head.y < 0 || head.y >= canvas.height || | ||||
|         snake.some(segment => segment.x === head.x && segment.y === head.y) | ||||
|       ) {   | ||||
|         endGame(); | ||||
|         return; | ||||
|       } | ||||
|  | ||||
|       snake.unshift(head); | ||||
|  | ||||
|       if (head.x === food.x && head.y === food.y) { | ||||
|         score++; | ||||
|         scoreDisplay.textContent = score; | ||||
|         placeFood(); | ||||
|       } else { | ||||
|         snake.pop(); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     function draw() { | ||||
|       ctx.clearRect(0, 0, canvas.width, canvas.height); | ||||
|       // Snake als abgerundetes Rechteck zeichnen | ||||
|       snake.forEach((segment, index) => { | ||||
|         const color = index === 0 ? 'limegreen' : 'darkgreen'; // Kopf grün, Rest dunkelgrün | ||||
|         drawRoundedRect(segment.x, segment.y, gridSize, gridSize, 5, color); | ||||
|       }); | ||||
|       // Essen zeichnen | ||||
|       drawRoundedRect(food.x, food.y, gridSize, gridSize, 5, 'tomato'); | ||||
|     } | ||||
|  | ||||
|     function gameLoop() { | ||||
|       if (!gameRunning) return; | ||||
|       update(); | ||||
|       draw(); | ||||
|       timeoutId = setTimeout(gameLoop, speed); | ||||
|     } | ||||
|  | ||||
|     function startGame() { | ||||
|       snake = [{ x: 200, y: 200 }]; | ||||
|       direction = { x: 0, y: -gridSize }; | ||||
|       nextDirection = { x: 0, y: -gridSize }; | ||||
|       score = 0; | ||||
|       speed = 100; // Standard-Geschwindigkeit ohne Erhöhung | ||||
|       scoreDisplay.textContent = score; | ||||
|       gameOver = false; | ||||
|       gameRunning = true; | ||||
|       overlay.style.display = 'none'; | ||||
|       placeFood(); | ||||
|       gameLoop(); | ||||
|     } | ||||
|  | ||||
|     function endGame() { | ||||
|       gameRunning = false; | ||||
|       clearTimeout(timeoutId); | ||||
|  | ||||
|       if (score > highscore) { | ||||
|         highscore = score; | ||||
|         localStorage.setItem('snakeHighscore', highscore); | ||||
|         highscoreDisplay.textContent = highscore; | ||||
|       } | ||||
|  | ||||
|       overlay.innerHTML = '<h1>Game Over</h1><p>Press Space to Restart</p>'; | ||||
|       overlay.style.display = 'block'; | ||||
|     } | ||||
|  | ||||
|     window.addEventListener('keydown', e => { | ||||
|       switch (e.key) { | ||||
|         case 'ArrowUp': | ||||
|         case 'w': | ||||
|           if (direction.y === 0) nextDirection = { x: 0, y: -gridSize }; | ||||
|           break; | ||||
|         case 'ArrowDown': | ||||
|         case 's': | ||||
|           if (direction.y === 0) nextDirection = { x: 0, y: gridSize }; | ||||
|           break; | ||||
|         case 'ArrowLeft': | ||||
|         case 'a': | ||||
|           if (direction.x === 0) nextDirection = { x: -gridSize, y: 0 }; | ||||
|           break; | ||||
|         case 'ArrowRight': | ||||
|         case 'd': | ||||
|           if (direction.x === 0) nextDirection = { x: gridSize, y: 0 }; | ||||
|           break; | ||||
|         case ' ': | ||||
|           if (!gameRunning) startGame(); | ||||
|           break; | ||||
|       } | ||||
|     }); | ||||
|  | ||||
|     overlay.style.display = 'block'; | ||||
|   </script> | ||||
| </body> | ||||
| </html> | ||||
| @ -332,27 +332,27 @@ | ||||
|  | ||||
|         // Teilen via WhatsApp | ||||
|         function shareViaWhatsApp() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/sweets-for-animals/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/'); | ||||
|             const url = 'https://api.whatsapp.com/send?text=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|  | ||||
|         // Teilen via Telegram | ||||
|         function shareViaTelegram() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/sweets-for-animals/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/'); | ||||
|             const url = 'https://t.me/share/url?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/sweets-for-animals/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
|          | ||||
|         function shareViaPinterest() { | ||||
|             const media = encodeURIComponent('URL_ZU_DEINEM_BILD'); // Ersetze dies durch den tatsächlichen Bild-Link | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/sweets-for-animals/'); | ||||
|             const text = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/'); | ||||
|             const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media; | ||||
|             window.open(url, '_blank'); | ||||
|         } | ||||
| @ -360,16 +360,16 @@ | ||||
|         // Teilen via E-Mail | ||||
|         function shareViaEmail() { | ||||
|             const subject = encodeURIComponent('Sweets for Animals'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/sweets-for-animals/'); | ||||
|             const body = encodeURIComponent('Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/'); | ||||
|             window.location.href = 'mailto:?subject=' + subject + '&body=' + body; | ||||
|         } | ||||
|          | ||||
|         function copyToClipboard() { | ||||
|             const text = 'Check out this fantastic game!https://test.creative-crafter.de/programmieren/spiele/sweets-for-animals/'; | ||||
|             const text = 'Check out this fantastic game!https://www.creative-crafter.de/programmieren/spiele/sweets-for-animals/'; | ||||
|             navigator.clipboard.writeText(text).then(function() { | ||||
|                 alert('Text wurde in die Zwischenablage kopiert!'); | ||||
|                 alert('Text has been copied to the clipboard!'); | ||||
|             }, function(err) { | ||||
|                 alert('Fehler beim Kopieren in die Zwischenablage: ', err); | ||||
|                 alert('Error copying to clipboard!: ', err); | ||||
|             }); | ||||
|         } | ||||
|          | ||||
|  | ||||
 matt
					matt