Add shibe.py
This commit is contained in:
parent
760bf02b7b
commit
f940db796a
|
@ -0,0 +1,51 @@
|
||||||
|
from random import choice, random, randint
|
||||||
|
import time
|
||||||
|
|
||||||
|
from util import hook
|
||||||
|
|
||||||
|
COLORS = ['03','04','06','07','08','09','10','11','12','13']
|
||||||
|
|
||||||
|
#Shibe generation code borrowed from aji
|
||||||
|
|
||||||
|
class pvec:
|
||||||
|
def __init__(self, num):
|
||||||
|
self.v = [1.0] * num
|
||||||
|
self.norm()
|
||||||
|
def norm(self):
|
||||||
|
s = sum(self.v)
|
||||||
|
self.v = [x / s for x in self.v]
|
||||||
|
def pick(self):
|
||||||
|
r = random() * sum(self.v) # sum should always be 1, but meh
|
||||||
|
s = 0
|
||||||
|
for i, x in enumerate(self.v):
|
||||||
|
s += x
|
||||||
|
if r < s:
|
||||||
|
break
|
||||||
|
def calc(j, x):
|
||||||
|
fac = (1 - 3.5 / (abs(i - j) + 4.5))
|
||||||
|
return x * fac
|
||||||
|
self.v = [calc(j, x) for j, x in enumerate(self.v)]
|
||||||
|
self.norm()
|
||||||
|
return i
|
||||||
|
|
||||||
|
spvec = pvec(40)
|
||||||
|
for i in range(10):
|
||||||
|
spvec.pick()
|
||||||
|
|
||||||
|
last_color = '00'
|
||||||
|
|
||||||
|
def gen_prefix():
|
||||||
|
global last_color
|
||||||
|
|
||||||
|
color = choice(COLORS)
|
||||||
|
while color == last_color:
|
||||||
|
color = choice(COLORS)
|
||||||
|
|
||||||
|
last_color = color
|
||||||
|
return ' ' * spvec.pick() + '\3' + color
|
||||||
|
|
||||||
|
@hook.command("shibe")
|
||||||
|
def shibeify(inp):
|
||||||
|
return "%s%s" %\
|
||||||
|
(gen_prefix(), inp)
|
||||||
|
|
Loading…
Reference in New Issue