破解站长的emojiGame

emojiGame:https://zzhanzhang.top/emojigame

其实很简单,F12即可查看到所有emoji,再按照从上至下从左至右排列即是隐藏的位置信息

如果使用油猴脚本就更方便了:

// ==UserScript==
// @name         Emoji游戏一键破解
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  显示emoji游戏中所有表情的位置
// @match        https://zzhanzhang.top/emojigame/
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 创建破解按钮
    const createCrackButton = () => {
        const button = document.createElement('button');
        button.textContent = '一键破解';
        button.style.position = 'fixed';
        button.style.top = '20px';
        button.style.right = '20px';
        button.style.zIndex = '9999';
        button.style.padding = '10px 20px';
        button.style.backgroundColor = '#4f46e5';
        button.style.color = 'white';
        button.style.border = 'none';
        button.style.borderRadius = '5px';
        button.style.cursor = 'pointer';
        button.style.fontWeight = 'bold';
        button.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)';
        button.addEventListener('click', showEmojiPositions);
        document.body.appendChild(button);
    };

    // 获取并显示所有emoji位置
    const showEmojiPositions = () => {
        const gameFrame = document.querySelector('iframe[src*="emojigame2.html"]');
        if (!gameFrame) {
            alert('未找到游戏内容,请刷新页面重试');
            return;
        }

        if (!gameFrame.contentDocument || !gameFrame.contentDocument.body) {
            alert('游戏尚未加载完成,请稍候再试');
            return;
        }

        // 从iframe中获取所有emoji卡片
        const emojiGrid = gameFrame.contentDocument.getElementById('emoji-grid');
        const cards = emojiGrid.querySelectorAll('.card-flip');

        // 提取emoji并保持原有顺序
        const emojis = [];
        cards.forEach(card => {
            const emojiElement = card.querySelector('.card-back');
            if (emojiElement) {
                emojis.push(emojiElement.textContent.trim());
            }
        });

        // 创建可拖动的显示面板
        createDraggablePanel(emojis);
    };

    // 创建可拖动的emoji显示面板
    const createDraggablePanel = (emojis) => {
        // 检查是否已有面板,如有则移除
        const existingPanel = document.getElementById('emoji-hint-panel');
        if (existingPanel) {
            existingPanel.remove();
        }

        // 创建面板容器
        const panel = document.createElement('div');
        panel.id = 'emoji-hint-panel';
        panel.style.position = 'fixed';
        panel.style.top = '80px';
        panel.style.right = '20px';
        panel.style.zIndex = '9998';
        panel.style.backgroundColor = 'rgba(255, 255, 255, 0.9)';
        panel.style.borderRadius = '10px';
        panel.style.boxShadow = '0 4px 12px rgba(0,0,0,0.15)';
        panel.style.padding = '15px';
        panel.style.maxWidth = '300px';
        panel.style.userSelect = 'none';

        // 添加标题
        const title = document.createElement('div');
        title.textContent = 'Emoji排列位置';
        title.style.fontWeight = 'bold';
        title.style.marginBottom = '10px';
        title.style.textAlign = 'center';
        title.style.color = '#4f46e5';
        panel.appendChild(title);

        // 创建emoji网格(保持4x4布局,与游戏一致)
        const grid = document.createElement('div');
        grid.style.display = 'grid';
        grid.style.gridTemplateColumns = 'repeat(4, 1fr)';
        grid.style.gap = '8px';
        panel.appendChild(grid);

        // 添加emoji到网格
        emojis.forEach(emoji => {
            const emojiBox = document.createElement('div');
            emojiBox.textContent = emoji;
            emojiBox.style.fontSize = '24px';
            emojiBox.style.textAlign = 'center';
            emojiBox.style.padding = '10px';
            emojiBox.style.backgroundColor = '#f0f0f0';
            emojiBox.style.borderRadius = '5px';
            grid.appendChild(emojiBox);
        });

        makeDraggable(panel);
        document.body.appendChild(panel);
    };

    // 使元素可拖动
    const makeDraggable = (element) => {
        let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;

        // 创建拖动把手
        const handle = document.createElement('div');
        handle.style.height = '20px';
        handle.style.backgroundColor = '#4f46e5';
        handle.style.borderRadius = '5px 5px 0 0';
        handle.style.cursor = 'move';
        handle.style.margin = '-15px -15px 15px -15px';
        element.insertBefore(handle, element.firstChild);
        handle.onmousedown = dragMouseDown;

        function dragMouseDown(e) {
            e = e || window.event;
            e.preventDefault();
            pos3 = e.clientX;
            pos4 = e.clientY;
            document.onmouseup = closeDragElement;
            document.onmousemove = elementDrag;
        }

        function elementDrag(e) {
            e = e || window.event;
            e.preventDefault();
            pos1 = pos3 - e.clientX;
            pos2 = pos4 - e.clientY;
            pos3 = e.clientX;
            pos4 = e.clientY;
            element.style.top = (element.offsetTop - pos2) + "px";
            element.style.left = (element.offsetLeft - pos1) + "px";
        }

        function closeDragElement() {
            document.onmouseup = null;
            document.onmousemove = null;
        }
    };

    // 页面加载完成后创建按钮
    window.addEventListener('load', createCrackButton);
})();