伪状态模式的五子棋游戏的控制台实现

Silentdoer 2017-02-13 09:26:44
加精
这是我大学时写的一个控制台五子棋游戏,后来工作后对面向对象和设计模式有了一定的理解,故以面向对象的方式重写了一下它,里面还用到了状态模式,不过由于程序不是很复杂所以状态模式感觉跟书上的也有些出入,希望能对新学C#的朋友有帮助,如果有大神愿意看也希望能得到一些建议。
现在说说我的思路:
首先我需要一张棋盘,然后是棋子,然后是光标(因为控制台貌似无法用鼠标点);
这里我将棋盘分成了N*N的棋盘点,每个棋盘点上可以拥有光标和棋子这两个属性;
一开始时棋盘上的所有棋盘点都是没有棋子的,但是中间的那个棋盘点有光标;
玩家放置一个棋子后棋盘点上就拥有了一个有玩家属性的棋子;每次移动光标都
会刷新Map。画棋盘实际上就是画各个棋盘点(中间会有空格间隔开),如果棋盘点
有光标优先画光标,其次画棋子,什么都没有才会画棋盘点。大致思路就是这样,剩下
的需要各位自己去看代码了。虽然这个游戏很多人都做过了,但还是忍不住又来发一次,
分只有90分了,望大家不要见怪。
...全文
4178 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不错 学习了
独木难支 2017-08-27
  • 打赏
  • 举报
回复
下下来学习学习!
Hobo丶 2017-05-31
  • 打赏
  • 举报
回复
刘星宏 2017-03-03
  • 打赏
  • 举报
回复
可以的。 不错
Mathison_Turing 2017-03-01
  • 打赏
  • 举报
回复
想用C语言实现斗地主游戏的编写
joyhen 2017-02-24
  • 打赏
  • 举报
回复
不错,订下
qq_35715997 2017-02-22
  • 打赏
  • 举报
回复
楼主你好,我也写了个五子棋AI,能搜10层,有空交流学习下
蚂蚁上树 2017-02-16
  • 打赏
  • 举报
回复
Silentdoer 2017-02-13
  • 打赏
  • 举报
回复
引用 13 楼 Forty2 的回复:
值得鼓励。 可以改进的地方,我认为其中一个是FiveChessContext类。它目前管的过多了 - 既管输入输出,又管棋局数据。 如果能把输入输出控制部分抽象出来,结构上会更清晰一些。比如,问你自己这些问题: 1、我可以不用键盘输入,而是让‘单元测试’来输入呢? 2、我可以不可以方便地把Console程序,改成图像界面呢? 3、我可以添加人工智能码,让机器下棋吗?
谢谢,我也觉得FiveChessContext设计不合理,我再试试能不能更好的细化一下。
Forty2 2017-02-13
  • 打赏
  • 举报
回复
值得鼓励。 可以改进的地方,我认为其中一个是FiveChessContext类。它目前管的过多了 - 既管输入输出,又管棋局数据。 如果能把输入输出控制部分抽象出来,结构上会更清晰一些。比如,问你自己这些问题: 1、我可以不用键盘输入,而是让‘单元测试’来输入呢? 2、我可以不可以方便地把Console程序,改成图像界面呢? 3、我可以添加人工智能码,让机器下棋吗?
mjp1234airen4385 2017-02-13
  • 打赏
  • 举报
回复
不多说,接分。
Silentdoer 2017-02-13
  • 打赏
  • 举报
回复
引用 10 楼 shingoscar 的回复:
为什么要90分?
我以为是惯例的。。
Poopaye 2017-02-13
  • 打赏
  • 举报
回复
为什么要90分?
YZYDLZR 2017-02-13
  • 打赏
  • 举报
回复
也可以到这个编程的网站看看:开发本www.kfben.com
ZuoLingZuoTa 2017-02-13
  • 打赏
  • 举报
回复
下载学习学习
Silentdoer 2017-02-13
  • 打赏
  • 举报
回复
@caozhy
Silentdoer 2017-02-13
  • 打赏
  • 举报
回复
@caozhy
Silentdoer 2017-02-13
  • 打赏
  • 举报
回复
引用 4 楼 sbcnn1 的回复:
还不错~
谢谢,忘了说,这个代码要至少VS2015才能运行。
sbcnn1 2017-02-13
  • 打赏
  • 举报
回复
还不错~
Silentdoer 2017-02-13
  • 打赏
  • 举报
回复
这个帖子能加精吗 求@版主。
加载更多回复(6)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