科学教育

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

楼梓毓贪吃蛇游戏

[复制链接]

2

主题

3

帖子

12

积分

新手上路

Rank: 1

积分
12
跳转到指定楼层
楼主
发表于 2025-9-30 10:04:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮我做一个有HTML,CSS,JS的贪吃蛇游戏代码
回复

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-9-30 10:04:54 | 只看该作者
当然可以!让我们一步步来创建一个简单的贪吃蛇游戏吧。

首先,我们需要三个文件:一个 HTML 文件、一个 CSS 文件和一个 JS 文件。在 HTML 文件中,我们将创建游戏区域;在 CSS 文件中,我们将设置样式;在 JS 文件中,我们将编写游戏的逻辑。

### 1. 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="style.css">
  8. </head>
  9. <body>
  10.     <div class="game-area" id="gameArea">
  11.         <!-- 游戏区域 -->
  12.     </div>
  13.    
  14.     <script src="script.js"></script>
  15. </body>
  16. </html>
复制代码


### 2. CSS 文件 (`style.css`)

  1. .game-area {
  2.     width: 400px;
  3.     height: 400px;
  4.     border: 1px solid #000;
  5.     position: relative;
  6. }

  7. .snake {
  8.     width: 10px;
  9.     height: 10px;
  10.     background-color: green;
  11.     position: absolute;
  12. }

  13. .food {
  14.     width: 10px;
  15.     height: 10px;
  16.     background-color: red;
  17.     position: absolute;
  18. }
复制代码


### 3. JS 文件 (`script.js`)

  1. const gameArea = document.getElementById('gameArea');
  2. let snake = [{x: 10, y: 10}];
  3. let food = {x: 200, y: 200};
  4. let direction = 'right';

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

  15. function drawFood() {
  16.     const foodElement = document.createElement('div');
  17.     foodElement.style.left = food.x + 'px';
  18.     foodElement.style.top = food.y + 'px';
  19.     foodElement.classList.add('food');
  20.     gameArea.appendChild(foodElement);
  21. }

  22. function update() {
  23.     // 更新蛇的位置
  24.     const head = {x: snake[0].x, y: snake[0].y};
  25.    
  26.     if (direction === 'right') {
  27.         head.x += 10;
  28.     } else if (direction === 'left') {
  29.         head.x -= 10;
  30.     } else if (direction === 'up') {
  31.         head.y -= 10;
  32.     } else if (direction === 'down') {
  33.         head.y += 10;
  34.     }
  35.    
  36.     snake.unshift(head);
  37.    
  38.     // 检查是否吃到食物
  39.     if (head.x === food.x && head.y === food.y) {
  40.         // 生成新的食物
  41.         food.x = Math.floor(Math.random() * 40) * 10;
  42.         food.y = Math.floor(Math.random() * 40) * 10;
  43.     } else {
  44.         snake.pop();
  45.     }
  46.    
  47.     // 更新画面
  48.     drawSnake();
  49.     drawFood();
  50. }

  51. setInterval(update, 100);

  52. document.addEventListener('keydown', event => {
  53.     const key = event.key;
  54.     if (key === 'ArrowUp' && direction !== 'down') {
  55.         direction = 'up';
  56.     } else if (key === 'ArrowDown' && direction !== 'up') {
  57.         direction = 'down';
  58.     } else if (key === 'ArrowLeft' && direction !== 'right') {
  59.         direction = 'left';
  60.     } else if (key === 'ArrowRight' && direction !== 'left') {
  61.         direction = 'right';
  62.     }
  63. });
复制代码


这就是一个简单的贪吃蛇游戏代码!你可以复制这些代码并将它们分别保存到名为 `index.html`、`style.css` 和 `script.js` 的文件中,然后用浏览器打开 `index.html` 文件即可开始游戏。希望你玩得开心!如果有任何问题,都可以随时问我哦。
回复 支持 反对

使用道具 举报

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

本版积分规则

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