找回密码
 欢迎注册
楼主: KeyTo9_Fans

[分享] 猜相关系数游戏

[复制链接]
发表于 2017-5-21 18:57:02 | 显示全部楼层
mathe 发表于 2017-5-21 14:49
一个摄像头加上线性回归即可,难度不大,只是摄像头要清晰些才行


  , 我抽空实现了下。 先手工截图,然后 二值化该图像,以去掉暗灰色的坐标轴及边框,然后查找该图像中 所有 像素值为0,即是黑色的点的坐标位置。  然后对他们进行 线性拟合。效果很不错呢。

代码很简单:

img=图像;
LinearModelFit[Position[ImageData[Binarize[img]],0],x,x]


发现,跟截取的图片的清晰度关系好像不太大呢。

就是每次都要手工截图,这工作量可不小,谁要是感兴趣,就开着一个Mathematica和一个用来快捷键截图的QQ ,自己玩去吧, 原则上打破Fans的记录是没问题的, 只要你有这闲工夫,
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-21 20:54:19 | 显示全部楼层
连续68次猜对,越来越觉得无聊了,
  1. img=截取的图像//Binarize;
  2. a=-Last[LinearModelFit[Position[ImageData[img],0],x,x]["BestFitParameters"]];
  3. b=Last[LinearModelFit[PixelValuePositions[img,0],x,x]["BestFitParameters"]];
  4. {a,b,(a+b)/2}
复制代码

要是 懂得网页前端的知识,就省下这个手工截图和输入答案的繁琐过程了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-21 21:36:44 | 显示全部楼层
搞到连续第101次猜对,准备截图的时候,windows 10 突然间蓝屏了,

点评

只能说连windows 10也受不了你了:)  发表于 2017-5-23 10:10
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-22 09:43:18 | 显示全部楼层
排行榜的前几名 我想 肯定是写了一个程序,  能 直接用程序抓取html5 的 svg 数据, 并能直接填进去的.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-22 10:50:30 | 显示全部楼层
没必要手工截图,每次直接用Mathematica 截取全屏图片就行了. 然后再提取固定的区域即可.
效率瞬间提升了100倍, 现在的手工工作只有 在终端执行脚本和在网页输入答案,点击Next了,


  1. #!/usr/bin/env wolframscript
  2. Needs["GUIKit`"];
  3. m = 332; a = 261; b = 603;
  4. img=ImageTake[GUIScreenShot[], {0, m} + a, {0, m} + b]//Binarize;
  5. a=-Last[LinearModelFit[Position[ImageData[img],0],x,x]["BestFitParameters"]];
  6. b=Last[LinearModelFit[PixelValuePositions[img,0],x,x]["BestFitParameters"]];
  7. Print[Last[{a,b,(a+b)/2}]]
复制代码

, 万恶的 Fans , 我快着魔了,工作的时候 竟然 想着 回来发帖子

321.jpg
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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$次后, 再也不额外加分了, 你已经进入独孤求败,游戏规则的创造者都不关注的法外之境界了,

=============

b20-50.png


点评

需要眼睛盯着,出现了丢命的时候,迅速鼠标点击,捕捉 输入框的焦点,还能挽救回来  发表于 2017-5-23 20:50
全自动的版本终于新鲜出炉了。 有点小麻烦就是 不是很稳定, 键盘模拟程序就会飘起来。很可能是 Mathematica的session 运行次数太多,导致系统不稳定  发表于 2017-5-23 20:49
前面的400次是半自动的, 手工执行脚本和输入答案  发表于 2017-5-23 20:37
你刷新速率是多少?也就是平均猜1次得5分,如果1秒钟猜一次,那么66万分也需要运行一天半时间。你可以试着运行到670000分然后故意出错停下就可以刷新了。  发表于 2017-5-23 10:18
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-22 16:42:59 | 显示全部楼层
查看 网站的 js代码, http://guessthecorrelation.com/js/jquery.min.js

发现 bonus_coins 由一个函数计算出来,   _0x95cdx4d(bonus);,   进而发现该函数的实现逻辑 就是 查表法, 如果能查到 就返回表中数据,查不到就返回0.
  1. var _0x95cdx4a = {
  2.         "\x33": 5,
  3.         "\x35": 10,
  4.         "\x31\x30": 30,
  5.         "\x32\x30": 50
  6.     };
复制代码


而该表 只有 5,10,30,50 ,  所以, bonus coins 只有 四种情况.  
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-23 20:38:41 | 显示全部楼层
写了一个模拟键盘鼠标的脚本, 用来代替前面唯一需要手工操作的地方:输入答案,以及继续下一回合

效果还可以,虽然偶尔会猜错,但很快就 满血复活继续运行。。
  1. #!/bin/bash
  2. while :
  3. do
  4.         xdotool type `./run.wls `
  5.         xdotool key KP_Enter
  6.         sleep 0.01
  7.         xdotool key KP_Enter
  8.         sleep 0.02
  9. done
复制代码

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-23 21:08:45 | 显示全部楼层
哈哈哈。 发现了该游戏的一个小bug,或者说彩蛋吧,当你连续20次猜对的时候,此时为了尽可能的获得更高的分数,应该 退一步,适当的猜错或者猜偏,使得游戏内部的连续猜对的那个计数器清零, 于是你又可以继续享受 连续猜对的额外分数的福利了,
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-5-23 22:13:18 | 显示全部楼层
花了大概15分钟,刷出了6000分,直逼 Fans 的8000分, 目标 是 把Fans 挤下去, 嘿嘿
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-27 00:23 , Processed in 0.184601 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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