摘要
这是我基于pygame库做个一个五子棋小游戏,通过上网学习pygame库内的具体函数,以及一些前辈的指导。在这里我们需要绘画棋盘,棋子。棋盘直接调用pygame库中的draw.lines()函数绘画出,再绘画出部分矩阵,充做按钮的角色。棋子我是自己画的,直接调用图片,为它们分别赋予黑棋,白棋的角色,后期好用来判断哪颗是白棋,哪颗黑棋。而棋盘上的各个点都用二维数组表示,棋子的落点位置已经由函数确定了,所以只会落在线与线之间的交界处。而旁边会有处空白的地方提示现在是那颗棋子落下,按钮分为悔棋Regret、重新开始ReStart、退出Quit。当然为了护眼,棋盘的颜色还是很养眼的。

1.引言
1.1论文背景,意义
早在公元595年古人就用瓷来烧制五子棋盘了。所以为了弘扬中国5000年文化,我的期末大作业选择了做五子棋小游戏。我选择的是21x21的棋盘,在这里不得不介绍一下五子棋的历史。首先是棋盘,棋盘由横纵各15条等距离,垂直交叉的平行线构成,在棋盘上,横纵线交叉形成了225个交叉点为对弈时的落子点。邻近两个交叉点的距离要略大于棋子的直径,纵线距离约为2.5厘米,横线约为2.4厘米。
在棋盘上有5个比较特殊的交叉点,用直径约为0.5厘米的,和棋盘横纵线颜色相同的实心小圆点标示出来,这5个点称为“星”。中间的星也称天元,位置在H8,表示棋盘的正中心。
平时下棋,棋子数量不限,以下棋时够用为准。正规的标准数一般定为黑子113枚,白子112枚。
我觉得我选择做五子棋的小游戏不单单只是为了弘扬中国文化,还有就是完成小时候希望做一个有趣的游戏的目标。小时候经常和同学们在纸上玩着五子棋,但使用电脑的时候就会在想该如何做出一个五子棋的小游戏呢。恰好老师推荐了pygame这个库,里面的功能都很好地实现了制作五子棋小游戏的规则。
1.2 实现功能
1)悔棋Regret按钮
2)重新开始ReStart按钮
3)退出Quit按钮
4)点击按钮触发事件
5)点击落子点落下棋子
6)提示用户轮到谁下棋子

2.系统结构
游戏流程图:

框架图:

用例图:

相关模块:

首先调用pygame库里的函数定义一个窗口,并给窗口赋予一个五子棋的名字。

再调用写好的棋盘函数,按钮函数。
棋盘函数是调用了pygame库里的draw_lines()函数。而按钮函数的则是用draw_rect()函数画出方块,再另外在主函数定义点击哪个区域方框会触发什么事件。解决了pygame库没有按钮的问题。

而右上角则留一块区域提示用户现在谁下棋。

而这里为了配合游戏更带点古代的感觉,专门上网站下载了古风字体。
是这种字体。

3.实现代码
(1)首先导入所需的库函数

(2)首先就要确定一个多大的窗体,方便我们确定棋盘要有多大,还要放置三个方框选项按钮,以及一个提示板,所以在这里我们先可以确定在主函数创建一个长1200,宽806的窗体。调用pygame中的设置窗体函数。

(3)然后就是要做准备工作,比如线条的粗细、颜色。窗体背景颜色,按钮方框颜色,以及棋盘所需定点位的颜色。

(4)然后开始绘制我们需要的棋盘,绘制棋盘函数为chessboard(screen)
在这里先为窗体填充背景颜色

使用for循环不停地画着棋盘中的细线


(5)再画边线的粗线才会有棋盘的感觉,然后就是五个定位点,以及绘制按钮的方框大小,方框外边的粗细。再为按钮填充内容,并赋予古风字体的属性。
(6)再接下来就是绘制棋子函数chess(),分黑棋白棋。color属性=1时为黑色,为2时是白色。再使用pygame库函数加载黑棋白棋的图片,从而让用户看到棋子落在了棋盘上。并且落子的位置是固定的,只会落在线的交接处。

(7)再绘制带棋盘的棋子,直接调用先前棋盘、棋子的函数,创建二维数组,因为先前调用了numpy这个函数里的map函数,记录每一个落点棋子的属性。

(8)设置棋盘的列表,以及用于重新开始的清空按钮。

(9)设置右上角的提示器,每一次落下棋子,都会改变右上角的提示,提示用户当前下棋的角色。

