码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 摸鱼也摸鱼之点灯游戏自动求解


    游戏

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

    脚本

    新建文件夹,命名为Inverter

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

    1. "use strict";
    2. function getA() {
    3. let a = [];
    4. let level = parseInt(document.querySelector("#cur-level").innerHTML);
    5. for (let i = 0; i < level; i++) {
    6. a.push([]);
    7. for (let j = 0; j < level; j++) {
    8. a[i].push(0);
    9. }
    10. }
    11. return a;
    12. }
    13. function solve() {
    14. let level = parseInt(document.querySelector("#cur-level").innerHTML);
    15. let screen = document.querySelector("#screen");
    16. let max = Math.floor(Math.pow(2, level));
    17. for (let num = 0; num < max; num++) {
    18. let a = getA();
    19. let f = getA();
    20. let s = num.toString(2);
    21. while (s.length < level) {
    22. s = "0" + s;
    23. }
    24. for (let i = 0; i < level; i++) {
    25. if (s[i] == '1') {
    26. a[0][i] = 1 - a[0][i];
    27. f[0][i] = 1;
    28. if (i > 0) {
    29. a[0][i - 1] = 1 - a[0][i - 1];
    30. }
    31. if (i + 1 < level) {
    32. a[0][i + 1] = 1 - a[0][i + 1];
    33. }
    34. if (1 < level) {
    35. a[1][i] = 1 - a[1][i];
    36. }
    37. }
    38. }
    39. for (let i = 0; i < level - 1; i++) {
    40. for (let j = 0; j < level; j++) {
    41. if (a[i][j] == 0) {
    42. f[i + 1][j] = 1;
    43. a[i][j] = 1 - a[i][j];
    44. a[i + 1][j] = 1 - a[i + 1][j];
    45. if (j > 0) {
    46. a[i + 1][j - 1] = 1 - a[i + 1][j - 1];
    47. }
    48. if (j + 1 < level) {
    49. a[i + 1][j + 1] = 1 - a[i + 1][j + 1];
    50. }
    51. if (i + 2 < level) {
    52. a[i + 2][j] = 1 - a[i + 2][j];
    53. }
    54. }
    55. }
    56. }
    57. let c = 0;
    58. for (let i = level - 1, j = 0; j < level; j++) {
    59. c += a[i][j];
    60. }
    61. if (c == level) {
    62. console.log(a);
    63. console.log();
    64. console.log(f)
    65. console.log();
    66. console.log(s);
    67. let divs=document.querySelectorAll(".square ");
    68. for(let i=0;i
    69. for(let j=0;j
    70. if(f[i][j]==1){
    71. let index=i*level+j;
    72. divs[index].click();
    73. }
    74. }
    75. }
    76. break;
    77. }
    78. }
    79. }
    80. document.oncontextmenu = (e) => {
    81. e.preventDefault();
    82. solve();
    83. }

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

    1. {
    2. "name": "inverter",
    3. "version": "1.0",
    4. "description": "单击鼠标右键自动求解点灯",
    5. "manifest_version": 2,
    6. "content_scripts": [{
    7. "matches": [
    8. "http://yanhaijing.com/inverter/"
    9. ],
    10. "js": [
    11. "inverter.js"
    12. ]
    13. }]
    14. }

    部署

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

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

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

    测试

    打开我们的游戏主页

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

    注意

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

  • 相关阅读:
    C++Day4
    还在用命令行看日志?快用Kibana吧,可视化日志分析YYDS
    javaScript中Math内置对象基本方法入门
    MapReduce基础
    LeetCode50天刷题计划(Day 14—— 删除链表的倒数第 N 个结点(12.20-13.00)
    设计模式学习笔记 - 开源实战四(下):总结Spring中用到的11种设计模式
    《快速掌握QML》第五章 组件
    Tomcat8 WEB-INF更改class后 用manager实现reload
    web全栈框架next.js 使用api功能发送文件及多级路由 & useSwr
    HTML制作个人网页制作(简单静态HTML个人博客网页作品)
  • 原文地址:https://blog.csdn.net/qq_36694133/article/details/133084229
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号