科学教育

搜索
查看: 1614|回复: 12
打印 上一主题 下一主题

金颢轩贪吃蛇

[复制链接]

1

主题

17

帖子

65

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-9-30 15:25:39 | 只看该作者
当然可以!下面是一个简单的贪吃蛇代码示例,你可以在网页上运行它:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <title>贪吃蛇</title>
  5.   <style>
  6.     #gameCanvas {
  7.       border: 1px solid black;
  8.     }
  9.   </style>
  10. </head>
  11. <body>
  12.   <canvas id="gameCanvas" width="400" height="400"></canvas>
  13.   <script>
  14.     const canvas = document.getElementById('gameCanvas');
  15.     const ctx = canvas.getContext('2d');
  16.    
  17.     const snakeSize = 10;
  18.     let snake = [{ x: 200, y: 200 }];
  19.    
  20.     let dx = 0;
  21.     let dy = -snakeSize;
  22.    
  23.     function drawSnake() {
  24.       snake.forEach(segment => {
  25.         ctx.fillStyle = 'green';
  26.         ctx.fillRect(segment.x, segment.y, snakeSize, snakeSize);
  27.       });
  28.     }
  29.    
  30.     function moveSnake() {
  31.       const head = { x: snake[0].x + dx, y: snake[0].y + dy };
  32.    
  33.       snake.unshift(head);
  34.       snake.pop();
  35.     }
  36.    
  37.     function clearCanvas() {
  38.       ctx.clearRect(0, 0, canvas.width, canvas.height);
  39.     }
  40.    
  41.     function gameLoop() {
  42.       clearCanvas();
  43.       moveSnake();
  44.       drawSnake();
  45.       setTimeout(gameLoop, 100);
  46.     }
  47.    
  48.     document.addEventListener('keydown', event => {
  49.       const key = event.key;
  50.    
  51.       switch (key) {
  52.         case 'ArrowUp':
  53.           dx = 0;
  54.           dy = -snakeSize;
  55.           break;
  56.         case 'ArrowDown':
  57.           dx = 0;
  58.           dy = snakeSize;
  59.           break;
  60.         case 'ArrowLeft':
  61.           dx = -snakeSize;
  62.           dy = 0;
  63.           break;
  64.         case 'ArrowRight':
  65.           dx = snakeSize;
  66.           dy = 0;
  67.           break;
  68.       }
  69.     });
  70.    
  71.     gameLoop();
  72.   </script>
  73. </body>
  74. </html>
复制代码


这个代码是一个简单的贪吃蛇游戏,通过按键盘上的方向键控制蛇的移动。你可以复制粘贴到一个 HTML 文件里,用浏览器打开,就可以看到贪吃蛇游戏了。希望对你有帮助!如果还有其他问题,欢迎随时提问哦!
回复 支持 反对

使用道具 举报

1

主题

17

帖子

65

积分

注册会员

Rank: 2

积分
65
板凳
 楼主| 发表于 2025-11-4 08:50:43 | 只看该作者
帮我换成绿色:<!DOCTYPE html>
<html>
<head>
  <title>贪吃蛇</title>
  <style>
    #gameCanvas {
      border: 1px solid black;
    }
  </style>
</head>
<body>
  <canvas id="gameCanvas" width="400" height="400"></canvas>
  <script>
    const canvas = document.getElementById('gameCanvas');
    const ctx = canvas.getContext('2d');
   
    const snakeSize = 10;
    let snake = [{ x: 200, y: 200 }];
   
    let dx = 0;
    let dy = -snakeSize;
   
    function drawSnake() {
      snake.forEach(segment => {
        ctx.fillStyle = 'green';
        ctx.fillRect(segment.x, segment.y, snakeSize, snakeSize);
      });
    }
   
    function moveSnake() {
      const head = { x: snake[0].x + dx, y: snake[0].y + dy };
   
      snake.unshift(head);
      snake.pop();
    }
   
    function clearCanvas() {
      ctx.clearRect(0, 0, canvas.width, canvas.height);
    }
   
    function gameLoop() {
      clearCanvas();
      moveSnake();
      drawSnake();
      setTimeout(gameLoop, 100);
    }
   
    document.addEventListener('keydown', event => {
      const key = event.key;
   
      switch (key) {
        case 'ArrowUp':
          dx = 0;
          dy = -snakeSize;
          break;
        case 'ArrowDown':
          dx = 0;
          dy = snakeSize;
          break;
        case 'ArrowLeft':
          dx = -snakeSize;
          dy = 0;
          break;
        case 'ArrowRight':
          dx = snakeSize;
          dy = 0;
          break;
      }
    });
   
    gameLoop();
  </script>
</body>
</html>
回复 支持 反对

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
地板
发表于 2025-11-4 08:50:49 | 只看该作者
金颢轩 发表于 2025-11-04 08:50
帮我换成绿色:


  贪吃蛇
  
    #gameCanvas {
    ...


