科学教育

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

605徐梓婷

[复制链接]

4

主题

5

帖子

31

积分

新手上路

Rank: 1

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

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-9-30 15:19:10 | 只看该作者
当然可以!贪吃蛇是一个很有趣的游戏,我们可以使用HTML、CSS和JavaScript来编写这个游戏。

首先,我们需要在HTML中创建一个画布(canvas),用于显示游戏界面。接着,在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.     canvas {
  9.         border: 1px solid black;
  10.     }
  11. </style>
  12. </head>
  13. <body>
  14. <canvas id="gameCanvas" width="400" height="400"></canvas>

  15. <script>
  16. const canvas = document.getElementById('gameCanvas');
  17. const ctx = canvas.getContext('2d');

  18. const snakeSize = 20;
  19. let snake = [{x: 200, y: 200}];
  20. let food = {x: 0, y: 0};
  21. let dx = 0;
  22. let dy = 0;

  23. function drawSnake() {
  24.     snake.forEach(segment => {
  25.         ctx.fillStyle = 'green';
  26.         ctx.fillRect(segment.x, segment.y, snakeSize, snakeSize);
  27.     });
  28. }

  29. function drawFood() {
  30.     ctx.fillStyle = 'red';
  31.     ctx.fillRect(food.x, food.y, snakeSize, snakeSize);
  32. }

  33. function update() {
  34.     const head = {x: snake[0].x + dx, y: snake[0].y + dy};
  35.    
  36.     if (head.x === food.x && head.y === food.y) {
  37.         snake.unshift(head);
  38.         generateFood();
  39.     } else {
  40.         snake.pop();
  41.         snake.unshift(head);
  42.     }

  43.     if (head.x < 0 || head.x >= canvas.width || head.y < 0 || head.y >= canvas.height || checkCollision()) {
  44.         clearInterval(gameLoop);
  45.         alert('游戏结束!');
  46.         location.reload();
  47.     }

  48.     ctx.clearRect(0, 0, canvas.width, canvas.height);
  49.     drawSnake();
  50.     drawFood();
  51. }

  52. function generateFood() {
  53.     food.x = Math.floor(Math.random() * canvas.width / snakeSize) * snakeSize;
  54.     food.y = Math.floor(Math.random() * canvas.height / snakeSize) * snakeSize;
  55. }

  56. function checkCollision() {
  57.     return snake.slice(1).some(segment => {
  58.         return segment.x === snake[0].x && segment.y === snake[0].y;
  59.     });
  60. }

  61. function onKeyDown(event) {
  62.     switch (event.key) {
  63.         case 'ArrowUp':
  64.             dx = 0;
  65.             dy = -snakeSize;
  66.             break;
  67.         case 'ArrowDown':
  68.             dx = 0;
  69.             dy = snakeSize;
  70.             break;
  71.         case 'ArrowLeft':
  72.             dx = -snakeSize;
  73.             dy = 0;
  74.             break;
  75.         case 'ArrowRight':
  76.             dx = snakeSize;
  77.             dy = 0;
  78.             break;
  79.     }
  80. }

  81. document.addEventListener('keydown', onKeyDown);

  82. generateFood();
  83. let gameLoop = setInterval(update, 100);
  84. </script>
  85. </body>
  86. </html>
复制代码


你可以将以上代码复制粘贴到一个HTML文件中,然后在浏览器中打开该文件,就可以开始玩贪吃蛇游戏啦!希望你玩得开心!如果有任何问题,随时来问我哦!
回复 支持 反对

使用道具 举报

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

本版积分规则

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