魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
查看: 2084|回复: 17

PK群打乱机器人[更新打乱开发接口] [复制链接]

Rank: 7Rank: 7Rank: 7

积分
3923
帖子
2556
精华
6
UID
15558
性别
保密
WCA ID
2008CHEN27
兴趣爱好
理论

魔方理论探索者 国家(地区)纪录(NR) 十年元老

发表于 2011-6-9 22:07:47 |显示全部楼层
之前发的那个帖子似乎早就不见了。所以干脆重新发一个帖子,把所有功能都整理一下,顺便“答疑”吧。

一、什么是PK群打乱机器人

它就是一个QQ帐号(现在是793049104),当它加入某一个群并处于工作状态时,它会监听群里的聊天信息,当它收到特定的信息(就是指令)时,会通过聊天窗口发送指令对应的信息,比如一个打乱公式等等。(最新版加入了私聊的功能,魔友对着机器人发送消息也会被认为是有效指令)
下面会给出指令与功能的对应表,意思就是,你在群里发一条特定的字符串,或者对机器人发送同样的字符串,机器人就会给出相应的反应。
注意所有指令是以一个英文的句号开始,这样比较不容易和正常的聊天内容冲突。

二、当前机器人有哪些功能
打乱功能:以下所有打乱完全遵循WCA打乱要求,除三阶打乱以外的所有WCA项目的打乱均根据WCA官方软件改编成。
N阶魔方的打乱(N从2到7)。
指令:“.n”。比如2阶打乱就是“.2”,三阶打乱就是".3",依次类推。

金字塔打乱(最短步数版本)。
指令:“.py”

SQ1打乱(根据WCA要求,随机步数)
指令:“.sq”

五魔方打乱(WCA形式)
指令:“.mx”

训练功能:下面两个打乱不是官方的项目,只是方便魔友平时训练而使用的。
三阶顶层打乱。给出的是一条三阶打乱公式,保证打乱完成以后魔方的前两层已经完成,方便魔友对顶层作针对性的训练或练习。
指令:“.ll”

ZBLL打乱。与三阶顶层打乱类似,但保证打乱完成以后顶层十字已经完成(略懂zbf2l或vhf2l的魔友应该知道使用这两个方法f2l后顶层十字已经完成)。
指令:“.zb”

信息检索功能
WCA信息检索功能。根据给定的姓名部分或者WCAid,在WCA的数据库中查找该人。如果找到多个,则返回WCAID最靠前的5位,如果只找到一个,返回这个人出了多盲以外所有项目的成绩(包括平均和单次,但暂时不显示排名)
指令:“.wca XXX”,XXX为人名或WCAID


三、如何在我的群中添加打乱机器人

方法一:
发送群号到:qq280833822@163.com,我会定期查收邮件(其实一般每天都会查收好几次),看到的话我会主动去加群

方法二:
趁我在的时候,在别的群找我,或者直接加我为好友(现在是不需要验证全通过),然后告诉我群号。。。

方法三:
如果某天你运气特别好,看到我处于“请勿打扰”的状态,那么恭喜你,你可以选择直接在群中邀请我就行了。如果我处于在线、离开或者除了“请勿打扰”之外的状态,邀请我入群的请求我是收不到的。

四、机器人什么时候工作、工作原理
事实上,只有当机器人处于“在线”的时候,它才是正常工作的,如果大家看到机器人的状态是“离线”,“请勿打扰”等状态,说明机器人并不在工作,为什么下面解释

机器人工作原理
当大家在聊天的时候,我这里(我的电脑,就是我现在用的笔记本电脑,发帖子的这台电脑,操作系统 == ubuntu 11.04 != windows)开着一个后台程序,它会自动监听聊天内容,并根据聊天内容提取指令,然后作出相应的响应。所以如果我的电脑关着,那机器人自然是不会工作的。


五、机器人打乱开发接口

打乱机器人的响应部分本身使用python语言写的,在底层通过调用一个个独立的打乱模块(.py文件)等实现提供相应的功能。
由于我个人能力有限,另外对各种魔方打乱公式的描述也不是很明白,所以这里开放这一接口,使得魔友们可以一起来完善机器人的功能
底层的模块分为两类,打乱类(如三阶魔方打乱),和功能类(如WCA信息检索),它们的区别在于,打乱类仅接受命令作为函数调用,功能类除了命令以外还接受一个可选的参数。

两类模块均需要实现这个函数:
def commands()
该函数返回一个元组,包含所有该模块需要监听的字符串。
由于考虑到某一些模块可能会对多种字符串作出响应(例如高阶打乱需要同时监听4567阶的命令),所以设计的时候要求返回的是元组,而非字符串。
例如当模块返回('4', '5', '6', '7')时,如果聊天内容为'.4', '.5', '.6', '.7',则机器人会调用该模块。

除此之外,打乱类需要实现:
def get(cmds)
功能类需要实现:
def get(cmds, args)

其中,cmds为该模块监听的元组之一,args为功能模块的输入参数。该函数返回相应的打乱或功能。
更精确的,cmds和args分别为下述python正则表达式的group(1)和group(2)
  1. r"^\.(.+?)(?: (.+?))??[\s]*$"
