您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Play Snake on any webpage by pressing 'S'
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/491883/1355808/Snake%20Game.js
- // ==UserScript==
- // @name Snake Game
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description Play Snake on any webpage by pressing 'S'
- // @author You
- // @match https://*/*
- // @match http://*/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- let snakeInterval;
- let snake;
- let food;
- let direction;
- let score;
- function initSnake() {
- snake = [{x: 10, y: 10}];
- food = getRandomPosition();
- direction = 'right';
- score = 0;
- snakeInterval = setInterval(moveSnake, 100);
- }
- function getRandomPosition() {
- return {
- x: Math.floor(Math.random() * 20),
- y: Math.floor(Math.random() * 20)
- };
- }
- function moveSnake() {
- const head = { ...snake[0] };
- switch (direction) {
- case 'up':
- head.y--;
- break;
- case 'down':
- head.y++;
- break;
- case 'left':
- head.x--;
- break;
- case 'right':
- head.x++;
- break;
- }
- if (head.x < 0 || head.x >= 20 || head.y < 0 || head.y >= 20 || isSnakeCollided(head)) {
- clearInterval(snakeInterval);
- alert('Game Over! Score: ' + score);
- initSnake();
- return;
- }
- snake.unshift(head);
- if (head.x === food.x && head.y === food.y) {
- score++;
- food = getRandomPosition();
- } else {
- snake.pop();
- }
- drawSnake();
- }
- function isSnakeCollided(head) {
- return snake.some(segment => segment.x === head.x && segment.y === head.y);
- }
- function drawSnake() {
- const canvas = document.getElementById('snakeCanvas');
- const ctx = canvas.getContext('2d');
- ctx.clearRect(0, 0, canvas.width, canvas.height);
- snake.forEach(segment => {
- ctx.fillStyle = 'green';
- ctx.fillRect(segment.x * 20, segment.y * 20, 20, 20);
- });
- ctx.fillStyle = 'red';
- ctx.fillRect(food.x * 20, food.y * 20, 20, 20);
- }
- function handleKeydown(event) {
- switch (event.key) {
- case 'ArrowUp':
- direction = 'up';
- break;
- case 'ArrowDown':
- direction = 'down';
- break;
- case 'ArrowLeft':
- direction = 'left';
- break;
- case 'ArrowRight':
- direction = 'right';
- break;
- case 's':
- case 'S':
- if (!snakeInterval) {
- initSnake();
- }
- break;
- }
- }
- function createCanvas() {
- const canvas = document.createElement('canvas');
- canvas.id = 'snakeCanvas';
- canvas.width = 400;
- canvas.height = 400;
- canvas.style.border = '1px solid black';
- canvas.style.position = 'fixed';
- canvas.style.top = '50%';
- canvas.style.left = '50%';
- canvas.style.transform = 'translate(-50%, -50%)';
- canvas.style.zIndex = '9999';
- document.body.appendChild(canvas);
- }
- createCanvas();
- document.addEventListener('keydown', handleKeydown);
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址