摸鱼也摸鱼之点灯游戏自动求解

news2024/9/30 19:37:47

游戏

变色方块 世上最难智力游戏 (yanhaijing.com)

脚本

新建文件夹,命名为Inverter

在文件夹下新建inverter.js文件,内容如下

"use strict";

function getA() {
	let a = [];
	let level = parseInt(document.querySelector("#cur-level").innerHTML);
	for (let i = 0; i < level; i++) {
		a.push([]);
		for (let j = 0; j < level; j++) {
			a[i].push(0);
		}
	}
	return a;
}

function solve() {
	let level = parseInt(document.querySelector("#cur-level").innerHTML);
	let screen = document.querySelector("#screen");


	let max = Math.floor(Math.pow(2, level));

	for (let num = 0; num < max; num++) {
		let a = getA();
		let f = getA();

		let s = num.toString(2);
		while (s.length < level) {
			s = "0" + s;
		}

		for (let i = 0; i < level; i++) {
			if (s[i] == '1') {
				a[0][i] = 1 - a[0][i];
				f[0][i] = 1;
				if (i > 0) {
					a[0][i - 1] = 1 - a[0][i - 1];
				}
				if (i + 1 < level) {
					a[0][i + 1] = 1 - a[0][i + 1];
				}
				if (1 < level) {
					a[1][i] = 1 - a[1][i];
				}
			}
		}

		for (let i = 0; i < level - 1; i++) {
			for (let j = 0; j < level; j++) {
				if (a[i][j] == 0) {
					f[i + 1][j] = 1;

					a[i][j] = 1 - a[i][j];
					a[i + 1][j] = 1 - a[i + 1][j];
					if (j > 0) {
						a[i + 1][j - 1] = 1 - a[i + 1][j - 1];
					}
					if (j + 1 < level) {
						a[i + 1][j + 1] = 1 - a[i + 1][j + 1];
					}
					if (i + 2 < level) {
						a[i + 2][j] = 1 - a[i + 2][j];
					}
				}
			}
		}

		let c = 0;
		for (let i = level - 1, j = 0; j < level; j++) {
			c += a[i][j];
		}
		if (c == level) {
			console.log(a);
			console.log();
			console.log(f)
			console.log();
			console.log(s);
			
			let divs=document.querySelectorAll(".square ");
			for(let i=0;i<level;i++){
				for(let j=0;j<level;j++){
					if(f[i][j]==1){
						let index=i*level+j;
						divs[index].click();
					}
				}
			}
			break;
		}
	}
}

document.oncontextmenu = (e) => {
	e.preventDefault();
	solve();
}

再建一个manifest.json文件,内容如下

{
	"name": "inverter",
	"version": "1.0",
	"description": "单击鼠标右键自动求解点灯",
	"manifest_version": 2,
	"content_scripts": [{
		"matches": [
			"http://yanhaijing.com/inverter/"
		],
		"js": [
			"inverter.js"
		]
	}]
}

部署

因为我用的是Edge浏览器,就以它为例,打开它的扩展

使用键盘上的Win键+右方向键,将这个画面缩到右边,将脚本文件夹缩到左边

使用鼠标将脚本文件夹Inverter拖到扩展区中,即可添加完毕

测试

打开我们的游戏主页

鼠标右键单击,即可自动帮我们解答,进入下一关。 

注意

由于随着N的增长,算法复杂度为O(2^N),后面有可能会变得很慢,适当游戏,主要是学习算法以及搭配浏览器编写脚本,不要本末倒置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1025216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

当当API接口开发系列(商品详情页面和按关键词搜索商品列表)

当当API接口开发需要先了解当当API的基本信息和功能。在使用当当API之前&#xff0c;需要先注册并获取API密钥&#xff0c;以确保安全性和权限控制。 当当API提供了多种接口&#xff0c;包括商品信息接口、订单接口、库存接口、价格接口、促销接口、购物车接口等。通过这些接口…

【学习笔记】多模态综述

多模态综述 前言1. CLIP & ViLT2. ALBEF3. VLMO4. BLIP5. CoCa6. BeiTv3总结参考链接 前言 本篇学习笔记虽然是多模态综述&#xff0c;本质上是对ViLT后多模态模型的总结&#xff0c;时间线为2021年至2022年&#xff0c;在这两年&#xff0c;多模态领域的模型也是卷的飞起…

制作学生查询小程序

学生个人成绩查询小程序&#xff0c;一款助力教师实时了解学生学习情况的便捷工具。本文将为您揭秘它的制作过程&#xff0c;并提供实用的建议。然而&#xff0c;简便易用的方法莫过于选择现有的工具。 许多教师都偏爱使用易查分来快速创建查分网站。与传统的独立开发方式不同…

vue3 - 基于 Vue3 + Vite4 + TypeScript5 + Element-Plus + Pinia 技术栈的后台管理系统

GitHub Demo 地址 在线预览 jh-vue3-admin项目地址 | 在线预览 ## 项目介绍 jh-vue3-admin 是基于 Vue3 Vite4 TypeScript5 Element-Plus Pinia 等最新主流技术栈构建的后台管理系统前端模板。 特性&#xff1a; 基于vue-admin-template项目升级到 vue3 版本通过Mock模…

八大排序(一)冒泡排序,选择排序,插入排序,希尔排序

一、冒泡排序 冒泡排序的原理是&#xff1a;从左到右&#xff0c;相邻元素进行比较。每次比较一轮&#xff0c;就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。 以从小到大排序为例&#xff0c;第一轮比较后&#xff0c;所有数中最大的那个数就会浮…

