情人节——与她对弈五子棋(Python实现)

博主分享了一篇关于在情人节为女朋友制作的特殊礼物——使用Python实现五子棋游戏的代码。通过创建游戏开始界面和人机对战功能,展现了编程的浪漫。文章详细展示了如何利用Qt库构建图形用户界面,并提供了相关资源文件的配置。
摘要由CSDN通过智能技术生成

目录

1 珍惜今夕

2 我的天使

3 结果展现——与卿对弈一局五子棋

4 Python实现


1 珍惜今夕

情人节到了,愿岁月可回首,情深不负共白头。琢磨着给女朋友送一份礼物,送什么好呢,和她下象棋我让得太明显了。所以还是送她一副五子棋。用Python实现。

2 我的天使

最好的那个天使,我最熟悉的字是你的名字,我们会有大大的房子,你会送我一首小诗。”为你亲手搭建一所房子,大概是最美的誓言了。把所有的细节都照顾到,任谁收到这样的一份礼物,都会感动的吧。送她一所梦的房子,陪伴,是最长情的告白,承诺,不是说说而已。

3 结果展现——与卿对弈一局五子棋

胜利! 

4 Python实现


#===========导入相关包===================
import sys
import cfg
from modules import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *


#=============游戏开始界面===============
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()


#=========运行============
if __name__ == '__main__':
    app = QApplication(sys.argv)
    handle = gameStartUI()
    font = QFont()
    font.setPointSize(12)
    handle.setFont(font)
    handle.show()
    sys.exit(app.exec_())

 cfg库:

'''config file'''
import os


# 图标路径
ICON_FILEPATH = os.path.join(os.getcwd(), 'resources/images/icon/icon.ico')
# 背景图片路径
BACKGROUND_IMAGEPATHS = {
    'bg_game': os.path.join(os.getcwd(), 'resources/images/bg/bg_game.png'),
    'bg_start': os.path.join(os.getcwd(), 'resources/images/bg/bg_start.png')
}
# 按钮图片路径
BUTTON_IMAGEPATHS = {
    'online': [
        os.path.join(os.getcwd(), 'resources/images/buttons/online_0.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/online_1.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/online_2.png')
    ],
    'ai': [
        os.path.join(os.getcwd(), 'resources/images/buttons/ai_0.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/ai_1.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/ai_2.png')
    ],
    'home': [
        os.path.join(os.getcwd(), 'resources/images/buttons/home_0.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/home_1.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/home_2.png')
    ],
    'givein': [
        os.path.join(os.getcwd(), 'resources/images/buttons/givein_0.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/givein_1.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/givein_2.png')
    ],
    'regret': [
        os.path.join(os.getcwd(), 'resources/images/buttons/regret_0.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/regret_1.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/regret_2.png')
    ],
    'startgame': [
        os.path.join(os.getcwd(), 'resources/images/buttons/startgame_0.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/startgame_1.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/startgame_2.png')
    ],
    'urge': [
        os.path.join(os.getcwd(), 'resources/images/buttons/urge_0.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/urge_1.png'),
        os.path.join(os.getcwd(), 'resources/images/buttons/urge_2.png')
    ]
}
# 显示胜利图片路径
WIN_IMAGEPATHS = {
    'black': os.path.join(os.getcwd(), 'resources/images/win/black_win.png'),
    'white': os.path.join(os.getcwd(), 'resources/images/win/white_win.png'),
    'draw': os.path.join(os.getcwd(), 'resources/images/win/draw.png')
}
# 棋子图片路径
CHESSMAN_IMAGEPATHS = {
    'black': os.path.join(os.getcwd(), 'resources/images/chessman/black.png'),
    'white': os.path.join(os.getcwd(), 'resources/images/chessman/white.png'),
    'sign': os.path.join(os.getcwd(), 'resources/images/chessman/sign.png'),
}
# 音效
SOUNDS_PATHS = {
    'drop': os.path.join(os.getcwd(), 'resources/audios/drop.wav'),
    'urge': os.path.join(os.getcwd(), 'resources/audios/urge.wav')
}
# 端口号(联机对战时使用)
PORT = 3333


 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值