大富翁游戏设计与实现,该仓库旨在对我们的大一年度项目计划进行整理,使用更多的模块划分和OOD
的相关知识
- 初征
- 丁文琪
- 董成相
- 付宽
OldProject
:该文件夹是整理前的工程文件,对外部的source
和dog.ico
文件有依赖Player
:该包是游戏角色类的包,包含Player
超类,PC
和NPC
两个子类source
:该文件夹是游戏用到的图片素材,音乐素材,字体素材地图制作
:该文件夹包含一些制作游戏地图的过渡文件和一些游戏素材的过渡文件以及某些杂文件_config.yml
:该文件是Github Pages
自动生成的主题记录文件dog.ico
:该文件是程序的图标Enums.py
:该文件是程序使用到的所有的枚举类GameManager.py
:该文件是与Pygame
进行交互的主要承担者,也负责素材的载入工作LandManage
:该文件则包含了地块管理的两个类:OneLand
和Landmasses
,二者分别是单个地块和地图上所有地块的管理类Main.py
:该文件则是游戏的主程序体所在的文件MusicPlay
:该文件负责管理音乐的播放与暂停Pygame中文文档
:如其名,点此阅读官方文档ShootDice.py
:该文件则是掷骰子时的数据支撑类“校长杯”科技竞赛论文
:帮助理解我们的项目,里面进行了详细的介绍,但是与当前的版本略有出入,不过影响不大
Pyinstaller
:家喻户晓Nuitka
:小众打包库,据说打包后可以获得C++
级的运行效率,但是相比Pyinstaller
打包较慢,点此前往阅读官方文档- 使用的
MinGW
版本:x86_64-7.3.0-release-posix-seh-rt_v5-rev0,点此前往下载
- 使用的
-
再次遇到了包引入问题,还是跟
python
大作业一样的问题# 1. 该方式只引入了文件,没有引入文件中的类 from Player import Player # 2. 该方式直接引入了相应的类 from Player.Player import Player
-
Python
私有方法被继承不能重写,或者说重写是没有作用的,又或者是我的用法不对,尚待测试或进一步了解。
- 角色类的
incidents
方法和incidents_message
方法应当可以抽象为父类的方法,冗余代码较多 - 地块被买满的奖励存在问题,但是这个是历史遗留问题,之前似乎就没处理好
- 提示信息存在问题
- 地块被买满后的奖励代码存在问题,有可以优化的地方
GameManager
类集成了过多的东西,不符合单一职责原则,考虑优化,但是部头太大,暂且寝之- 不过这样做也有它的优点吧,
GameManager
实际上几乎承担了全部需要与Pygame
交互的任务,从某种程度上剥离了项目对Pygame
的依赖(引擎的侵入性
,似乎有这么个说法) - 诶,写完优点发现,可以给每一个实体类写一个与
Pygame
交互的类,但是有亿点麻烦
- 不过这样做也有它的优点吧,
- 代码缺少注释,阅读起来较为麻烦
- 当
PC
与NPC
到达了同一个位置时,并且其中一方购买了房屋之后会有金币被扣除的提示
,但是实际上并没有扣除对方的金币余额
本项目仅作学习交流用,任何直接挪用该项目的行为都是对我们劳动成果的不尊重,但是热烈欢迎借鉴我们的代码。