软件测试之性能测试详解(含文档+视频讲解)

性能测试基础 为什么要进行性能测试&#xff08;WHY&#xff09;&#xff08;最重要&#xff09; 应用程序是否能够很快的响应用户的要求&#xff1f;应用程序是否能处理预期的用户负载并有盈余能力&#xff1f;应用程序是否能处理业务所需要的事务数量&#xff1f;在预期和非…

基于Python flask 的某招聘网站爬虫,招聘岗位可视化系统

招聘信息可视化系统 一、介绍 原文地址 今天为大家带来的是Python基于Flask的招聘信息爬取&#xff0c;招聘岗位分析、招聘可视化系统。 此系统是一个实时分析招聘信息的系统&#xff0c;应用Python爬虫、Flask框架、Echarts、VUE等技术实现。 本项目利用 Python 从某招聘网…

【C++】动静态库的生成与调用

目录层级 lib/Deal.cpp #include "Deal.hpp" #include <iostream>int DataInc(int num) {std::cout << __FUNCTION__ << " Dealing " << num << "..." << std::endl;return num; }int DataDec(int num)…

小程序大作用:教师得力助手

学生成绩查询小程序&#xff0c;一种快捷便利的工具&#xff0c;可以帮助老师们更好地了解学生的学习状况。今天教给各位老师如何制作这样一个小程序&#xff0c;并提供实用的建议。当然&#xff0c;对于许多老师而言&#xff0c;使用现成的工具是更为高效便捷的选择。 今天我为…

for forin forof forEach map区别

一、总结 相同点&#xff1a;都是串行遍历。不同点&#xff1a; 二、for of循环 设计目的&#xff1a;遍历所有数据结构的统一方法。原理&#xff1a;会调用数据结构的Symbol.iterator方法。 只要数据结构定义了Symbol.iterator属性&#xff0c;就能用for of遍历它的成员。…

循环神经网络-简洁实现

参考&#xff1a; https://zh-v2.d2l.ai/chapter_recurrent-neural-networks/rnn-concise.html https://pytorch.org/docs/stable/generated/torch.nn.RNN.html?highlightrnn#torch.nn.RNN RNN import torch from torch import nn from torch.nn import functional as F from…

安防监控视频云存储平台EasyNVR对接EasyNVS时,一直不上线该如何解决?

视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入&#xff0c;并能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。 近期有用户在使用安防视频平台EasyNVR对接上级平台EasyNVS时&#xff0c;出现了一直不上线…

文档丢失怎么找回?学会这3个方法就足够!

场景1&#xff1a;“不是吧&#xff01;我辛辛苦苦写的文档好像忘记保存就退出了&#xff01;谁能救救我&#xff01;帮我找回丢失的文档&#xff1f;” 场景2&#xff1a;“电脑里的文档太多了&#xff0c;每次在清理时都容易误删。有什么方法可以找回我丢失的文档吗&#xff…

iPhone密码忘了怎么办?这3招已足矣

很急&#xff01;之前改了手机密码&#xff0c;现在完全想不起来。该试的数字也都试过了&#xff0c;根本没用&#xff0c;求一个能解锁iPhone手机的方法&#xff01;感谢&#xff01; iPhone手机的锁屏密码是一个保护用户隐私的功能。如果没有锁屏密码给手机上一道“锁”&…

JavaScript系列从入门到精通系列第二篇:JavaScript书写位置、注释和结束符

文章目录 一&#xff1a;JavaScript书写位置 1&#xff1a;CSS书写位置 (一)&#xff1a;行内样式表 (二)&#xff1a;内部样式表 (三)&#xff1a;外部样式表 2&#xff1a;Js书写位置 (一)&#xff1a;行内样式表 (二)&#xff1a;内部样式表 (三)&#xff1a;外部样…

Cesium 地球(1)-概览

​ 参考: CesiumJS 2022^ 源码解读[4] - 最复杂的地球皮肤 影像与地形的渲染与下载过程 Cesium 地球(1)-概览 相关类的从属关系: 地球由 影像数据&#xff0c;和地形数据共同组成。 流程概览: // Scene.jsfunction render() {// ① 更新影像图层的可见性globe.update();/…

java-decompiler

Java Decompiler GitHub F:\Document_JD-GUI\jd-gui-windows-1.4.0

73家央国企专场培训|第38期信创专业人员-精华班在京成功举办

9月8日-10日&#xff0c;由太极计算机股份有限公司-太极信创研习院(以下简称“太极股份”&#xff09;主办&#xff0c;北京慧点科技有限公司协办的“信息技术应用创新专业人员&#xff08;ITAIP&#xff09;-第38期信创精华班&#xff08;央国企专场培训&#xff09;”在北京市…

[游戏开发][Shader]ShaderToy通用模板转Unity-CG语言

这个通用模板貌似是Candcat写的&#xff0c;漏了几个宏定义&#xff0c;我这给补一下&#xff0c;例如&#xff1a; #define iTime _Time.y #define atan atan2 对照表如下 代码如下 Shader "Shadertoy/Template" {Properties{iMouse("Mouse Pos", Vec…

恩智浦为稳固地位,将扩大投资4国家 | 百能云芯

车用芯片制造商恩智浦&#xff0c;今天宣布了一项重大计划&#xff0c;旨在进一步深耕欧洲市场。该公司将利用欧洲微电子和通信技术共同利益重点计划&#xff08;IPCEI ME/CT&#xff09;的支持&#xff0c;加强其在奥地利、德国、荷兰和罗马尼亚的研发能力&#xff0c;并将根据…