找回密码
 立即注册
搜索
热搜: 新人报到
查看: 432|回复: 7

[相关知识] 介绍一个数独填图加检查答案的方法

[复制链接]

用户组:贡士

重建论坛勋章

      UID
1486
      积分
2400
      回帖
87
      主题
360
      发书数
352
      威望
1824
      铜币
5128
      贡献
0
      阅读权限
60
      注册时间
2025-3-1
      在线时间
49 小时
      最后登录
2025-3-14
发表于 2025-3-3 10:13 | 显示全部楼层 |阅读模式
本帖最后由 飞云望月 于 2025-3-3 14:11 编辑

首先,这个方法是别的大佬的,但很可惜我只是存了他的网址,忘了他叫啥了……所以后面如果大佬回归论坛,认领这个方法,麻烦管理把奖励补给他,因为做得真挺不错的。
补充:方法是@leilee 大佬原创的,@一叶扁舟 麻烦给这位大佬补一下奖励。

1、打开网页,然后点击红框里的选择文件,把附件里的文件放进去。

2、右键活动里的图片,选择复制图片,因为复制的是图片本身而不是地址。


3、点击左边红框,然后右键选择粘贴,就可以填图了。



4、填完之后先点击检查答案,答案无误再点击答案填图,就可以看到填写的内容已经填入了图片,而且有分色处理,然后再右键图片,选择图片另存为就行了~




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1威望 +10 铜币 +50 收起 理由
一叶扁舟 + 10 + 50 论坛有您更精彩!

查看全部评分

回复

使用道具 举报

用户组:童生

      UID
406
      积分
156
      回帖
42
      主题
1
      发书数
0
      威望
134
      铜币
1361
      贡献
0
      阅读权限
20
      注册时间
2025-3-1
      在线时间
4 小时
      最后登录
2025-3-14
发表于 2025-3-3 18:49 | 显示全部楼层
感谢大佬
回复

使用道具 举报

用户组:童生

      UID
2865
      积分
122
      回帖
7
      主题
1
      发书数
0
      威望
118
      铜币
2167
      贡献
0
      阅读权限
20
      注册时间
2025-3-2
      在线时间
8 小时
      最后登录
2025-3-14
发表于 2025-3-3 21:10 | 显示全部楼层
本帖最后由 苏预 于 2025-3-3 21:58 编辑

@leilee 大佬的网页我也在用,生成图非常方便,不过做题的话不太适合。
所以我做了个油猴小插件,方便大家能导出和导入数独。
导出的81位数可以在 这个网页 重新生成数独。
做完之后再复制数独的81位数,然后回到 leilee 的网页生成图片。



因为插件代码比较简单,应该也不会更新了,所以就没有发布在Greasy Fork上。
不会用油猴的问Deep Seek或者通义啥的。
要是大佬看到之后能把导入导出功能整合进网页就更好了,这样插件都可以省了。

