python 五子棋 pygame

自己用python写的五子棋 ,辛辛苦苦写的详细注释,等以后再回来看看自己的思路

用的函数式编程,面向对象不熟练,当时的想法是先通过函数式编程写出来,把思路整理一下,

理清楚过程事件了,再用面向对象重写,也算是再梳理一遍

用了第三方库pygame

有个问题,如果有大神知道,欢迎留言:

我想实现一个功能:

鼠标在移动的时候,如果鼠标位置靠近棋盘上某一个横竖线交叉点一定范围(上下左右各一半)的时候,能够在这个交叉点出现一个光标聚焦的标志(类似准星的玩意),移动到其他位置后,再在其他距离最近的横竖线交叉点出现

意思就是鼠标的光标无论停留在什么位置,我想要在最近的横竖线交叉点出现一个准星,表示棋子落子的位置,以防落子位置出现偏差落到其他位置 ,只能出现一个准星

我尝试用pygame.MOUSEMOTION事件,通过mouse.get_pos()得到光标的位置,然后再进行判断靠近哪一个交叉点,然后在这个交叉点画出一个准星,但是鼠标移动后会重新生成新的准信,我没办法删除之前的准星,导致一直在窗体上添加准星

我又尝试生成下一个准星时,重新绘制所有的pygame对象,但是由于MOUSEMOTION是鼠标移动事件,只要鼠标移动就会触发,会一直扫描,所以鼠标只要移动,就会生成准星,然后重绘所有的对象,导致不断执行,然后整个画面就一直一闪一闪的

求问:pygame能不能实现这个功能 ,怎么实现

我的初步想法是在while循环里的MOUSEMOTION事件里加一个延时

python 五子棋 pygame
-*- coding: utf-8 -*-
__/author__by:Kevin_X/__

import pygame

win_W = 900     #  窗口宽度
win_H = 700     #  窗口高度

 游戏初始化
def gameinit():
    global window
    pygame.init()
    window = pygame.display.set_mode((win_W,win_H))
    pygame.display.set_caption('五子棋  BY:Kevin_X')
    window.fill((255, 218, 185))
    pygame.display.flip()

    #  棋盘划线15*15
    x=20   #  棋盘起点(20,20),四周留空20
    while x

Original: https://blog.csdn.net/weixin_65922074/article/details/126272825
Author: weixin_65922074
Title: python 五子棋 pygame

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/778995/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Pytorch 学习第【2】天

    张量是一种特殊的数据结构,它类似于数组与矩阵。在PyTorch中,主要使用张量来编码模块的输入和输出。张量类似于NumPy 的 nd array,但是张量(tensors) 可以在…

    Python 2023年8月29日
    036
  • ceph压测

    ceph测试工具fio安装 wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz yum install libaio-devel …

    Python 2023年6月16日
    071
  • Pytest内置函数,让你不再为自动化测试数据存放发愁。

    前言 在跑自动化测试中,测试过程中会用到一些测试数据,其中这些测试数据包括临时测试数据和常用到的数据,经常用到的数据,我们可以通过Excel或者yaml文件的方式进行存储,那么临时…

    Python 2023年9月11日
    044
  • pytest系列教程——3、setup和teardown

    setup和 teardown是用来处理用例的开始前工作和结束后的工作,pytest提供了多种类型的前置和后置,其中包括: setup_module / teardown_modu…

    Python 2023年9月12日
    032
  • pandas 预处理

    1.清除空值 如果我们要删除包含空字段的行,可以使用 dropna() 方法DataFrame.dropna(axis=0, how=’any’, thre…

    Python 2023年8月7日
    076
  • 【Educoder作业】※网页抓取及信息提取

    【Educoder作业】※网页抓取及信息提取 简易小爬虫?偷偷告诉各位,前面题的答案都在后一道题里,所以其实我们只需要做第四题 T1 数据获取—分数线目录页 需要注意的是,w e …

    Python 2023年8月2日
    067
  • 第一百一十七篇: JavaScript 工厂模式和原型模式

    好家伙,本篇为《JS高级程序设计》第八章”对象、类与面向对象编程”学习笔记 工厂模式是另外一种关注对象创建概念的创建模式。 它的领域中同其它模式的不同之处在…

    Python 2023年10月11日
    043
  • 【AI绘画】如何优雅的在本地配置 novelai ?

    大家好,最近 AI 绘画太火了,火到我无论是打开b乎还是b站,都会给我的首页推荐AI绘画相关的。当然我也是收藏和关注了一大波内容,后续会分享出来,各路大佬的新奇玩法。 网上有一大堆…

    Python 2023年9月28日
    035
  • Flask send_file函数导致的绝对路径遍历

    平时接触到的 python 项目并不多,对 python 的代码审计更是没有接触,偶然朋友发来了一个漏洞 Flask send_file函&#x657…

    Python 2023年8月14日
    051
  • Pytest测试框架进阶篇

    今天和大家分享pytest测试框架进阶篇,也可以称之为pytest测试框架核心,主要核心有:– 掌握pytest.fixture– 掌握pytest.mar…

    Python 2023年9月13日
    061
  • pandas基础

    目录 文件读取: 数据结构: seriers: dataframe: 常用基本函数: 汇总函数: 唯一值函数: 排序函数: 文件读取: pandas可以简单的读取csv,excel…

    Python 2023年8月8日
    065
  • WINDOWS下对NIGNX日志文件进行限制

    首先接到这个任务,发现nginx的日志限制更多的都是在Linux下做的,找了半天,也没找到能直接通过nginx.conf更改体现到日志限制上的。 最后决定直接通过bat脚本,来对n…

    Python 2023年10月14日
    044
  • superset行级权限修改

    6 根据机构代码显示不同数据6.1修改viz.py 添加默认where条件extras = {‘where’:’comcode=”5…

    Python 2023年8月13日
    039
  • 爬虫基础篇之多途径抓取失信人名单

    需求 继爬虫基础篇之Scrapy抓取京东之后,我们对scrapy有了一定的掌握,接下来通过多渠道汇总对失信人信息抓取入库。 抓取百度失信人名单 抓取最高人民法院失信人名单 抓取国家…

    Python 2023年10月3日
    061
  • web–拉灯泡切换黑天与白夜的精美动画

    功能: 进入界面会出现一个灯泡(下面有可以自由飘动也可以自由拉动的绳子),鼠标左键按住不松开可以拉动绳子,松开变化亮起,同时有拉响的清脆声响,把它放在web作业的设计里面绝对是非常…

    Python 2023年9月16日
    059
  • 前端必读:如何在 JavaScript 中使用SpreadJS导入和导出 Excel 文件

    JavaScript在前端领域占据着绝对的统治地位,目前更是从浏览器到服务端,移动端,嵌入式,几乎所有的所有的应用领域都可以使用它。技术圈有一句很经典的话”凡是能用Ja…

    Python 2023年10月21日
    043
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球