Q群江湖之續(xù)命——寫一個你自己的QQ機器人

上個周末給個妹子發(fā)了信息說算了吧肾胯,然后不知道是不是被鬼上身了整個禮拜都渾渾噩噩,魂不守舍什么都不想干旬蟋,游戲機都不想玩了油昂。我琢磨著這樣下去不就廢了,得找點能夠吸引自己的事情做倾贰。閑得無聊突然想起之前在知乎上看到一篇回答說有一個Q群寫了個R點機器人冕碟。巧了,之前找不到那個機器人的包現(xiàn)在一搜就搜到了匆浙。
pip install qqbot
我們開始吧

jianghu.jpg

首先我新建了個sample.py 然后只是簡單的寫了個邏輯安寺,R點!當點數(shù)大于6的時候可以禁言一分鐘你指名的那個人首尼,否則反噬挑庶,自己被禁言五分鐘。


微信圖片_20170913195902.png
微信圖片_20170913195945.png

然后覺得太簡單不夠好玩软能,然后我琢磨著加點功能迎捺。
1.1版本應(yīng)運而生!查排!
新增加了隨機指名凳枝,以命為賭本的功能,并細化了R點功能跋核。當賭注大于5分鐘時岖瑰,R點要大于等于8點才能禁對方叛买,否則反噬。賭注小于5分鐘時蹋订,R點要大于等于6點才能禁對方聪全,否則反噬。

微信圖片_20170913200739.png

玩了一上午辅辩,群里開始有意見了难礼,說要屏蔽群了。我想了想不能影響大家學(xué)習(xí)呢玫锋,就把機器人關(guān)了蛾茉。然后繼續(xù)閉關(guān)!撩鹿!
這次我要建立個人角色系統(tǒng)谦炬,有生命值,有擊殺數(shù)节沦,還有排行榜键思!
然后寫到下班,終于寫完了甫贯!

微信截圖_20170913201241.png

正式上線:鹆邸!

微信截圖_20170913201414.png
微信截圖_20170913201521.png

到現(xiàn)在為止叫搁,不想再更新了赔桌。。渴逻。疾党。萬一再更下去。惨奕。雪位。可能要寫一個狼人殺或者三國殺了梨撞。雹洗。。聋袋。代碼分享出來給大家队伟,需搭配qqbot使用,代碼無法直接運行S睦铡嗜侮!

# -*- coding: utf-8 -*-
import random
import re
from MCG import MGClient#這是我寫一個模塊,用來連接mongodb的


