科学教育

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

黄俊轩贪吃蛇游戏

[复制链接]

1

主题

1

帖子

21

积分

新手上路

Rank: 1

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

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-9-30 10:06:11 | 只看该作者
当你制作一个贪吃蛇游戏的网页时,你需要用到HTML、CSS和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.     #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>
  31. const gameBoard = document.getElementById('game-board');
  32. let snake = [{x: 200, y: 200}];
  33. let food = {x: 0, y: 0};
  34. let direction = 'right';

  35. function drawSnake() {
  36.     gameBoard.innerHTML = '';
  37.     snake.forEach(segment => {
  38.         const snakeElement = document.createElement('div');
  39.         snakeElement.style.gridRowStart = segment.y / 20;
  40.         snakeElement.style.gridColumnStart = segment.x / 20;
  41.         snakeElement.classList.add('snake');
  42.         gameBoard.appendChild(snakeElement);
  43.     });
  44. }

  45. function drawFood() {
  46.     const foodElement = document.createElement('div');
  47.     foodElement.style.gridRowStart = food.y / 20;
  48.     foodElement.style.gridColumnStart = food.x / 20;
  49.     foodElement.id = 'food';
  50.     gameBoard.appendChild(foodElement);
  51. }

  52. function moveSnake() {
  53.     const head = {x: snake[0].x, y: snake[0].y};

  54.     switch (direction) {
  55.         case 'up':
  56.             head.y -= 20;
  57.             break;
  58.         case 'down':
  59.             head.y += 20;
  60.             break;
  61.         case 'left':
  62.             head.x -= 20;
  63.             break;
  64.         case 'right':
  65.             head.x += 20;
  66.             break;
  67.     }

  68.     snake.unshift(head);

  69.     if (head.x === food.x && head.y === food.y) {
  70.         // Snake eats the food
  71.         food.x = Math.floor(Math.random() * 20) * 20;
  72.         food.y = Math.floor(Math.random() * 20) * 20;
  73.     } else {
  74.         // Remove tail
  75.         snake.pop();
  76.     }
  77. }

  78. function changeDirection(event) {
  79.     const key = event.key;
  80.     if (key === 'ArrowUp' && direction !== 'down') {
  81.         direction = 'up';
  82.     } else if (key === 'ArrowDown' && direction !== 'up') {
  83.         direction = 'down';
  84.     } else if (key === 'ArrowLeft' && direction !== 'right') {
  85.         direction = 'left';
  86.     } else if (key === 'ArrowRight' && direction !== 'left') {
  87.         direction = 'right';
  88.     }
  89. }

  90. drawFood();
  91. drawSnake();

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

  93. setInterval(() => {
  94.     moveSnake();
  95.     drawSnake();
  96. }, 100);
  97. </script>
  98. </body>
  99. </html>
复制代码


在这个示例中,我使用了一个简单的游戏板`game-board`,用绿色方块表示蛇,红色方块表示食物。通过控制蛇的移动方向和吃食物来实现游戏的功能。希望这个示例对你有帮助,你可以根据自己的需求进行修改和扩展。祝你玩得开心!
回复 支持 反对

使用道具 举报

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

本版积分规则

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