• 第四周作业


    在Lifegame文件下:

    在主函数main.py下,利用game_map.py初始化地图功能、game_timerp.py的计时器功能、life_time的判断生死功能最终实现细胞随机根据生存定律计算下一代每个细胞的状态的不断进行。

    一、game_map.py定义一个关于GameMap的类,其代码结构为:①__init__(self, rows, cols)函数是初始化地图;②rows(self)与cols(self) 函数对地图行列数值的获取定义行为;③reset(self, possibility=0.5)、get(self, row, col)与set(self, row, col, val) 函数对地图的坐标进行重新获取;④get_neighbor_count()、get_neighbor_count_map(self)是对地图上一点周围坐标获取与判断生死;⑤set_map()与print_map新地图的获取与打印。

    二、game_timer.py定义设置地图的计时器,代码结构为:①__init__(self, trigger, interval=1.0)初始化计时器属性参数;②start(self)与stop(self)设定计时器开始及结束。

    三、life_game.py实现对地图的不断更新,代码结构为:①__init__(self, map_rows=10, map_cols=10, life_init_possibility=0.5)设置地图初始值;②print_map(self)、game_cycle(self)地图的打印与更新。

    四、main.py判断是否满足生命游戏运行初始条件,若符合则通过调用以上模块运行生命游戏。

    代码质量可从以下几方面评价:

    ①    编码规范:是否遵守了编码规范,遵循了最佳实践。

    ②    潜在的BUG:可能在最坏情况下出现问题的代码,以及存在安全漏洞的代码。

    ③    文档和注释:过少(缺少必要信息)、过多(没有信息量)、过时的文档或注释。

    ④    复杂度:代码结构太复杂(如圈复杂度高),难以理解、测试和维护。

    ⑤    测试覆盖率:编写单元测试,特别是针对复杂代码的测试覆盖是否足够。

    例如生命游戏代码覆盖率测试,如下图所示:

     

  • 相关阅读:
    组件GIS 0 前言
    GIS数据结构与算法
    GIS数据结构与算法 0 前言
    Git推送本地工程到远程仓库
    为知笔记+Typora+PicGo发表博客园博客
    时间记录"时间块"的使用技巧
    WebGIS学习路线
    [c++指针教程]用简单链表练习指针
    动态规划题目整理
    图论刷题整理
  • 原文地址:https://www.cnblogs.com/yangfeiyue/p/12484339.html
Copyright © 2020-2023  润新知