记一次墨菲定律

 

Repopulate Form

写了一个抽奖脚本,发生了一个微妙的bug……这个bug的发生概率我估计比中奖还小……(虽说我也中奖了)

while True:
    if(int(time.localtime(time.time()).tm_min)>48 and int(time.localtime(time.time()).tm_hour)>10):
        print("PostAt:", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
        time.sleep(random.randint(3,20))
    elif(int(time.localtime(time.time()).tm_min)<50):
        print('让我睡一分钟')
        time.sleep(60)

理论上应该不会在11点48前发送的,结果……发生了一件让我惊奇的事情

QQ图片20160520090842

看了一眼判断,在

int(time.localtime(time.time()).tm_min) and int(time.localtime(time.time()).tm_hour)

所以这个bug必须在判断分钟的时候是10:59

判断小时的时候正好跳到11:00

所以要避免这个发生的话……

int(time.localtime(time.time()).tm_hour) and int(time.localtime(time.time()).tm_min)

或者放个变量存一下,还能快一丁点

#EOF

……Python这是有多慢。

无禁手五子棋的胜利验证

2018年3月31日 11:50:22更新:

突然感觉每个逻辑都写一遍特别蠢 于是简化了一下

class Board:
    board = []  # 棋盘
    bangswin = 5  # 可以改成六子棋
 
    def __init__(self, x=10, y=10):  # 初始化棋盘
        for x1 in range(x):
            self.board.append([])
            for y1 in range(y):
                self.board[x1].append(0)
 
    def resetBoard(self):  # 重置棋盘
        for x in range(len(self.board)):
            for y in range(len(self.board[0])):
                self.board[x][y] = 0
 
    def winnerIs(self, who):  # 宣告胜利者
        self.printBoard()
        print("Winner is", who)
        self.resetBoard()
 
    def printBoard(self):  # 打印棋盘
        for row in self.board:
            print(row)
 
    def dropPiece(self, x, y, who):  # 下子
        if (self.board[x][y] == 0):
            self.board[x][y] = who;
            self.checkPiece(x, y, who)
 
    def checkPieceOnDrection(self, x, y, xv, yv, who):  # 参数化方向验证
        x1 = x
        y1 = y
        # 负向检测
        bang = 1
        while (x <= len(self.board) and y <= len(self.board[0]) and x >= 0 and y >= 0):
            x = x - xv
            y = y - yv
            if (self.board[x][y] == who):
                bang += 1
            else:
                break
        x = x1
        y = y1
        # 正向检测
        while (x <= len(self.board) and y <= len(self.board[0]) and x >= 0 and y >= 0):
            x = x + xv
            y = y + yv
            if (self.board[x][y] == who):
                bang += 1
            else:
                break
        if (bang == self.bangswin):
            self.winnerIs(who)
            return
 
    def checkPiece(self, x, y, who):  # 赢家验证
        self.checkPieceOnDrection(x, y, 1, 0, who); # 从左到右
        self.checkPieceOnDrection(x, y, 0, 1, who); # 从上到下
        self.checkPieceOnDrection(x, y, 1, 1, who); # 左上右下
        self.checkPieceOnDrection(x, y, 1, -1, who); # 右上左下

 

原文章:

米字型验证,Python

class Board:
    board = [] #棋盘
    bangswin = 5 #可以改成六子棋
    def __init__(self, x=10, y=10): #初始化棋盘
        for x1 in range(x):
            self.board.append([])
            for y1 in range(y):
                self.board[x1].append(0)
    def resetBoard(self): #重置棋盘
        for x in range(len(self.board)):
            for y in range(len(self.board[0])):
                self.board[x][y] = 0
    def winnerIs(self, who): #宣告胜利者
        self.printBoard()
        print("Winner is", who)
        self.resetBoard()
    def printBoard(self): #打印棋盘
        for row in self.board:
            print(row)
    def dropPiece(self,x,y,who): #下子
        if(self.board[x][y]==0):
            self.board[x][y]=who;
            self.checkPiece(x,y,who)
    def checkPiece(self, x, y, who): #验证
        x1 = x
        y1 = y
        # 左上到右下检测
        bang = 1
        while (x >= 0 and y >= 0):
            x -= 1
            y -= 1
            if (self.board[x][y] == who):
                bang += 1
            else:
                break
        x = x1
        y = y1
        while (x <= len(self.board) and y <= len(self.board[0])):
            x += 1
            y += 1
            if (self.board[x][y] == who):
                bang += 1
            else:
                break
        if (bang >= self.bangswin):
            self.winnerIs(who)
            return
 
        # 上到下
        bang = 1
        x = x1
        y = y1
        while (x >= 0 and y >= 0):
            x -= 1
            if (self.board[x][y] == who):
                bang += 1
            else:
                break
        x = x1
        y = y1
        while (x <= len(self.board) and y <= len(self.board[0])):
            x += 1
            if (self.board[x][y] == who):
                bang += 1
            else:
                break
        if (bang >= self.bangswin):
            self.winnerIs(who)
            return
 
        # 右上到左下
        bang = 1
        x = x1
        y = y1
        while (x >= 0 and y >= 0):
            x -= 1
            y += 1
            if (self.board[x][y] == who):
                bang += 1
            else:
                break
        x = x1
        y = y1
        while (x <= len(self.board) and y <= len(self.board[0])):
            x += 1
            y -= 1
            if (self.board[x][y] == who):
                bang += 1
            else:
                break
        if (bang >= self.bangswin):
            self.winnerIs(who)
            return
 
        # 左到右
        bang = 1
        x = x1
        y = y1
        while (x >= 0 and y >= 0):
            y -= 1
            if (self.board[x][y] == who):
                bang += 1
            else:
                break
        x = x1
        y = y1
        while (x <= len(self.board) and y <= len(self.board[0])):
            y += 1
            if (self.board[x][y] == who):
                bang += 1
            else:
                break
        if (bang >= self.bangswin):
            self.winnerIs(who)
            return

 

比较残念的是这个思路无法验证残局……把每个子都扔进去?

AC娘全彩版表情配布

自用表情包,请于下载后1分钟内使用

下eif给QQ用就好
剩下的是给改图的和显得蛋疼的人用的

AC娘这么萌
官方居然不给上色
还有白色背景
会不会网络营销啊
于是试着上了两色
发现辨识度真tm高
然后就上了三色
卧槽这不是能用了么(谜)
试着上四色
卧槽好麻烦我放弃
谁爱来谁来

算了还是我来吧

我个人不保有任何版权
可以随意修改转发,大概

预览:

AC娘预览
匿名版预览

下载:

AC娘:

百度盘

百度盘备份 密码:jta0

匿名版

http://pan.baidu.com/s/1hs0KtFI

百度盘备份 密码:6ui7

本表情由
天使不吱声 908024510
天杀包子神 ts8zs@qq.com
天杀包子铺 www.ts8zs.com
谜之交流群 555988125
漫画不正常人类研究院 152987093
友情赞助

后记:
因为图源的原因所以有锯齿
等我获得无损图源的时候已经没耐心了……
只是个表情包要什么画质呢,表情只会越传越差的
希望会有人来重置吧hhhh

或者给我打100元赞助我也许会帮你重置一份hhhhh

补一个表情 出处不明
初音笑

刷新换图

点击这里

一张来自konachan的图片正在载入中

载入可能慢到鬼畜就是=。=

本来还想用重定向实现的……嘛,最后还是拖到服务器上再回传了……所以有很大流量压力啊……

主要用到了simpleXML和readfile()函数,还有一些字符串的拼接替换啥的……挺简单的哈哈

如果可能的话请自己架个IIS自用……

主要参数有:

src //来源konachan或者yande

https //ture or false

tags //会用的都懂

rating //单独从tags里分出来了直接在tags里用也行 默认safe开启

type // preview 缩略图 sample 样图 jpeg jpg图 file 原图 (demo已屏蔽)

minwidth

minheight //限制图片大小

ratio //图片比例比如16:9 4:3等 不严格相等而且有失败的几率

showfailed //失败的话会返回失败图 ture or false

很多奇奇怪怪的bug大概是因为编码问题引起的……

源码地址在github上。如果可能的话帮我修修bug吧跪谢Orz

就酱。

Repopulate Form