用python写一个有AI的斗地主游戏(一)——开始前的准备

源码请看我的Github页面。
这是我一个课程的学术项目,请不要抄袭,引用时请注明出处。
本专栏系列旨在帮助小白从零开始开发一个项目,同时分享自己写代码时的感想。
请大佬们为我的拙见留情,有不规范之处烦请多多包涵!

文章目录

  • 开场白
  • 使用的库
  • 项目开发流程
  • 结束语

开场白

不知道有多少喜欢计算机相关学科的人,一开始喜欢上这门学科是因为自己喜欢玩游戏,。博主就是这样的。对于博主来说,自己写一款游戏是一个很酷的事情。正好有机会,便花了一个月写了个简单的斗地主游戏,满足了一下我童年的梦想。先看效果图:

游戏界面(比较丑)。这里可以选择牌并打出,看到其它玩家出牌,查看地主牌,等等

想要进一步体验游戏的小伙伴请转到我的Github页面下载源码并运行main.py。注意:我的Github上的项目有联机功能,因为代码难度对新手不友好和一些其它特殊原因无法在这里讲解细节,感兴趣的同学可以自己看代码琢磨下。单人模式的话选择Single Player进行体验。多人模式可用博主和博主朋友们的账号登录,感兴趣请私信博主。接下来就是对项目开发流程的心得笔记了!

使用的库

主要用到的库有tkinterpygame。唯一算第三方库的就是pygame,运行项目前可以用pip install pygame进行下载安装。

项目开发流程

博主也算个萌新,第一次自己系统性地开发有一定规模(代码量大于1000行)的项目,以下步骤是自己琢磨来的。有不规范之处请多多指教!

  1. 梳理思路。用更专业的术语叫写“立项申请报告”或者“项目建议书”。这个步骤主要是帮助你整个项目规划导航的。注意,这部分自己开发的时候是可以写完后随时更新的,所以没必要过于纠结,但也不能一点都不写。比如,在开始项目开发前这里你可以写以下几点:
    a. 项目综述。这部分包含了你的项目名称,简要功能概述,简要原理概述等等。
    b. 市场分析。这部分包含了你对市场上现存其它项目的分析,以理清自己项目的特别之处。自己写项目也是要做的,毕竟写一个和别人一模一样的项目可能不是很有成就感。比如,我这个项目独特的地方就是我(还)没见过有人用python写斗地主。
    c. 代码结构。这部分包含了你的项目里将包含哪些代码结构(比如你需要自己写一些类,放点图片素材,不同的文件存不同的GUI代码等等)。这部分可以用文件树的形式呈现。
    d. 算法。这部分你将介绍你项目里主要的功能并且如何用算法实现他们。比如我的这个项目里就写了多人游玩功能如何用socket库和我自己写的游戏引擎类实现,单人模式下的AI将有其它某算法实现等等。
    e. 时间表。这里包含了你对项目开发的时间安排。比如,我要在某月某日之前开发完功能1,在某月某日之前进行内部测试等等。
    f. 版本控制。这部分可能会被忽视却是最必不可少的。尤其是在开发的时候,经常会写出很多顽固的bug。这时候就需要和之前的版本进行对比。这里推荐用Github进行版本控制。
    g. 还有其它你能想到的部分,如果对你的开发有帮助,那么可以进行添加。
  2. 写代码,修代码。按照代码结构和算法构思进行项目开发。有问题要随时记录下来并及时解决,不要一拖再拖。写不下去的时候想想你在项目运行的时候会多么开心。
  3. 代码测试。在项目开发完成后,一般的惯例是先进行alpha测试(即内部测试,由开发者或者内部人员使用项目成果,确保没有额外的漏洞),再进行beta测试(即外部测试,由开发团队之外的人进行测试,同时收集他们的使用反馈并对项目进行提升)。

结束语

该专栏的第一篇博客就到这里了。该博客是对之后几篇进行的综述,对于代码细节并没有进行深入探究。之后几篇博客会对代码和逻辑进行深入探究,感兴趣的小伙伴请继续阅读下去!有各种问题和见解也欢迎评论或者私信!

你可能感兴趣的:(python,游戏,pygame,个人开发)