花火论坛注册记


(Ar3sgice) #1

前几天无聊去g吧冲浪(8102了,还看贴吧 :125_:),然后就看见花火在招人,做nodejs的论坛

说到花火嘛,就是那些galgame资源了,然而我已经下了400g的galgame一个都没玩,不过看到这么个贴子忽然想去看看,8102年的galgame论坛,环境都是个什么样子

于是进去论坛,那么首先是需要注册一个ID,这个论坛嘛,需要邀请码
然后邀请码需要答题获得(还好是答题,我可没什么朋友邀请我)

本来想凭着我多年的galgame经验和搜索技巧解决的,然而,
这题目是真难啊!!!!! :166_:
(都怪我那么多galgame下了都没玩过的,最近的动画也几乎没看)

然而这一下子就激发了我的创作欲,论坛倒是无所谓,怎么能放着这些题目答不出来呢!那我的二次元不是白看了吗!
(二不起,二不起)

试了3次,需要70分通关,最多也只能达到55分。。。
那么首先,这个答题是有时间限制的,我就先油猴了个脚本

    var $wt = window.setTimeout;
    window.setTimeout = function() {
      // console.log("WT", arguments);
      arguments[1] *= 18;
      return $wt.apply(window, arguments);
    };

    var $wti = window.setInterval;
    window.setInterval = function() {
      // console.log("WTI", arguments);
      arguments[1] *= 18;
      return $wti.apply(window, arguments);
    };

这样就拥有了18倍的时间!

然而……并没有什么卵用
因为给我18倍的时间我也答不出来啊!!!!!
:105_:

然后翻了翻dom,写了个随机点击器:

    var $xps = XMLHttpRequest.prototype.send;
    XMLHttpRequest.prototype.send = function() {
      // console.log("XPS", arguments);
      window.lastXPS = arguments[0];
      return $xps.apply(this, arguments);
    }

    window.rz = function() {
      var wt = function(res, rej) {
          setTimeout(res, 50);
      };
      var wt2 = function(res, rej) {
          setTimeout(res, 500);
      };
      var a = new Promise(wt);
      for(var i=0; i<20; i++) {
        a = a.then(function() {
          document.querySelectorAll(".el-radio__original")[1+Math.floor(Math.random()*4)].click();
          return new Promise(wt);
        }).then(function() {
          document.getElementById("next-btn").click();
          return new Promise(i == 19 ? wt2 : wt);
        });
      }
      a.then(function() {
        prompt("", window.lastXPS + ",\n");
      });
    };

结果嘛,是显然的,平均只有25分,然后服从正态分布……
嗯……根据数学,随机到70分的概率好像小于SSR了,看来这个方法不太好

看了下xmlhttprequests,这个答题程序是用的vue.js,请求一个qa.php获取json格式的题目,然后把答案json格式提交回qa.php,然后服务器判断答对的题目数量,返回分数和结果(score,result,inviteCode)
那么,先把题库弄下来吧
虽然一次返回二十个题目,手动打几次qa.php就行了,不过为了防止漏掉考点,还是选择多抓几次页面
然后随便写了个file get contents

    <?php
      $filec = file_get_contents("http://[数据删除]/qa.php");
      file_put_contents("append.txt", $filec . ",\n", FILE_APPEND);
      echo "'success'";
    ?>
<script>
        function G() {
            var ajax = new XMLHttpRequest();
            ajax.open("get", "saveget.php");
            ajax.send(null);
            setTimeout(G, 1000 + Math.floor(Math.random() * 10000));
        }
        G();
</script>

然后就去玩了会手机,回来一看,抓了495kb的题目,当然全是重复的

    var ajax = new XMLHttpRequest();
    ajax.open("get", "append.txt");
    ajax.onload = function() {
        var a = JSON.parse("[" + ajax.response.substring(0, ajax.response.length - 2) + "]");
        if(a) {
            console.log("load success");
            var b = [];
            a.forEach(function(group) {
                group.forEach(function(item) {
                    if(!b.some(function(z) {
                        return z.code == item.code;
                    })) {
                        b.push(item);
                    }
                });
            });
            b = b.sort(function(a, b) {
                return a.code < b.code ? -1 : 1;
            });
            prompt(0, JSON.stringify(b));
        }
    }
    ajax.send(null);