def onQQMessage(bot, contact, member, content):
    if content == '-hello':
        bot.SendTo(contact, '你好,我是QQ機器人')
    elif content == '-stop':
        bot.SendTo(contact, 'QQ機器人已關(guān)閉')
        bot.Stop()
    if '@ME' in content:
        db = MGClient().get_mongo_client()
        if not db.qqfight.find_one({'name':member.name}):
            db.qqfight.insert({'name':member.name,'life':0,'kill':0})
        player1 = db.qqfight.find_one({'name': member.name})
        player2 = db.qqfight.find_one({'name': content.split(' ')[-2]})
        bot.SendTo(contact, member.name + '锈颗,讓我們來開始續(xù)命游戲吧顷霹,輸入命令 -h 進入幫助菜單,新增續(xù)命,排行榜功能')
        gl = bot.List('group', 'Python自學(xué)技術(shù)交流')

        if '-續(xù)命' in content:
            if not db.qqfight.find_one({'name': content.split(' ')[-2]}):
                db.qqfight.insert({'name': content.split(' ')[-2], 'life': 0, 'kill': 0})
            num=random.randint(0, 9)
            time = int(content.split(' ')[-1])
            if time*60>10*60:
                bot.SendTo(contact, member.name + '玩這么大击吱,想被踢出群淋淀?')
            elif time*60 >= 5*60:
                if num >=8:
                    db.qqfight.update({'name': member.name},{'$set':{'life':player1['life']+time}})
                    db.qqfight.update({'name': member.name}, {'$set': {'kill': player1['kill'] + 1}})
                    name = content.split(' ')[-2]
                    if name =='random':
                        name=re.findall(r'“(.*?)”',str(random.choice(bot.List(gl[0]))))[0]
                        if not db.qqfight.find_one({'name': name}):
                            db.qqfight.insert({'name': name, 'life': 0, 'kill': 0})
                    bot.SendTo(contact,member.name + ' 當前生命為{life},你R了個{num},大于等于8,將從{name}(生命為{life2}),吸收{(diào)time}分鐘生命'.format(life=player1['life'], num=num, name=name, time=time, life2=player2['life']))
                    group = gl[0]
                    membs=bot.List(group, name)
                    if player2['life'] - time<0:
                        db.qqfight.update({'name': name}, {'$set': {'life': 0}})
                        bot.GroupShut(group, membs, time*60)
                        #bot.SendTo(contact,'已禁言{m}'.format(m=membs))
                    else:
                        db.qqfight.update({'name': name}, {'$set': {'life': player2['life'] -time}})
                if num <8:
                    name = content.split(' ')[-2]
                    group = gl[0]
                    if name == 'random':
                        name = re.findall(r'“(.*?)”', str(random.choice(bot.List(gl[0]))))[0]
                        if not db.qqfight.find_one({'name': name}):
                            db.qqfight.insert({'name': name, 'life': 0, 'kill': 0})
                    bot.SendTo(contact,member.name+ ' 當前生命為{life},你R了個{num},小于8,反噬!被{name}(生命為{life2})吸收了{time}分鐘生命'.format(life=player1['life'],num=num,name=name,time=time,life2=player2['life']))
                    db.qqfight.update({'name': name}, {'$set': {'life': player2['life'] + time}})
                    if player1['life'] - time<0:
                        name = member.name
                        membs = bot.List(group, name)
                        bot.GroupShut(group, membs, time*60)
                        #bot.SendTo(contact, '已禁言{m}'.format(m=membs))
                        db.qqfight.update({'name': member.name}, {'$set': {'life': 0}})
                    elif player1['life'] - time>=0:
                        db.qqfight.update({'name': member.name}, {'$set': {'life': player1['life'] -time}})
            elif time*60 <5*60:
                if num >=6:
                    db.qqfight.update({'name': member.name}, {'$set': {'life': player1['life'] + time}})
                    db.qqfight.update({'name': member.name}, {'$set': {'kill': player1['kill'] + 1}})
                    name = content.split(' ')[-2]
                    group = gl[0]
                    if name =='random':
                        name=re.findall(r'“(.*?)”',str(random.choice(bot.List(gl[0]))))[0]
                        if not db.qqfight.find_one({'name': name}):
                            db.qqfight.insert({'name': name, 'life': 0, 'kill': 0})
                    bot.SendTo(contact, member.name + ' 當前生命為{life},你R了個{num},大于等于6,將從{name}(生命為{life2}),吸收{(diào)time}分鐘生命'.format(life=player1['life'], num=num, name=name, time=time, life2=player2['life']))
                    if player2['life'] - time<0:
                        db.qqfight.update({'name': name}, {'$set': {'life': 0}})
                        membs=bot.List(group, name)
                        bot.GroupShut(group, membs, time*60)
                        #bot.SendTo(contact,'已禁言{m}'.format(m=membs))
                    else:
                        db.qqfight.update({'name': name}, {'$set': {'life': player2['life'] -time}})

                if num <6:
                    group = gl[0]
                    name = content.split(' ')[-2]
                    if name == 'random':
                        name = re.findall(r'“(.*?)”', str(random.choice(bot.List(gl[0]))))[0]
                        if not db.qqfight.find_one({'name': name}):
                            db.qqfight.insert({'name': name, 'life': 0, 'kill': 0})
                    bot.SendTo(contact,member.name+ ' 當前生命為{life},你R了個{num},小于6,反噬!被{name}(生命為{life2})吸收了{time}分鐘生命'.format(life=player1['life'],num=num,name=name,time=time,life2=player2['life']))
                    db.qqfight.update({'name': name}, {'$set': {'life': player2['life'] + time}})
                    if player1['life'] - time<0:
                        name = member.name
                        membs = bot.List(group, name)
                        bot.GroupShut(group, membs, time*60)
                        #bot.SendTo(contact, '已禁言{m}'.format(m=membs))
                        db.qqfight.update({'name': member.name}, {'$set': {'life': 0}})
                    else:
                        db.qqfight.update({'name': member.name}, {'$set': {'life': player1['life'] -time}})
        elif '-h' in content:
            string=""" -續(xù)命  name  minutes    偷取對方的生命值,生命值為負時禁言覆醇,若選擇隨機對象朵纷,用random代替名字
                       -排行榜    查看誰是真正的長者!永脓!
            """
            bot.SendTo(contact, member.name + string)
        elif '-排行榜' in content:
            bot.SendTo(contact, member.name +'少年袍辞,你聽說過長者的故事么')
            data= db.qqfight.find({})
            item1=[]
            item2=[]
            for i in data:
                item1.append(i)
                item2.append(i['life'])
            item3=sorted(item2)
            for i in range(1,4):
                bot.SendTo(contact,'%s 此人壽命%d分鐘,是最第%d長壽的長者'%(item1[item2.index(item3[-i])]['name'].encode('utf-8'),item1[item2.index(item3[-i])]['life'],i))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末常摧,一起剝皮案震驚了整個濱河市搅吁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌落午,老刑警劉巖谎懦,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異溃斋,居然都是意外死亡界拦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門盐类,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寞奸,“玉大人,你說我怎么就攤上這事在跳。” “怎么了隐岛?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵猫妙,是天一觀的道長。 經(jīng)常有香客問我聚凹,道長割坠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任妒牙,我火速辦了婚禮彼哼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘湘今。我一直安慰自己敢朱,他們只是感情好,可當我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拴签,像睡著了一般孝常。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蚓哩,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天构灸,我揣著相機與錄音,去河邊找鬼岸梨。 笑死喜颁,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的曹阔。 我是一名探鬼主播洛巢,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼次兆!你這毒婦竟也來了稿茉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤芥炭,失蹤者是張志新(化名)和其女友劉穎漓库,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體园蝠,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡渺蒿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了彪薛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茂装。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖善延,靈堂內(nèi)的尸體忽然破棺而出少态,到底是詐尸還是另有隱情,我是刑警寧澤易遣,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布彼妻,位于F島的核電站,受9級特大地震影響豆茫,放射性物質(zhì)發(fā)生泄漏侨歉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一揩魂、第九天 我趴在偏房一處隱蔽的房頂上張望幽邓。 院中可真熱鬧,春花似錦火脉、人聲如沸牵舵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棋枕。三九已至白修,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間重斑,已是汗流浹背兵睛。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窥浪,地道東北人祖很。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像漾脂,于是被迫代替她去往敵國和親假颇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 今天又換了個老師骨稿,要我們多提一些問題笨鸡,和對光機所的疑問啥的,他幫我解答一下坦冠,對自己今后的打算和工作有一定的了解形耗,還...
    張寶興閱讀 135評論 0 0
  • 對于具有美感的人和事兒,都是具有吸引力的
    chereeZz閱讀 185評論 0 0
  • 有這樣一位母親有了孩子,簡直判若兩人判呕,本來是一位高冷的職場女白領(lǐng)變成瘋狂曬娃的女萌主倦踢,母親為了全身心地照顧孩子,卻...
    鏗鏘玫瑰521閱讀 925評論 1 0
  • 是真的起風(fēng)了侠草,沒有宮崎駿老爺子說的那般復(fù)雜辱挥。坐在路邊,吹著風(fēng)梦抢,看車來車往般贼,看霓虹閃爍。不擔心糧食和蔬菜奥吩,也不劈柴喂...
    正午閱讀 325評論 0 1