科学教育

搜索
查看: 522|回复: 1
打印 上一主题 下一主题

应妍欣贪吃蛇

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
跳转到指定楼层
楼主
发表于 2025-9-30 09:56:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮我生成一个贪吃蛇的网页代码
回复

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-9-30 09:56:36 | 只看该作者
当然可以帮你生成一个简单的贪吃蛇游戏的网页代码。以下是一个基础的示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>贪吃蛇游戏</title>
  5.     <style>
  6.         body {
  7.             background-color: black;
  8.             display: flex;
  9.             justify-content: center;
  10.             align-items: center;
  11.             height: 100vh;
  12.             margin: 0;
  13.         }
  14.         #game-board {
  15.             width: 400px;
  16.             height: 400px;
  17.             border: 1px solid white;
  18.         }
  19.         .snake {
  20.             width: 20px;
  21.             height: 20px;
  22.             background-color: green;
  23.         }
  24.         #food {
  25.             width: 20px;
  26.             height: 20px;
  27.             background-color: red;
  28.             position: absolute;
  29.         }
  30.     </style>
  31. </head>
  32. <body>
  33.     <div id="game-board"></div>

  34.     <script>
  35.         const gameBoard = document.getElementById('game-board');

  36.         let snake = [{x: 200, y: 200}];
  37.         let food = {x: 0, y: 0};

  38.         function draw() {
  39.             gameBoard.innerHTML = '';

  40.             snake.forEach(segment => {
  41.                 const snakeElement = document.createElement('div');
  42.                 snakeElement.style.gridColumn = `${segment.x / 20}`;
  43.                 snakeElement.style.gridRow = `${segment.y / 20}`;
  44.                 snakeElement.classList.add('snake');
  45.                 gameBoard.appendChild(snakeElement);
  46.             });

  47.             const foodElement = document.createElement('div');
  48.             foodElement.style.gridColumn = `${food.x / 20}`;
  49.             foodElement.style.gridRow = `${food.y / 20}`;
  50.             foodElement.setAttribute('id', 'food');
  51.             gameBoard.appendChild(foodElement);
  52.         }

  53.         function getRandomPosition() {
  54.             return Math.floor(Math.random() * 20) * 20;
  55.         }

  56.         function update() {
  57.             const head = { ...snake[0] };

  58.             if (head.x === food.x && head.y === food.y) {
  59.                 snake.push({});
  60.                 food.x = getRandomPosition();
  61.                 food.y = getRandomPosition();
  62.             }

  63.             for (let i = snake.length - 1; i >= 0; i--) {
  64.                 if (i === 0) {
  65.                     if (direction === 'up') head.y -= 20;
  66.                     if (direction === 'down') head.y += 20;
  67.                     if (direction === 'left') head.x -= 20;
  68.                     if (direction === 'right') head.x += 20;
  69.                 } else {
  70.                     snake[i] = { ...snake[i - 1] };
  71.                 }
  72.             }

  73.             draw();
  74.         }

  75.         document.addEventListener('keydown', e => {
  76.             if (e.key === 'ArrowUp' && direction !== 'down') direction = 'up';
  77.             if (e.key === 'ArrowDown' && direction !== 'up') direction = 'down';
  78.             if (e.key === 'ArrowLeft' && direction !== 'right') direction = 'left';
  79.             if (e.key === 'ArrowRight' && direction !== 'left') direction = 'right';
  80.         });

  81.         let direction = 'right';
  82.         setInterval(update, 100);
  83.     </script>
  84. </body>
  85. </html>
复制代码


这个代码创建了一个简单的贪吃蛇游戏,玩家可通过方向键控制蛇的移动。在游戏中,绿色方块代表蛇身,红色方块代表食物。当蛇吃到食物时,会增加长度。希望你玩得开心!记得在浏览器中打开这个网页来尽情玩耍。如果有任何问题,都可以继续问我哦!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表