去掉重复的题目,排了个序,总共有106条题目

有题目了之后,下一步就是把答案解出来了

从题目里手动抽20个问题,然后post答案,每次换一个选项,根据返回的分数,找到正确的选项。
不过由于ajax的速度问题,这里试了好几次才把答案判断对
前面几次以为自己把答案解出来了,然后答了一遍题发现只有80分……
(虽然说70分通关)

    var qs = [数据删除]; //那106个题目
    // so we could slice() from bottom to top (10JQKA2)
    qs = qs.concat(qs);

    // searches answer from qs[startOffset]
    var testAnswer = window.testAnswer = function testAnswer(startOffset, callback) {
        var interval = 233;
        var as = qs.slice(startOffset, startOffset + 20);

        // shuffle the answers, as if i had it random
        var shuffle = function(arr) {
            var brr = [];
            while(arr.length > 0) {
                brr = brr.concat(arr.splice(Math.floor(Math.random() * arr.length), 1));
            }
            return brr;
        };
        var allResp = [];
        var recv = function(resp) {
            allResp.push(resp);
        };
        var jsx = function(obj, ref) {
            var jsonStr = JSON.stringify(obj);
            var ajax = new XMLHttpRequest();
            ajax.open("post", "/qa.php");
            ajax.setRequestHeader("content-type", "application/json");
            return new Promise(function(res, rej) {
                ajax.onload = function() {
                    recv([ref, ajax.response]);
                    setTimeout(res, interval);
                };
              ajax.send(jsonStr);
            });
        };

        var bs = as.map(function(_, i) {
            return {"code" : _.code, "answer" : _.options[Math.floor(Math.random() * _.options.length)]};
        });

        // now as[0] is the chosen question
        var availOptions = as[0].options;
        var getAnswerData = function(nn) {
            nn = nn || 0;
            bs[0].answer = availOptions[nn];
            var cs = bs.map(function(_, i) {
                return {"code" : _.code, "answer" : _.answer};
            });
            return shuffle(cs);
        };

        var getDelayPromo = function(timeout) {
            return new Promise(function(res, rej) {
                setTimeout(res, timeout);
            });
        };
        
        // ajax the test results
        var a = getDelayPromo(10);
        for(var i=0; i<as[0].options.length; i++) {
            a = a.then(function(i) {
                return jsx(getAnswerData(i), as[0].options[i]);
            }.bind(this, i));
        }
        a.then(function() {
            var scores = allResp.map(function(_) {
                return JSON.parse(_[1]).score;
            });
            var ind = scores.findIndex(function(m) { return scores.every(function(n) {return n <= m}) });    
            console.log("code: \"" + as[0].code + "\", answer: \"" + allResp[ind][0] + "\", title: \"" + as[0].title + "\"");
            callback({code: as[0].code, answer: allResp[ind][0], title: as[0].title});
        });
    };

    window.fullTest = function() {
        var getDelayPromo = function(timeout) {
            return new Promise(function(res, rej) {
                setTimeout(res, timeout);
            });
        };
        
        window.testResults = [];
        
        var promo = getDelayPromo(10);
        for(var i=0; i<qs.length/2; i++) {
          promo = promo.then(function(i) {
                return new Promise(function(res, rej) {
                    testAnswer(i, res);
                });
            }.bind(this, i))
            .then(function(response) {
                window.testResults.push(response);
              return getDelayPromo(1000 + Math.floor(Math.random() * 4333));
            });
        }
    };

然后就玩了会手机,等它把答案都解出来,按照答案答了一遍题,终于,得到了100分!!!!

