第一次团队作业
Github项目地址:https://github.com/3116005131/3116005131.git
团队成员:3116005131段浩彬
3116005130陈作麒
(队长)3116005129陈旭钦
团队选题:2048+俄罗斯方块
团队计划:参考俄罗斯方程源代码,开发汉字俄罗斯方块。
团队成员奉献分配规则:按照解决问题的难度,数量以及代码行数综合评定
队名:708
团队项目:按汉字组成原理,把多个简单汉字和成一个复杂的汉字从而得分,得分高者优。
团队风采:各有所长,齐心协力。
核心竞争力:精力旺盛,永不言败,彻夜不眠。
项目目标:针对windows用户,预计用户量不会超过20人。
项目主要展示汉字的博大精深。
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
20 | 15 |
· Estimate |
· 估计这个任务需要多少时间 |
5 | 5 |
Development |
开发 |
660 | 1045 |
· Analysis |
· 需求分析 (包括学习新技术) |
300 | 660 |
· Design Spec |
· 生成设计文档 |
100 | 120 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 | 15 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 | 30 |
· Design |
· 具体设计 |
60 | 20 |
· Coding |
· 具体编码 |
120 | 580 |
· Code Review |
· 代码复审 |
20 | 90 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
30 | 90 |
Reporting |
报告 |
150 | 190 |
· Test Report |
· 测试报告 |
30 | 90 |
· Size Measurement |
· 计算工作量 |
30 | 90 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
60 | 90 |
total |
合计 |
980 | 1580 |
成员的绩效
20N=60
陈旭钦在确定项目方向,需求分析,结构实现上奉献较大应得32
段浩彬在代码编写方面奉献较大应得29
陈作麒在测试阶段奉献较大,并帮助解决在其他人编程中出现的问题,奉献较大应得29
关键代码
class WordBlock { public Point location; public Size size; public Color foreColor=Color.Black; public Color backColor=Color.Red; public WordBlock(Point thisLocation) { Random rand = new Random(); int i = rand.Next(7); foreColor = Table .BlockForeColor[i]; backColor = Table.BlockBackColor[i]; size.Height = 60; size.Width = 60; location = thisLocation; } private const int blockSize = Table.blocksize; public void creat(System.IntPtr winHandle) { Graphics g = Graphics.FromHwnd(winHandle); GraphicsPath gp = new GraphicsPath(); Rectangle rec = new Rectangle(location,size); gp.AddRectangle(rec); Color[] surroundColor = new Color[] { backColor }; PathGradientBrush pb = new PathGradientBrush(gp); pb.CenterColor = foreColor; pb.SurroundColors = surroundColor; g.FillPath(pb, gp); } public void eliminate(System.IntPtr winHandle) { Graphics g = Graphics.FromHwnd(winHandle); Rectangle rec = new Rectangle(location, size); g.FillRectangle(new SolidBrush(Color.White), rec); } public bool down() { if (Table.isEmpty(location.X / blockSize, location.Y / blockSize + 1)) { eliminate(Table.winHandle); location.Y += blockSize; creat(Table.winHandle); return true; } else { return false; } } public bool left() { if (Table.isEmpty(location.X / blockSize-1, location.Y)) { eliminate(Table.winHandle); location.X -= blockSize; creat(Table.winHandle); return true; } else { Table.stopSquare(this, location.X / blockSize, location.Y / blockSize); return false; } } public bool right() { if (Table.isEmpty(location.X / blockSize+1, location.Y)) { eliminate(Table.winHandle); location.X += blockSize; creat(Table.winHandle); return true; } else { return false; } } public int top() { return location.Y; } }
运行结果