1 问题描述

1.1 要求

设计棋盘,棋子等数据,两个玩家可以依次输入数据控制某一个棋子的移动,并且可以判断一步棋是否合法,不合法不能移动,游戏可以存档,读档,记录下棋的过程,如能按棋谱走棋更佳。

1.2 问题分析

1.2.1 象棋记谱规则

  • 红方从右往左为一至九列(用汉字),黑方从左往右为1至9列(用阿拉伯数字)

  • 若欲移动的棋子那列没有与该棋子相同的棋子,则记为:

    • 棋子+列号+动作+步数,其中,列号按6.1的规则产生,动作有进、退、平三种:往对方棋盘方向走为进,往己方棋盘方向走为退,在同一行上移动为平
    • 步数:若棋子移动时不改变列,则记为移动的行数(红方汉字黑方阿拉伯数字);若棋子移动时改变列或棋子走斜线,则记为移动到的新列号。例如:
      • 马三进一 红方第三列的马向黑方棋盘方向走一步,移动到第一列
      • 卒3进1 黑方第3列的卒向红方棋盘方向走1步,未改变列
      • 车二平五 红方第二列的车走到第五列,未改变行
      • 象9退7 黑方第9列的象向己方棋盘方向走一步,移动到第七列
  • 该列有重子且移动的棋子不为兵、卒,则记为:
    • 位置+棋子+动作+步数,其中动作和步数的记法与上述相同
    • 位置分为前、后两种,在己方前进方向的为前,己方后退方向的为后。例如:
      • 前炮进一 红方位于棋盘前方的炮前进一步(红方共两个炮,不会混淆)
  • 该列有重子且移动的棋子不为兵、卒,则记为:
    • 位置+列号+动作+步数,其中动作和步数的记法与6.2相同
    • 位置分为前、中前、中、中后、后五种,望文生义。例如:
      • 前五进一 红方位于最前方的兵前进一步

1.2.2 目标

  • 在控制台界面绘制棋盘和棋子

  • 设计光标系统,可用键盘方向键控制棋子移动,能用鼠标更佳

  • 可判断每步棋是否合法,不合法不能移动

  • 可存档、读档、记录下棋过程

  • 按棋谱走棋(可选)

  • 计时、暂停(可选)

  • 自动判断胜负(可选)

  • 联机对战(可选)

点击此处下载文档和源码