终于注册了id,进论坛看了看……
好像也没什么好看的,走了走了
资源?反正下了也不玩,不用了……

论坛人倒是挺多的,但是感觉还是挺没劲的
dz x3.4,上世纪的风格(都需要重构了嘛),新人报道,板块置顶,评分规则,回复可见,论坛币,购买贴子,积分兑换,好人一生平安。。。
至于讨论游戏。。。galgame有啥好讨论的,谁的老婆萌吗。。。。。
没啥意思。。。

话又说回来,何必弄个论坛的形式呢,反正去的人也都是为了资源,把人留在论坛里又没啥意义,答题送资源不就好了嘛
:125_:


(Ar3sgice) #2

附:花火题库

今天又学到了很多新的知识。虽然这些知识完全没有什么卵用,但还是感到十分的满足。

sayFireworks QA

code: “00er7b”, answer: “通灵宝玉”, title: “贾宝玉身上佩戴的玉叫啥?”
code: “07yzte”, answer: “梵高”, title: “这幅画的作者是谁?”
code: “08rxj9”, answer: “假面骑士Decade”, title: “下面那个不是新十年的假面骑士?”
code: “0rn2d1”, answer: “缇娜”, title: “恋樱中带来幸福的死神是?”
code: “18xzvn”, answer: “春奈露娜”, title: “下列歌手不是隶属于Sony音乐旗下的是”
code: “1ax1un”, answer: “一条”, title: “装甲恶鬼村正英雄篇中最后村正最后成为了谁的剑?”
code: “1e4m0i”, answer: “眼镜”, title: “幸福噩梦中主人公前期靠什么识别梦和现实?”
code: “2km13o”, answer: “万代”, title: “财团b指的是?”
code: “2psu5u”, answer: “阿雷斯特·钱帕”, title: “《黑执事》中称呼女装的夏尔为美丽小巧的知更鸟的是?”
code: “2ptc04”, answer: “被螺丝加固的金属圈勒至窒息死亡”, title: “《给牺牲者的通告》中,所有人或在主要剧情或在分支剧情都被处决过至少一次。其中,X被处刑的方式是什么?”
code: “3xjrn6”, answer: “大岛永远”, title: “日本同人漫画家二阶堂みつき和哪位漫画家关系最近?”
code: “41w5j3”, answer: “黄金赫拉克勒斯”, title: “多啦A梦2012年剧场版中出现的稀有独角仙叫啥?”
code: “4sdj1k”, answer: “花园静马”, title: “生天目仁美曾为四大百合女王中的哪个配音?”
code: “4xu691”, answer: “《Clover Day’s》”, title: “以下那作不是KEY社作品?”
code: “54ef8w”, answer: “戦国の黒百合~ふたなり姫忍ぶ少女達~”, title: “2017年7月20日发售的扶她百合游戏名为?”
code: “54xl2t”, answer: “佐天泪子”, title: “超炮中被称为海澜之家和上升气流lv6的是?”
code: “5zs360”, answer: “行走的性欲”, title: “この世の果てで恋を唄う少女YU-NO里的主角有马拓也被称为?”
code: “6d0920”, answer: “九门克绮”, title: “《尘骸魔京》中追风者寻找的夫婿就是?”
code: “7dfjjc”, answer: “铃鱼”, title: “《新天魔界 混沌时代4》中,与大蛇丸拥有完全一样的三个大招(同样拥有配音CG动画)的是下列哪一人物?”
code: “7eu3xu”, answer: “SK-II”, title: “被誉为为神仙水的是?”
code: “8xy3py”, answer: “时崎狂三”, title: “以下哪个角色出自约会大作战?”
code: “968uw9”, answer: “黄色”, title: “哆啦A梦原来是啥颜色?”
code: “97f3p0”, answer: “65D”, title: “在小说マリア様がみてる中出现的,小笠原祥子的胸围是?”
code: “9bkeao”, answer: “Say花火”, title: “请问论坛的学园长是?”
code: “9jl4xz”, answer: “累”, title: “以下那部漫画不是BL向作品?”
code: “aawwb2”, answer: “银行”, title: “《近月少女的礼仪》中人物的名字与以下哪个有关?”
code: “aimqlo”, answer: “水域”, title: “关于特摄假面骑士中骑士的安全区是下列那个地点?”
code: “amxx48”, answer: “变身”, title: “星之卡比中,卡比吞下小怪之后会发生什么?”
code: “at2r4z”, answer: “49”, title: “CLANNAD有多少集?”
code: “at9yit”, answer: “陈国庆《日本旧石器》”, title: “新番《恋爱禁止的世界》里,男主根岛由佳吏是一个热爱古坟的少年。请问以下哪本书籍与古坟考古的关联最大?”
code: “atu73p”, answer: “开车去海边的时候”, title: “动画《干物妹!小埋》中,被网友调侃为GBA的是在哪个场景?”
code: “b0rzxo”, answer: “3”, title: “百合同人作品花吻在上的20部正作中,哪部于2010年8月被改编成OVA动画?”
code: “b9dxeb”, answer: “小仓唯”, title: “下面哪个声优的给初音未来的歌曲提供了舞蹈动作?”
code: “bj9052”, answer: “一休宗纯”, title: “一休哥的法名是?”
code: “cqzz68”, answer: “我的女友和青梅竹马的惨烈修罗场”, title: “爱衣酱大胜利出自哪部番?”
code: “ctkmn4”, answer: “没救了,都变树了”, title: “传颂之物 二人的白皇中旧人类怎么样了?”
code: “cxuyvo”, answer: “呐,你想成为什么颜色?”, title: “该场景出现时真白说的第一句话是什么?”
code: “dcrkyp”, answer: “自恋”, title: “动画《奇幻贵公子》的主角涉谷一也,被女主称为Naru的原因为。”
code: “djx4ym”, answer: “哈姆雷特”, title: “动画《绝园的暴风雨》里,不破爱花经常爱引用____的句子。”
code: “drmlhp”, answer: “佐仓绫音 东山央奈 种田梨沙”, title: “下列每条选项的声优中,所属事务所完全不同的是”
code: “ec5duy”, answer: “九秒”, title: “在第三部jojo中DIO的the World最终暂停了几秒?”
code: “ejcjy4”, answer: “ACG之神”, title: “下列哪一位是G吧大吧主?”
code: “eoww0k”, answer: “美好的每一天”, title: “提起法国剧作家罗斯丹的代表作《西哈诺》,你会想到以下哪部galgame?”
code: “eq4xbh”, answer: “赌上性命的——纯爱”, title: “g弦上的魔王被称为?”
code: “ers19r”, answer: “立华奏”, title: “下面的四位中的那位是其中最漂亮的女主?”
code: “f9lhnl”, answer: “129.3斤”, title: “多啦A梦的体重是多少?”
code: “h4tp0r”, answer: “交换身体”, title: “动画《山田君与7人魔女》里白石丽的能力是?”
code: “h7rnnj”, answer: “阿凡提”, title: “被称为西域战神的是?”
code: “hapzrr”, answer: “女朋友得癌症了”, title: “蜥蜴の尻尾切り中男主为什么痴迷于人体再生?”
code: “hdq9vw”, answer: “UMR”, title: “动画《干物妹!小埋》中,小埋的游戏名称是什么?”
code: “hikfmj”, answer: “樱木由加利”, title: “以下不属于米泽円配过的音是”
code: “hjdxk1”, answer: “トラク=ナクア.”, title: “以下哪个不是elf会社的作品?”
code: “ht039r”, answer: “藤香和卡米拉”, title: “传颂之物中,谁和谁去开店了?”
code: “iisq3z”, answer: “圣安德烈”, title: “被钉X型十字架殉道的是?”
code: “isb7t9”, answer: “血液”, title: “死に逝く君、館に芽吹く憎悪中,上位种族的弱点是什么?”
code: “j71u4r”, answer: “厄运扳机”, title: “苍翼默示录动漫是游戏里哪一部的主线剧情?”
code: “jej1tt”, answer: “纯白交响曲”, title: “以下哪个作品不含ntr?”
code: “jnjmri”, answer: “爱的战士”, title: “老虚是____。”
code: “jqrc53”, answer: “処女はお姉さまに恋してる”, title: “以下哪个不是百合作品?”
code: “jso7vk”, answer: “模特妹妹”, title: “《らぶらぶシスターズ ~花嫁&姉妹達とのドキドキハーレム生活》中H了就会变瘦的妹子是?”
code: “jziwzt”, answer: “真实之泪”, title: “胃药魔女冈田磨里的成名作是什么?”
code: “ka2tsv”, answer: “游行寺夜子”, title: “纸上的魔法使中哪一个不是纸人?”
code: “kz6w0j”, answer: “大饼”, title: “《天书奇谭》中刚出生的蛋生一开始吃了什么?”
code: “l089a7”, answer: “包含多种”, title: “渡りの诗是一首什么语言的歌?”
code: “l1e57t”, answer: “人气偶像”, title: “游戏《白色相簿》中,绪方理奈的职业是?”
code: “lia5s4”, answer: “男主”, title: “游戏Myself ; Yourself中若月修辅是____之一。”
code: “lihibz”, answer: “御堂孝典”, title: “以下哪个人物和佐伯克哉出现在同一款游戏里?”
code: “m0av1f”, answer: “主税”, title: “ChuSingura46+1中谁拯救了陷入绝望的直刃?”
code: “m90tsk”, answer: “音无紫”, title: “gore screaming show里ユカ的真名是?”
code: “ma0qek”, answer: “释迦摩尼也凝望”, title: “与今野绪雪所写的女校故事《玛利亚的凝望》所对应的男校故事名为?”
code: “mdxxzk”, answer: “你的名字”, title: “前前前世出自哪部电影?”
code: “mwznp6”, answer: “伊藤诚”, title: “以下哪个是Cross Days里的可攻略对象?”
code: “n6o7v5”, answer: “傲娇”, title: “蹭的累是什么的谐音?”
code: “n80xio”, answer: “rewrite”, title: “哪个作品与田中罗密欧,龙骑士07,都乃河勇人三人都相关?”
code: “nbjz3p”, answer: “曹操”, title: “观沧海的作者是?”
code: “nu73bi”, answer: “巨乳”, title: “学园长花火喜欢____。”
code: “o3zfnx”, answer: “无明封杀阵”, title: “《北斗神拳》中不属于健次郎的奥义的是?”
code: “o53pac”, answer: “友爱”, title: “下面哪一部没有和泉万夜参与脚本?”
code: “op5766”, answer: “战极姬6”, title: “战极姬系列里哪部有NTR的感觉?”
code: “owje5s”, answer: “火神大我”, title: “奇迹的世代不包括下面的谁?”
code: “q5r1tp”, answer: “ntr”, title: “国内玩家对于《夏娃年代纪》里大公主的争议主要原因为?”
code: “qvnhq4”, answer: “丸户史明”, title: “世界上最ng恋爱是哪位脚本作家的作品?”
code: “rjxrhv”, answer: “sppl”, title: “中二社因为那部作品转变为巨乳社的?”
code: “smdwwx”, answer: “体操”, title: “清水爱不光是一位声优也是一名职业运动员,那么这门项目是什么?”
code: “sy3o1s”, answer: “佐藤圣”, title: “以下四个角色哪个喜欢女性?”
code: “t6c8rj”, answer: “菜々ヶ木アリス”, title: “駄作中四个女主角中,哪一位是渴求别人的爱的怪物?”
code: “t6jdw8”, answer: “ONE~辉之季节~”, title: "key社的春夏冬秋四季分别是,CLANNAD、AIR、Kanon和____。 "
code: “tqbo1j”, answer: “加藤断”, title: “以下哪个加藤不存在于三次元?”
code: “tqzd6m”, answer: “2008年P.A.WORKS的真实之泪”, title: “以下哪个动画不是游戏改编的?”
code: “tr0ez2”, answer: “狼面宿之章”, title: “《狼神隐》中,摘花五十铃在剧本结尾之外被处决的唯一一章是下列哪一章?”
code: “tw429e”, answer: “江户川乱步”, title: “《名侦探柯南》《少年侦探团》《文豪野犬》这三部动画都与以下那位作家有关联?”
code: “u9c7j7”, answer: “木之本樱”, title: “以下哪个不是世萌萌王获得者?”
code: “ui6mpx”, answer: “百合熊岚”, title: “以下那部不是15年的动漫四大名著?”
code: “v3l0q0”, answer: “say花火”, title: “请问论坛的通用解压密码是?”
code: “vyd3i2”, answer: “格林花园的少女”, title: “以下不是国产gal的是?”
code: “w2rqpt”, answer: “紫电掌”, title: “鬼哭街中男主的绰号是?”
code: “x1peaf”, answer: “昆汀·塔伦蒂诺”, title: “以下哪位导演没有参与异形系列?”
code: “xjfj7u”, answer: “剑术天才”, title: “《黑执事》中,伊丽莎白是?”
code: “y7pdbq”, answer: “八宝备仁”, title: “欧派星人是哪位画师?”
code: “y9a11j”, answer: “燃系”, title: “正田崇是什么系的剧本家?”
code: “ylqrn5”, answer: “母亲和父亲生的”, title: “游戏《秘密の花园》里,女主是?”
code: “yto5rs”, answer: “绊爱”, title: “自称superai的人工智能叫什么名字?”
code: “z8l12a”, answer: “手垢塗れの天使”, title: “下面哪一部不是钟表社的作品?”
code: “zprcvd”, answer: “樱”, title: “在Fate HF线中,土狼说他喜欢谁?”
code: “zvn5x5”, answer: “ReLIFE”, title: “下面哪个与游戏主题无关?”
code: “zxpxi7”, answer: “3”, title: “动画清恋走了几条女主线?”

