科学教育

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

王欣然

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

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

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

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

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>贪吃蛇游戏</title>
  5. <style>
  6.     #game-board {
  7.         width: 400px;
  8.         height: 400px;
  9.         border: 1px solid black;
  10.         position: relative;
  11.     }

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

  18.     .food {
  19.         width: 20px;
  20.         height: 20px;
  21.         background-color: red;
  22.         position: absolute;
  23.     }
  24. </style>
  25. </head>
  26. <body>

  27. <div id="game-board"></div>

  28. <script>
  29. let gameBoard = document.getElementById('game-board');
  30. let snake = [{x: 200, y: 200}];
  31. let dx = 0;
  32. let dy = 0;
  33. let foodX = Math.floor(Math.random() * 20) * 20;
  34. let foodY = Math.floor(Math.random() * 20) * 20;
  35. let score = 0;

  36. function drawSnake() {
  37.     gameBoard.innerHTML = '';
  38.     snake.forEach(segment => {
  39.         let snakeElement = document.createElement('div');
  40.         snakeElement.style.left = segment.x + 'px';
  41.         snakeElement.style.top = segment.y + 'px';
  42.         snakeElement.classList.add('snake');
  43.         gameBoard.appendChild(snakeElement);
  44.     });
  45. }

  46. function drawFood() {
  47.     let foodElement = document.createElement('div');
  48.     foodElement.style.left = foodX + 'px';
  49.     foodElement.style.top = foodY + 'px';
  50.     foodElement.classList.add('food');
  51.     gameBoard.appendChild(foodElement);
  52. }

  53. function moveSnake() {
  54.     let head = {x: snake[0].x + dx, y: snake[0].y + dy};
  55.     snake.unshift(head);

  56.     if (head.x === foodX && head.y === foodY) {
  57.         score++;
  58.         foodX = Math.floor(Math.random() * 20) * 20;
  59.         foodY = Math.floor(Math.random() * 20) * 20;
  60.     } else {
  61.         snake.pop();
  62.     }

  63.     if (head.x < 0 || head.x >= gameBoard.clientWidth || head.y < 0 || head.y >= gameBoard.clientHeight || isSnakeCollide()) {
  64.         alert('Game Over! Your score is: ' + score);
  65.         window.location.reload();
  66.     }

  67.     drawSnake();
  68.     drawFood();
  69. }

  70. function isSnakeCollide() {
  71.     return snake.slice(1).some(segment => segment.x === snake[0].x && segment.y === snake[0].y);
  72. }

  73. document.addEventListener('keydown', e => {
  74.     switch (e.key) {
  75.         case 'ArrowUp':
  76.             dx = 0;
  77.             dy = -20;
  78.             break;
  79.         case 'ArrowDown':
  80.             dx = 0;
  81.             dy = 20;
  82.             break;
  83.         case 'ArrowLeft':
  84.             dx = -20;
  85.             dy = 0;
  86.             break;
  87.         case 'ArrowRight':
  88.             dx = 20;
  89.             dy = 0;
  90.             break;
  91.     }
  92. });

  93. setInterval(moveSnake, 100);
  94. </script>

  95. </body>
  96. </html>
复制代码


你可以将以上代码复制粘贴到一个新建的HTML文件中,然后用浏览器打开,就可以看到一个简单的贪吃蛇游戏了!玩得开心哦!
回复 支持 反对

使用道具 举报

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

本版积分规则

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