创业找项目 导航

象棋中不会出现的走法

来源网站:创业找项目 2018-06-16
创业找项目

篇一:象棋中马的走法

实验三、国际象棋中马的走法

利用C语言,解决象棋中马走向问题的程序。可以自定义一个n*n的棋盘,给出马在棋盘的初始位置,紧接着进行搜索路径,按照有最少出口数的出口进行,一直将所有的位置搜索到,如果结束,则从第二步开始重新寻找搜索路径开始搜索,知道棋盘上所有的位置都遍历到。

解答参考:

程序代码:

#include<stdio.h>

#define N 100

int n;

int deltai[]={2,1,-1,-2,-2,-1, 1, 2};

int deltaj[]={1,2, 2, 1, -1,-2,-2,-1};

int board[N][N];

int exitn(int i,int j,int s,int a[]) /*求(i,j)的出口数,s是顺序选择马的可走方法的开始序号*/

{

int i1,j1,k,count;

for (count=k=0;k<8;k++)

{

i1=i+deltai[(s+k)%8];

j1=j+deltaj[(s+k)%8];

if(i1>=0 && i1<n && j1>=0 && j1<n && board[i1][j1]==0) a[count++]=(s+k)%8;

}

return count;

}

int next(int i,int j,int s) /*选择下一出口*/

{

int m, k,kk,min;

int a[N],b[N],temp;

m=exitn(i,j,s,a);/*确定(i.j)的出口个数*/

if(m==0) return -1; /*没有出口*/

for(min=9,k=0;k<m;k++) /*逐一考察各出口*/

{

temp=exitn(i+deltai[a[k]],j+deltaj[a[k]],s,b);

if(temp<min)/*找出有最少出口数的出口*/ {

min=temp;

kk=a[k];

}

}

return kk; /*返回选中的马的可走方法*/} int show(int i,int j)

{ int m;

for(i=0;i<n;i++)

{

for(m=0;m<n;m++)

printf("|——");

printf("|\n");

for(j=0;j<n;j++)

printf("|%3d ",board[i][j]);

printf("|\n");

}

for(m=0;m<n;m++)

printf("|——");

printf("|\n");

}

void main()

{

int i,j,step,no,start=0;/*从0号马的可走方法开始顺序检查*/printf("请输入棋盘的大小:\n");

scanf("%d",&n);

printf("请输入马的初始位置:\n");

scanf("%d%d",&i,&j);

board[i][j]=1;

getchar();

printf("马走第1步!\n");

show(i,j);

do

{

for(step=2;step<=n*n;step++)

{

if((no=next(i,j,start))==-1)

break;

i+=deltai[no]; /*前进一步*/

j+=deltaj[no];

board[i][j]=step;

getchar();

printf("马走第%d步!\n",step);

show(i,j);

}

if(step>n*n) break;

start++;

} while(step<=n*n); /*最先检查的马的可走方法序号增1*/}

篇二:中国象棋开局的15种走法

中国象棋开局的15种走法

开局第一着的15种走法

1)当头炮(炮二平五)

这是象棋布局里的主流招法,直接威胁黑方中卒,刚猛直爽。“起炮在中宫,比诸局较雄”。黑方通常跳马保卒或还架中炮,发展成为顺炮、列炮、屏风马、反宫马、单提马等体系。也有进炮保卒或补士象的冷门应法,中炮的应法最多有十种。

2)飞相局(相三进五)

稳健型开局,先巩固阵地,再伺机反击。飞相局曾是胡荣华的镇山宝,杀败过许多弈林好手,他说“飞相十八应”,说明了应法之多。因为飞相没有对黑方构成任何直接威胁,所以除常见的左中炮、过宫炮、士角炮外,至少还有十几种可行的应法,甚至挺中卒都是不违棋理的。

3)仙人指路(兵七进一)