当你想要修改蛇的颜色时,只需要将 `ctx.fillStyle = 'green';` 这一行中的 `'green'` 改成其他颜色即可。比如,要将蛇的颜色改为绿色,可以将 `'green'` 改成 `'lime'`,这样就可以将蛇变成绿色了。

  1. ctx.fillStyle = 'lime';
复制代码


你可以尝试将代码中的 `'green'` 修改成 `'lime'`,然后刷新页面,看看贪吃蛇的颜色是否变成了绿色。如果有任何问题,欢迎继续向我提问!祝玩得开心!
回复 支持 反对

使用道具 举报

1

主题

17

帖子

65

积分

注册会员

Rank: 2

积分
65
5#
 楼主| 发表于 2025-11-4 09:03:33 | 只看该作者
帮我把字体改成绿色:<!DOCTYPE html>
<html>
<head>
  <title>贪吃蛇</title>
  <style>
    #gameCanvas {
      border: 1px solid black;
    }
  </style>
</head>
<body>
  <canvas id="gameCanvas" width="400" height="400"></canvas>
  <script>
    const canvas = document.getElementById('gameCanvas');
    const ctx = canvas.getContext('2d');
   
    const snakeSize = 10;
    let snake = [{ x: 200, y: 200 }];
   
    let dx = 0;
    let dy = -snakeSize;
   
    function drawSnake() {
      snake.forEach(segment => {
        ctx.fillStyle = 'green';
        ctx.fillRect(segment.x, segment.y, snakeSize, snakeSize);
      });
    }
   
    function moveSnake() {
      const head = { x: snake[0].x + dx, y: snake[0].y + dy };
   
      snake.unshift(head);
      snake.pop();
    }
   
    function clearCanvas() {
      ctx.clearRect(0, 0, canvas.width, canvas.height);
    }
   
    function gameLoop() {
      clearCanvas();
      moveSnake();
      drawSnake();
      setTimeout(gameLoop, 100);
    }
   
    document.addEventListener('keydown', event => {
      const key = event.key;
   
      switch (key) {
        case 'ArrowUp':
          dx = 0;
          dy = -snakeSize;
          break;
        case 'ArrowDown':
          dx = 0;
          dy = snakeSize;
          break;
        case 'ArrowLeft':
          dx = -snakeSize;
          dy = 0;
          break;
        case 'ArrowRight':
          dx = snakeSize;
          dy = 0;
          break;
      }
    });
   
    gameLoop();
  </script>
</body>
</html>
回复 支持 反对

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
6#
发表于 2025-11-4 09:03:39 | 只看该作者
金颢轩 发表于 2025-11-04 09:03
帮我把字体改成绿色:


  贪吃蛇
  
    #gameCanvas ...


要将字体颜色改为绿色,你可以在 CSS 样式中添加如下设置:


  1. <style>
  2.   body {
  3.     color: green;
  4.   }
  5. </style>
复制代码



这段代码会将页面上所有文字的颜色都修改为绿色。你可以将这段样式代码插入到 HTML 文件的 `<head>` 标签内,这样页面上的文字就会变成绿色了。希望能帮到你!如果有任何问题,请随时告诉我哦!
回复 支持 反对

使用道具 举报

1

主题

17

帖子

65

积分

注册会员

Rank: 2

积分
65
7#
 楼主| 发表于 2025-11-11 14:57:13 | 只看该作者
这是什么意思    if (keyPressed === 40 && dy === 0) {
        dx = 0;
        dy = gridSize;
回复 支持 反对

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
8#
发表于 2025-11-11 14:57:20 | 只看该作者
金颢轩 发表于 2025-11-11 14:57
这是什么意思    if (keyPressed === 40 && dy === 0) ...


这段代码是在检测按键事件的处理中,判断用户按下的键是否是方向键"↓"(keyCode 为40),并且当前蛇的运动方向不是竖直向上。如果条件满足,则将蛇的水平速度设为0,垂直速度设为格子大小(假设是正数,表示向下移动一个格子的距离)。

也就是说,这段代码是用来控制当用户按下“↓”键时,且当前蛇不是向上移动时,让蛇向下移动一个格子的距离。这样保证了蛇在操作时只能朝着相反方向移动,避免蛇头和蛇尾相撞,确保游戏能够正常进行。
回复 支持 反对

使用道具 举报

1

主题

17

帖子

65

积分

注册会员

Rank: 2

积分
65
9#
 楼主| 发表于 2025-12-2 14:55:11 | 只看该作者
帮我生成飞机大作战代码
回复 支持 反对

使用道具 举报

1

主题

17

帖子

65

积分

注册会员

Rank: 2

积分
65
10#
 楼主| 发表于 2025-12-2 14:56:51 | 只看该作者
帮我生成飞机大作战网页代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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