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);
})();