投石问路,既可为马开路,又可试探对方棋路,刚柔相济,意向莫测。应对仙人指路最凶悍的莫过于炮2平3卒底炮,平地一声雷。另外,飞象、左中炮、对兵局、过宫炮、起马等等也屡见不鲜,最有趣的是卒3进1弃卒抢三先,俗称“瞎眼狗”。

4)起马局(马二进三)

一匹正马是迟早要跳的,开盘就跃出,何乐而不为?有棋友在“华工象棋论坛”论证了起马局红方总比黑方快半拍,以后还可多得两兵终获胜。这位棋友的观点虽不完善,但此人无疑是起马局的能手。其实后手方并不惧怕,一步卒7进1制马就很有针对性,其它还有许多应法当然也未尝不可。

5)过宫炮(炮二平六)

流行弈法,有利于上马出车,迅速开动主力,结构良好,攻守咸宜。黑方有飞象、还中炮、挺卒、进马、提横车等多种应法。过宫炮古已有之,数百年不断演绎着新的传奇。

6)仕角炮(炮八平六)

首着平炮于仕角,今后可发展成反宫马、单提马、五六炮等阵型。后手还架反手中炮或挺卒较为流行。

7)上仕局(仕四进五)

既然飞相可以,上仕又有何不妥?同样巩固阵地,还有再架中炮的机会。记得有一次亚洲大赛上就有专业棋手使用过。

8)兵底炮(炮二平三)

有很多布局的红棋阵容会有这一步炮,这里只是改变次序先为之。古谱称之“敛炮”,有锋芒内敛之意。

9)金钩炮(炮二平七)

有的称为“大过宫炮”,将子力集中于左翼,又为右翼子力开通道路。特级大师庄玉庭对此阵颇有研究。

10)边马局(马二进一)

冷门布局,偶尔用之会有出其不意的效果。当然另一个马还是扑向中心较好,如果再马八进九形成“蝴蝶双飞”就感觉不怎么舒坦了(事实上还是有人喜欢这么走,并配合担子炮,让人觉得无懈可击)。

11)九尾龟(兵九进一)

和边马局一样,旁敲侧击的战略思想。记得多年前,我看过《京华棋坛风云录》中有一则名手对局就用的这个。

12)巡河炮(炮二进二)

在让双马时,这着几乎是必走的。在不让子的情况下,巡河炮同样有拦车,闪击等多种用途。所谓“沿河十八打,将军拉下马”。

13)边炮(炮二平一)

“炮起边塞上,翻卒势如飞,横贯当头妙,冲前落角宜……”。边炮还可以为车马让路,形成先手三步虎。

14)龟背炮(炮八退一)

这个名称是来源于“中炮对龟背炮”。记得读大学时寝室里下棋曾一度流行这种走法,甚至有同学用得得心应手,还总结出退炮后的几种后续手段(如保马前卒,打车,平窝心炮),现在回忆起来还觉得饶有趣味。

15)过河炮(炮二进四)

屏风马世界里有左炮封车,双炮过河等阵容。首着就过河,似乎动向暴露过早,但民间确实有人执先手这么走,好象一时也找不到什么明显弱点。

16)铁滑车(车一进一)

属于邪门开局,开局的时候会死马,之后就反攻,饶有趣味的!!!

篇三:中国象棋基本走法口诀

中国象棋基本走法口诀

编者 张孔銮

将帅田中横竖走,被吃便成输棋手; 士在两旁斜线走,保护将帅不远走; 相象田间对角走,田中有子不得走; 小马日字对角走,直前有子不得走; 老車横竖任你走,遇谁吃谁称勇首; 大炮横竖也任走,隔子方能吃对手; 兵卒只能往前走,过河方能左右走。 各子路上遇对手,吃时要防对手走;

吃人将帅喊 “将军”,输棋不气是好手。

象棋中不会出现的走法》出自:创业找项目
链接地址:http://m.gjknj.com/duwu/12741.html 转载请保留,谢谢!

相关文章

推荐文章

推荐专题

创业找项目

© 创业找项目 m.gjknj.com 版权所有