栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python小游戏系列井字棋,儿时的回忆

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python小游戏系列井字棋,儿时的回忆

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 - 200

state = {'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获取哦!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/587636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号