C#面向对象基础完全不会

用面向对象思想分析中国象棋游戏,提取并设计该游戏相关的类,给出各类可能拥有的属性与方法,并简要介绍各属性与方法的作用。

就是一个二维矩阵,每个棋子有固定的移动规则。
根据移动规则描述清楚程序运行逻辑就行。

没有办法具体
书上说“面对对象符合人类思维”---------其实不是,他只是符合哲学思维。
面对对象----------需要跟学哲学那样不停的训练思维,才能出师,因为他的手段是用哲学手段去抽象,去建模(区别于数学建模,数学建模是用数学手段建模,比如线性空间,空间向量,时间序列)

当然通常来说,写对象就是写说明文,所以你就买个象棋,然后他会有说明书。俺们按说明书建立对象
我手上没有说明书,我无法具体描述,就凭我自己的想法写个说明书

1.象棋是种游戏-------------第一抽象对象,游戏--------------象棋是游戏的一种继承
2.游戏----------游戏有玩家------------------象棋是一种2人对弈游戏
3.游戏规则:
红,黑双方,在游戏棋盘里对弈,一人走一步红方先行
游戏棋子:象棋有N个棋子
棋子规则:
吃子规则
输赢判定规则

所以不要让我们如何如何对象,这取决于抽象的层级,而且这个没有标准答案,每个人都可能抽象的不一样。

按说明书方式抽象是可以的

按主谓宾定状补这种拉丁词风分析的也可以(比如,俺们可以看到上面这些说明描述里,有名词,有动词,有主语,有谓语对吧)

按宇宙天空流也行(天空,大地/海洋,地面以下)
-------------------------- 天空的,一眼看到的他是游戏
------------------------- 大地海洋的,还是眼睛看得到的,他是2人下的,有棋盘,有棋子
----------------------- 地面以下的,这眼睛就看不到了,比如棋子规则,吃子规则,输赢规则

按啥DDD的所谓领域当然也行--------棋盘领域,棋子领域,规则领域

so,总归一句话,俺们具体不了。这也是我开篇就说的,他其实并不符合常人思维。他需要自己长期训练,就像训练哲学家那样训练,而且就算训练出来了也不是千人千面(就如同每个哲学家都不会完全相同的看待同一个东西)

棋盘类---生成棋盘
棋子类---棋子类型、棋子的动作等等
棋子移动类---不同的棋子移动的方式
等等、、、