Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >4.Python画一个五子棋棋盘

4.Python画一个五子棋棋盘

作者头像
用户4381798
发布于 2020-07-30 08:52:53
发布于 2020-07-30 08:52:53
2.7K00
代码可运行
举报
运行总次数:0
代码可运行

今天我们通过wx.PaintDC在窗体上画出一个五子棋棋盘。要想在wxPython创建的窗体对象上通过wx.PaintDC画图,需要在该窗体上绑定一个画图事件wx.EVT_PAINT,然后在事件处理函数里画出我们需要的线条。 我们的棋盘是画在panel上的,所以画图事件也是绑定在panel上,画图的容器mydc也是建立在panel上。我们通过 self.unit = 30、self.dotnum = 15来控制窗体及棋盘的大小,unit为格子边长,dotnum为棋盘每条边的交点个数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#画一个五子棋棋盘
import wx
class myFrame(wx.Frame):
    def __init__(self):
        self.unit = 30
        self.dotnum = 15
        super().__init__\
            (parent=None,pos=[100,100],
             size=[self.unit*self.dotnum
                   +self.unit+20,
                   self.unit*self.dotnum
                   +self.unit+30+20],
             title="商贾三国")
        self.SetIcon(wx.Icon("WeatherBundle.ico"))
        self.panel = wx.Panel(self)
        self.panel.SetBackgroundColour((220, 210, 0))
        self.panel.Bind(wx.EVT_PAINT,self.draw)
        self.Show()
    def draw(self,event):
        mydc=wx.PaintDC(self.panel)
        unit=self.unit
        dotnum=self.dotnum
        x=unit
        y=unit
        for i in range(1,dotnum+1):
            mydc.DrawLine(x,y,x,unit*dotnum)
            x=x+unit
        x=unit
        for i in range(1,dotnum+1):
            mydc.DrawLine(x, y, unit*dotnum, y)
            y=y+unit
myapp=wx.App()
myframe=myFrame()
myapp.MainLoop()

qipan.png

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
7.wxPython制作一个桌面精灵
今天我们通过窗体的SetShape()函数来制作一个桌面精灵。我们制作的桌面精灵本质上还是一个窗体,只不过是一个特殊格式的窗体。我们创建一个style=wx.FRAME_SHAPED的窗体,然后利用SetShape()函数按照我们实现准备的图片的轮廓改变窗体的形状,然后在这个窗体上加载我们实现准备的图片,并加上一些简单的事件响应来实现交互,这样一个桌面精灵就出现了。
用户4381798
2020/07/30
9720
2.wxPython图形界面加入wx.Timer定时器
界面程序中加入wx.Timer定时器,可以让窗体延时执行一些动作。wx.Timer通过wx.EVT_TIMER事件来调用一个事件处理函数执行我们需要的动作,具体实现如代码所示。
用户4381798
2020/07/30
1K0
2.wxPython图形界面加入wx.Timer定时器
wxPython中文教程入门实例「建议收藏」
这篇文章主要为大家分享下python编程中有关wxPython的中文教程,分享一些wxPython入门实例,有需要的朋友参考下
全栈程序员站长
2022/08/26
2.1K0
3.Python图形界面加载GIF
前面我们已经通过wxPython搭建了简单界面。通过wxPython库的wx.StaticText类可以在窗体上显示静态文字,通过wx.Timer类可以控制文字显示的时间。下面我们要通过这个窗体加载显示GIF动态图片。具体实现见代码:
用户4381798
2020/07/30
9960
Python:游戏:五子棋之人机对战
五子棋比起我之前写的几款游戏来说,难度提高了不少。如果是人与人对战,那么,电脑只需要判断是否赢了就可以。如果是人机对战,那你还得让电脑知道怎么下。
丹枫无迹
2019/01/29
2.4K4
微信小程序(游戏)----五子棋(棋盘,重置,对弈)
五子棋对弈、悔棋DEMO 效果图 分析 采用微信小程序的canvas制作五子棋; 确定棋盘大小及格数; 绘制棋盘----通过棋盘宽高和格数计算间距,同时保存坐标点; 黑方和白方下子----定义一个布尔
Rattenking
2021/02/01
1.6K0
微信小程序(游戏)----五子棋(棋盘,重置,对弈)
wxPython:Python首选的GUI库 | CSDN博文精选
跨平台的GUI工具库,较为有名的当属GTK+、Qt 和 wxWidgets 了。GTK+是C实现的,由于C语言本身不支持OOP,因而GTK+上手相当困难,写起来也较为复杂艰涩。Qt 和 wxWidgets 则是C++实现的,各自拥有庞大的用户群体。虽然我喜欢wxWidgets,但还是尽可能客观地搜集了关于Qt 和 wxWidgets 的对比评价。
AI科技大本营
2019/11/12
3.1K0
Python实现五子棋人机对战
五子棋是常见的一款小游戏,五子棋问题是人工智能中的一个经典问题。这篇文章主要介绍了python版本五子棋的实现代码,大家可以做个参考,与我的傻儿子对弈一下。
数据森麟
2019/11/07
3.3K0
Python五子棋人机对战
了解过python的都知道python最高境界就是人工智能,AI技术,but但凡接触到AI那都感觉很高大上的,新手小白肯定看不懂… 别急,我给大家带来了一个伪AI技术,注释也写的很明白,保证小白都能一看就懂!!!! 唔,是的,伪AI技术,人机五子棋。(跟电脑下棋)实现一个人就可以跟电脑下棋。 具体怎么让电脑产生攻击力的… 代码的注释写的很清楚。 。。。
全栈程序员站长
2022/07/04
7470
wxpython自定义控件_wxPython 教程(十三) 自定义控件
本节讲述 wxPython 自定义控件 。GUI Toolkits 会提供多数常用的部件,比如按钮、文本控件、滚动条、滑块等等。wxPython 也会提供很多控件,但若需要更定制化的控件还是需要开发者自己编写。
全栈程序员站长
2022/08/26
1.5K0
8.wxPython设置图像遮罩(mask)的方法
以上面这幅图画为例,嫁接昨天的桌面宠物代码,我们讲解wxPython图像处理为图像设置遮罩的方法。wxPython图像处理类有wx.Image和wx.Bitmap,其中wx.Image是一个与平台无关的类,可以加载各种格式的图形文件,而wx.Bitmap可以将图形显示在屏幕。一般先由wx.Image将图像文件加载,然后转换成wx.Bitmap对象,最后显示在屏幕上。wx.Image有两个函数可以设置图像遮罩:SetMaskColour和SetMaskFromImage,wx.Bitmap有一个函数可以设置图像遮罩:SetMaskColour。今天我们的代码就通过三个函数都实现了图片背景图像遮盖掉的目的。具体实现语句在img.SetMaskColour(255, 242,0),img.SetMaskFromImage(img,255, 242,0),self.bg.SetMaskColour((255, 242,0))三处。
用户4381798
2020/07/30
1.2K0
python做一个人机对战五子棋,AI版本
川川以前梦寐以求的想找个五子棋对手,由于学习原因,实在没小伙伴陪我玩了,于是我就想着做一个AI五子棋来陪我玩吧。网上的游戏搜可以看到一大堆,我们不能说白嫖,白嫖过来总要改一改成自己想要的吧,虽然我也喜欢白嫖,但是我还是喜欢改成我自己想要的。
川川菜鸟
2021/10/18
1.1K0
简单五子棋,没有电脑AI
  刚学了C#委托,做了个五子棋练习,把前台绘制和后台逻辑分开,前台绘制方法用委托传给后台逻辑。
