摸鱼也摸鱼之在线数独自动求解

背景

在发现被老板CPU之后,大家想做的基本上都是摸鱼,像我这种没什么手法的人不可能摸鱼打MOBA游戏,所以只能选择数独这种对时间要求不怎么急促的小游戏。然而,有时候搞半天才发现从一开始就错了,这让我很苦恼,看来有必要对这一摸鱼行动进行再次摸鱼。

平台

偶然发现的在线数独页游[在线数独 (sudoku-cn.com)]

方案

浏览器安装油猴插件,并新建一个油猴脚本,其内容如下:

// ==UserScript==
// @name         右键自动解答数独
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://sudoku-cn.com/
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// ==/UserScript==(function() {'use strict';let board = [];let over = false;let hang=[];let lie=[];let mid=[];function getQuestion() {hang=[];lie=[];mid=[];for(let i=0;i<9;i++){hang.push([false,false,false,false,false,false,false,false,false]);lie.push([false,false,false,false,false,false,false,false,false]);mid.push([false,false,false,false,false,false,false,false,false]);}board=[];let str="";for (let i = 0; i < 9; i++) {board.push([]);for (let j = 0; j < 9; j++) {let div = document.querySelector("#vc_" + j + "_" + i);if (div.innerHTML.trim().length != 0&&div.className=="r1") {board[i].push(div.innerHTML.trim());str+=div.innerHTML.trim();hang[i][board[i][j].charCodeAt(0)-49]=true;lie[j][board[i][j].charCodeAt(0)-49]=true;mid[Math.floor(i/3)*3+Math.floor(j/3)][board[i][j].charCodeAt(0)-49]=true;} else {str+="_";board[i].push("_");}}}
/*         console.log("源:",str); */}function dfs(i,j) {if (over){return;}if (i >= 9 || j >= 9){over = true;return;}if (board[i][j] != '_'){if (j == 9 - 1){dfs(i + 1, 0);}else{dfs(i, j + 1);}return;}for(let number = 1; number <= 9; number++){if (hang[i][number - 1] || lie[j][ number - 1] || mid[Math.floor(i / 3) * 3 +Math.floor( j / 3)][ number - 1]){continue;}else{board[i][j] =String.fromCharCode(number + 48);hang[i][number - 1] = true;lie[j][ number - 1] = true;mid[Math.floor(i / 3) * 3 + Math.floor(j / 3)][ number - 1] = true;if (j == 9 - 1){dfs(i + 1, 0);}else{dfs(i, j + 1);}if (over){return;}else{board[i][j] = '_';hang[i][ number - 1] = false;lie[j][ number - 1] = false;mid[Math.floor(i / 3) * 3 +Math.floor( j / 3)][ number - 1] = false;}}}}function setAnswer() {let index = 0;for (let i = 0; i < 9; i++) {for (let j = 0; j < 9; j++) {let div = document.querySelector("#vc_" + j + "_" + i);div.innerHTML = board[i][j];}}}document.oncontextmenu = (e) => {e.preventDefault();over = false;getQuestion();dfs(0,0);setAnswer();}
})();

如代码所示,我把鼠标右键默认事件取消了,取而代之的是右键单击时自动求解该题目,并填写答案进去。

测试

直接高级+难度的题目

点击鼠标右键直接求解

 

全是绿色的,那就没问题了。

至此,完成了摸鱼也摸鱼的目标。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java 基础篇】Java Supplier 接口详解

在Java中&#xff0c;Supplier接口是一个重要的函数式接口&#xff0c;它属于java.util.function包&#xff0c;用于表示一个供应商&#xff0c;它不接受任何参数&#xff0c;但可以提供一个结果。Supplier通常用于延迟计算或生成值的场景。本文将详细介绍Supplier接口的用法以…

【算法】滑动窗口破解长度最小子数组

Problem: 209. 长度最小的子数组 文章目录 题意分析算法原理讲解暴力枚举O(N^2)利用单调性&#xff0c;滑动窗口求解 复杂度Code 题意分析 首先来分析一下本题的题目意思 题目中会给到一个数组&#xff0c;我们的目的是找出在这个数组中 长度最小的【连续】子数组&#xff0c;而…

第P6周—好莱坞明星识别(2)

五、模型训练 # 训练循环def train(dataloader, model, loss_fn, optimizer):size len(dataloader.dataset) # 训练集的大小num_batches len(dataloader) # 批次数目train_loss, train_acc 0, 0 # 初始化训练损失和正确率for X, y in dataloader: # 获取图片及其标签X…

k8s集群-3 pod 管理

pod是可以创建和管理k 8 s 计算的最小可部署单元&#xff0c;一个pod 代表着集群中运行的一个进程&#xff0c;每个pod 都有一个唯一的ip 一个pod 类似一个豌豆荚&#xff0c;包含一个或者多个容器&#xff0c;多个容器间共享IPC Network和UTC namespace pod 包裹了容器 下载…

【MySQL】 MySQL索引事务

文章目录 &#x1f6eb;索引&#x1f38d;索引的概念&#x1f333;索引的作用&#x1f384;索引的使用场景&#x1f340;索引的使用&#x1f4cc;查看索引&#x1f4cc;创建索引&#x1f332;删除索引 &#x1f334;索引保存的数据结构&#x1f388;B树&#x1f388;B树&#x…

左神高阶进阶班4 (尼姆博弈问题、k伪进制、递归到动态规划、优先级结合的递归套路、子串的递归套路,子序列的递归套路,动态规划的压缩技巧)

目录 【案例1 尼姆博弈问题】 【题目描述】 【思路解析】 【代码实现】 【案例2 k伪进制问题】 【题目描述】 【思路解析】 【代码实现】 【案例3 最大路径和】 【题目描述】 【思路解析】 【代码实现】 【案例4 优先级的递归套路】 【题目描述】 【思路解析】…

Android 遍历界面所有的View

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、实践四、 推荐阅读 一、导读 我们…

Python Opencv实践 - 视频目标追踪MeanShift

参考资料&#xff1a; opencv/python标定时用到的几个函数意义_criteria opencv_是三水不是泗水的博客-CSDN博客 pythonOpenCV笔记&#xff08;二十六&#xff09;&#xff1a;视频追踪&#xff08;meanshift、Camshift&#xff09;_cv2.meanshift_ReadyGo!!!的博客-CSDN博客…

获取文件最后修改时间

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Java源码 public void testGetFileTime() {try {String string "E://test.txt";File file new File(string);Path path file.toPath();BasicFileAttributes ba…

树结构构建,字典树快速生成。

表结构 查出list后&#xff0c;用工具类转换。工具类代码如下&#xff1a; 下面展示一些 内联代码片。 public static List<JSONObject> toTreeList(List tList, String oidkey, Stripspidkey) List<JSONObject> jsonObjectList JSONArray. parseArray (JSON.…

Leetcode—— 20.有效的括号

20. 有效的括号 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭…

Idea中使用Service管理微服务

前言 如何在本地一键启动很多个微服务&#xff0c;下面介绍下IDEA开发工具中得Services管理管理功能 一、第一步 1、在IDEA中下栏bar中如果存在Services,请看第二步。 2、如果没有请按照以下步骤打开 View -> Tool Windows -> Services 二、第二步 刚创建好的窗口是空…