hello大家好,今天我又发现了个有趣的小玩意。我是专写有趣小玩意的老诗。
相信大家对于井字棋都并不陌生。现在也能找到各种各样的井字棋小游戏玩。那么你们自己是否会编写呢?接下来老诗用python教大家编写井字棋小游戏。
老规矩,先上效果图
井字棋,英文名叫Tic-Tac-Toe,是一种在3 * 3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。
先画格子
def grid():"Draw tic-tac-toe grid."line(-67, 200, -67, -200)line(67, 200, 67, -200)line(-200, -67, 200, -67)line(-200, 67, 200, 67)复制代码
先是画出四条线。范围是-200~200
画x函数
def drawx(x, y):"Draw X player."line(x, y, x + 133, y + 133)line(x, y + 133, x + 133, y)复制代码
这个x其实就是两条线,传入x,y只要计算好位置就可以画出来。
画圆函数
def drawo(x, y):"Draw O player."up()goto(x + 67, y + 5)down()circle(62)复制代码
o就是画圆,传入x,y后以x + 67, y + 5为圆心,62为半径画出圆。
随意点击,计算位置
def floor(value):"Round value down to grid with square size 133."return ((value + 200) // 133) * 133 - 200state = {'player': 0}players = [drawx, drawo]复制代码
我们要知道,我们用鼠标人工点击的时候,鼠标的位置都是并非标准的。然后我们不制定一个标准画图位置,那么我们点击之后画图的位置就会变歪了。所以我们需要通过我们点击的位置,再计算一个标准的传入位置。
检查点击动作
def tap(x, y):"Draw X or O in tapped square."x = floor(x)y = floor(y)player = state['player']draw = players[player]draw(x, y)update()state['player'] = not player复制代码
这是在检查点击动作,然后响应,调用画图。
整体而言,游戏并不是太难,也很容易就可以学会。上面的思想还是说的比较清楚的。有需要拿完整源码的话后台私信666获取哦!