基于VC++实现的中国象棋-双人象棋游戏相关推荐

  1. 【C++课程设计】期末大作业 - 基于Qt开发的中国象棋软件

    1 题目 基于Qt的中国象棋软件开发 本博客只是简略的描述论文的大致结构.框架,以及软件开发的大致过程.有兴趣的参考原文档资料. 2总体设计与主要功能 2.1概述 中国象棋是起源于中国的一种棋,属于二 ...

  2. 基于python的游戏设计与实现-基于Python的网络中国象棋游戏设计与实现

    基于Python的网络中国象棋游戏设计与实现 摘要中国象棋是一种家喻户晓的棋类游戏,随着互联网时代的到来,人们的娱乐方式也逐渐向PC端和移动端上发展.本文将传统的中国象棋游戏和当下的互联网技术结合作为 ...

  3. 基于Java EE的中国象棋网上对战的设计与实现

    技术:Java.JSP等 摘要:中国象棋是一种起源于中国古代的双人对战棋类游戏,广泛的流行在全国各地,是中华文化的典型代表之一,体现着中华文化的智慧和蕴含.为了传承这一重要的传统,理解其中的精髓,以及 ...

  4. 基于Java+Swing实现中国象棋游戏

    基于Java+Swing实现中国象棋游戏 一.系统介绍 二.功能展示 三.其他系统 四.获取源码 前言 中国象棋是起源于中国的一种棋,属于二人对抗性游戏的一种,在中国有着悠久的历史.由于用具简单,趣味 ...

  5. 【181008】VC++写的中国象棋游戏源程序

    VC++写的中国象棋游戏源程序,界面看上去挺不错,可以选择人与电脑对战,通过网络人与人对战,程序虽小,不过考验的编程水平是多方面的,因此通过游戏我们有学习不少实用的技巧.简要说明一下:游戏网络运行方法 ...

  6. 基于UDP协议的中国象棋游戏实现!

    基于UDP协议的中国象棋游戏 1.效果图 2.项目阐述 3.项目知识点 4.部分界面实现 4.1.背景界面面板 4.2.输入客户端信息界面面板 4.3.主界面 5.功能实现 5.1.界面切换 5.2. ...

  7. QT5/C++项目:基于QT的跨平台网络对战象棋(一)(推荐★★★★)

    QT5/C++项目:基于QT的跨平台网络对战象棋(一)(推荐★★★★) 文章目录 QT5/C++项目:基于QT的跨平台网络对战象棋(一)(推荐★★★★) 本篇副标题: 本篇博客讲了什么or解决了什么问 ...

  8. QT5/C++项目:基于QT的跨平台网络对战象棋(三)(推荐★★★★)

    QT5/C++项目:基于QT的跨平台网络对战象棋(三)(推荐★★★★) 文章目录 QT5/C++项目:基于QT的跨平台网络对战象棋(三)(推荐★★★★) 本篇副标题: 本篇博客讲了什么or解决了什么问 ...

  9. QT象棋暗棋游戏(一)

    QT象棋暗棋游戏(一) 学习目标: 学习时间: 学习产出: 代码部分 学习目标: 程序使用C/S架构 (1)MFC/Qt编程实现server程序象棋界面: (2)编程实现server端暗棋的初始化随机 ...

  10. QT象棋暗棋游戏(二)

    QT象棋暗棋游戏(二) 本次更新可能是最后更新了,因为这次个人设计项目已经做好提交了,基本实现了如下功能,当然还存在一堆问题,希望有人能够解答: 本人懒,在上面复制一堆代码估计你们也不会看,具体代码文 ...

最新文章

  1. 架构师之路 — API 经济 — RESTful API
  2. 通过子类化创建新的层和模型
  3. Java设计模式学习02——工厂模式
  4. java冒泡怎么写_java 冒泡 又一种写法
  5. SPOJ DQUERY D-query(主席树 区间不同数个数)
  6. Beta-Binomial 共轭
  7. 这个全新的 “万能文库”下载器,竟然可以下载VIP文档!
  8. nvidia控制面板官方版-nvidia控制面板附安装教程
  9. Windows新建文本文档的快捷键设置
  10. 谷歌服务组件安装简介
  11. 手把手教你基于PaddlePaddle的情绪识别
  12. c语言贾宗璞答案,c语言答案 贾宗璞、许合利
  13. n个节点互异的拉格朗日插值基函数之和等于一证明
  14. 2023年计算机考研数学一考试大纲
  15. 基于APS排程系统的物料管理有哪些优势?
  16. 搜书吧自动购买(下载)功能实现
  17. 【机器学习 吴恩达】2022课程笔记(持续更新)
  18. 手机对LED软件的操作
  19. 爬虫-菜谱信息爬取(保存至数据库)
  20. 管家婆勒索病毒怎么处理?管家婆勒索病毒怎么办?管家婆勒索病毒怎么解决?

热门文章

  1. 高一计算机算法教案,高中信息技术 算法及其实现 教案
  2. 分时操作系统与分布式操作系统
  3. struts2 通配符的配置方式
  4. 快嘴企业名录搜索 2007 是什么
  5. 迅盘从入门到精通 彻底告别WIN7关机烦恼 T400亲测
  6. 使用layui修改table样式
  7. 【经典源码】网络安全--远程控制--Gh0st3.6饭客网络sid版
  8. vue引入百度离线地图
  9. error PRJ0003 : 生成“C:\WINDOWS\system32\cmd.exe”时出错
  10. CSS3参考手册(所有属性)