用户6362579
2019/09/29
5500
简单五子棋,没有电脑AI
Java版五子棋小游戏(java控制台)
                       Java版五子棋小游戏(java控制台) 前言: 该项目 为 Java 版五子棋小游戏,为控制台小游戏,主要功能有 人机大战,左右互战,可以悔棋可以提示, 人机大战采用 五元贡献法,代码简单 实况效果好 ,相比 一般 博弈论 判断局面的方式,比正真的AI 还是有一定的差距。还有更多可扩展 可以自行摸索 源码:https://github.com/Five-great/FiveChess 核心代码: import java.awt.*; import javax.
Fivecc
2022/11/21
1.2K0
Java版五子棋小游戏(java控制台)
大一Java课设,五子棋小游戏
该程序是基于Java的GUI图形界面,实现的双人版五子棋小游戏。该程序拥有简洁美观的图形化界面,且界面主要由棋盘、标题和游戏操作的按钮三部分组成。
全栈程序员站长
2022/09/14
2.3K0
用Python打印五子棋棋盘
五子棋是一种流行的棋类游戏,在制作五子棋游戏时,打印棋盘是一个必不可少的步骤。下面,我们将详细介绍如何使用Python来打印五子棋棋盘。
很酷的站长
2023/08/16
7110
如何在wxPython应用程序中使用Panda3D
我们知道wxPython提供了丰富的工具和部件来构建用户界面,如果当我们整合wxPython和Panda3D可以创建出功能丰富且交互性强的应用程序,可以创建出强大而丰富的用户界面和3D场景。这样做的主要挑战在于将两个库整合到一个应用程序中,同时确保它们能够无缝地协同工作。具体像是解释一起跟着我看下文吧。
华科云商小徐
2024/02/19
2720
五子棋Java课设
第一步:要分俩个类,一个是五子棋本身主类(包括黑白棋下棋方式),一个是棋子类(包括构建画布进行棋盘的设计,使其构成等距离的格子,正方形棋盘15*15格式)。
全栈程序员站长
2022/09/14
7900
五子棋Java课设
Tiknter例子3
============================================
py3study
2020/01/10
1.2K0
挑战自己,编程你的五子棋:Python+Pygame实践经验分享
五子棋,古老而经典,是一种两人对抗的策略棋类游戏。想要体验制作游戏的乐趣吗?本文将详细指导你如何使用Python语言和Pygame库,一步步打造自己的五子棋游戏!
子午Python
2023/10/04
9400
相关推荐
7.wxPython制作一个桌面精灵
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验