(10)再然后就是判断输赢的函数,判断落下的棋子是否有五个相同颜色的棋子连成一条线

(11)然后可以开始在主函数调用我们准备好的东西了。

这里的意思就是,running就是判断现在是否是胜利,胜利了棋子不可以再落下了。
clear()就是就是把桌面的棋子全部清空。然后map2就是记录上一次的棋子操作情况,用于悔棋的按钮。

实现窗口、棋盘、提示器、按钮、棋子。

这里则是判断是否游戏结束,结束了就不能落子了。

以上就是鼠标监听事件。
4.实验结果:

python语言编写五子棋小游戏相关推荐

  1. c语言编写五子棋小游戏ppt,C语言实现简单五子棋小游戏

    五子棋简单功能实现,供大家参考,具体内容如下 游戏功能演示 代码如下: #include #include #include #include // 棋盘 char board[15][15]; // ...

  2. C语言编写五子棋小游戏

    7月14日学习记录 运行结果 代码展示:main.c //include #include <stdio.h> #include<conio.h>//#define #defi ...

  3. c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...

    c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...

  4. linux 剪刀石头布c语言,利用C语言编写“剪刀石头布”小游戏

    前言 大家好~ 我是一名C语言初学者,学了C语言基础后,我制作了一个小游戏:剪刀石头布. 希望大家能对我的思路和代码提出小Tips(eg.更简便的方法与程序) 我也会虚心接受大家的建议~ 一.游戏原理 ...

  5. Java编写五子棋小游戏

    Java编写五子棋小游戏 代码如下: package org.liky.game.frame; import java.awt.Color; import java.awt.Font; import ...

  6. c语言五子棋小游戏vc,C语言实现五子棋小游戏

    C语言实现五子棋小游戏 # include # include # include # include//插入输入输出头文件 # include//字符数组的函数定义的头文件 # include//s ...

  7. c语言实现五子棋游戏,C语言实现五子棋小游戏

    C语言实现五子棋小游戏 # include # include # include # include//插入输入输出头文件 # include//字符数组的函数定义的头文件 # include//s ...

  8. 用C语言编写一个小游戏

    这是一个比较通用的方法来编写一个小游戏用 C 语言: 首先,确定游戏的目标和规则.这可能包括游戏的玩法.胜负条件.游戏元素和游戏流程等. 其次,确定游戏的用户界面.这可能包括游戏的菜单.按钮.文本框. ...

  9. C语言编写2048小游戏

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104992424 2 ...

最新文章

  1. 福利直播 | 12年阿里巴巴大数据之路亲历者详解数据中台
  2. 初识Maven POM
  3. 标识为普通SQL语法
  4. eNet 软件发布要求多多
  5. SVM支持向量机:分类、回归和核函数
  6. android 短信位置,浅析Android手机卫士之手机实现短信指令获取位置
  7. Transact-SQL管理与开发实例精粹
  8. eclips 创建 maven项目
  9. iphone开蓝牙wifi上网慢_iPhone手机网速慢解决方法
  10. 回顾一年的工作历程_回顾一年来的工作
  11. 带隔离功能的 高速CAN总线收发器 SIT1050ISODUB8 国产
  12. 静态网站以及动态网站
  13. 在iPhone上使用3D Touch
  14. JavaScript 指定小数位数 toFixed() 方法
  15. 8天3城50店,带你去广东吃遍虾饺、烧腊、猪脚饭、潮汕牛肉火锅……
  16. 关于C++中的一些特殊函数inline,virtual等等
  17. 菊花台-中国朝代歌[摘]
  18. 2.2 拓扑空间与连续映射
  19. mac最强项目管理工具OmniPlan极速入门
  20. Java缓存资料收集

热门文章

  1. 数据库系统概念实践习题部分答案(未必翻译完全)
  2. 记一次CVPR写作投稿经验总结
  3. SAMLight二次开发,打标软件定制,激光软件定制,视觉定位
  4. 商丘网络推广总结分享SEO优化中关键词布局细节!
  5. 此设备上的蓝牙无法使用.请尝试使用外部适配器为这台计算机添加蓝牙功能
  6. Windows PC、 Linux、 Android、 iOS多平台支持H5无插件播放RTSP摄像机解决方案
  7. QPSK基础与多径信道Matlab仿真
  8. 计算机组装部件推荐,电脑组装的配件有哪些
  9. ROS话题queue_size的含义与设置技巧
  10. s7填表指令att_一些PLC指令的用法,一些PLC编程的经验