软件构造已经开课一个月了,逐渐习惯了英文得ppt,Lab2的P1实验要求虽然还是英文的,但是阅读起来也比Lab1轻松了一些。
Lab2还要求为每个设计和实现的 ADT 撰写 mutability/immutability 说明、AF、RI、safety from rep exposure。给出各 ADT 中每个方法的spec。为每个 ADT 编写测试用例,并写明 testing strategy。
P1 Poetic Walks
P1首先是将给出的Graph接口完成ConcreteEdgesGraph和ConcreteVerticesGraph两个实现,再根据完成的Graph完成写诗。初次了解泛型编程,对老师课堂讲解的知识有了更加深刻的理解。
P2 Re-implement the Social Network in Lab1
就是根据P1实现的Graph,重新完成Lab1中的Social Network,我采用的是ConcreteVerticesGraph的实现。
P3 Playing Chess
P3要求自己设计ADT,要求游戏包含围棋和国际象棋,玩家可以移动棋子、吃子、提子和再棋盘上放置棋子,查询某个位置的占用情况,计算两个玩家分别在棋盘上的棋子总数,游戏结束后可以查看自己走的步骤。