一、下载python并配置环境变量,在cmd中打开成功
二、Fork老师的仓库,并克隆到本地
三、安装easy_install pip,并执行pip,下载软件包numpy和matplotlib
四、运行Python 程序截图(此时Threshold =2.5,Max_TakeCoin=5)
五、游戏优化思路及运行截图
1.根据钱箱使用规则,发现在最初500枚硬币的前提下,变化的量有取钱和存钱的人数比例(Threshold:10- Threshold)以及取的硬币数(Max_TakeCoin)和存的硬币数(Max_DonateCoin),这些都会影响使用情况曲线;
2.因取钱倾向多取,放钱倾向少放,所以为慈善长久,放钱的人数应该远远多于取钱的人数,而随着放钱人数的增加,Max_DonateCoin若增加,则对曲线的影响会更大(基数大),以下是我在老师原有例子的基础上稍稍增加了Max_DonateCoin的值的曲线:(此时Max_DonateCoin=2)
3.发现曲线呈上升趋势,不太契合实际,故接下来的讨论,仅围绕Threshold和Max_TakeCoin值的改变;
4.考虑到Max_TakeCoin倾向取大,所以我暂且先变化Threshold值取3,其余不变,图像:
5.上图不满足要求,所以不变Threshold值还是3,调整Max_TakeCoin值,分别为4、3,图像分别如下:
Threshold=3,Max_TakeCoin=4
Threshold=3,Max_TakeCoin=3
6.发现 Threshold=3,Max_TakeCoin=3满足慈善长久,但不太契合实际,继续调整Threshold值,分别取3.5、4,图像如下:
Threshold=3.5,Max_TakeCoin=3
Threshold=4,Max_TakeCoin=3
7.发现Threshold=4,Max_TakeCoin=3时不满足慈善长久,故取Threshold=3.5,Max_TakeCoin=3。
六、优化后的代码及游戏规则和改进部分:
1.游戏规则:钱箱起初有500枚硬币,经过的每100人中,则必须有65人存钱,35人取钱,取钱者最多取3枚,存钱者最多1枚;
2.慈善长久理由:因存钱人数基数大,有初始金额,且存取人数按一定比例进行,所以可持续较长时间;(具体步骤见上)
3.改进部分:除数据改动外,在以下方面进行了改动:1.中间部分代码如flag距前是四个空格,第一个if…else..后的子句距前空8个空格;2.块前注释空一行;3.行末注释和代码之间至少2个空格。
7.将优化后的代码commit并push到远端仓库:
远端仓库的链接是:https://gitee.com/TianQingAnHao/Game