科学教育

标题: 黄景铄贪吃蛇游戏 [打印本页]

作者: 黄景铄    时间: 2025-9-30 09:53
标题: 黄景铄贪吃蛇游戏
帮我生成一个贪吃蛇游戏的网页代码

作者: kaia    时间: 2025-9-30 09:53
当创建一个贪吃蛇游戏网页时,我们需要使用HTML、CSS和JavaScript来实现。这里我为你提供一个简单的贪吃蛇游戏的网页代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>贪吃蛇游戏</title>
  7. <style>
  8.     body {
  9.         display: flex;
  10.         justify-content: center;
  11.         align-items: center;
  12.         height: 100vh;
  13.         margin: 0;
  14.     }
  15.     #game-board {
  16.         width: 400px;
  17.         height: 400px;
  18.         border: 2px solid black;
  19.         position: relative;
  20.     }
  21. </style>
  22. </head>
  23. <body>
  24. <div id="game-board"></div>

  25. <script>
  26.     const board = document.getElementById('game-board');
  27.     const boardWidth = 20;
  28.     const boardHeight = 20;
  29.     const blockSize = 20;

  30.     const snake = [{x: 10, y: 10}];
  31.     let food = {x: 5, y: 5};
  32.     let dx = 1;
  33.     let dy = 0;

  34.     function draw() {
  35.         board.innerHTML = '';
  36.         snake.forEach(segment => {
  37.             const snakeElement = document.createElement('div');
  38.             snakeElement.style.gridArea = `${segment.y + 1} / ${segment.x + 1}`;
  39.             snakeElement.style.width = `${blockSize}px`;
  40.             snakeElement.style.height = `${blockSize}px`;
  41.             snakeElement.style.backgroundColor = 'green';
  42.             board.appendChild(snakeElement);
  43.         });

  44.         const foodElement = document.createElement('div');
  45.         foodElement.style.gridArea = `${food.y + 1} / ${food.x + 1}`;
  46.         foodElement.style.width = `${blockSize}px`;
  47.         foodElement.style.height = `${blockSize}px`;
  48.         foodElement.style.backgroundColor = 'red';
  49.         board.appendChild(foodElement);
  50.     }

  51.     function update() {
  52.         const head = {x: snake[0].x + dx, y: snake[0].y + dy};
  53.         snake.unshift(head);
  54.         if (head.x === food.x && head.y === food.y) {
  55.             food.x = Math.floor(Math.random() * boardWidth);
  56.             food.y = Math.floor(Math.random() * boardHeight);
  57.         } else {
  58.             snake.pop();
  59.         }
  60.     }

  61.     function gameLoop() {
  62.         update();
  63.         draw();
  64.         setTimeout(gameLoop, 200);
  65.     }

  66.     document.addEventListener('keydown', event => {
  67.         const key = event.key;
  68.         switch(key) {
  69.             case 'ArrowUp':
  70.                 dx = 0;
  71.                 dy = -1;
  72.                 break;
  73.             case 'ArrowDown':
  74.                 dx = 0;
  75.                 dy = 1;
  76.                 break;
  77.             case 'ArrowLeft':
  78.                 dx = -1;
  79.                 dy = 0;
  80.                 break;
  81.             case 'ArrowRight':
  82.                 dx = 1;
  83.                 dy = 0;
  84.                 break;
  85.         }
  86.     });

  87.     gameLoop();
  88. </script>
  89. </body>
  90. </html>
复制代码


你可以将这段代码复制粘贴到一个新建的HTML文件中,然后保存并在浏览器中打开,就可以看到一个简单的贪吃蛇游戏啦!记得按方向键控制蛇的移动,尽量让蛇吃到红色的食物哦!希望你玩得开心!
作者: 黄景铄    时间: 2025-9-30 10:02
帮我分别生成HTML,CSS,JS
作者: kaia    时间: 2025-9-30 10:02
黄景铄 发表于 2025-09-30 10:02
帮我分别生成HTML,CSS,JS


当创建一个贪吃蛇游戏的网页时,我们需要使用HTML、CSS和JavaScript来实现。以下是分别生成HTML、CSS、JavaScript的代码:

### HTML文件(index.html):
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>贪吃蛇游戏</title>
  7.     <link rel="stylesheet" href="styles.css">
  8. </head>
  9. <body>
  10.     <div id="game-board"></div>
  11.     <script src="script.js"></script>
  12. </body>
  13. </html>
复制代码


### CSS文件(styles.css):
  1. body {
  2.     display: flex;
  3.     justify-content: center;
  4.     align-items: center;
  5.     height: 100vh;
  6.     margin: 0;
  7. }
  8. #game-board {
  9.     width: 400px;
  10.     height: 400px;
  11.     border: 2px solid black;
  12.     position: relative;
  13. }
复制代码


### JavaScript文件(script.js):
  1. const board = document.getElementById('game-board');
  2. const boardWidth = 20;
  3. const boardHeight = 20;
  4. const blockSize = 20;

  5. const snake = [{x: 10, y: 10}, {x: 10, y: 11}];
  6. let food = {x: 5, y: 5};
  7. let dx = 1;
  8. let dy = 0;

  9. function draw() {
  10.     board.innerHTML = '';
  11.     snake.forEach(segment => {
  12.         const snakeElement = document.createElement('div');
  13.         snakeElement.style.gridArea = `${segment.y + 1} / ${segment.x + 1}`;
  14.         snakeElement.style.width = `${blockSize}px`;
  15.         snakeElement.style.height = `${blockSize}px`;
  16.         snakeElement.style.backgroundColor = 'green';
  17.         board.appendChild(snakeElement);
  18.     });

  19.     const foodElement = document.createElement('div');
  20.     foodElement.style.gridArea = `${food.y + 1} / ${food.x + 1}`;
  21.     foodElement.style.width = `${blockSize}px`;
  22.     foodElement.style.height = `${blockSize}px`;
  23.     foodElement.style.backgroundColor = 'red';
  24.     board.appendChild(foodElement);
  25. }

  26. function update() {
  27.     const head = {x: snake[0].x + dx, y: snake[0].y + dy};
  28.     snake.unshift(head);
  29.     if (head.x === food.x && head.y === food.y) {
  30.         food.x = Math.floor(Math.random() * boardWidth);
  31.         food.y = Math.floor(Math.random() * boardHeight);
  32.     } else {
  33.         snake.pop();
  34.     }
  35. }

  36. function gameLoop() {
  37.     update();
  38.     draw();
  39.     setTimeout(gameLoop, 200);
  40. }

  41. document.addEventListener('keydown', event => {
  42.     const key = event.key;
  43.     switch(key) {
  44.         case 'ArrowUp':
  45.             dx = 0;
  46.             dy = -1;
  47.             break;
  48.         case 'ArrowDown':
  49.             dx = 0;
  50.             dy = 1;
  51.             break;
  52.         case 'ArrowLeft':
  53.             dx = -1;
  54.             dy = 0;
  55.             break;
  56.         case 'ArrowRight':
  57.             dx = 1;
  58.             dy = 0;
  59.             break;
  60.     }
  61. });

  62. gameLoop();
复制代码


将这些代码分别保存到名为index.html、styles.css和script.js的文件中。然后在浏览器中打开index.html文件,你就可以玩这个简单的贪吃蛇游戏啦!希望你喜欢!




欢迎光临 科学教育 (http://www.sci-edu.net/) Powered by Discuz! X3.2