您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Автоматически решает игру "Найди пару" на remanga.org (Shift+T для запуска, выводит время работы)
// ==UserScript== // @name Memory Pair AutoSolver // @namespace https://remanga.org/ // @version 1.1 // @description Автоматически решает игру "Найди пару" на remanga.org (Shift+T для запуска, выводит время работы) // @match https://remanga.org/* // @grant none // @license GNU AGPLv3 // ==/UserScript== (function() { 'use strict'; let openedCards = {}; let solving = false; let interval; let startTime; function solveGame() { let cards = document.querySelectorAll("button img[alt='card']"); // проверяем, есть ли ещё закрытые карты let closedCards = Array.from(cards).filter(img => img.getAttribute("src").includes("random-card.webp")); if (closedCards.length === 0) { clearInterval(interval); solving = false; let endTime = performance.now(); console.warn("Игра решена за " + ((endTime - startTime) / 1000).toFixed(2) + " секунд"); return; } cards.forEach((img, idx) => { let card = img.closest("button"); let src = img.getAttribute("src"); if (src.includes("random-card.webp")) { card.click(); setTimeout(() => { let newSrc = img.getAttribute("src"); if (!newSrc.includes("random-card.webp")) { if (openedCards[newSrc] !== undefined) { let pairIdx = openedCards[newSrc]; let pairCard = cards[pairIdx].closest("button"); pairCard.click(); card.click(); } else { openedCards[newSrc] = idx; } } }, 0); } }); } document.addEventListener('keydown', function(e) { if (e.shiftKey && e.code === 'KeyT') { if (!solving) { solving = true; openedCards = {}; startTime = performance.now(); // начало отсчёта interval = setInterval(solveGame, 0); console.warn("AutoSolver запущен"); } } }); })();