wayne
发表于 2017-5-21 18:57:02
mathe 发表于 2017-5-21 14:49
一个摄像头加上线性回归即可,难度不大,只是摄像头要清晰些才行
:P, 我抽空实现了下。 先手工截图,然后 二值化该图像,以去掉暗灰色的坐标轴及边框,然后查找该图像中 所有 像素值为0,即是黑色的点的坐标位置。然后对他们进行 线性拟合。效果很不错呢。
代码很简单:
img=图像;
LinearModelFit],0],x,x]
发现,跟截取的图片的清晰度关系好像不太大呢。
就是每次都要手工截图,这工作量可不小,谁要是感兴趣,就开着一个Mathematica和一个用来快捷键截图的QQ ,自己玩去吧, 原则上打破Fans的记录是没问题的, 只要你有这闲工夫, :D
wayne
发表于 2017-5-21 20:54:19
连续68次猜对,越来越觉得无聊了,:L
img=截取的图像//Binarize;
a=-Last,0],x,x]["BestFitParameters"]];
b=Last,x,x]["BestFitParameters"]];
{a,b,(a+b)/2}
要是 懂得网页前端的知识,就省下这个手工截图和输入答案的繁琐过程了
wayne
发表于 2017-5-21 21:36:44
搞到连续第101次猜对,准备截图的时候,windows 10 突然间蓝屏了, :@
wayne
发表于 2017-5-22 09:43:18
排行榜的前几名 我想 肯定是写了一个程序,能 直接用程序抓取html5 的 svg 数据, 并能直接填进去的.
wayne
发表于 2017-5-22 10:50:30
没必要手工截图,每次直接用Mathematica 截取全屏图片就行了. 然后再提取固定的区域即可.
效率瞬间提升了100倍, 现在的手工工作只有 在终端执行脚本和在网页输入答案,点击Next了,
#!/usr/bin/env wolframscript
Needs["GUIKit`"];
m = 332; a = 261; b = 603;
img=ImageTake, {0, m} + a, {0, m} + b]//Binarize;
a=-Last,0],x,x]["BestFitParameters"]];
b=Last,x,x]["BestFitParameters"]];
Print]
:'( , 万恶的 Fans , 我快着魔了,工作的时候 竟然 想着 回来发帖子
wayne
发表于 2017-5-22 11:43:12
连续第$3$次猜对额外加$5$分;
连续第$5$次猜对额外加$10$分;
连续第$10$次猜对额外加$30$分;
更多连续猜对奖励有待探索。
连续第$20$次猜对额外加$50$分;
经过测试. 从$0$分开始, 一路都是满血, 并且连续猜对,猜对第 $181$次, 分数刚好是$1000$分. mean error 是$0.01$
其中,$1000 =181*5 +(5+10+30+50)$
连续 $200$次猜对 积分累计到 $1095$分,
连续 $300$次猜对 积分累计到 $1595$分
连续 $400$次猜对 积分累计到 $2095$分
所以,基本上可以确定, 连续猜对$20$次后, 再也不额外加分了, 你已经进入独孤求败,游戏规则的创造者都不关注的法外之境界了,;P
=============
wayne
发表于 2017-5-22 16:42:59
查看 网站的 js代码, http://guessthecorrelation.com/js/jquery.min.js
发现 bonus_coins 由一个函数计算出来, _0x95cdx4d(bonus);, 进而发现该函数的实现逻辑 就是 查表法, 如果能查到 就返回表中数据,查不到就返回0.
var _0x95cdx4a = {
"\x33": 5,
"\x35": 10,
"\x31\x30": 30,
"\x32\x30": 50
};
而该表 只有 5,10,30,50 ,所以, bonus coins 只有 四种情况.
wayne
发表于 2017-5-23 20:38:41
写了一个模拟键盘鼠标的脚本, 用来代替前面唯一需要手工操作的地方:输入答案,以及继续下一回合
效果还可以,虽然偶尔会猜错,但很快就 满血复活继续运行。。
#!/bin/bash
while :
do
xdotool type `./run.wls `
xdotool key KP_Enter
sleep 0.01
xdotool key KP_Enter
sleep 0.02
done
wayne
发表于 2017-5-23 21:08:45
哈哈哈。 发现了该游戏的一个小bug,或者说彩蛋吧,当你连续20次猜对的时候,此时为了尽可能的获得更高的分数,应该 退一步,适当的猜错或者猜偏,使得游戏内部的连续猜对的那个计数器清零, 于是你又可以继续享受 连续猜对的额外分数的福利了,:P 。
wayne
发表于 2017-5-23 22:13:18
花了大概15分钟,刷出了6000分,直逼 Fans 的8000分, 目标 是 把Fans 挤下去, 嘿嘿