科学教育

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

朱乔安

[复制链接]

1

主题

3

帖子

25

积分

新手上路

Rank: 1

积分
25
跳转到指定楼层
楼主
发表于 2025-9-30 10:16:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

给我一个贪吃蛇代码,css,js,thm

回复

使用道具 举报

0

主题

1145

帖子

1715

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1715
沙发
发表于 2025-9-30 10:16:35 | 只看该作者
当然可以!下面是一个简单的贪吃蛇的网页编程代码,包括HTML、CSS和JavaScript:

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"> <!-- 引入CSS文件 -->
  8. </head>
  9. <body>
  10.     <div class="game-container">
  11.         <canvas id="gameCanvas"></canvas>
  12.     </div>

  13.     <script src="script.js"></script> <!-- 引入JavaScript文件 -->
  14. </body>
  15. </html>
复制代码


2. CSS代码(style.css):
  1. body {
  2.     margin: 0;
  3.     padding: 0;
  4.     overflow: hidden;
  5. }

  6. .game-container {
  7.     display: flex;
  8.     justify-content: center;
  9.     align-items: center;
  10.     height: 100vh;
  11. }

  12. #gameCanvas {
  13.     border: 1px solid black;
  14. }
复制代码


3. JavaScript代码(script.js):
  1. const canvas = document.getElementById('gameCanvas');
  2. const ctx = canvas.getContext('2d');

  3. const gridSize = 20;
  4. const tileCount = 20;
  5. let snake = [{ x: 10, y: 10 }];
  6. let apple = { x: 15, y: 15 };
  7. let xVelocity = 0;
  8. let yVelocity = 0;

  9. function update() {
  10.     snake.unshift({ x: snake[0].x + xVelocity, y: snake[0].y + yVelocity });

  11.     if (snake[0].x === apple.x && snake[0].y === apple.y) {
  12.         apple.x = Math.floor(Math.random() * tileCount);
  13.         apple.y = Math.floor(Math.random() * tileCount);
  14.     } else {
  15.         snake.pop();
  16.     }

  17.     if (snake[0].x < 0 || snake[0].x >= tileCount || snake[0].y < 0 || snake[0].y >= tileCount || checkCollision()) {
  18.         snake = [{ x: 10, y: 10 }];
  19.         xVelocity = 0;
  20.         yVelocity = 0;
  21.     }
  22. }

  23. function draw() {
  24.     ctx.clearRect(0, 0, canvas.width, canvas.height);

  25.     ctx.fillStyle = 'red';
  26.     ctx.fillRect(apple.x * gridSize, apple.y * gridSize, gridSize, gridSize);

  27.     ctx.fillStyle = 'green';
  28.     snake.forEach((segment) => {
  29.         ctx.fillRect(segment.x * gridSize, segment.y * gridSize, gridSize, gridSize);
  30.     });
  31. }

  32. function checkCollision() {
  33.     for (let i = 1; i < snake.length; i++) {
  34.         if (snake[i].x === snake[0].x && snake[i].y === snake[0].y) {
  35.             return true;
  36.         }
  37.     }
  38.     return false;
  39. }

  40. function moveSnake(event) {
  41.     switch(event.key) {
  42.         case 'ArrowUp':
  43.             xVelocity = 0;
  44.             yVelocity = -1;
  45.             break;
  46.         case 'ArrowDown':
  47.             xVelocity = 0;
  48.             yVelocity = 1;
  49.             break;
  50.         case 'ArrowLeft':
  51.             xVelocity = -1;
  52.             yVelocity = 0;
  53.             break;
  54.         case 'ArrowRight':
  55.             xVelocity = 1;
  56.             yVelocity = 0;
  57.             break;
  58.     }
  59. }

  60. setInterval(() => {
  61.     update();
  62.     draw();
  63. }, 100);

  64. window.addEventListener('keydown', moveSnake);
复制代码


这个代码实现了一个简单的贪吃蛇游戏。希望你可以在浏览器中尝试运行并玩一下这个小游戏!如果有任何问题,欢迎随时询问。
回复 支持 反对

使用道具 举报

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

本版积分规则

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