Add sevens game
This commit is contained in:
parent
9feb3b9d92
commit
cf01d1cf12
|
@ -0,0 +1,15 @@
|
|||
import plugin, sevens
|
||||
import importlib
|
||||
importlib.reload(sevens)
|
||||
|
||||
@plugin.command("sevens")
|
||||
def sevens_check(bot,channel,nick,*words):
|
||||
msg = " ".join(words)
|
||||
out = "Your message satisfies: "
|
||||
if sevens.word_length(msg):
|
||||
out+="word count ("+str(len(msg.split()))+"), "
|
||||
if sevens.letter_count(msg):
|
||||
out+="letter count ("+str(len("".join(msg.strip().split())))+"), "
|
||||
if sevens.word_length(msg) or sevens.letter_count(msg):
|
||||
out = out[:-2]
|
||||
bot.say(channel,"{}: {}".format(nick,out))
|
|
@ -0,0 +1,14 @@
|
|||
import plugin,sevens,dictdata
|
||||
|
||||
gamestate = dictdata.DictData("sevens_game.json")
|
||||
|
||||
CRITERION = [sevens.word_length,sevens.letter_count]
|
||||
|
||||
def message_passes(msg):
|
||||
return any([f(msg) for f in CRITERION])
|
||||
|
||||
@plugin.listener("sevens_game")
|
||||
def sevens_game(bot,channel,nick,msg):
|
||||
if channel!="#sevens": return # only police #sevens
|
||||
if not message_passes(msg):
|
||||
bot._bot.conn.kick(channel,nick,"disturbing the peace of the sanctuary ~minerbot2")
|
|
@ -0,0 +1,21 @@
|
|||
def digit_sum(n,one=False):
|
||||
r = sum([int(x) for x in (str(n) if type(n)==int else n)])
|
||||
if one:
|
||||
if len(str(r))>1:
|
||||
return digit_sum(r,one)
|
||||
return r
|
||||
|
||||
def sum_to_seven(f):
|
||||
def wrapper(*args,**kwargs):
|
||||
res = f(*args,**kwargs)
|
||||
return digit_sum(res,True)==7 or (res%7)==0
|
||||
return wrapper
|
||||
|
||||
@sum_to_seven
|
||||
def word_length(msg):
|
||||
words = msg.split(" ")
|
||||
return len(words)
|
||||
|
||||
@sum_to_seven
|
||||
def letter_count(msg):
|
||||
return len("".join(msg.strip().split()))
|
Reference in New Issue