彩色AC

BSOJ和洛谷的AC都是彩色!

当前为 2024-02-22 提交的版本,查看 最新版本

// ==UserScript==
// @name     彩色AC
// @name:en  Colorful AC
// @description    BSOJ和洛谷的AC都是彩色!
// @description:en Bashu Online Judge and Luogu's AC are in color!
// @author   123asdf123(洛谷576074)
// @license SATA
// @icon data:image/png;base64,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
// @version  3.2
// @match    *://www.luogu.com.cn/*
// @match    *://oj.bashu.com.cn/*
// @namespace https://gf.qytechs.cn/users/1265383
// ==/UserScript==
let c=Math.round(Math.random()*360);
function hsvToRgb(x) {
    var h = x, s = 100, v =100;
    s = s / 100;
    v = v / 100;
    var r = 0, g = 0, b = 0;
    var i = parseInt((h / 60) % 6);
    var f = h / 60 - i;
    var p = v * (1 - s);
    var q = v * (1 - f * s);
    var t = v * (1 - (1 - f) * s);
    switch (i) {
        case 0:
            r = v; g = t; b = p;
            break;
        case 1:
            r = q; g = v; b = p;
            break;
        case 2:
            r = p; g = v; b = t;
            break;
        case 3:
            r = p; g = q; b = v;
            break;
        case 4:
            r = t; g = p; b = v;
            break;
        case 5:
            r = v; g = p; b = q;
            break;
        default:
            break;
    }
    r = parseInt(r * 255.0)
    g = parseInt(g * 255.0)
    b = parseInt(b * 255.0)
    return [r, g, b];
}
var front = [];
var back = [];
function get(now){
    if(now.innerHTML=='AC'&&now.className=="status"){
        if(back.includes(now.parentNode)==false){
            back.push(now.parentNode);
        }
    }
    if(now.innerHTML=='Correct'){
        if(back.includes(now.parentNode)==false){
            back.push(now.parentNode);
        }
    }
    if(now.innerHTML=='\n        Accepted\n      '){
        if(front.includes(now)==false){
            front.push(now);
            if(now.parentNode.parentNode.parentNode.children.length>=3){
                if(front.includes(now.parentNode.parentNode.parentNode.children[2].children[1].children[0].children[0])==false){
                    front.push(now.parentNode.parentNode.parentNode.children[2].children[1].children[0].children[0]);
                }
            }
        }
    }
    if(now.innerHTML=='\n  Accepted\n'){
        if(back.includes(now)==false){
            back.push(now);
            if(now.parentNode.children.length>=2){
                if(front.includes(now.parentNode.children[1])==false){
                    front.push(now.parentNode.children[1]);
                }
            }
        }
    }
    if(now.innerHTML=='<i class="icon-ok icon-white"></i> Congratulation !'){
       if(back.includes(now)==false){
            back.push(now);
        }
    }
    if(now.innerHTML=='Accepted'&&now.className=="label label-success"){
       if(back.includes(now)==false){
            back.push(now);
        }
    }
    if(now.innerHTML=='\n  AC\n'){
       if(back.includes(now)==false){
            back.push(now);
        }
    }
    var x=now.children;
    for(var i=0;i<now.children.length;i++){
        get(x[i]);
    }
}
function rep(){
    let xxx=hsvToRgb(c);
    for(let i=0;i<front.length;i++){
        front[i].style.color='rgb('+xxx[0]+','+xxx[1]+','+xxx[2]+')';
    }
    for(let i=0;i<back.length;i++){
        back[i].style.background='rgb('+xxx[0]+','+xxx[1]+','+xxx[2]+')';
    }
}
var cnt=99;
(() => {
let a = setInterval(() =>{
    c++;
    if(c==360){
        c=0;
    }
    cnt++;
    if(cnt==100){
        get(document);
        cnt=0;
    }
    rep();
},5)
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址