可以跟小伙伴联机对战的五子棋,你会吗?今天用Python教大家搞定!!快上车!

导语

每次都写单机游戏自嗨好像没啥意思,这次我们来写个支持联机对战的游戏吧,支持局域网联机对战的五子棋小游戏他来了!

相关文件

关注小编,私信小编领取游戏源码的哟!!当然别忘了一键三连哈!!!

开发环境

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理介绍

这里简单介绍下原理吧,代码主要用PyQt5写的,pygame只用来播放一些音效。首先,设计并实现个游戏主界面:

可以跟小伙伴联机对战的五子棋,你会吗?今天用Python教大家搞定!!快上车!
代码实现如下:
'''游戏开始界面'''
class gameStartUI(QWidget):
  def __init__(self, parent=None, **kwargs):
    super(gameStartUI, self).__init__(parent)
    self.setFixedSize(760, 650)
    self.setWindowTitle('五子棋————彳余大胆')
    self.setWindowIcon(QIcon(cfg.ICON_FILEPATH))

    palette = QPalette()
    palette.setBrush(self.backgroundRole(), QBrush(QPixmap(cfg.BACKGROUND_IMAGEPATHS.get('bg_start'))))
    self.setPalette(palette)

    self.ai_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('ai'), self)
    self.ai_button.move(250, 200)
    self.ai_button.show()
    self.ai_button.click_signal.connect(self.playWithAI)

    self.online_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('online'), self)
    self.online_button.move(250, 350)
    self.online_button.show()
    self.online_button.click_signal.connect(self.playOnline)
  '''人机对战'''
  def playWithAI(self):
    self.close()
    self.gaming_ui = playWithAIUI(cfg)
    self.gaming_ui.exit_signal.connect(lambda: sys.exit())
    self.gaming_ui.back_signal.connect(self.show)
    self.gaming_ui.show()
  '''联机对战'''
  def playOnline(self):
    self.close()
    self.gaming_ui = playOnlineUI(cfg, self)
    self.gaming_ui.show()

会pyqt5的应该都可以写出这样的界面,没啥特别的,记得把人机对战和联机对战两个按钮触发后的信号分别绑定到人机对战和联机对战的函数上就行。
然后分别来实现人机对战和联机对战就行了。

可以跟小伙伴联机对战的五子棋,你会吗?今天用Python教大家搞定!!快上车!

主要的代码实现如下:

