前言
写程序已经丢掉很长一段时间了,最近觉得完全把技术丢掉可能是个死路,还是应该捡起来,所以打算借优快云来记录学习过程, 由于以前没事的时候断断续续学习过python和用flask框架写过点web,所以第一步想捡起python,但是,单纯学习python有点枯燥,正好看到pygame,感觉还挺简单,所以想先写个小游戏练练手。
准备
python基础相关准备:
- python基础知识准备,廖雪峰的python基础知识简单好学,熟悉python基本的语法, 链接地址
- pygame的基础知识,参考目光博客的“用Python和Pygame写游戏-从入门到精通”, 链接地址
- 安装python 3.8.0 在python官网下载,不多说。
- 安装pygame,命令:pip install pygame
- 如安装较慢,可以参考如下命令,更改pip源为国内镜像站点:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
计划
准备完成五子棋单机人机游戏,目前已完成界面以及判定输赢等功能,还未加入电脑AI,以后有时间再加(不知是否会坑),目前实现主要功能如下:
- 五子棋界面的绘制,鼠标左键点击落子(黑子先下,黑白子交替顺序)。
- 判定黑子或白子五子连珠。
- 一方胜利后弹出提示,结束游戏。
游戏界面是下面这个样子:

开始
设计思路
整个游戏的核心是将棋盘分成两个层面,第一个层面是物理层面上的,代表在物理像素的位置,主要用于绘图等操作,另外一个层面是将棋盘抽象成15*15的一个矩阵,黑子和白子是落在这个矩阵上的某个位置,具体位置用坐标(i,j)(0<=i,j<15)来表示,主要用于判断输赢和落子等。
- 棋盘的绘制,网上有棋盘和黑白子的图片资源可以下载使用,我下载后由于棋盘图片格子线像素位置不太精确,所以自己用ps做了一张544544的木质背景图,然后用程序来绘制棋盘线(如果PS更熟悉点的话,建议棋盘格线之类就画在棋盘背景图上),棋盘格线上下左右空20像素,棋盘格子大小36像素,网上下载的棋子大小是3232像素的。
- 输赢的判断,由于未出输赢的时候肯定没有五子连成线的,所以只需要判断最后落子位置的横、竖、斜、反斜四个方向上有没有五子连成线即可。

本文介绍了如何使用pygame库创建一个简单的五子棋游戏。作者首先回顾了python基础知识和pygame的学习资源,然后分享了游戏的准备阶段,包括安装python和pygame。接着详细讲述了设计思路,如棋盘的两个层面——物理层面和抽象层面,以及棋盘和棋子的绘制。此外,还阐述了输赢的判断方法。最后,展示了部分核心代码,包括main函数和Renju类的实现,该类负责落子和判断游戏状态。
最低0.47元/天 解锁文章
141





