zoukankan      html  css  js  c++  java
  • 结对编程阶段二

    一、实验目标
      1)体验敏捷开发中的两人合作。

      2)进一步提高个人编程技巧与实践。

    二 、实验内容
      1)根据以下问题描述,练习结对编程(pair programming)实践;

      2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。

      3)要求在结对编程工作期间,两人的角色至少切换 4 次;

      4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。

    三、博文内容

    1、代码规范

    模块

    • 模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况)

    类名

    • 类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头

    函数

    • 函数名一律小写,如有多个单词,用下划线隔开

    变量名

    • 变量名尽量小写, 如有多个单词,用下划线隔开

    常量

    • 常量使用以下划线分隔的大写命名


    2、程序的总体设计(附图说明模块之间的关系)

    我们运用了PYGAME这个库来建立这个程序,程序主要由页面,游戏演算,以及结果显示三个模块组成。

    这三个模块再在程序中相互作用的情况如下


    3、程序结对编程过程(附图)及功能实现情况(附代码和图)

    部分讨论过程:

    程序:

    import pygame
    import sys

    BLACK, WHITE, GRAY = (0, 0, 0), (255, 255, 255), (200, 200, 200)
    pygame.init()
    pygame.display.set_caption("生命游戏,按空格演化")
    screen = pygame.display.set_mode((500, 500))
    icon = pygame.image.load("1234.png")
    pygame.display.set_icon(icon)


    def init_screen():
    screen.fill(WHITE)
    for i in range(50):
    pygame.draw.line(screen, GRAY, (i*10, 0), (i*10, 500))
    pygame.draw.line(screen, GRAY, (0, i*10), (500, i*10))
    pygame.display.update()
    def kin_count(x,y):
    count=0
    kins=[(x-10,y-10),(x-10,y),(x-10,y+10),(x,y-10),(x,y+10),(x+10,y-10),(x+10,y),(x+10,y+10)]
    kins=[(x,y) for x,y in kins if 0<x<500 and 0<y<500]
    for kin in kins:
    if screen.get_at(kin)==BLACK:
    count=count+1
    return count

    init_screen()
    cells =[]
    turn=1
    while True:
    for event in pygame.event.get():
    if event.type==pygame.QUIT:
    sys.exit()
    if event.type==pygame.MOUSEBUTTONUP:
    if screen.get_at(event.pos)==WHITE:
    x,y=event.pos
    cellx,celly=x-x%10,y-y%10
    cell=pygame.Rect(cellx,celly,10,10)
    pygame.draw.rect(screen,BLACK,cell)
    cells.append((cellx,celly))
    pygame.display.update()
    if event.type==pygame.KEYDOWN:
    if event.key==pygame.K_SPACE:
    clock=pygame.time.Clock()
    clock.tick(10)
    while len(cells)>0:
    pygame.display.set_caption("生命游戏第%s轮" % turn)
    turn=turn+1
    for x in range(5,500,10):
    for y in range(5,500,10):
    if screen.get_at((x,y))==BLACK:
    if kin_count(x,y) not in [2,3]:
    cells.remove((x-5,y-5))
    else:
    if kin_count(x,y)==3:
    cells.append((x-5,y-5))
    init_screen()
    for cellx,celly in cells:
    cell=pygame.Rect(cellx,celly,10,10)
    pygame.draw.rect(screen, BLACK, cell)
    pygame.display.update()
    break

    运行结果:

    这里仅以部分来表示:


    4、项目github地址(附图)

    https://github.com/400mchillbo1/pokemonmaster11


    5、实验总结

    相对于自己编程,结对编程效率与对程序的多方了解提升了很多,通过与队友协作编程,很多在编程过程中遇到的问题也变得很轻松就可以解决。编程中,拥有一个拍档可以多一个视角去看待问题,所谓三个臭皮匠顶个诸葛亮。结对编程可以把几个人的优点融合到一起,把个人的缺点,通过集体来发现并改正。总而言之,本次实验是一次重要的经历,让人收获颇丰。

  • 相关阅读:
    基于redission的分布式锁
    kafka在Windows环境下启动
    Synchronized优化总结
    mysql死锁总结
    索引是建立得越多越好吗?
    show processlist 详解
    RocketMQ高可用机制同步刷盘、异步刷盘和同步复制、异步复制
    Redlock红锁总结
    C#2.0泛型
    《解剖PetShop》系列之四:PetShop之ASP.NET缓存 (转)
  • 原文地址:https://www.cnblogs.com/KSMS123/p/12638671.html
Copyright © 2011-2022 走看看