帖子就不单独开了,代码如下:

  1. // ==UserScript==
  2. // @name         Sudoku Helper Helper
  3. // @namespace    http://tampermonkey.net/
  4. // @version      1.1
  5. // @description  在Sudoku Helper网页上添加文本框,允许玩家导出和导入数独。
  6. // @author       苏预
  7. // @match        https://sudokuhelper.surge.sh/
  8. // @grant        none
  9. // ==/UserScript==

  10. (function () {
  11.     'use strict';

  12.     function addBoxAndButton() {
  13.         const container = document.querySelector('.toolbar');
  14.         if (!container) return;

  15.         const outputBox = document.createElement('input');
  16.         outputBox.type = 'text';
  17.         outputBox.placeholder = '请输入81位数字';
  18.         outputBox.maxLength = 81;
  19.         outputBox.style.width = '300px';
  20.         outputBox.style.height = '30px';
  21.         outputBox.style.border = '1px solid #ccc';
  22.         outputBox.style.padding = '5px';

  23.         const exportButton = document.createElement('button');
  24.         exportButton.textContent = '导出数独';
  25.         exportButton.style.marginLeft = '10px';

  26.         const sudokuFansButton = document.createElement('button');
  27.         sudokuFansButton.textContent = '数辅网页';
  28.         sudokuFansButton.style.marginLeft = '10px';
  29.         sudokuFansButton.style.marginRight = '10px';

  30.         const fillButton = document.createElement('button');
  31.         fillButton.textContent = '导入数独';
  32.         fillButton.style.marginLeft = '10px';

  33.         exportButton.addEventListener('click', async () => {
  34.             const sudokuBoard = document.getElementById('sudokuBoard');
  35.             if (!sudokuBoard) {
  36.                 alert('未找到数独表格!');
  37.                 return;
  38.             }

  39.             const cells = sudokuBoard.querySelectorAll('td');
  40.             let output = '';
  41.             cells.forEach(cell => {
  42.                 const value = cell.textContent.trim();
  43.                 output += value === '' ? '0' : value;
  44.             });

  45.             if (output.length !== 81) {
  46.                 alert('数独表格不完整,无法导出81位数值!');
  47.                 return;
  48.             }

  49.             outputBox.value = output;

  50.             try {
  51.                 await navigator.clipboard.writeText(output);
  52.                 alert('已成功复制81位数独数据到剪贴板!');
  53.             } catch (err) {
  54.                 alert('无法复制到剪贴板,请检查浏览器权限设置:' + err.message);
  55.             }
  56.         });

  57.         sudokuFansButton.addEventListener('click', () => {
  58.             window.open('http://www.sudokufans.org.cn/2008/index2.php', '_blank');
  59.         });

  60.         fillButton.addEventListener('click', async () => {
  61.             try {
  62.                 const clipboardText = await navigator.clipboard.readText();
  63.                 const inputValue = clipboardText.replace(/\s/g, '');

  64.                 if (inputValue.length !== 81 || !/^\d+$/.test(inputValue)) {
  65.                     alert('剪贴板内容无效,请确保是81位数字!');
  66.                     return;
  67.                 }

  68.                 outputBox.value = inputValue;

  69.                 const sudokuBoard = document.getElementById('sudokuBoard');
  70.                 if (!sudokuBoard) {
  71.                     alert('未找到数独表格!');
  72.                     return;
  73.                 }

  74.                 const cells = sudokuBoard.querySelectorAll('td');
  75.                 for (let i = 0; i < cells.length && i < 81; i++) {
  76.                     cells[i].textContent = inputValue[i] === '0' ? '' : inputValue[i];
  77.                 }
  78.             } catch (err) {
  79.                 alert('无法访问剪贴板,请检查浏览器权限设置:' + err.message);
  80.             }
  81.         });

  82.         container.appendChild(outputBox);
  83.         container.appendChild(exportButton);
  84.         container.appendChild(sudokuFansButton);
  85.         container.appendChild(fillButton);
  86.     }

  87.     if (document.readyState === 'complete') {
  88.         addBoxAndButton();
  89.     } else {
  90.         window.addEventListener('load', addBoxAndButton);
  91.     }
  92. })();
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

用户组:童生

      UID
5834
      积分
119
      回帖
8
      主题
1
      发书数
0
      威望
114
      铜币
2069
      贡献
0
      阅读权限
20
      注册时间
2025-3-3
      在线时间
3 小时
      最后登录
2025-3-14
发表于 2025-3-4 11:08 | 显示全部楼层
我这个网页的opencv.js一直显示加载中,要怎么解决啊
回复

使用道具 举报

用户组:贡士

重建论坛勋章

      UID
1486
      积分
2400
      回帖
87
      主题
360
      发书数
352
      威望
1824
      铜币
5128
      贡献
0
      阅读权限
60
      注册时间
2025-3-1
      在线时间
49 小时
      最后登录
2025-3-14
 楼主| 发表于 2025-3-4 11:20 | 显示全部楼层
zjl8269 发表于 2025-3-4 11:08
我这个网页的opencv.js一直显示加载中,要怎么解决啊

应该不影响,按步骤操作就行了。
回复

使用道具 举报

用户组:童生

      UID
4737
      积分
123
      回帖
11
      主题
1
      发书数
0
      威望
117
      铜币
2129
      贡献
0
      阅读权限
20
      注册时间
2025-3-3
      在线时间
8 小时
      最后登录
2025-3-14
发表于 2025-3-6 08:23 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

用户组:童生

      UID
1169
      积分
142
      回帖
30
      主题
1
      发书数
0
      威望
126
      铜币
2176
      贡献
0
      阅读权限
20
      注册时间
2025-3-1
      在线时间
13 小时
      最后登录
2025-3-14
发表于 2025-3-9 19:54 | 显示全部楼层
感谢分享的方法,方便多了,之前用ps一个个填老费劲了。
回复

使用道具 举报

用户组:童生

      UID
3383
      积分
129
      回帖
26
      主题
1
      发书数
0
      威望
115
      铜币
2140
      贡献
0
      阅读权限
20
      注册时间
2025-3-2
      在线时间
7 小时
      最后登录
2025-3-14
发表于 2025-3-14 21:11 | 显示全部楼层
到了答案正确这步,不知道为什么之后点答案填图没有用,图片也没变
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|阡陌居

GMT+8, 2025-3-15 00:48 , Processed in 0.079595 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表