C语言:中国象棋

1 内容提要

       中国象棋是一款经典的智力游戏,具有悠久的历史,是中国家喻户晓的棋类游戏,属于两人对抗游戏的一种,它经过几千年的流传,仍然颇受欢迎。它是中国棋文化,也是中国民族的文化瑰宝,它源远流长,趣味浓厚,基本规则简明易懂。下棋过程中,双方交替行棋,率先把对方的将(帅)“将死”的一方获胜。借着此次项目设计的机会,用C语言的方式将它编写出来。在编程中,可能会涉及到函数、数组等知识;要设计好棋盘、确定棋子的摆放位置、各棋子的功能、各棋子的行进走法以及“吃棋”等。

2 设计内容

       该程序设计内容包括象棋棋盘、棋子摆布、行棋规则、吃子、将军/应将/送将、将帅照面/王不见王、胜负判定。

3 概要设计

        象棋棋盘以“楚河 汉界”为界,划分双方阵地,两军对垒作战。在这里,用很多的点“.”来绘制棋盘,将棋子摆放在各自的位置,红方棋子在棋盘上的显示分别是“【帥】、【仕】、【相】、【傌】、【俥】、【炮】、【兵】”;黑方棋子在棋盘上的显示分别是“(將)、(士)、(象)、(馬)、(車)、(砲)、(卒)”。当棋子行棋离开初始位置时,“.”变为“+”。

4 详细设计

4.1 棋子选取

       游戏开始时光标位于红方的“【炮】”上,移动选择棋子时表现为“[  ]”,选定棋子后,被选中的棋子表现为“*  *”,例如,选定红方的“【炮】”则显示为“*【炮】*”。将光标移动到要选择的棋子,按空格键选定该棋子,将棋子移动到要取的位置,再次按空格键确定。 

void toSymbolWithCur(int num){
	printf("[");
	toSymbol(num);
	printf("]");
}
void toSymbolWithMark(int num){
	printf("*");
	toSymbol(num);
	printf("*");
}

4.2 行棋吃子

       在下棋过程中,双方交替行棋,由红方先行,红方走完后黑方行棋,黑方走完后红方再接上,如此反复交替行棋。象棋的棋子之间不存在大小关系,任何棋子都可以吃掉任何棋子,也可能被任何棋子吃掉——只要符合行棋规则。程序设计时,当一方的一颗棋子吃掉另一方的一颗棋子时,该方棋子位于被吃方的棋子所在位置,而被吃方的棋子从棋盘上消失。

void tab(int num){
	for(int i = 0; i<num; i++){
		printf("\t");
	}
}

void space(int num){
	for(int i = 0; i<num; i++){
		printf(" ");
	}
}

void line(int num){
	for(int i = 0; i<num; i++){
		printf("\n");
	}
}

void cls(){
	system("cls");
}

void hr(int num){
	for(int i = 0; i<num; i++){
		printf("—");
	}
}

int color(int piece){
	if(piece>=1 && piece <=14){
		if(piece % 2 != 0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茜茜西西CeCe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值