另外有些题目感觉是有bug的,比如那个清水爱的,查到是摔跤(还有图),但是答案是体操,100分那次也确实选的就是体操,不知道是gal界的什么梗还是程序填错了。

然而还是不反馈bug了,算了。。。。。。


(Phoenix Emik) #3
var $wt = window.setTimeout;
window.setTimeout = function() {
  // console.log("WT", arguments);
  arguments[1] *= 18;
  return $wt.apply(window, arguments);
};

var $wti = window.setInterval;
window.setInterval = function() {
  // console.log("WTI", arguments);
  arguments[1] *= 18;
  return $wti.apply(window, arguments);
};

Markdown 是可以直接代码高亮的

```javascript
some code
```

:009_:


(Ar3sgice) #4

不错 :125_:


(卡拉否) #5

一堂生动的前端课


(假熊猫) #6

大号厉害啊!


(腊鸭) #7

试一下C#

using System;
using System.Linq;
using System.Collections.Generic;

// 萌 o(*////▽////*)q
namespace Pending
{
  public class  Moe
  {
  }
}

(Ar3sgice) #8

:040_:


(Ar3sgice) #9

:125_:


(Ar3sgice) #10

萌 o(*////▽////*)q


(卡帕) #11

happy


(烤) #12

haolihai!


(Mother Ship) #13

一堂生动的前端课

倒是提供了一种新思路,以后遇到类似的答题注册可以试试,不过也得看对面有没有对API接口的保护意识就是了;w;


(嘛花) #14

一堂生动的前端课
走了走了好像是重点


(Ar3sgice) #15

:040_: 大家好呀


#16

ar3我的嫁


#17

想念ar3

一堂生动的前端课

好人一生平安