'''人机对战'''
class playWithAIUI(QWidget):
    back_signal = pyqtSignal()
    exit_signal = pyqtSignal()
    send_back_signal = False
    def __init__(self, cfg, parent=None, **kwargs):
        super(playWithAIUI, self).__init__(parent)
        self.cfg = cfg
        self.setFixedSize(760, 650)
        self.setWindowTitle('五子棋——彳余大胆')
        self.setWindowIcon(QIcon(cfg.ICON_FILEPATH))

        palette = QPalette()
        palette.setBrush(self.backgroundRole(), QBrush(QPixmap(cfg.BACKGROUND_IMAGEPATHS.get('bg_game'))))
        self.setPalette(palette)

        self.home_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('home'), self)
        self.home_button.click_signal.connect(self.goHome)
        self.home_button.move(680, 10)
        self.startgame_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('startgame'), self)
        self.startgame_button.click_signal.connect(self.startgame)
        self.startgame_button.move(640, 240)
        self.regret_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('regret'), self)
        self.regret_button.click_signal.connect(self.regret)
        self.regret_button.move(640, 310)
        self.givein_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('givein'), self)
        self.givein_button.click_signal.connect(self.givein)
        self.givein_button.move(640, 380)

        self.chessman_sign = QLabel(self)
        sign = QPixmap(cfg.CHESSMAN_IMAGEPATHS.get

Original: https://blog.csdn.net/Gtieguo/article/details/117694849
Author: 彳余大胆
Title: 可以跟小伙伴联机对战的五子棋,你会吗?今天用Python教大家搞定!!快上车!

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

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

(0)

大家都在看

  • python统计计算时间_按日期时间统计中的记录数

    我将一些数据加载到PandasDataFrame中,我想将这些数据聚合到日期时间间隔中,并计算每个间隔内的记录数。问题是,我发现的聚合到日期时间间隔并计算每个间隔内的记录数的方法看…

    Python 2023年8月21日
    048
  • RF模型(随机森林模型)详解

    入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 目录 一、RF背景——集成学习中的bagging流派 1、集成学习简介 2…

    Python 2023年10月24日
    042
  • Python容器数据类型(列表、元组)

    使用 + 可以将多个列表或者是元组结合成为一个 lst = [1, 2, 3] lst1 = [‘one’, ‘two’, ‘three’] res =lst + lst1 pri…

    Python 2023年11月9日
    042
  • python之正则函数

    正则表达式是什么? 它是约束字符串匹配某种形式的规则正则表达式有什么用? 1.检测某个字符串是否符合规则.比如:判断手机号,身份证号是否合法2.提取网页字符串中想要的数据.比如:爬…

    Python 2023年11月9日
    027
  • 2022圣诞代码合集(圣诞树+圣诞老人)

    文章目录 前言 使用方法 圣诞树 圣诞老人 ; 前言 圣诞节里的喜悦,飘扬万里;圣诞树上的星星,璀璨耀眼;圣诞星空绽放的烟花,迎来吉祥;圣诞钟声奏响的旋律,传递欢乐; &#…

    Python 2023年11月5日
    0110
  • 人脑能否重启?

    1.重启是什么 ” 人脑能否重启“这个问题还不简单, 人睡眠后清醒就是重启。事实真的是 如此简单吗?我们先不急着给出结论,前面提到” 人睡眠后清…

    Python 2023年10月8日
    041
  • 第八章笔记

    pandans 定义 一个开源的python类库,用于数据分析、数据处理、数据可视化 以管理员的身份打开cmd 特点 高性能、容易使用的数据结构、容易使用的数据分析工具 安装 下载…

    Python 2023年8月20日
    045
  • #define 的神奇操作

    define 的神奇操作 一、宏定义中的 #、## 符号的神奇用法 1.1 # 的用法 1.1.1 作用 #表示字符串化操作符(stringification),其作用是将 宏定义…

    Python 2023年10月13日
    042
  • 你真的了解 RSA 加密算法吗?

    作者:小傅哥博客:https://bugstack.cn源码:https://github.com/fuzhengwei/java-algorithms 沉淀、分享、成长,让自己和…

    Python 2023年10月13日
    064
  • 【Pandas】DataFrame只复制其中的某一行为多次

    import pandas as pd df = pd.DataFrame(data={ ‘id’: [‘1’, ‘2’, ‘3’], ‘col1’ : [ 5, 6, 7], ‘…

    Python 2023年8月8日
    050
  • python生成模拟微信气泡图片

    0. 起因 众所周知,借刀杀人最为致命,聊天也是如此。 最近我的群聊画风逐渐变味: 当然,这种图片的生产成本很低,只需在设置页关闭昵称显示,把聊天背景重置为灰色,然后利用截图工具截…

    Python 2023年8月2日
    044
  • Python基础篇–【2022全新总结】

    上一篇 9.对象和值 下面的a和b有两种可能的状态一种可能是,a 和b 引用着不同的对象,它们的值相同。另一种情况下,它们指向同一个对象。 a = ‘stan’ b = ‘stan…

    Python 2023年8月24日
    059
  • 基于python地铁客流量分析平台

    http://ym6se2.natappfree.cc import requestsimport pandas as pdimport timeimport csv def ds…

    Python 2023年8月17日
    064
  • “有土呗”心机得把视频分成了两部分,还不是我被用python下载了完整版~

    Original: https://www.cnblogs.com/jnjnj/p/16254993.htmlAuthor: python茜Title: “有土呗”心机得把视频分成…

    Python 2023年5月24日
    082
  • Kafka开启SASL认证 【windowe详细版】

    一、JAAS配置 Zookeeper配置JAAS zookeeper环境下新增一个配置文件,如zk_server_jass.conf,内容如下: Server { org.apac…

    Python 2023年10月21日
    056
  • Thrift搭建分布式微服务(四)

    第一篇 《连接配置》 第二篇 《连接池》 第三篇 《标准通信》 第四篇 快速暴露接口 之前的文章,我们介绍了如何使用连接池管理Thrift节点,以及使用Thrift搭建微服务用到的…

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