科学教育

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

帮我复制一个贪吃蛇

[复制链接]

1

主题

4

帖子

26

积分

新手上路

Rank: 1

积分
26
跳转到指定楼层
楼主
发表于 2025-9-30 15:18:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮我复制一个贪吃蛇
回复

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-9-30 15:18:46 | 只看该作者
好的,我们可以用网页编程来实现一个简单的贪吃蛇游戏。首先,我们需要使用HTML、CSS和JavaScript来创建游戏界面和逻辑。

首先,创建一个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.     <style>
  8.         #game-board {
  9.             width: 400px;
  10.             height: 400px;
  11.             border: 1px solid black;
  12.             position: relative;
  13.         }

  14.         .snake {
  15.             width: 20px;
  16.             height: 20px;
  17.             background-color: green;
  18.             position: absolute;
  19.         }

  20.         .food {
  21.             width: 20px;
  22.             height: 20px;
  23.             background-color: red;
  24.             position: absolute;
  25.         }
  26.     </style>
  27. </head>
  28. <body>
  29.     <div id="game-board"></div>
  30.     <script src="snake.js"></script>
  31. </body>
  32. </html>
复制代码


接着,在同一目录下创建一个JavaScript文件(命名为snake.js),用来实现贪吃蛇的逻辑:
  1. const gameBoard = document.getElementById('game-board');
  2. let snake = [{ x: 10, y: 10 }];
  3. let food = { x: 5, y: 5 };
  4. let direction = { x: 0, y: 0 };

  5. function drawSnake() {
  6.     gameBoard.innerHTML = '';
  7.     snake.forEach(segment => {
  8.         const snakeElement = document.createElement('div');
  9.         snakeElement.style.gridRowStart = segment.y;
  10.         snakeElement.style.gridColumnStart = segment.x;
  11.         snakeElement.classList.add('snake');
  12.         gameBoard.appendChild(snakeElement);
  13.     });
  14. }

  15. function drawFood() {
  16.     const foodElement = document.createElement('div');
  17.     foodElement.style.gridRowStart = food.y;
  18.     foodElement.style.gridColumnStart = food.x;
  19.     foodElement.classList.add('food');
  20.     gameBoard.appendChild(foodElement);
  21. }

  22. function moveSnake() {
  23.     const head = { x: snake[0].x + direction.x, y: snake[0].y + direction.y };
  24.     snake.unshift(head);

  25.     if (head.x === food.x && head.y === food.y) {
  26.         food.x = Math.floor(Math.random() * 20);
  27.         food.y = Math.floor(Math.random() * 20);
  28.     } else {
  29.         snake.pop();
  30.     }
  31. }

  32. function changeDirection(event) {
  33.     switch(event.key) {
  34.         case 'ArrowUp':
  35.             direction = { x: 0, y: -1 };
  36.             break;
  37.         case 'ArrowDown':
  38.             direction = { x: 0, y: 1 };
  39.             break;
  40.         case 'ArrowLeft':
  41.             direction = { x: -1, y: 0 };
  42.             break;
  43.         case 'ArrowRight':
  44.             direction = { x: 1, y: 0 };
  45.             break;
  46.     }
  47. }

  48. document.addEventListener('keydown', changeDirection);

  49. setInterval(() => {
  50.     moveSnake();
  51.     drawSnake();
  52.     drawFood();
  53. }, 100);
复制代码


保存以上代码后,用浏览器打开HTML文件,你就可以开始玩贪吃蛇游戏了!用方向键控制蛇的移动,让它吃到红色食物并不断变长。希望你尽情享受这个简单的贪吃蛇游戏!如果有任何问题,都可以随时问我哦~
回复 支持 反对

使用道具 举报

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

本版积分规则

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