硬币游戏——代码分析与改进

时间:2021-10-13 16:53:58

一、下载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