现在的位置: 首页 > 综合 > 正文

萝卜问题之我的OO解法

2012年07月09日 ⁄ 综合 ⁄ 共 4642字 ⁄ 字号 评论关闭

萝卜问题讨论的很多了,我就不再重复题目和要求了。我的OO解法对性能没有什么考虑,也没有在算法上有什么改进,主要目的有两个:1.用OO的方式表达,2.尽量使代码清晰易懂。当然了,世上不存在绝对好的代码,任何代码都有进一步改进的余地,所以如果觉得哪里可以进一步的改进,欢迎赐教。

Cell类,维护一个Cell本身的信息,包括他所在的行列坐标,格子里的萝卜数,以及计算它的特殊值。

Cell.cs

 

Field类,维护Field本身的信息,包括行列数,以及所有的Cell。同时暴露接口设置Cell、获取Cell以及遍历所有的Cell。

Field.cs

Extension类,加了一个int的扩展方法Between

 public static class Extension
    
{
        
public static bool Between(this int value, int min, int max)
        
{
            
return min <= value && value <= max;
        }

    }

Program入口,初始化Field和Cell,计算并输出 

Program.cs

Domain 的部分是Field和Cell,Program中处理输入和调用,由于Field实现了IEmumarable<T>接口, 可以使用LINQ做其他一些操作。每个方法代码量保持在10行或更少,易于理解。对于程序中的某些命名我还是不太满意,但是一时又想不出更好的名字了。

download code

【上篇】
【下篇】

抱歉!评论已关闭.