五子棋你都下不赢别人?那还不快用我这个去练练手。制作非常简单。

本文介绍了如何使用Python的Pygame模块制作一个简单的五子棋小游戏。通过代码演示,展示了游戏界面的绘制和人机对战功能。文章还分享了一个轻松战胜机器人的小趣事,鼓励读者亲自尝试并体验游戏的乐趣。
摘要由CSDN通过智能技术生成

 前言

 中国人讲“琴棋书画”,可见下棋这种需要智慧的游戏,在古人日常生活中是极为重要的。

而说到棋,我们所熟知的有围棋、象棋、军旗、跳棋等等,当然,还有五子棋。

今天的重点也就在这五子棋之上🥂,我们来造一个Python版的五子棋解解馋吧!

小科普:

在古代,五子棋棋具虽然与围棋相类同,但是下法却是完全不同的。

五子棋是“棋类游戏,棋具与围棋相同,两人对局,轮流下子,先将五子连成一行者为胜”,有人将

五子棋称为“连五子”、“连珠”的,可能是源于《汉书》中的“日月如合璧,五星如连珠”。

相传,宋代有一个叫赵师秀的人与叫司马光的人相约下五子棋,司马光有急事未能赴约,使赵师秀

坐立不安;由此,赵师秀留下了一首名诗《有约》:

“黄梅时节家家雨,青草池塘处处蛙。有约不来过夜半,闲敲棋子落灯花。”

由此可见,五子棋在我国古代社会中的影响广泛,人们对它也是十分喜好的。

话有点儿多,那我们开始吧——

Show Time

事情是这样子的:

大家好,小编今天水群的时候,刷到个极其离谱的视频🤳

卧槽,这黑棋子咋还裂变上了😲

五子棋还能这么下的吗?

要是我学会了这招

秒个小朋友可大有希望呀!

————————————

视频这一坨裂变的黑棋怼过去

别说五子,十连珠都有了吧

算了,五子棋就五子棋吧

小编先开一把,爽就完事了✊!

1)背景环境

本文是基于Pygame游戏模块写的界面五子棋小游戏。

安装Pygame:

pip install pygame
C:\Users> pip install pygame                
Collecting pygame                   
  Downloading https://files.pythonhosted.org/packages/3e/f5/feabd88a2856ec86166a897b62bfad828bfe7a94a27cbd7ebf07fd
70399/pygame-1.9.4-cp37-cp37m-win_amd64.whl (4.2MB)
    100% |██████████████████████████| 4.2MB 6.6MB/s
Installing collected packages: pygam
Successfully installed pygame-1.9.4 

Successfully即是已经安装成功。

Pygame常用模块:

模块名                      功能
pygame.cdrom         访问光驱
pygame.cursors       加载光标
pygame.display        访问显示设备
pygame.draw            绘制形状、线和点
pygame.event          管理事件
pygame.font             使用字体
pygame.image         加载和存储图片
pygame.joystick       使用游戏手柄或者类似的东西
pygame.key             读取键盘按键
pygame.mixer           声音
pygame.mouse         鼠标
pygame.movie          播放视频
pygame.music          播放音频
pygame.overlay       访问高级视频叠加
pygame.rect             管理矩形区域
pygame.scrap          本地剪贴板访问
pygame.sndarray     操作声音数据
pygame.sprite          操作移动图像
pygame.surface       管理图像和屏幕
pygame.surfarray    管理点阵图像数据
pygame.time            管理时间和帧信息
pygame.transform   缩放和移动图像

背景素材:(仅图片)

 2)代码演示

 主程序:

import pygame
from drawing import Display
from status import State
from setup import *


def main():
    """ 主程序 """
    state = State()
    display = Display(state.screen)
    display.drawChessBoard()
    display.drawRightSide()
    while True:
        checkEvents(state, display)
        state.clock.tick(FPS)
        pygame.display.update()


# noinspection PyPep8Naming
def checkEvents(state, display):
    """ 检查事件程序 """
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_F1:
                state.reStart()
                display.drawChessBoard()
                display.drawRightSide()
        if event.type == pygame.MOUSEBUTTONDOWN:
            if event.button == 1 and state.startGame():
                human_piece = state.humanPiece()
                if human_piece:
                    display.drawMain(human_piece[0], human_piece[1], human_piece[2], human_piece[3], human_piece[4])
                    if not human_piece[3]:
                        return
       
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值