/NoGo

2022秋 计算概论A 大作业 不围棋

Primary LanguageC++

NoGo

NoGo是一款基于MFC MDI框架开发的运行在Windows平台上的具有图形界面的棋类游戏。在NoGo上可以进行不围棋与无禁手五子棋两种棋类的人机、人人对弈,并对棋谱进行保存、查看、打印。 NoGo已实现如下功能:

  1. 不围棋与五子棋两类棋的落子、胜负判断。可以进行自我对弈。
  2. 清晰地显示当前棋局,突出显示上一步落子位置。有落子音效。
  3. 支持自定义棋盘大小。棋盘边长最小为6,最大为15。
  4. 棋谱的查看。可以回退、前进以查看任意时刻的盘面情况。
  5. 棋谱的打印。可以将某个局面下的棋盘打印到文件或通过打印机打印。
  6. 显示手数。可以选择显示每一个位置上的棋子落子时的手数。该功能与打印功能一起使用,可以打印出一局棋的完整过程。
  7. 从特定步重新开始(悔棋)。在自我对弈和人机对弈模式下可以从任意时刻的盘面重新开始对弈,即清除之后的落子记录并重新开始落子。
  8. 盘面暂停。在暂停状态下点击棋盘将不会落子。
  9. 棋谱的保存与打开。可以将棋谱以及未完成的对局存储在文件中。
  10. 不围棋与五子棋的人机对弈以及机机对弈。用户可以选择在任何未结束的局面下开始人机对弈,也可以让AI代替自己落子从而实现机机对弈。
  11. 提供3种不同的不围棋AI,用户可以切换。
  12. 局域网联机人人对弈。在同一局域网下,两个程序可以从空白开局或某一局面开始进行人人对弈。联机模式下不支持悔棋,支持AI代替用户落子。联机对局的棋谱也可以正常查看与存储。

同时,NoGo也具有以下功能,但这些功能主要是由MFC MDI框架提供的,并非由大作业小组成员实现:

  1. 同一程序可以同时进行多个棋局的操作、棋谱的查看,并且各个棋局的操作不会相互影响。
  2. 工具栏可自定义按钮。
  3. 菜单栏、工具栏的位置可调整。可以停靠或浮动。
  4. 有多种应用程序外观样式可以切换。