科学教育

标题: 张嫣然 [打印本页]

作者: 张嫣然    时间: 2025-10-14 09:41
标题: 张嫣然
帮我写一个贪吃蛇代码

作者: kaia    时间: 2025-10-14 09:41
当然可以帮你写一个简单的贪吃蛇游戏代码!我们可以使用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.     #game-board {
  9.       width: 400px;
  10.       height: 400px;
  11.       border: 1px solid black;
  12.     }
  13.     .snake {
  14.       width: 20px;
  15.       height: 20px;
  16.       background-color: green;
  17.       position: absolute;
  18.     }
  19.     .food {
  20.       width: 20px;
  21.       height: 20px;
  22.       background-color: red;
  23.       position: absolute;
  24.     }
  25.   </style>
  26. </head>
  27. <body>
  28.   <div id="game-board"></div>
  29.   <script>
  30.     const board = document.getElementById('game-board');
  31.     const snake = [{x: 200, y: 200}];
  32.     let food = {x: 0, y: 0};
  33.     let direction = 'right';

  34.     function createSnake() {
  35.       snake.forEach(segment => {
  36.         const snakeElement = document.createElement('div');
  37.         snakeElement.className = 'snake';
  38.         snakeElement.style.left = segment.x + 'px';
  39.         snakeElement.style.top = segment.y + 'px';
  40.         board.appendChild(snakeElement);
  41.       });
  42.     }

  43.     function createFood() {
  44.       food.x = Math.floor(Math.random() * 20) * 20;
  45.       food.y = Math.floor(Math.random() * 20) * 20;

  46.       const foodElement = document.createElement('div');
  47.       foodElement.className = 'food';
  48.       foodElement.style.left = food.x + 'px';
  49.       foodElement.style.top = food.y + 'px';
  50.       board.appendChild(foodElement);
  51.     }

  52.     function moveSnake() {
  53.       let headX = snake[0].x;
  54.       let headY = snake[0].y;

  55.       if (direction === 'right') {
  56.         headX += 20;
  57.       } else if (direction === 'left') {
  58.         headX -= 20;
  59.       } else if (direction === 'down') {
  60.         headY += 20;
  61.       } else if (direction === 'up') {
  62.         headY -= 20;
  63.       }

  64.       const newHead = {x: headX, y: headY};
  65.       snake.unshift(newHead);

  66.       if (headX === food.x && headY === food.y) {
  67.         createFood();
  68.       } else {
  69.         snake.pop();
  70.       }

  71.       updateSnake();
  72.     }

  73.     function updateSnake() {
  74.       const snakeElements = document.querySelectorAll('.snake');
  75.       snakeElements.forEach((element, index) => {
  76.         element.style.left = snake[index].x + 'px';
  77.         element.style.top = snake[index].y + 'px';
  78.       });
  79.     }

  80.     function changeDirection(event) {
  81.       const key = event.key;

  82.       if ((key === 'ArrowRight' || key === 'd') && direction !== 'left') {
  83.         direction = 'right';
  84.       } else if ((key === 'ArrowLeft' || key === 'a') && direction !== 'right') {
  85.         direction = 'left';
  86.       } else if ((key === 'ArrowDown' || key === 's') && direction !== 'up') {
  87.         direction = 'down';
  88.       } else if ((key === 'ArrowUp' || key === 'w') && direction !== 'down') {
  89.         direction = 'up';
  90.       }
  91.     }

  92.     createSnake();
  93.     createFood();
  94.     setInterval(moveSnake, 100);
  95.     document.addEventListener('keydown', changeDirection);
  96.   </script>
  97. </body>
  98. </html>
复制代码


你可以将这段代码复制粘贴到一个HTML文件中,然后在浏览器中打开,就可以开始玩这个简单的贪吃蛇游戏了!游戏板的大小为400x400像素,蛇每隔100毫秒移动一次。通过方向键或WASD控制蛇的移动方向,让蛇吃到红色的食物。祝玩得开心!
作者: 黄思齐是你爹    时间: 2025-10-14 14:21
你真棒
作者: 张嫣然    时间: 2025-11-4 09:39
帮我把css提取出来




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