复制代码

打乱类功能举例
scramblell.py
  1. #!/usr/bin/env python
  2. # coding=utf-8

  3. import re, random;

  4. print "Load 3x3x3 Last Layer Scrambles"
  5. sfile = open ('ll-scramble.txt', 'r');
  6. slist = [];
  7. while 1 :
  8.     msg = sfile.readline();
  9.     if msg != "":
  10.         slist.append(re.subn("[\s]*$", "", msg)[0]);
  11.     else:
  12.         break
  13. sfile.close();
  14. print len(slist), "Load";

  15. def get(cmds):
  16.     index = random.randint(0, len(slist)-1);
  17.     return "{333LL} %s"%(slist[index]);

  18. def commands():
  19.     return ('ll',);
复制代码

如果有热心魔友参照上文写了其他魔方的打乱模块,或者有写的意向的,欢迎通过站内信,电子邮件(qq280833822@163.com)的方式直接与我联系。

更新中,不占楼。
====================答疑====================
TO 7#
我并没有修改QQ,也不可能修改QQ,我能做的只是发送信息。确实有的时候一个人玩的话在群里会有类似“刷屏”的作用,所以希望魔友们在自己练习时,通过对机器人私聊的方式给出指令即可。
至于临时窗口,我现在收不到临时聊天信息,估计没办法了。

TO 10#
是三阶的打乱编号,最初设计的时候为了方便之后交流。。。所以一直都保留着这个东西。。。

[ 本帖最后由 铯_猪哥恐鸣 于 2011-6-11 18:43 编辑 ]
已有 5 人评分经验 收起 理由
三叶虫 + 20 非常强大...很好用~
kexin_xiao + 10 原创内容
Pk锋 + 20 强大!
林家小源 + 10 太有才了!!!! 能帮忙添加下么,哈哈… ...
溯叔叔 + 10 精品文章

总评分: 经验 + 70   查看全部评分

魔方爱好者,三字班小朋友。

Rank: 2

积分
521
帖子
394
精华
0
UID
1288826
性别
发表于 2011-6-9 22:09:31 |显示全部楼层
SF 辛苦了啊   不扣分吧

使用道具 举报

透魔

已退役

Rank: 6Rank: 6

积分
6788
帖子
4147
精华
5
UID
12912
性别
WCA ID
2010zeng03
兴趣爱好
其它

论坛建设奖 爱心大使 六年元老 十年元老

发表于 2011-6-9 22:13:24 |显示全部楼层
关于pkg的的帖子怎么能少了我过来围观呢?哈哈!前排!
【已从魔界退役!勿寻我!】

使用道具 举报

透魔

阿V

Rank: 6Rank: 6

积分
7732
帖子
6459
精华
2
UID
1253084
WCA ID
2010ZHAN17

论坛建设奖 爱心大使 十年元老 十二年元老

发表于 2011-6-9 22:17:04 |显示全部楼层
从没试过七阶打乱
静坐常思己过,闲谈莫论人非

使用道具 举报

粉魔

中国三阶速拧第一个sub 8s 的人

Rank: 5Rank: 5

积分
3213
帖子
1844
精华
0
UID
107589
性别
保密

四年元老 国家(地区)纪录(NR)

发表于 2011-6-9 22:22:57 |显示全部楼层
高手。。。。。。。。。。。。。
退役了

使用道具 举报

Rank: 4

积分
1872
帖子
1488
精华
1
UID
1250885

两年元老

发表于 2011-6-9 22:25:08 |显示全部楼层
之前奇遇有弄了个机器人,但现在不能用了!
很可惜!

使用道具 举报

Rank: 2

积分
508
帖子
367
精华
0
UID
1288939
性别
发表于 2011-6-9 22:32:48 |显示全部楼层
前排围观,还有,能不能建立一个临时窗口专门供打乱用???要不PK就跟刷屏差不多了,影响群聊天

使用道具 举报

粉魔

洋葱头

Rank: 5Rank: 5

积分
3634
帖子
2837
精华
2
UID
70973

论坛建设奖 六年元老

发表于 2011-6-9 22:42:22 |显示全部楼层
貌似已经用了一段时间了哈~~~挺好用的~~
自从某甲给了某乙某丙的QQ,某丙再也没好好练过魔方。。。
DCA官网:http://doraemoncubeassociation.org/

使用道具 举报

Rank: 1

积分
118
帖子
63
精华
2
UID
76301
性别
保密
发表于 2011-6-9 23:03:49 |显示全部楼层
哦,酱紫啊!太神奇了

使用道具 举报

Rank: 1

积分
118
帖子
63
精华
2
UID
76301
性别
保密
发表于 2011-6-9 23:15:42 |显示全部楼层

还有个问题

[水ψ禅] {81402} D U B2 D2 U R2 F' D L' D' U2 B2 R2 D2 U L' F U'  (18f*)   {}里面的81402是随机码还是像{square1}一样有特定含义啊?

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2024-3-29 02:55

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部