python 五子棋 pygame

这篇具有很好参考价值的文章主要介绍了python 五子棋 pygame。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

用了第三方库pygame

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

我想实现一个功能:

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

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

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

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

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

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

python 五子棋 pygame

 文章来源地址https://www.toymoban.com/news/detail-422714.html

# -*- 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 <= 680:
        pygame.draw.line(window,(0, 0, 0), (x, 20), (x, 680), 1)
        pygame.draw.line(window,(0, 0, 0), (20, x), (680, x), 1)
        x+=44
        #   步长44,这个是棋格的大小,棋子大小为直径40的圆,这样棋子之间留2个像素的间隙,美观一点

#  状态显示区
def game_status(str_status):
    #  传入一个参数,为字符串形式࿰

到了这里,关于python 五子棋 pygame的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python五子棋代码最简单的,python五子棋代码手机版

    大家好,本文将围绕python五子棋代码最简单的展开说明,python五子棋代码手机版是一个很多人都想弄明白的事情,想搞清楚python五子棋代码画棋盘需要先了解以下几个事情。 【实例简介】 【实例截图】 【核心代码】 \\\"\\\"\\\"五子棋之人机对战\\\"\\\"\\\" import sys import random import pygame from

    2024年01月19日
    浏览(30)
  • Python实现五子棋

    我认为这个五子棋核心还是在于二维数组,将实际当中鼠标点击的物理位置转换到棋盘中的逻辑地址,之后便用数组的方法进行操作,例如检测是否获胜,电脑下棋策略等。 是否可落子 是否有输赢 每次标记最新下棋的位置即可 电脑下棋 策略:主要根据一个网上的经验评分

    2024年02月06日
    浏览(32)
  • 五子棋(Python实现)

    2024年02月11日
    浏览(29)
  • python实现《五子棋》

            今天突然心血来潮,想全程自己写一个小游戏(毕竟对于一个才接触python不到一个月的小白来说,还是比较为难,虽然不算是完全成功,因为棋盘大小和布局还是借鉴了其它博主的,但这都是小问题,重要是其它的都是自己写的嘛!!!(咦,这小编真能扯,还不上

    2024年02月12日
    浏览(21)
  • python五子棋(附代码)

    基于pygame实现五子棋 掌握核心算法,怎么判断是否连成五个以及落子位置的模糊判断 1.只需要判断最后一个棋子周围4个方向(上下,左右,左上右下,右下左上)这些方向棋子的颜色是否和最后一个落子颜色连续一致!(详情看代码) 2.落子位置的模糊判断对下棋的体验感

    2024年02月04日
    浏览(25)
  • python实现简单五子棋

     规则 :用鼠标下子,黑子白子交替下子 核心 :1、使用turtle库画棋盘            2、turtle库中的onscreenclick()函数,实现鼠标点击 详细步骤: 用turtle()库fd()函数实现画直线,tracer(0)消除动画效果 定义一个二维数组,也就是列表来对应棋盘上的落子情况,没有子为0,黑子为

    2024年02月05日
    浏览(19)
  • python实现五子棋(完整代码)

    本文主要讲解基于p

    2024年02月10日
    浏览(29)
  • Python小游戏:五子棋

    今天主要介绍一下python实现五子棋小游戏,使用pygame模块编写一个五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 然后呢上面代码的运行结果如下: 背景是白色的,当然我们常见的棋盘应该是棕黄色的,于是我们查找颜

    2024年02月09日
    浏览(33)
  • Python写一个创意五子棋游戏

    前言 在本教程中,我们将使用Python写一个创意五子棋游戏     个人推荐python学习系列: ☄️爬虫 JS逆向 系列专栏  - 爬虫逆向教学 ☄️python系列专栏  - 从零开始学python 首先 GomokuGame 类的构造函数 __init__ 初始化游戏。 board_size 参数默认为 15,表示棋盘大小。 board 是一个

    2024年02月12日
    浏览(34)
  • 基于Python的五子棋人机对战

    在之前的博文基于tkinter的五子棋游戏中使用tkinter做了一个简单的五子棋游戏,只能实现人人对战,后来想着加上人机对战的功能。 不过,最初想想还是挺麻烦的,计算机怎么评估当前的棋局,找到最佳或者较佳的落子点呢,脑子真是越来越不灵光了。站在巨人的肩膀上,科

    2024年02月04日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包