C/C++游戏项目:中国程序员一定要会的中国象棋教程

中国象棋是中国一种流传十分广泛的游戏。 下棋双方根据自己对棋局形式的理解和对棋艺规律的掌握,调动车马,组织兵力,协调作战在棋盘这块特定的战场上进行着象征性的军事战斗。 象棋,亦作“象碁”,为了区别“国际象棋”也作“中国象棋”,中国象棋在中国有着悠久的历史,属于二人对抗性游戏的一种,由于用具简单,趣味性强,成为流行极为广泛的棋艺活动。C/C++游戏项目:中国程序员一定要会的中国象棋教程_第1张图片

游戏规则

行棋规则:

棋子行棋规则帅/将移动范围:只能在九宫内移动移动规则:每一步只可以水平或垂直移动一点特殊规则:帅和将不准在同一直线上直接对面(中间无棋子),如一方已先占据位置,则另一方必须回避,否则就算输仕/士移动范围:只能在九宫内移动移动规则:每一步只可以沿对角线方向移动一点相/象移动范围:河界的一侧移动规则:每一步只可以沿对角线方向移动两点,可使用汉字中的田字形象地表述:田字格的对角线,俗称相(象)走田字。当相(象)行走路线中,即田字中心有棋子时(无论己方或是对方棋子),则不允许走过去,俗称:塞相(象)眼。馬移动范围:任何位置移动规则:每一步只可以水平或垂直移动一点,再按对角线方面向左或者右移动。可使用汉字中的日字来形容马的行走方式,俗称:马走日字(斜对角线)。当馬行走时,第一步直行或横行处有别的棋子(无论己方或是对方棋子)挡住,则不许走过去,俗称:蹩马腿。車移动范围:任何位置移动规则:可以水平或垂直方向移动任意个无阻碍的点炮/砲移动范围:任何位置移动规则:移动起来和车很相似,但它必须跳过一个棋子来吃掉对方棋子。兵/卒移动范围:任何位置移动规则:过河界前,每步只能向前移动一点。过河界后,增加了向左右移动的能力,兵(卒)不允许向后移动。

吃子规则:

无论什么棋子,通常只要根据行棋规则能走到的部位有对方的棋子就能吃掉对方的棋子。

唯一例外的是炮的吃棋方法,比较特殊,需要中间隔有棋子(无论是己方或对方棋子)才能吃掉对方的棋子。

胜负判定:

帅(将)被对方“将死”或“困毙”一方算输。

宣布认输的一方算输。

今天我就用C语言带大家一步步去完成好玩有趣学会就能和朋友对弈的中国象棋小游戏。

PS:要安装easyx图形库哦 #include

开发工具为VS2013

在此之前呢,和大家说明一下,因为这是一个比较大的项目了,所以展示所有代码会有些困难,所以我裁剪了主要的大部分代码,主要目的是让大家明白实现这个项目的逻辑思路,希望大家可以理解

第一步:创建一个项目,并将准备好的素材资源放到同级目录下如图:

C/C++游戏项目:中国程序员一定要会的中国象棋教程_第2张图片

 第二步:接下来就是我们的主要函数main.Cpp了,创建一个窗口再贴上棋盘图,加上双缓冲绘图防止闪屏:

C/C++游戏项目:中国程序员一定要会的中国象棋教程_第3张图片

 第三步:利用绘图找到各个点的坐标并绘制棋子,以及黑红棋子及棋子过河等:

C/C++游戏项目:中国程序员一定要会的中国象棋教程_第4张图片

 第四步:宏定义#define ROW 10 #define COL 9 绘制十列九行的地图,并初始化数据,设置棋子的特殊移动规则:

C/C++游戏项目:中国程序员一定要会的中国象棋教程_第5张图片

 C/C++游戏项目:中国程序员一定要会的中国象棋教程_第6张图片

 C/C++游戏项目:中国程序员一定要会的中国象棋教程_第7张图片

 C/C++游戏项目:中国程序员一定要会的中国象棋教程_第8张图片

 C/C++游戏项目:中国程序员一定要会的中国象棋教程_第9张图片

 第五步:设置获取鼠标操作:

C/C++游戏项目:中国程序员一定要会的中国象棋教程_第10张图片

C/C++游戏项目:中国程序员一定要会的中国象棋教程_第11张图片

 第六步:设置棋子的移动:

C/C++游戏项目:中国程序员一定要会的中国象棋教程_第12张图片

 C/C++游戏项目:中国程序员一定要会的中国象棋教程_第13张图片

 中国象棋的教程就到此结束啦,有兴趣的同学可以尝试写出来,后续我会发布更多的项目教程,希望大家可以持续关注,希望大家可以在这里得到自己想要的知识,也希望如果对你有所帮助的话可以多多关注点赞评论,有建议也可以在评论区提出,谢谢大家的支持!

写在最后

今天就到这里了哈~

后续我还会发布更多的项目源或者学习资料,希望大家可以持续关注,有什么问题可以加我主页群。

不管你是转行也好,初学也罢,进阶也可,如果你想学编程~

如有遇到技术问题可以进入学习群问点击进入【C/C++源码资料学习群】

【值得关注】我的B站视频教程:c语言基础学习的个人空间_哔哩哔哩_Bilibili

你可能感兴趣的:(计算机/it,C语言,游戏开发,c++,c语言,开发语言)