MATLAB初学日记:中国象棋实现

前言:

只是个matlab初学者,本意是记录一下自己matlab学习之余搞的小玩意,所以代码技术含量不高,计算复杂效率低下,也欢迎大家讨论、指导。

实现:

各所需变量初始化:

代码:

%0:空位
%1:红-兵
%2:红-车
%3:红-马
%4:红-象
%5:红-士
%6:红-帅
%7:红-炮
%8:黑-兵
%9:黑-车
%10:黑-马
%11:黑-象
%12:黑-士
%13:黑-帅
%14:黑-炮
clear;
clf;
clc;
p=zeros(9,10);
player=0;
d2=1;
a11=[0 0];   %初始化各个棋子各方位的可移动位置
a12=[0 0];
a13=[0 0];
a21x=0;
a21y=0;
a22x=0;
a22y=0;
a23x=0;
a23y=0;
a24x=0;
a24y=0;
a31=[0,0];
a32=[0,0];
a33=[0,0];
a34=[0,0];
a35=[0,0];
a36=[0,0];
a37=[0,0];
a38=[0,0];
a41=[0 0];
a42=[0 0];
a43=[0 0];
a44=[0 0];
a51=[0 0];
a52=[0 0];
a53=[0 0];
a54=[0 0];
a61=[0 0];
a62=[0 0];
a63=[0 0];
a64=[0 0];
a71x=0;
a71y=0;
a72x=0;
a72y=0;
a73x=0;
a73y=0;
a74x=0;
a74y=0;

a81=[0 0];
a82=[0 0];
a83=[0 0];
a91x=0;
a91y=0;
a92x=0;
a92y=0;
a93x=0;
a93y=0;
a94x=0;
a94y=0;
a101=[0 0];
a102=[0 0];
a103=[0 0];
a104=[0 0];
a105=[0 0];
a106=[0 0];
a107=[0 0];
a108=[0 0];
a111=[0 0];
a112=[0 0];
a113=[0 0];
a114=[0 0];
a121=[0 0];
a122=[0 0];
a123=[0 0];
a124=[0 0];
a131=[0 0];
a132=[0 0];
a133=[0 0];
a134=[0 0];
a141x=0;
a141y=0;
a142x=0;
a142y=0;
a143x=0;
a143y=0;
a144x=0;
a144y=0;

tiao1=[0 0]; %初始化炮跳板位置
tiao2=[0 0];
tiao3=[0 0];
tiao4=[0 0];
%--------------------------------------------------------------------------------

p(1,4)=1; %初始化红方棋子位置
p(3,4)=1;
p(5,4)=1;
p(7,4)=1;
p(9,4)=1;
p(9,1)=2;
p(1,1)=2;
p(2,1)=3;
p(8,1)=3;
p(3,1)=4;
p(7,1)=4;
p(4,1)=5;
p(6,1)=5;
p(5,1)=6;
p(2,3)=7;
p(8,3)=7;

%---------------------------------------------------------------------------------

p(1,7)=8; %初始化黑方棋子位置
p(3,7)=8;
p(5,7)=8;
p(7,7)=8;
p(9,7)=8;
p(1,10)=9;
p(9,10)=9;
p(2,10)=10;
p(8,10)=10;
p(3,10)=11;
p(7,10)=11;
p(4,10)=12;
p(6,10)=12;
p(5,10)=13;
p(2,8)=14;
p(8,8)=14;

思路:

用数字表示棋子类型,用数字后缀表示某方向的可下子位置

如:p(1,1)=2;

        表示(1,1)为代号为2的棋子,而红方车代号为2,所以红方车的初始位置为(1,1)

        a21x表示红方车正右方备选位置的横坐标

用函数绘制一个棋盘:

代码:

while(1)
clf %绘制棋盘
hold on
axis([1,9,1,10]);
axis square;
x=1:9;
y=1:10;
shu1=linspace(10,10,9);
shu2=linspace(6,6,9);
shu3=[10,5,5,5,5,5,5,5,10];
stem(x,shu1,'- . k',"MarkerSize",0.001);
stem(x,shu2,'- . w',"MarkerSize",0.001);
stem(x,shu3,'- . k',"MarkerSize",0.001);
xie1x=[4,5,6,5,6,5,4];
xie1y=[1,2,1,2,3,2,3];
xie2x=[4,5,6,5,6,5,4];
xie2y=[10,9,10,9,8,9,8];
for i=1:10
    for j=1:9
        heng(i,j)=11-i;
    end
        plot(x,heng(i,:),'k-')
end
plot(xie1x,xie1y,'k')
plot(xie2x,xie2y,'k')

效果:

在棋盘上绘制棋子

代码:

for i=1:9 %绘制棋子
    for j=1:10
        switch p(i,j)
            case 1
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'兵',"Color",[1 0 0])
            case 2
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'车',"Color",[1 0 0])
            case 3
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'马',"Color",[1 0 0])
            case 4
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'象',"Color",[1 0 0])
            case 5
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'士',"Color",[1 0 0])
            case 6
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'帅',"Color",[1 0 0])
            case 7
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'炮',"Color",[1 0 0])
            case 8
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'兵',"Color",[0 0 0])
            case 9
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'车',"Color",[0 0 0])
            case 10
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'马',"Color",[0 0 0])
            case 11
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'象',"Color",[0 0 0])
            case 12
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'士',"Color",[0 0 0])
            case 13
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'帅',"Color",[0 0 0])
            case 14
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'炮',"Color",[0 0 0])
            otherwise
                continue
        end
    end
end

效果:

落子与判定:

代码:

while(1) 
    [a,b]=ginput(1); %鼠标点击一个有效坐标
    c=round(a);
    d=round(b);
    if (c>=1&&d>=1)&&(c<=9&&d<=10)
        break
    end
end
if player==0 %判断是否红方落棋
    switch p(c,d) %如果点击红方棋子,将棋子变绿
        case {1 2 3 4 5 6 7}
            plot(c,d,'o g',"MarkerSize",20)
        otherwise
    end
    switch p(c,d) %根据棋子类型,用蓝色显示出可以所有落棋的位置并用输入落棋点
        case 1 %红方兵
            if d>=6 %在河对岸的行为模式
                if c==1 %兵各个位置可以落棋的备选位置
                    switch p(c+1,d)
                        case {8,9,10,11,12,13,14,0}
                        plot(c+1,d,'o b',"MarkerSize",20)
                        a11=[c+1 d];
                        otherwise
                            a11=[0 0];
                    end
                    switch p(c,d+1)
                        case {8,9,10,11,12,13,14,0}
                        plot(c,d+1,'o b',"MarkerSize",20)
                        a12=[c d+1];
                        otherwise
                            a12=[0 0];
                    end
                elseif c>=2&&c<=8
                    switch p(c+1,d)
                        case {8,9,10,11,12,13,14,0}
                            plot(c+1,d,'o b',"MarkerSize",20)
                            a11=[c+1 d];
                        otherwise
                            a11=[0 0];
                    end
                    switch p(c-1,d)
                        case {8,9,10,11,12,13,14,0}
                            plot(c-1,d,'o b',"MarkerSize",20)
                            a13=[c-1 d];
                        otherwise
                            a13=[0 0];
                    end
                    switch p(c,d+1)
                        case {8,9,10,11,12,13,14,0}
                            plot(c,d+1,'o b',"MarkerSize",20)
                            a12=[c d+1];
                        otherwise
                            a12=[0 0];
                    end
                elseif c==9
                    switch p(c-1,d)
                        case {8,9,10,11,12,13,14,0}
                            plot(c-1,d,'o b',"MarkerSize",20)
                            a13=[c-1 d];
                        otherwise
                            a13=[0 0];
                    end
                    switch p(c,d+1)
                        case {8,9,10,11,12,13,14,0}
                            plot(c,d+1,'o b',"MarkerSize",20)
                            a12=[c d+1];
                        otherwise
                            a12=[0 0];
                    end
                end
            else %在本岸的行为模式
                switch p(c,d+1)
                    case {8,9,10,11,12,13,14,0}
                        plot(c,d+1,'o b',"MarkerSize",20)
                        a12=[c d+1];
                    otherwise
                        a12=[0 0];
                end
            end
            while(1) %输入一个有效坐标
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a11(1)&&h==a11(2))||(g==a12(1)&&h==a12(2))||(g==a13(1)&&h==a13(2)) %如果坐标在备选位置中,则落子并改变为玩家1落子
                p(c,d)=0;
                p(g,h)=1;
                player=1;
            end
         case 2 %红方车
            for i=c+1:9 %正右方的备选位置
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                    a21x(i)=i;
                    a21y(i)=d;
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    if i~=c+1
                        plot(i-1,d,'o b',"MarkerSize",20)
                        break
                    elseif i==c+1
                        d2=0;
                        break
                    end
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    plot(i,d,'o b',"MarkerSize",20)
                    a21x(i)=i;
                    a21y(i)=d;
                    break
                end
            end
            for i=c-1:-1:1 %正左方的备选位置
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                    a23x(i)=i;
                    a23y(i)=d;
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    if i~=c-1
                        plot(i+1,d,'o b',"MarkerSize",20)
                        break
                    elseif i==c-1
                        break
                    end
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    plot(i,d,'o b',"MarkerSize",20)
                    a23x(i)=i;
                    a23y(i)=d;
                    break
                end
            end
            for j=d+1:10 %正上方的备选位置
                if p(c,j)==0
                    plot(c,j,'o b',"MarkerSize",20)
                    a22x(j)=c;
                    a22y(j)=j;
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    if j~=d+1
                        plot(c,j-1,'o b',"MarkerSize",20)
                        break
                    elseif j==d+1
                        d2=0;
                        break
                    end
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    plot(c,j,'o b',"MarkerSize",20)
                    a22x(j)=c;
                    a22y(j)=j;
                    break
                end
            end
            for j=d-1:-1:1 %正下方的备选位置
                if p(c,j)==0
                    plot(c,j,'o b',"MarkerSize",20)
                    a24x(j)=c;
                    a24y(j)=j;
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    if j~=d-1
                        plot(c,j+1,'o b',"MarkerSize",20)
                        break
                    elseif j==d-1
                        break
                    end
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    plot(c,j,'o b',"MarkerSize",20)
                    a24x(j)=c;
                    a24y(j)=j;
                    break
                end
            end
            while(1) %输入一个有效坐标并与四个方向的备选位置匹配,落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            for i=1:length(a21x)
                if g==a21x(i)&&h==a21y(i)
                    p(c,d)=0;
                    p(g,h)=2;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a22x)
                if g==a22x(i)&&h==a22y(i)
                    p(c,d)=0;
                    p(g,h)=2;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a23x)
                if g==a23x(i)&&h==a23y(i)
                    p(c,d)=0;
                    p(g,h)=2;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a24x)
                if g==a24x(i)&&h==a24y(i)
                    p(c,d)=0;
                    p(g,h)=2;
                    player=1;
                else
                    continue
                end
            end
        case 3 %红方马
            a31=[c+2,d+1]; %八个可能的落脚点
            a32=[c+1,d+2];
            a33=[c-1,d+2];
            a34=[c-2,d+1];
            a35=[c-2,d-1];
            a36=[c-1,d-2];
            a37=[c+1,d-2];
            a38=[c+2,d-1];
            if c==9||c==8  %判断各个落脚点是否可行
                a31=[0 0];
            elseif d==10
                a31=[0 0];
            elseif p(c+1,d)~=0
                a31=[0 0];
            elseif p(c+2,d+1)==1||p(c+2,d+1)==2||p(c+2,d+1)==3||p(c+2,d+1)==4||p(c+2,d+1)==5||p(c+2,d+1)==6||p(c+2,d+1)==7
                a31=[0 0];
            else
                plot(c+2,d+1,'o b',"MarkerSize",20)
            end
            if c==9
                a32=[0 0];
            elseif d==10||d==9
                a32=[0 0];
            elseif p(c,d+1)~=0
                a32=[0 0];
            elseif p(c+1,d+2)==1||p(c+1,d+2)==2||p(c+1,d+2)==3||p(c+1,d+2)==4||p(c+1,d+2)==5||p(c+1,d+2)==6||p(c+1,d+2)==7
                a31=[0 0];
            else
                plot(c+1,d+2,'o b',"MarkerSize",20)
            end
            if c==1
                a33=[0 0];
            elseif d==10||d==9
                a33=[0 0];
            elseif p(c,d+1)~=0
                a33=[0 0];
            elseif p(c-1,d+2)==1||p(c-1,d+2)==2||p(c-1,d+2)==3||p(c-1,d+2)==4||p(c-1,d+2)==5||p(c-1,d+2)==6||p(c-1,d+2)==7
                a33=[0 0];
            else
                plot(c-1,d+2,'o b',"MarkerSize",20)
            end
            if c==1||c==2
                a34=[0 0];
            elseif d==10
                a34=[0 0];
            elseif p(c-1,d)~=0
                a34=[0 0];
            elseif p(c-2,d+1)==1||p(c-2,d+1)==2||p(c-2,d+1)==3||p(c-2,d+1)==4||p(c-2,d+1)==5||p(c-2,d+1)==6||p(c-2,d+1)==7
                a34=[0 0];
            else
                plot(c-2,d+1,'o b',"MarkerSize",20)
            end
            if c==1||c==2
                a35=[0 0];
            elseif d==1
                a35=[0 0];
            elseif p(c-1,d)~=0
                a35=[0 0];
            elseif p(c-2,d-1)==1||p(c-2,d-1)==2||p(c-2,d-1)==3||p(c-2,d-1)==4||p(c-2,d-1)==5||p(c-2,d-1)==6||p(c-2,d-1)==7
                a35=[0 0];
            else
                plot(c-2,d-1,'o b',"MarkerSize",20)
            end
            if c==1
                a36=[0 0];
            elseif d==1||d==2
                a36=[0 0];
            elseif p(c,d-1)~=0
                a36=[0 0];
            elseif p(c-1,d-2)==1||p(c-1,d-2)==2||p(c-1,d-2)==3||p(c-1,d-2)==4||p(c-1,d-2)==5||p(c-1,d-2)==6||p(c-1,d-2)==7
                a36=[0 0];
            else
                plot(c-1,d-2,'o b',"MarkerSize",20)
            end
            if c==9
                a37=[0 0];
            elseif d==1||d==2
                a37=[0 0];
            elseif p(c,d-1)~=0
                a37=[0 0];
            elseif p(c+1,d-2)==1||p(c+1,d-2)==2||p(c+1,d-2)==3||p(c+1,d-2)==4||p(c+1,d-2)==5||p(c+1,d-2)==6||p(c+1,d-2)==7
                a37=[0 0];
            else
                plot(c+1,d-2,'o b',"MarkerSize",20)
            end
            if c==9||c==8
                a38=[0 0];
            elseif d==1
                a38=[0 0];
            elseif p(c+1,d)~=0
                a38=[0 0];
            elseif p(c+2,d-1)==1||p(c+2,d-1)==2||p(c+2,d-1)==3||p(c+2,d-1)==4||p(c+2,d-1)==5||p(c+2,d-1)==6||p(c+2,d-1)==7
                a38=[0 0];
            else
                plot(c+2,d-1,'o b',"MarkerSize",20)
            end
            while(1) %如果坐标在备选位置中,则落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a31(1)&&h==a31(2))||(g==a32(1)&&h==a32(2))||(g==a33(1)&&h==a33(2))||(g==a34(1)&&h==a34(2))||(g==a35(1)&&h==a35(2))||(g==a36(1)&&h==a36(2))||(g==a37(1)&&h==a37(2))||(g==a38(1)&&h==a38(2))
                p(c,d)=0;
                p(g,h)=3;
                player=1;
            else
                continue
            end
        case 4 %红方象
            if c==3&&d==1 %不同位置的不同备选位置
                if p(4,2)==0
                    if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                    else
                    a41=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(2,2)==0
                    if p(1,3)==1||p(1,3)==2||p(1,3)==3||p(1,3)==4||p(1,3)==5||p(1,3)==6||p(1,3)==7
                    else
                    a42=[1 3];
                    plot(1,3,'o b',"MarkerSize",20)
                    end
                end
            elseif c==7&&d==1
                if p(8,2)==0
                    if p(9,3)==1||p(9,3)==2||p(9,3)==3||p(9,3)==4||p(9,3)==5||p(9,3)==6||p(9,3)==7
                    else
                    a41=[9 3];
                    plot(9,3,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(6,2)==0
                    if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                    else
                    a42=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==1&&d==3
                if p(2,4)==0
                    if p(3,5)==1||p(3,5)==2||p(3,5)==3||p(3,5)==4||p(3,5)==5||p(3,5)==6||p(3,5)==7
                    else
                    a41=[3 5];
                    plot(3,5,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(2,2)==0
                    if p(3,1)==1||p(3,1)==2||p(3,1)==3||p(3,1)==4||p(3,1)==5||p(3,1)==6||p(3,1)==7
                    else
                    a44=[3 1];
                    plot(3,1,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==5&&d==3
                if p(6,4)==0
                    if p(7,5)==1||p(7,5)==2||p(7,5)==3||p(7,5)==4||p(7,5)==5||p(7,5)==6||p(7,5)==7
                    else
                    a41=[7 5];
                    plot(7,5,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,4)==0
                    if p(3,5)==1||p(3,5)==2||p(3,5)==3||p(3,5)==4||p(3,5)==5||p(3,5)==6||p(3,5)==7
                    else
                    a42=[3 5];
                    plot(3,5,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,2)==0
                    if p(3,1)==1||p(3,1)==2||p(3,1)==3||p(3,1)==4||p(3,1)==5||p(3,1)==6||p(3,1)==7
                    else
                    a43=[3 1];
                    plot(3,1,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(6,2)==0
                    if p(7,1)==1||p(7,1)==2||p(7,1)==3||p(7,1)==4||p(7,1)==5||p(7,1)==6||p(7,1)==7
                    else
                    a44=[7 1];
                    plot(7,1,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==9&&d==3
                if p(8,4)==0
                    if p(7,5)==1||p(7,5)==2||p(7,5)==3||p(7,5)==4||p(7,5)==5||p(7,5)==6||p(7,5)==7
                    else
                    a42=[7 5];
                    plot(7,5,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(8,2)==0
                    if p(7,1)==1||p(7,1)==2||p(7,1)==3||p(7,1)==4||p(7,1)==5||p(7,1)==6||p(7,1)==7
                    else
                    a43=[7 1];
                    plot(7,1,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==3&&d==5
                if p(2,4)==0
                    if p(1,3)==1||p(1,3)==2||p(1,3)==3||p(1,3)==4||p(1,3)==5||p(1,3)==6||p(1,3)==7
                    else
                    a43=[1 3];
                    plot(1,3,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,4)==0
                    if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                    else
                    a44=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==7&&d==5
                if p(6,4)==0
                    if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                    else
                    a43=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(8,4)==0
                    if p(9,3)==1||p(9,3)==2||p(9,3)==3||p(9,3)==4||p(9,3)==5||p(9,3)==6||p(9,3)==7
                    else
                    a44=[9 3];
                    plot(9,3,'o b',"MarkerSize",20)
                    end
                else
                end
            else
            end
            while(1) %如果坐标在备选位置中,则落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a41(1)&&h==a41(2))||(g==a42(1)&&h==a42(2))||(g==a43(1)&&h==a43(2))||(g==a44(1)&&h==a44(2))
                p(c,d)=0;
                p(g,h)=4;
                player=1;
            else
            end
        case 5 %红方士
            if c==4&&d==1 %不同位置的不同备选位置
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a51=[5,2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==1
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a52=[5,2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==2
                if p(6,3)==1||p(6,3)==2||p(6,3)==3||p(6,3)==4||p(6,3)==5||p(6,3)==6||p(6,3)==7
                else
                    a51=[6 3];
                    plot(6,3,'o b',"MarkerSize",20)
                end
                if p(4,3)==1||p(4,3)==2||p(4,3)==3||p(4,3)==4||p(4,3)==5||p(4,3)==6||p(4,3)==7
                else
                    a52=[4 3];
                    plot(4,3,'o b',"MarkerSize",20)
                end
                if p(4,1)==1||p(4,1)==2||p(4,1)==3||p(4,1)==4||p(4,1)==5||p(4,1)==6||p(4,1)==7
                else
                    a53=[4 1];
                    plot(4,1,'o b',"MarkerSize",20)
                end
                if p(6,1)==1||p(6,1)==2||p(6,1)==3||p(6,1)==4||p(6,1)==5||p(6,1)==6||p(6,1)==7
                else
                     a54=[6 1];
                     plot(6,1,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==3
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a54=[5,2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==3
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a53=[5,2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
            end
            while(1) %如果坐标在备选位置中,则落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a51(1)&&h==a51(2))||(g==a52(1)&&h==a52(2))||(g==a53(1)&&h==a53(2))||(g==a54(1)&&h==a54(2))
                p(c,d)=0;
                p(g,h)=5;
                player=1;
            else
                continue
            end
        case 6 %红方帅
            if c==4&&d==1 %不同位置的不同备选位置
                if p(5,1)==1||p(5,1)==2||p(5,1)==3||p(5,1)==4||p(5,1)==5||p(5,1)==6||p(5,1)==7
                else
                    a61=[5 1];
                    plot(5,1,'o b',"MarkerSize",20)
                end
                if p(4,2)==1||p(4,2)==2||p(4,2)==3||p(4,2)==4||p(4,2)==5||p(4,2)==6||p(4,2)==7
                else
                    a62=[4 2];
                    plot(4,2,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==1
                if p(6,1)==1||p(6,1)==2||p(6,1)==3||p(6,1)==4||p(6,1)==5||p(6,1)==6||p(6,1)==7
                else
                    a61=[6 1];
                    plot(6,1,'o b',"MarkerSize",20)
                end
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a62=[5 2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
                if p(4,1)==1||p(4,1)==2||p(4,1)==3||p(4,1)==4||p(4,1)==5||p(4,1)==6||p(4,1)==7
                else
                    a63=[4 1];
                    plot(4,1,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==1
                if p(6,2)==1||p(6,2)==2||p(6,2)==3||p(6,2)==4||p(6,2)==5||p(6,2)==6||p(6,2)==7
                else 
                    a62=[6 2];
                    plot(6,2,'o b',"MarkerSize",20)
                end
                if p(5,1)==1||p(5,1)==2||p(5,1)==3||p(5,1)==4||p(5,1)==5||p(5,1)==6||p(5,1)==7
                else
                    a63=[5 1];
                    plot(5,1,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==2
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a61=[5 2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
                if p(4,3)==1||p(4,3)==2||p(4,3)==3||p(4,3)==4||p(4,3)==5||p(4,3)==6||p(4,3)==7
                else
                    a62=[4 3];
                    plot(4,3,'o b',"MarkerSize",20)
                end
                if p(4,1)==1||p(4,1)==2||p(4,1)==3||p(4,1)==4||p(4,1)==5||p(4,1)==6||p(4,1)==7
                else
                    a64=[4 1];
                    plot(4,1,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==2
                if p(6,2)==1||p(6,2)==2||p(6,2)==3||p(6,2)==4||p(6,2)==5||p(6,2)==6||p(6,2)==7
                else 
                    a61=[6 2];
                    plot(6,2,'o b',"MarkerSize",20)
                end
                if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                else
                    a62=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                end
                if p(4,2)==1||p(4,2)==2||p(4,2)==3||p(4,2)==4||p(4,2)==5||p(4,2)==6||p(4,2)==7
                else
                    a63=[4 2];
                    plot(4,2,'o b',"MarkerSize",20)
                end
                if p(5,1)==1||p(5,1)==2||p(5,1)==3||p(5,1)==4||p(5,1)==5||p(5,1)==6||p(5,1)==7
                else
                    a64=[5 1];
                    plot(5,1,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==2
                if p(6,3)==1||p(6,3)==2||p(6,3)==3||p(6,3)==4||p(6,3)==5||p(6,3)==6||p(6,3)==7
                else
                    a62=[6 3];
                    plot(6,3,'o b',"MarkerSize",20)
                end
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a63=[5 2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==3
                if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                else
                    a61=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                end
                if p(4,2)==1||p(4,2)==2||p(4,2)==3||p(4,2)==4||p(4,2)==5||p(4,2)==6||p(4,2)==7
                else
                    a63=[4 2];
                    plot(4,2,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==3
                if p(6,3)==1||p(6,3)==2||p(6,3)==3||p(6,3)==4||p(6,3)==5||p(6,3)==6||p(6,3)==7
                else
                    a61=[6 3];
                    plot(6,3,'o b',"MarkerSize",20)
                end
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a64=[5 2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
                if p(4,3)==1||p(4,3)==2||p(4,3)==3||p(4,3)==4||p(4,3)==5||p(4,3)==6||p(4,3)==7
                else
                    a63=[4 3];
                    plot(4,3,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==3
                if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                else
                    a63=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                end
                 if p(6,2)==1||p(6,2)==2||p(6,2)==3||p(6,2)==4||p(6,2)==5||p(6,2)==6||p(6,2)==7
                else 
                    a64=[6 2];
                    plot(6,2,'o b',"MarkerSize",20)
                end
            end
            while(1) %%如果坐标在备选位置中,则落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a61(1)&&h==a61(2))||(g==a62(1)&&h==a62(2))||(g==a63(1)&&h==a63(2))||(g==a64(1)&&h==a64(2))
                p(c,d)=0;
                p(g,h)=6;
                player=1;
            else
                continue
            end
        case 7 %红方炮
            for i=c+1:9 %不同位置的不同备选位置
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                        a71x(i)=i;
                        a71y(i)=d;
                    continue
                elseif p(i,d)~=0
                    tiao1(1)=i;
                    tiao1(2)=d;
                    break
                end
            end
            for i=tiao1(1)+1:9
                if p(i,d)==0
                   continue
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    if i~=c+1
                        break
                    elseif i==c+1
                        break
                    end
                    elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                        plot(i,d,'o b',"MarkerSize",20)
                        a71x(i)=i;
                        a71y(i)=d;
                        break
                end
            end
            for j=d+1:10
                if p(c,j)==0
                   plot(c,j,'o b',"MarkerSize",20)
                   a72x(j)=c;
                   a72y(j)=j;
                    continue
                elseif p(c,j)~=0
                    tiao2(1)=c;
                    tiao2(2)=j;
                    break
                end
            end
            for j=tiao2(2)+1:10
                if p(c,j)==0
                   continue
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    if j~=d+1
                        break
                    elseif j==d+1
                        break
                    end
                    elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                        plot(c,j,'o b',"MarkerSize",20)
                        a72x(j)=c;
                        a72y(j)=j;
                        break
                end
            end
            for i=c-1:-1:1
                if p(i,d)==0
                   plot(i,d,'o b',"MarkerSize",20)
                   a73x(i)=i;
                   a73y(i)=d;
                    continue
                elseif p(i,d)~=0
                    tiao3(1)=i;
                    tiao3(2)=d;
                    break
                end
            end
            for i=tiao3(1)-1:-1:1
                if p(i,d)==0
                    continue
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    if i~=c+1
                        break
                    elseif i==c+1
                        break
                    end
                    elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                        plot(i,d,'o b',"MarkerSize",20)
                        a73x(i)=i;
                        a73y(i)=d;
                        break
                end
            end
            for j=d-1:-1:1
                if p(c,j)==0
                   plot(c,j,'o b',"MarkerSize",20)
                   a74x(j)=c;
                   a74y(j)=j;
                    continue
                elseif p(c,j)~=0
                    tiao4(1)=c;
                    tiao4(2)=j;
                    break
                end
            end
            for j=tiao4(2)-1:-1:1
                if p(c,j)==0
                    continue
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    if j~=d-1
                        break
                    elseif j==d+1
                        break
                    end
                    elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                        plot(c,j,'o b',"MarkerSize",20)
                        a42x(j)=c;
                        a42y(j)=j;
                        break
                end
            end
            while(1) %如果坐标在备选位置中,则落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            for i=1:length(a71x)
                if g==a71x(i)&&h==a71y(i)
                    p(c,d)=0;
                    p(g,h)=7;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a72x)
                if g==a72x(i)&&h==a72y(i)
                    p(c,d)=0;
                    p(g,h)=7;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a73x)
                if g==a73x(i)&&h==a73y(i)
                    p(c,d)=0;
                    p(g,h)=7;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a74x)
                if g==a74x(i)&&h==a74y(i)
                    p(c,d)=0;
                    p(g,h)=7;
                    player=1;
                else
                    continue
                end
            end
    end

%-------------------------------------------------------------------------------------------
    
else %判断是否黑方落棋
    switch p(c,d) %如果点击黑方棋子,将棋子变绿
        case {8 9 10 11 12 13 14} 
            plot(c,d,'o g',"MarkerSize",20)
        otherwise
    end
    switch p(c,d) %根据棋子类型,用蓝色显示出可以所有落棋的位置并用输入落棋点
        case 8 %黑方判定与输入与红方相同
            if d<=5
                if c==1
                     switch p(c,d)
                         case {0 1 2 3 4 5 6 7}
                        plot(c+1,d,'o b',"MarkerSize",20)
                        a81=[c+1 d];
                         otherwise
                     end
                    switch p(c,d)
                        case {0 1 2 3 4 5 6 7}
                        plot(c,d-1,'o b',"MarkerSize",20)
                        a82=[c d-1];
                        otherwise
                    end
                elseif c>=2&&c<=8
                    switch p(c+1,d)
                        case {0 1 2 3 4 5 6 7}
                            plot(c+1,d,'o b',"MarkerSize",20)
                            a81=[c+1 d];
                        otherwise
                            a81=[0 0];
                    end
                    switch p(c-1,d)
                        case {0 1 2 3 4 5 6 7}
                            plot(c-1,d,'o b',"MarkerSize",20)
                            a83=[c-1 d];
                        otherwise
                            a83=[0 0];
                    end
                    switch p(c,d-1)
                        case {0 1 2 3 4 5 6 7}
                            plot(c,d-1,'o b',"MarkerSize",20)
                            a82=[c d-1];
                        otherwise
                            a82=[0 0];
                    end
                elseif c==9
                   switch p(c-1,d)
                        case {0 1 2 3 4 5 6 7}
                            plot(c-1,d,'o b',"MarkerSize",20)
                            a83=[c-1 d];
                        otherwise
                            a83=[0 0];
                    end
                    switch p(c,d-1)
                        case {0 1 2 3 4 5 6 7}
                            plot(c,d-1,'o b',"MarkerSize",20)
                            a82=[c d-1];
                        otherwise
                            a82=[0 0];
                    end
                end
    else
        switch p(c,d-1)
                    case {0 1 2 3 4 5 6 7}
                        plot(c,d-1,'o b',"MarkerSize",20)
                        a82=[c d-1];
                    otherwise
                        a82=[0 0];
         end
    end
    while(1)
        [e,f]=ginput(1);
        g=round(e);
        h=round(f);
        if g>=1&&h>=1
            break
        end
    end
    if (g==a81(1)&&h==a81(2))||(g==a82(1)&&h==a82(2))||(g==a83(1)&&h==a83(2))
                p(c,d)=0;
                p(g,h)=8;
                player=0;
    end
    case 9
            for i=c+1:9
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                    a91x(i)=i;
                    a91y(i)=d;
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    if i~=c+1
                        plot(i-1,d,'o b',"MarkerSize",20)
                        break
                    elseif i==c+1
                        break
                    end
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    plot(i,d,'o b',"MarkerSize",20)
                    a91x(i)=i;
                    a91y(i)=d;
                    break
                end
            end
            for i=c-1:-1:1
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                    a93x(i)=i;
                    a93y(i)=d;
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    if i~=c-1
                        plot(i+1,d,'o b',"MarkerSize",20)
                        break
                    elseif i==c-1
                        break
                    end
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    plot(i,d,'o b',"MarkerSize",20)
                    a93x(i)=i;
                    a93y(i)=d;
                    break
                end
            end
            for j=d+1:10
                if p(c,j)==0
                    plot(c,j,'o b',"MarkerSize",20)
                    a92x(j)=c;
                    a92y(j)=j;
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    if j~=d+1
                        plot(c,j-1,'o b',"MarkerSize",20)
                        break
                    elseif j==d+1
                        d2=0;
                        break
                    end
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    plot(c,j,'o b',"MarkerSize",20)
                    a92x(j)=c;
                    a92y(j)=j;
                    break
                end
            end
            for j=d-1:-1:1
                if p(c,j)==0
                    plot(c,j,'o b',"MarkerSize",20)
                    a94x(j)=c;
                    a94y(j)=j;
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    if j~=d-1
                        plot(c,j+1,'o b',"MarkerSize",20)
                        break
                    elseif j==d-1
                        break
                    end
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    plot(c,j,'o b',"MarkerSize",20)
                    a94x(j)=c;
                    a94y(j)=j;
                    break
                end
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            for i=1:length(a91x)
                if g==a91x(i)&&h==a91y(i)
                    p(c,d)=0;
                    p(g,h)=9;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a92x)
                if g==a92x(i)&&h==a92y(i)
                    p(c,d)=0;
                    p(g,h)=9;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a93x)
                if g==a93x(i)&&h==a93y(i)
                    p(c,d)=0;
                    p(g,h)=9;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a94x)
                if g==a94x(i)&&h==a94y(i)
                    p(c,d)=0;
                    p(g,h)=9;
                    player=0;
                else
                    continue
                end
            end
            case 10
            a101=[c+2,d+1];
            a102=[c+1,d+2];
            a103=[c-1,d+2];
            a104=[c-2,d+1];
            a105=[c-2,d-1];
            a106=[c-1,d-2];
            a107=[c+1,d-2];
            a108=[c+2,d-1];
            if c==9||c==8
                a101=[0 0];
            elseif d==10
                a101=[0 0];
            elseif p(c+1,d)~=0
                a101=[0 0];
            elseif p(c+2,d+1)==8||p(c+2,d+1)==9||p(c+2,d+1)==10||p(c+2,d+1)==11||p(c+2,d+1)==12||p(c+2,d+1)==13||p(c+2,d+1)==14
                a101=[0 0];
            else
                plot(c+2,d+1,'o b',"MarkerSize",20)
            end
            if c==9
                a102=[0 0];
            elseif d==10||d==9
                a102=[0 0];
            elseif p(c,d+1)~=0
                a102=[0 0];
            elseif p(c+1,d+2)==8||p(c+1,d+2)==9||p(c+1,d+2)==10||p(c+1,d+2)==11||p(c+1,d+2)==12||p(c+1,d+2)==13||p(c+1,d+2)==14
                a102=[0 0];
            else
                plot(c+1,d+2,'o b',"MarkerSize",20)
            end
            if c==1
                a103=[0 0];
            elseif d==10||d==9
                a103=[0 0];
            elseif p(c,d+1)~=0
                a103=[0 0];
            elseif p(c-1,d+2)==8||p(c-1,d+2)==9||p(c-1,d+2)==10||p(c-1,d+2)==11||p(c-1,d+2)==12||p(c-1,d+2)==13||p(c-1,d+2)==14
                a103=[0 0];
            else
                plot(c-1,d+2,'o b',"MarkerSize",20)
            end
            if c==1||c==2
                a104=[0 0];
            elseif d==10
                a104=[0 0];
            elseif p(c-1,d)~=0
                a104=[0 0];
            elseif p(c-2,d+1)==8||p(c-2,d+1)==9||p(c-2,d+1)==10||p(c-2,d+1)==11||p(c-2,d+1)==12||p(c-2,d+1)==13||p(c-2,d+1)==14
                a104=[0 0];
            else
                plot(c-2,d+1,'o b',"MarkerSize",20)
            end
            if c==1||c==2
                a105=[0 0];
            elseif d==1
                a105=[0 0];
            elseif p(c-1,d)~=0
                a105=[0 0];
            elseif p(c-2,d-1)==8||p(c-2,d-1)==9||p(c-2,d-1)==10||p(c-2,d-1)==11||p(c-2,d-1)==12||p(c-2,d-1)==13||p(c-2,d-1)==14
                a105=[0 0];
            else
                plot(c-2,d-1,'o b',"MarkerSize",20)
            end
            if c==1
                a106=[0 0];
            elseif d==1||d==2
                a106=[0 0];
            elseif p(c,d-1)~=0
                a106=[0 0];
            elseif p(c-1,d-2)==8||p(c-1,d-2)==9||p(c-1,d-2)==10||p(c-1,d-2)==11||p(c-1,d-2)==12||p(c-1,d-2)==13||p(c-1,d-2)==14
                a106=[0 0];
            else
                plot(c-1,d-2,'o b',"MarkerSize",20)
            end
            if c==9
                a107=[0 0];
            elseif d==1||d==2
                a107=[0 0];
            elseif p(c,d-1)~=0
                a107=[0 0];
            elseif p(c+1,d-2)==8||p(c+1,d-2)==9||p(c+1,d-2)==10||p(c+1,d-2)==11||p(c+1,d-2)==12||p(c+1,d-2)==13||p(c+1,d-2)==14
                a107=[0 0];
            else
                plot(c+1,d-2,'o b',"MarkerSize",20)
            end
            if c==9||c==8
                a108=[0 0];
            elseif d==1
                a108=[0 0];
            elseif p(c+1,d)~=0
                a108=[0 0];
            elseif p(c+2,d-1)==8||p(c+2,d-1)==9||p(c+2,d-1)==10||p(c+2,d-1)==11||p(c+2,d-1)==12||p(c+2,d-1)==13||p(c+2,d-1)==14
                a108=[0 0];
            else
                plot(c+2,d-1,'o b',"MarkerSize",20)
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a101(1)&&h==a101(2))||(g==a102(1)&&h==a102(2))||(g==a103(1)&&h==a103(2))||(g==a104(1)&&h==a104(2))||(g==a105(1)&&h==a105(2))||(g==a106(1)&&h==a106(2))||(g==a107(1)&&h==a107(2))||(g==a108(1)&&h==a108(2))
                p(c,d)=0;
                p(g,h)=10;
                player=0;
            else
                continue
            end
        case 11
            if c==3&&d==10
                if p(2,9)==0
                    if p(1,8)==8||p(1,8)==9||p(1,8)==10||p(1,8)==11||p(1,8)==12||p(1,8)==13||p(1,8)==14
                    else
                        a113=[1 8];
                        plot(1,8,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,9)==0
                    if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                    else
                        a114=[5 8];
                        plot(5,8,'o b',"MarkerSize",20)
                    end
                end
            elseif c==7&&d==10
                if p(6,9)==0
                    if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                    else
                        a113=[5 8];
                        plot(5,8,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(8,9)==0
                    if p(9,8)==8||p(9,8)==9||p(9,8)==10||p(9,8)==11||p(9,8)==12||p(9,8)==13||p(9,8)==14
                    else
                        a114=[9 8];
                        plot(9,8,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==1&&d==8
                if p(2,9)==0
                    if p(3,10)==8||p(3,10)==9||p(3,10)==10||p(3,10)==11||p(3,10)==12||p(3,10)==13||p(3,10)==14
                    else
                        a111=[3 10];
                        plot(3,10,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(2,7)==0
                    if p(3,6)==8||p(3,6)==9||p(3,6)==10||p(3,6)==11||p(3,6)==12||p(3,6)==13||p(3,6)==14
                    else
                        a114=[3,6];
                        plot(3,6,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==5&&d==8
                if p(6,9)==0
                    if p(7,10)==8||p(7,10)==9||p(7,10)==10||p(7,10)==11||p(7,10)==12||p(7,10)==13||p(7,10)==14
                    else
                        a111=[7 10];
                        plot(7,10,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,9)==0
                    if p(3,10)==8||p(3,10)==9||p(3,10)==10||p(3,10)==11||p(3,10)==12||p(3,10)==13||p(3,10)==14
                    else
                        a112=[3 10];
                        plot(3,10,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,7)==0
                    if p(3,6)==8||p(3,6)==9||p(3,6)==10||p(3,6)==11||p(3,6)==12||p(3,6)==13||p(3,6)==14
                    else
                        a113=[3 6];
                        plot(3,6,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(6,7)==0
                    if p(7,6)==8||p(7,6)==9||p(7,6)==10||p(7,6)==11||p(7,6)==12||p(7,6)==13||p(7,6)==14
                    else
                        a114=[7 6];
                        plot(7,6,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==9&&d==8
                if p(8,9)==0
                    if p(7,10)==8||p(7,10)==9||p(7,10)==10||p(7,10)==11||p(7,10)==12||p(7,10)==13||p(7,10)==14
                    else
                        a112=[7 10];
                        plot(7,10,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(8,7)==0
                    if p(7,6)==8||p(7,6)==9||p(7,6)==10||p(7,6)==11||p(7,6)==12||p(7,6)==13||p(7,6)==14
                    else
                        a113=[7 6];
                        plot(7,6,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==3&&d==6
                if p(4,7)==0
                    if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                    else
                        a111=[5 8];
                        plot(5,8,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(2,7)==0
                    if p(1,8)==8||p(1,8)==9||p(1,8)==10||p(1,8)==11||p(1,8)==12||p(1,8)==13||p(1,8)==14
                    else
                        a112=[1 8];
                        plot(1,8,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==7&&d==6
                if p(8,7)==0
                    if p(9,8)==8||p(9,8)==9||p(9,8)==10||p(9,8)==11||p(9,8)==12||p(9,8)==13||p(9,8)==14
                    else
                        a111=[9 8];
                        plot(9,8,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(6,7)==0
                    if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                    else
                        a112=[5 8];
                        plot(5,8,'o b',"MarkerSize",20)
                    end
                else
                end
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a111(1)&&h==a111(2))||(g==a112(1)&&h==a112(2))||(g==a113(1)&&h==a113(2))||(g==a114(1)&&h==a114(2))
                p(c,d)=0;
                p(g,h)=11;
                player=0;
            else
            end
        case 12
            if c==4&&d==10
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a124=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==10
                 if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                 else
                    a123=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                 end
            elseif c==5&&d==9
                if p(6,10)==8||p(6,10)==9||p(6,10)==10||p(6,10)==11||p(6,10)==12||p(6,10)==13||p(6,10)==14
                else
                    a121=[6 10];
                    plot(6,10,'o b',"MarkerSize",20)
                end
                if p(4,10)==8||p(4,10)==9||p(4,10)==10||p(4,10)==11||p(4,10)==12||p(4,10)==13||p(4,10)==14
                else
                     a122=[4 10];
                     plot(4,10,'o b',"MarkerSize",20)
                end
                if p(4,8)==8||p(4,8)==9||p(4,8)==10||p(4,8)==11||p(4,8)==12||p(4,8)==13||p(4,8)==14
                else
                    a123=[4 8];
                    plot(4,8,'o b',"MarkerSize",20)
                end
                if p(6,8)==8||p(6,8)==9||p(6,8)==10||p(6,8)==11||p(6,8)==12||p(6,8)==13||p(6,8)==14
                else
                    a124=[6 8];
                    plot(6,8,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==8
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a121=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==8
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a122=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a121(1)&&h==a121(2))||(g==a122(1)&&h==a122(2))||(g==a123(1)&&h==a123(2))||(g==a124(1)&&h==a124(2))
                p(c,d)=0;
                p(g,h)=12;
                player=0;
            else
            end
        case 13
            if c==4&&d==10
                if p(5,10)==8||p(5,10)==9||p(5,10)==10||p(5,10)==11||p(5,10)==12||p(5,10)==13||p(5,10)==14
                else
                    a131=[5,10];
                    plot(5,10,'o b',"MarkerSize",20)
                end
                if p(4,9)==8||p(4,9)==9||p(4,9)==10||p(4,9)==11||p(4,9)==12||p(4,9)==13||p(4,9)==14
                else
                    a134=[4 9];
                    plot(4,9,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==10
                if p(6,10)==8||p(6,10)==9||p(6,10)==10||p(6,10)==11||p(6,10)==12||p(6,10)==13||p(6,10)==14
                else
                    a131=[6 10];
                    plot(6,10,'o b',"MarkerSize",20)
                end
                if p(4,10)==8||p(4,10)==9||p(4,10)==10||p(4,10)==11||p(4,10)==12||p(4,10)==13||p(4,10)==14
                else
                    a133=[4 10];
                    plot(4,10,'o b',"MarkerSize",20)
                end
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a134=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==10
                if p(5,10)==8||p(5,10)==9||p(5,10)==10||p(5,10)==11||p(5,10)==12||p(5,10)==13||p(5,10)==14
                else
                    a133=[5,10];
                    plot(5,10,'o b',"MarkerSize",20)
                end
                if p(6,9)==8||p(6,9)==9||p(6,9)==10||p(6,9)==11||p(6,9)==12||p(6,9)==13||p(6,9)==14
                else
                    a134=[6 9];
                    plot(6,9,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==9
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a131=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
                if p(4,10)==8||p(4,10)==9||p(4,10)==10||p(4,10)==11||p(4,10)==12||p(4,10)==13||p(4,10)==14
                else
                    a132=[4 10];
                    plot(4,10,'o b',"MarkerSize",20)
                end
                if p(4,8)==8||p(4,8)==9||p(4,8)==10||p(4,8)==11||p(4,8)==12||p(4,8)==13||p(4,8)==14
                else 
                    a134=[4 8];
                    plot(4,8,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==9
                if p(6,9)==8||p(6,9)==9||p(6,9)==10||p(6,9)==11||p(6,9)==12||p(6,9)==13||p(6,9)==14
                else
                    a131=[6 9];
                    plot(6,9,'o b',"MarkerSize",20)
                end
                if p(5,10)==8||p(5,10)==9||p(5,10)==10||p(5,10)==11||p(5,10)==12||p(5,10)==13||p(5,10)==14
                else
                    a132=[5,10];
                    plot(5,10,'o b',"MarkerSize",20)
                end
                if p(4,9)==8||p(4,9)==9||p(4,9)==10||p(4,9)==11||p(4,9)==12||p(4,9)==13||p(4,9)==14
                else
                    a133=[4 9];
                    plot(4,9,'o b',"MarkerSize",20)
                end
                if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                else
                    a134=[5 8];
                    plot(5,8,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==9
                if p(6,10)==8||p(6,10)==9||p(6,10)==10||p(6,10)==11||p(6,10)==12||p(6,10)==13||p(6,10)==14
                else
                    a132=[6 10];
                    plot(6,10,'o b',"MarkerSize",20)
                end
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a133=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
                if p(6,8)==8||p(6,8)==9||p(6,8)==10||p(6,8)==11||p(6,8)==12||p(6,8)==13||p(6,8)==14
                else
                    a134=[6 8];
                    plot(6,8,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==8
                if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                else
                    a131=[5 8];
                    plot(5,8,'o b',"MarkerSize",20)
                end
                if p(4,9)==8||p(4,9)==9||p(4,9)==10||p(4,9)==11||p(4,9)==12||p(4,9)==13||p(4,9)==14
                else
                    a132=[4 9];
                    plot(4,9,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==8
                if p(6,8)==8||p(6,8)==9||p(6,8)==10||p(6,8)==11||p(6,8)==12||p(6,8)==13||p(6,8)==14
                else
                    a131=[6 8];
                    plot(6,8,'o b',"MarkerSize",20)
                end
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a132=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
                if p(4,8)==8||p(4,8)==9||p(4,8)==10||p(4,8)==11||p(4,8)==12||p(4,8)==13||p(4,8)==14
                else 
                    a133=[4 8];
                    plot(4,8,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==8
                if p(6,9)==8||p(6,9)==9||p(6,9)==10||p(6,9)==11||p(6,9)==12||p(6,9)==13||p(6,9)==14
                else
                    a132=[6 9];
                    plot(6,9,'o b',"MarkerSize",20)
                end
                 if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                else
                    a133=[5 8];
                    plot(5,8,'o b',"MarkerSize",20)
                 end
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a131(1)&&h==a131(2))||(g==a132(1)&&h==a132(2))||(g==a133(1)&&h==a133(2))||(g==a134(1)&&h==a134(2))
                p(c,d)=0;
                p(g,h)=13;
                player=0;
            else
            end
       case 14
            for i=c+1:9
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                        a141x(i)=i;
                        a141y(i)=d;
                    continue
                elseif p(i,d)~=0
                    tiao1(1)=i;
                    tiao1(2)=d;
                    break
                end
            end
            for i=tiao1(1)+1:9
                if p(i,d)==0
                   continue
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    if i~=c+1
                        break
                    elseif i==c+1
                        break
                    end
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                        plot(i,d,'o b',"MarkerSize",20)
                        a141x(i)=i;
                        a141y(i)=d;
                        break
                end
            end
            for j=d+1:10
                if p(c,j)==0
                   plot(c,j,'o b',"MarkerSize",20)
                   a142x(j)=c;
                   a142y(j)=j;
                    continue
                elseif p(c,j)~=0
                    tiao2(1)=c;
                    tiao2(2)=j;
                    break
                end
            end
            for j=tiao2(2)+1:10
                if p(c,j)==0
                   continue
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    if j~=d+1
                        break
                    elseif j==d+1
                        break
                    end
                 elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                        plot(c,j,'o b',"MarkerSize",20)
                        a142x(j)=c;
                        a142y(j)=j;
                        break
                end
            end
            for i=c-1:-1:1
                if p(i,d)==0
                   plot(i,d,'o b',"MarkerSize",20)
                   a143x(i)=i;
                   a143y(i)=d;
                    continue
                elseif p(i,d)~=0
                    tiao3(1)=i;
                    tiao3(2)=d;
                    break
                end
            end
            for i=tiao3(1)-1:-1:1
                if p(i,d)==0
                    continue
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    if i~=c+1
                        break
                    elseif i==c+1
                        break
                    end
                 elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                        plot(i,d,'o b',"MarkerSize",20)
                        a143x(i)=i;
                        a143y(i)=d;
                        break
                end
            end
            for j=d-1:-1:1
                if p(c,j)==0
                   plot(c,j,'o b',"MarkerSize",20)
                   a144x(j)=c;
                   a144y(j)=j;
                    continue
                elseif p(c,j)~=0
                    tiao4(1)=c;
                    tiao4(2)=j;
                    break
                end
            end
            for j=tiao4(2)-1:-1:1
                if p(c,j)==0
                    continue
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    if j~=d-1
                        break
                    elseif j==d+1
                        break
                    end
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                        plot(c,j,'o b',"MarkerSize",20)
                        a144x(j)=c;
                        a144y(j)=j;
                        break
                end
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            for i=1:length(a141x)
                if g==a141x(i)&&h==a141y(i)
                    p(c,d)=0;
                    p(g,h)=14;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a142x)
                if g==a142x(i)&&h==a142y(i)
                    p(c,d)=0;
                    p(g,h)=14;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a143x)
                if g==a143x(i)&&h==a143y(i)
                    p(c,d)=0;
                    p(g,h)=14;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a144x)
                if g==a144x(i)&&h==a144y(i)
                    p(c,d)=0;
                    p(g,h)=14;
                    player=0;
                else
                    continue
                end
            end
    end
end

落子后重新绘制一次棋盘和棋子

代码:

clf %落子后重新绘制一次棋盘和棋子
hold on
axis([1,9,1,10]);
axis square;
x=1:9;
y=1:10;
shu1=linspace(10,10,9);
shu2=linspace(6,6,9);
shu3=[10,5,5,5,5,5,5,5,10];
stem(x,shu1,'- . k',"MarkerSize",0.001);
stem(x,shu2,'- . w',"MarkerSize",0.001);
stem(x,shu3,'- . k',"MarkerSize",0.001);
xie1x=[4,5,6,5,6,5,4];
xie1y=[1,2,1,2,3,2,3];
xie2x=[4,5,6,5,6,5,4];
xie2y=[10,9,10,9,8,9,8];
for i=1:10
    for j=1:9
        heng(i,j)=11-i;
    end
        plot(x,heng(i,:),'k-')
end
plot(xie1x,xie1y,'k')
plot(xie2x,xie2y,'k')
for i=1:9
    for j=1:10
        switch p(i,j)
            case 1
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'兵',"Color",[1 0 0])
            case 2
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'车',"Color",[1 0 0])
            case 3
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'马',"Color",[1 0 0])
            case 4
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'象',"Color",[1 0 0])
            case 5
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'士',"Color",[1 0 0])
            case 6
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'帅',"Color",[1 0 0])
            case 7
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'炮',"Color",[1 0 0])
            case 8
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'兵',"Color",[0 0 0])
            case 9
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'车',"Color",[0 0 0])
            case 10
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'马',"Color",[0 0 0])
            case 11
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'象',"Color",[0 0 0])
            case 12
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'士',"Color",[0 0 0])
            case 13
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'帅',"Color",[0 0 0])
            case 14
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'炮',"Color",[0 0 0])
            otherwise
                continue
        end
    end
end

效果:

判断游戏是否结束(将帅被吃或者将帅碰面)

代码:

hongshuai=0; %初始化红方帅状态
heishuai=0; %初始化黑方帅状态
for i=1:9 %更新红方帅状态
    for j=1:10
        if p(i,j)==6
            hongshuai=1;
            p6(1)=i;
            p6(2)=j;
            break
        else
        end
    end
end
for i=1:9 %更新黑方帅状态
    for j=1:10
        if p(i,j)==13
            heishuai=1;
            p13(1)=i;
            p13(2)=j;
            break
        else
            continue
        end
    end
end
if p6(1)==p13(1) %判定将帅是否碰面
    for j=p6(2)+1:p13(2)
        if p(p6(1),j)==0||p(p6(1),j)==13
            zhishuai=1;
            continue    
        else
            zhishuai=0;
            break
        end
    end
end
if (hongshuai==1&&heishuai==1) %判断游戏是否结束
    if zhishuai==0
        continue
    elseif zhishuai==1
        return
    end
else
    return
end

整体代码:

代码:

%0:空位
%1:红-兵
%2:红-车
%3:红-马
%4:红-象
%5:红-士
%6:红-帅
%7:红-炮
%8:黑-兵
%9:黑-车
%10:黑-马
%11:黑-象
%12:黑-士
%13:黑-帅
%14:黑-炮
clear;
clf;
clc;
p=zeros(9,10);
player=0;
d2=1;
a11=[0 0];   %初始化各个棋子各方位的可移动位置
a12=[0 0];
a13=[0 0];
a21x=0;
a21y=0;
a22x=0;
a22y=0;
a23x=0;
a23y=0;
a24x=0;
a24y=0;
a31=[0,0];
a32=[0,0];
a33=[0,0];
a34=[0,0];
a35=[0,0];
a36=[0,0];
a37=[0,0];
a38=[0,0];
a41=[0 0];
a42=[0 0];
a43=[0 0];
a44=[0 0];
a51=[0 0];
a52=[0 0];
a53=[0 0];
a54=[0 0];
a61=[0 0];
a62=[0 0];
a63=[0 0];
a64=[0 0];
a71x=0;
a71y=0;
a72x=0;
a72y=0;
a73x=0;
a73y=0;
a74x=0;
a74y=0;

a81=[0 0];
a82=[0 0];
a83=[0 0];
a91x=0;
a91y=0;
a92x=0;
a92y=0;
a93x=0;
a93y=0;
a94x=0;
a94y=0;
a101=[0 0];
a102=[0 0];
a103=[0 0];
a104=[0 0];
a105=[0 0];
a106=[0 0];
a107=[0 0];
a108=[0 0];
a111=[0 0];
a112=[0 0];
a113=[0 0];
a114=[0 0];
a121=[0 0];
a122=[0 0];
a123=[0 0];
a124=[0 0];
a131=[0 0];
a132=[0 0];
a133=[0 0];
a134=[0 0];
a141x=0;
a141y=0;
a142x=0;
a142y=0;
a143x=0;
a143y=0;
a144x=0;
a144y=0;

tiao1=[0 0]; %初始化炮跳板位置
tiao2=[0 0];
tiao3=[0 0];
tiao4=[0 0];
%--------------------------------------------------------------------------------

p(1,4)=1; %初始化红方棋子位置
p(3,4)=1;
p(5,4)=1;
p(7,4)=1;
p(9,4)=1;
p(9,1)=2;
p(1,1)=2;
p(2,1)=3;
p(8,1)=3;
p(3,1)=4;
p(7,1)=4;
p(4,1)=5;
p(6,1)=5;
p(5,1)=6;
p(2,3)=7;
p(8,3)=7;

%---------------------------------------------------------------------------------

p(1,7)=8; %初始化黑方棋子位置
p(3,7)=8;
p(5,7)=8;
p(7,7)=8;
p(9,7)=8;
p(1,10)=9;
p(9,10)=9;
p(2,10)=10;
p(8,10)=10;
p(3,10)=11;
p(7,10)=11;
p(4,10)=12;
p(6,10)=12;
p(5,10)=13;
p(2,8)=14;
p(8,8)=14;

%-------------------------------------------------------------------------------

while(1)
clf %绘制棋盘
hold on
axis([1,9,1,10]);
axis square;
x=1:9;
y=1:10;
shu1=linspace(10,10,9);
shu2=linspace(6,6,9);
shu3=[10,5,5,5,5,5,5,5,10];
stem(x,shu1,'- . k',"MarkerSize",0.001);
stem(x,shu2,'- . w',"MarkerSize",0.001);
stem(x,shu3,'- . k',"MarkerSize",0.001);
xie1x=[4,5,6,5,6,5,4];
xie1y=[1,2,1,2,3,2,3];
xie2x=[4,5,6,5,6,5,4];
xie2y=[10,9,10,9,8,9,8];
for i=1:10
    for j=1:9
        heng(i,j)=11-i;
    end
        plot(x,heng(i,:),'k-')
end
plot(xie1x,xie1y,'k')
plot(xie2x,xie2y,'k')

%----------------------------------------------------------------------------

for i=1:9 %绘制棋子
    for j=1:10
        switch p(i,j)
            case 1
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'兵',"Color",[1 0 0])
            case 2
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'车',"Color",[1 0 0])
            case 3
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'马',"Color",[1 0 0])
            case 4
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'象',"Color",[1 0 0])
            case 5
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'士',"Color",[1 0 0])
            case 6
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'帅',"Color",[1 0 0])
            case 7
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'炮',"Color",[1 0 0])
            case 8
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'兵',"Color",[0 0 0])
            case 9
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'车',"Color",[0 0 0])
            case 10
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'马',"Color",[0 0 0])
            case 11
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'象',"Color",[0 0 0])
            case 12
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'士',"Color",[0 0 0])
            case 13
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'帅',"Color",[0 0 0])
            case 14
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'炮',"Color",[0 0 0])
            otherwise
                continue
        end
    end
end


%----------------------------------------------------------------------------

while(1) 
    [a,b]=ginput(1); %鼠标点击一个有效坐标
    c=round(a);
    d=round(b);
    if (c>=1&&d>=1)&&(c<=9&&d<=10)
        break
    end
end
if player==0 %判断是否红方落棋
    switch p(c,d) %如果点击红方棋子,将棋子变绿
        case {1 2 3 4 5 6 7}
            plot(c,d,'o g',"MarkerSize",20)
        otherwise
    end
    switch p(c,d) %根据棋子类型,用蓝色显示出可以所有落棋的位置并用输入落棋点
        case 1 %红方兵
            if d>=6 %在河对岸的行为模式
                if c==1 %兵各个位置可以落棋的备选位置
                    switch p(c+1,d)
                        case {8,9,10,11,12,13,14,0}
                        plot(c+1,d,'o b',"MarkerSize",20)
                        a11=[c+1 d];
                        otherwise
                            a11=[0 0];
                    end
                    switch p(c,d+1)
                        case {8,9,10,11,12,13,14,0}
                        plot(c,d+1,'o b',"MarkerSize",20)
                        a12=[c d+1];
                        otherwise
                            a12=[0 0];
                    end
                elseif c>=2&&c<=8
                    switch p(c+1,d)
                        case {8,9,10,11,12,13,14,0}
                            plot(c+1,d,'o b',"MarkerSize",20)
                            a11=[c+1 d];
                        otherwise
                            a11=[0 0];
                    end
                    switch p(c-1,d)
                        case {8,9,10,11,12,13,14,0}
                            plot(c-1,d,'o b',"MarkerSize",20)
                            a13=[c-1 d];
                        otherwise
                            a13=[0 0];
                    end
                    switch p(c,d+1)
                        case {8,9,10,11,12,13,14,0}
                            plot(c,d+1,'o b',"MarkerSize",20)
                            a12=[c d+1];
                        otherwise
                            a12=[0 0];
                    end
                elseif c==9
                    switch p(c-1,d)
                        case {8,9,10,11,12,13,14,0}
                            plot(c-1,d,'o b',"MarkerSize",20)
                            a13=[c-1 d];
                        otherwise
                            a13=[0 0];
                    end
                    switch p(c,d+1)
                        case {8,9,10,11,12,13,14,0}
                            plot(c,d+1,'o b',"MarkerSize",20)
                            a12=[c d+1];
                        otherwise
                            a12=[0 0];
                    end
                end
            else %在本岸的行为模式
                switch p(c,d+1)
                    case {8,9,10,11,12,13,14,0}
                        plot(c,d+1,'o b',"MarkerSize",20)
                        a12=[c d+1];
                    otherwise
                        a12=[0 0];
                end
            end
            while(1) %输入一个有效坐标
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a11(1)&&h==a11(2))||(g==a12(1)&&h==a12(2))||(g==a13(1)&&h==a13(2)) %如果坐标在备选位置中,则落子并改变为玩家1落子
                p(c,d)=0;
                p(g,h)=1;
                player=1;
            end
         case 2 %红方车
            for i=c+1:9 %正右方的备选位置
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                    a21x(i)=i;
                    a21y(i)=d;
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    if i~=c+1
                        plot(i-1,d,'o b',"MarkerSize",20)
                        break
                    elseif i==c+1
                        d2=0;
                        break
                    end
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    plot(i,d,'o b',"MarkerSize",20)
                    a21x(i)=i;
                    a21y(i)=d;
                    break
                end
            end
            for i=c-1:-1:1 %正左方的备选位置
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                    a23x(i)=i;
                    a23y(i)=d;
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    if i~=c-1
                        plot(i+1,d,'o b',"MarkerSize",20)
                        break
                    elseif i==c-1
                        break
                    end
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    plot(i,d,'o b',"MarkerSize",20)
                    a23x(i)=i;
                    a23y(i)=d;
                    break
                end
            end
            for j=d+1:10 %正上方的备选位置
                if p(c,j)==0
                    plot(c,j,'o b',"MarkerSize",20)
                    a22x(j)=c;
                    a22y(j)=j;
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    if j~=d+1
                        plot(c,j-1,'o b',"MarkerSize",20)
                        break
                    elseif j==d+1
                        d2=0;
                        break
                    end
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    plot(c,j,'o b',"MarkerSize",20)
                    a22x(j)=c;
                    a22y(j)=j;
                    break
                end
            end
            for j=d-1:-1:1 %正下方的备选位置
                if p(c,j)==0
                    plot(c,j,'o b',"MarkerSize",20)
                    a24x(j)=c;
                    a24y(j)=j;
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    if j~=d-1
                        plot(c,j+1,'o b',"MarkerSize",20)
                        break
                    elseif j==d-1
                        break
                    end
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    plot(c,j,'o b',"MarkerSize",20)
                    a24x(j)=c;
                    a24y(j)=j;
                    break
                end
            end
            while(1) %输入一个有效坐标并与四个方向的备选位置匹配,落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            for i=1:length(a21x)
                if g==a21x(i)&&h==a21y(i)
                    p(c,d)=0;
                    p(g,h)=2;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a22x)
                if g==a22x(i)&&h==a22y(i)
                    p(c,d)=0;
                    p(g,h)=2;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a23x)
                if g==a23x(i)&&h==a23y(i)
                    p(c,d)=0;
                    p(g,h)=2;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a24x)
                if g==a24x(i)&&h==a24y(i)
                    p(c,d)=0;
                    p(g,h)=2;
                    player=1;
                else
                    continue
                end
            end
        case 3 %红方马
            a31=[c+2,d+1]; %八个可能的落脚点
            a32=[c+1,d+2];
            a33=[c-1,d+2];
            a34=[c-2,d+1];
            a35=[c-2,d-1];
            a36=[c-1,d-2];
            a37=[c+1,d-2];
            a38=[c+2,d-1];
            if c==9||c==8  %判断各个落脚点是否可行
                a31=[0 0];
            elseif d==10
                a31=[0 0];
            elseif p(c+1,d)~=0
                a31=[0 0];
            elseif p(c+2,d+1)==1||p(c+2,d+1)==2||p(c+2,d+1)==3||p(c+2,d+1)==4||p(c+2,d+1)==5||p(c+2,d+1)==6||p(c+2,d+1)==7
                a31=[0 0];
            else
                plot(c+2,d+1,'o b',"MarkerSize",20)
            end
            if c==9
                a32=[0 0];
            elseif d==10||d==9
                a32=[0 0];
            elseif p(c,d+1)~=0
                a32=[0 0];
            elseif p(c+1,d+2)==1||p(c+1,d+2)==2||p(c+1,d+2)==3||p(c+1,d+2)==4||p(c+1,d+2)==5||p(c+1,d+2)==6||p(c+1,d+2)==7
                a31=[0 0];
            else
                plot(c+1,d+2,'o b',"MarkerSize",20)
            end
            if c==1
                a33=[0 0];
            elseif d==10||d==9
                a33=[0 0];
            elseif p(c,d+1)~=0
                a33=[0 0];
            elseif p(c-1,d+2)==1||p(c-1,d+2)==2||p(c-1,d+2)==3||p(c-1,d+2)==4||p(c-1,d+2)==5||p(c-1,d+2)==6||p(c-1,d+2)==7
                a33=[0 0];
            else
                plot(c-1,d+2,'o b',"MarkerSize",20)
            end
            if c==1||c==2
                a34=[0 0];
            elseif d==10
                a34=[0 0];
            elseif p(c-1,d)~=0
                a34=[0 0];
            elseif p(c-2,d+1)==1||p(c-2,d+1)==2||p(c-2,d+1)==3||p(c-2,d+1)==4||p(c-2,d+1)==5||p(c-2,d+1)==6||p(c-2,d+1)==7
                a34=[0 0];
            else
                plot(c-2,d+1,'o b',"MarkerSize",20)
            end
            if c==1||c==2
                a35=[0 0];
            elseif d==1
                a35=[0 0];
            elseif p(c-1,d)~=0
                a35=[0 0];
            elseif p(c-2,d-1)==1||p(c-2,d-1)==2||p(c-2,d-1)==3||p(c-2,d-1)==4||p(c-2,d-1)==5||p(c-2,d-1)==6||p(c-2,d-1)==7
                a35=[0 0];
            else
                plot(c-2,d-1,'o b',"MarkerSize",20)
            end
            if c==1
                a36=[0 0];
            elseif d==1||d==2
                a36=[0 0];
            elseif p(c,d-1)~=0
                a36=[0 0];
            elseif p(c-1,d-2)==1||p(c-1,d-2)==2||p(c-1,d-2)==3||p(c-1,d-2)==4||p(c-1,d-2)==5||p(c-1,d-2)==6||p(c-1,d-2)==7
                a36=[0 0];
            else
                plot(c-1,d-2,'o b',"MarkerSize",20)
            end
            if c==9
                a37=[0 0];
            elseif d==1||d==2
                a37=[0 0];
            elseif p(c,d-1)~=0
                a37=[0 0];
            elseif p(c+1,d-2)==1||p(c+1,d-2)==2||p(c+1,d-2)==3||p(c+1,d-2)==4||p(c+1,d-2)==5||p(c+1,d-2)==6||p(c+1,d-2)==7
                a37=[0 0];
            else
                plot(c+1,d-2,'o b',"MarkerSize",20)
            end
            if c==9||c==8
                a38=[0 0];
            elseif d==1
                a38=[0 0];
            elseif p(c+1,d)~=0
                a38=[0 0];
            elseif p(c+2,d-1)==1||p(c+2,d-1)==2||p(c+2,d-1)==3||p(c+2,d-1)==4||p(c+2,d-1)==5||p(c+2,d-1)==6||p(c+2,d-1)==7
                a38=[0 0];
            else
                plot(c+2,d-1,'o b',"MarkerSize",20)
            end
            while(1) %如果坐标在备选位置中,则落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a31(1)&&h==a31(2))||(g==a32(1)&&h==a32(2))||(g==a33(1)&&h==a33(2))||(g==a34(1)&&h==a34(2))||(g==a35(1)&&h==a35(2))||(g==a36(1)&&h==a36(2))||(g==a37(1)&&h==a37(2))||(g==a38(1)&&h==a38(2))
                p(c,d)=0;
                p(g,h)=3;
                player=1;
            else
                continue
            end
        case 4 %红方象
            if c==3&&d==1 %不同位置的不同备选位置
                if p(4,2)==0
                    if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                    else
                    a41=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(2,2)==0
                    if p(1,3)==1||p(1,3)==2||p(1,3)==3||p(1,3)==4||p(1,3)==5||p(1,3)==6||p(1,3)==7
                    else
                    a42=[1 3];
                    plot(1,3,'o b',"MarkerSize",20)
                    end
                end
            elseif c==7&&d==1
                if p(8,2)==0
                    if p(9,3)==1||p(9,3)==2||p(9,3)==3||p(9,3)==4||p(9,3)==5||p(9,3)==6||p(9,3)==7
                    else
                    a41=[9 3];
                    plot(9,3,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(6,2)==0
                    if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                    else
                    a42=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==1&&d==3
                if p(2,4)==0
                    if p(3,5)==1||p(3,5)==2||p(3,5)==3||p(3,5)==4||p(3,5)==5||p(3,5)==6||p(3,5)==7
                    else
                    a41=[3 5];
                    plot(3,5,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(2,2)==0
                    if p(3,1)==1||p(3,1)==2||p(3,1)==3||p(3,1)==4||p(3,1)==5||p(3,1)==6||p(3,1)==7
                    else
                    a44=[3 1];
                    plot(3,1,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==5&&d==3
                if p(6,4)==0
                    if p(7,5)==1||p(7,5)==2||p(7,5)==3||p(7,5)==4||p(7,5)==5||p(7,5)==6||p(7,5)==7
                    else
                    a41=[7 5];
                    plot(7,5,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,4)==0
                    if p(3,5)==1||p(3,5)==2||p(3,5)==3||p(3,5)==4||p(3,5)==5||p(3,5)==6||p(3,5)==7
                    else
                    a42=[3 5];
                    plot(3,5,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,2)==0
                    if p(3,1)==1||p(3,1)==2||p(3,1)==3||p(3,1)==4||p(3,1)==5||p(3,1)==6||p(3,1)==7
                    else
                    a43=[3 1];
                    plot(3,1,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(6,2)==0
                    if p(7,1)==1||p(7,1)==2||p(7,1)==3||p(7,1)==4||p(7,1)==5||p(7,1)==6||p(7,1)==7
                    else
                    a44=[7 1];
                    plot(7,1,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==9&&d==3
                if p(8,4)==0
                    if p(7,5)==1||p(7,5)==2||p(7,5)==3||p(7,5)==4||p(7,5)==5||p(7,5)==6||p(7,5)==7
                    else
                    a42=[7 5];
                    plot(7,5,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(8,2)==0
                    if p(7,1)==1||p(7,1)==2||p(7,1)==3||p(7,1)==4||p(7,1)==5||p(7,1)==6||p(7,1)==7
                    else
                    a43=[7 1];
                    plot(7,1,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==3&&d==5
                if p(2,4)==0
                    if p(1,3)==1||p(1,3)==2||p(1,3)==3||p(1,3)==4||p(1,3)==5||p(1,3)==6||p(1,3)==7
                    else
                    a43=[1 3];
                    plot(1,3,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,4)==0
                    if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                    else
                    a44=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==7&&d==5
                if p(6,4)==0
                    if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                    else
                    a43=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(8,4)==0
                    if p(9,3)==1||p(9,3)==2||p(9,3)==3||p(9,3)==4||p(9,3)==5||p(9,3)==6||p(9,3)==7
                    else
                    a44=[9 3];
                    plot(9,3,'o b',"MarkerSize",20)
                    end
                else
                end
            else
            end
            while(1) %如果坐标在备选位置中,则落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a41(1)&&h==a41(2))||(g==a42(1)&&h==a42(2))||(g==a43(1)&&h==a43(2))||(g==a44(1)&&h==a44(2))
                p(c,d)=0;
                p(g,h)=4;
                player=1;
            else
            end
        case 5 %红方士
            if c==4&&d==1 %不同位置的不同备选位置
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a51=[5,2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==1
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a52=[5,2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==2
                if p(6,3)==1||p(6,3)==2||p(6,3)==3||p(6,3)==4||p(6,3)==5||p(6,3)==6||p(6,3)==7
                else
                    a51=[6 3];
                    plot(6,3,'o b',"MarkerSize",20)
                end
                if p(4,3)==1||p(4,3)==2||p(4,3)==3||p(4,3)==4||p(4,3)==5||p(4,3)==6||p(4,3)==7
                else
                    a52=[4 3];
                    plot(4,3,'o b',"MarkerSize",20)
                end
                if p(4,1)==1||p(4,1)==2||p(4,1)==3||p(4,1)==4||p(4,1)==5||p(4,1)==6||p(4,1)==7
                else
                    a53=[4 1];
                    plot(4,1,'o b',"MarkerSize",20)
                end
                if p(6,1)==1||p(6,1)==2||p(6,1)==3||p(6,1)==4||p(6,1)==5||p(6,1)==6||p(6,1)==7
                else
                     a54=[6 1];
                     plot(6,1,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==3
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a54=[5,2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==3
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a53=[5,2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
            end
            while(1) %如果坐标在备选位置中,则落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a51(1)&&h==a51(2))||(g==a52(1)&&h==a52(2))||(g==a53(1)&&h==a53(2))||(g==a54(1)&&h==a54(2))
                p(c,d)=0;
                p(g,h)=5;
                player=1;
            else
                continue
            end
        case 6 %红方帅
            if c==4&&d==1 %不同位置的不同备选位置
                if p(5,1)==1||p(5,1)==2||p(5,1)==3||p(5,1)==4||p(5,1)==5||p(5,1)==6||p(5,1)==7
                else
                    a61=[5 1];
                    plot(5,1,'o b',"MarkerSize",20)
                end
                if p(4,2)==1||p(4,2)==2||p(4,2)==3||p(4,2)==4||p(4,2)==5||p(4,2)==6||p(4,2)==7
                else
                    a62=[4 2];
                    plot(4,2,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==1
                if p(6,1)==1||p(6,1)==2||p(6,1)==3||p(6,1)==4||p(6,1)==5||p(6,1)==6||p(6,1)==7
                else
                    a61=[6 1];
                    plot(6,1,'o b',"MarkerSize",20)
                end
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a62=[5 2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
                if p(4,1)==1||p(4,1)==2||p(4,1)==3||p(4,1)==4||p(4,1)==5||p(4,1)==6||p(4,1)==7
                else
                    a63=[4 1];
                    plot(4,1,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==1
                if p(6,2)==1||p(6,2)==2||p(6,2)==3||p(6,2)==4||p(6,2)==5||p(6,2)==6||p(6,2)==7
                else 
                    a62=[6 2];
                    plot(6,2,'o b',"MarkerSize",20)
                end
                if p(5,1)==1||p(5,1)==2||p(5,1)==3||p(5,1)==4||p(5,1)==5||p(5,1)==6||p(5,1)==7
                else
                    a63=[5 1];
                    plot(5,1,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==2
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a61=[5 2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
                if p(4,3)==1||p(4,3)==2||p(4,3)==3||p(4,3)==4||p(4,3)==5||p(4,3)==6||p(4,3)==7
                else
                    a62=[4 3];
                    plot(4,3,'o b',"MarkerSize",20)
                end
                if p(4,1)==1||p(4,1)==2||p(4,1)==3||p(4,1)==4||p(4,1)==5||p(4,1)==6||p(4,1)==7
                else
                    a64=[4 1];
                    plot(4,1,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==2
                if p(6,2)==1||p(6,2)==2||p(6,2)==3||p(6,2)==4||p(6,2)==5||p(6,2)==6||p(6,2)==7
                else 
                    a61=[6 2];
                    plot(6,2,'o b',"MarkerSize",20)
                end
                if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                else
                    a62=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                end
                if p(4,2)==1||p(4,2)==2||p(4,2)==3||p(4,2)==4||p(4,2)==5||p(4,2)==6||p(4,2)==7
                else
                    a63=[4 2];
                    plot(4,2,'o b',"MarkerSize",20)
                end
                if p(5,1)==1||p(5,1)==2||p(5,1)==3||p(5,1)==4||p(5,1)==5||p(5,1)==6||p(5,1)==7
                else
                    a64=[5 1];
                    plot(5,1,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==2
                if p(6,3)==1||p(6,3)==2||p(6,3)==3||p(6,3)==4||p(6,3)==5||p(6,3)==6||p(6,3)==7
                else
                    a62=[6 3];
                    plot(6,3,'o b',"MarkerSize",20)
                end
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a63=[5 2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==3
                if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                else
                    a61=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                end
                if p(4,2)==1||p(4,2)==2||p(4,2)==3||p(4,2)==4||p(4,2)==5||p(4,2)==6||p(4,2)==7
                else
                    a63=[4 2];
                    plot(4,2,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==3
                if p(6,3)==1||p(6,3)==2||p(6,3)==3||p(6,3)==4||p(6,3)==5||p(6,3)==6||p(6,3)==7
                else
                    a61=[6 3];
                    plot(6,3,'o b',"MarkerSize",20)
                end
                if p(5,2)==1||p(5,2)==2||p(5,2)==3||p(5,2)==4||p(5,2)==5||p(5,2)==6||p(5,2)==7
                else
                    a64=[5 2];
                    plot(5,2,'o b',"MarkerSize",20)
                end
                if p(4,3)==1||p(4,3)==2||p(4,3)==3||p(4,3)==4||p(4,3)==5||p(4,3)==6||p(4,3)==7
                else
                    a63=[4 3];
                    plot(4,3,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==3
                if p(5,3)==1||p(5,3)==2||p(5,3)==3||p(5,3)==4||p(5,3)==5||p(5,3)==6||p(5,3)==7
                else
                    a63=[5 3];
                    plot(5,3,'o b',"MarkerSize",20)
                end
                 if p(6,2)==1||p(6,2)==2||p(6,2)==3||p(6,2)==4||p(6,2)==5||p(6,2)==6||p(6,2)==7
                else 
                    a64=[6 2];
                    plot(6,2,'o b',"MarkerSize",20)
                end
            end
            while(1) %%如果坐标在备选位置中,则落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a61(1)&&h==a61(2))||(g==a62(1)&&h==a62(2))||(g==a63(1)&&h==a63(2))||(g==a64(1)&&h==a64(2))
                p(c,d)=0;
                p(g,h)=6;
                player=1;
            else
                continue
            end
        case 7 %红方炮
            for i=c+1:9 %不同位置的不同备选位置
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                        a71x(i)=i;
                        a71y(i)=d;
                    continue
                elseif p(i,d)~=0
                    tiao1(1)=i;
                    tiao1(2)=d;
                    break
                end
            end
            for i=tiao1(1)+1:9
                if p(i,d)==0
                   continue
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    if i~=c+1
                        break
                    elseif i==c+1
                        break
                    end
                    elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                        plot(i,d,'o b',"MarkerSize",20)
                        a71x(i)=i;
                        a71y(i)=d;
                        break
                end
            end
            for j=d+1:10
                if p(c,j)==0
                   plot(c,j,'o b',"MarkerSize",20)
                   a72x(j)=c;
                   a72y(j)=j;
                    continue
                elseif p(c,j)~=0
                    tiao2(1)=c;
                    tiao2(2)=j;
                    break
                end
            end
            for j=tiao2(2)+1:10
                if p(c,j)==0
                   continue
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    if j~=d+1
                        break
                    elseif j==d+1
                        break
                    end
                    elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                        plot(c,j,'o b',"MarkerSize",20)
                        a72x(j)=c;
                        a72y(j)=j;
                        break
                end
            end
            for i=c-1:-1:1
                if p(i,d)==0
                   plot(i,d,'o b',"MarkerSize",20)
                   a73x(i)=i;
                   a73y(i)=d;
                    continue
                elseif p(i,d)~=0
                    tiao3(1)=i;
                    tiao3(2)=d;
                    break
                end
            end
            for i=tiao3(1)-1:-1:1
                if p(i,d)==0
                    continue
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    if i~=c+1
                        break
                    elseif i==c+1
                        break
                    end
                    elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                        plot(i,d,'o b',"MarkerSize",20)
                        a73x(i)=i;
                        a73y(i)=d;
                        break
                end
            end
            for j=d-1:-1:1
                if p(c,j)==0
                   plot(c,j,'o b',"MarkerSize",20)
                   a74x(j)=c;
                   a74y(j)=j;
                    continue
                elseif p(c,j)~=0
                    tiao4(1)=c;
                    tiao4(2)=j;
                    break
                end
            end
            for j=tiao4(2)-1:-1:1
                if p(c,j)==0
                    continue
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    if j~=d-1
                        break
                    elseif j==d+1
                        break
                    end
                    elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                        plot(c,j,'o b',"MarkerSize",20)
                        a42x(j)=c;
                        a42y(j)=j;
                        break
                end
            end
            while(1) %如果坐标在备选位置中,则落子并改变为玩家1落子
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            for i=1:length(a71x)
                if g==a71x(i)&&h==a71y(i)
                    p(c,d)=0;
                    p(g,h)=7;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a72x)
                if g==a72x(i)&&h==a72y(i)
                    p(c,d)=0;
                    p(g,h)=7;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a73x)
                if g==a73x(i)&&h==a73y(i)
                    p(c,d)=0;
                    p(g,h)=7;
                    player=1;
                else
                    continue
                end
            end
            for i=1:length(a74x)
                if g==a74x(i)&&h==a74y(i)
                    p(c,d)=0;
                    p(g,h)=7;
                    player=1;
                else
                    continue
                end
            end
    end

%-------------------------------------------------------------------------------------------
    
else %判断是否黑方落棋
    switch p(c,d) %如果点击黑方棋子,将棋子变绿
        case {8 9 10 11 12 13 14} 
            plot(c,d,'o g',"MarkerSize",20)
        otherwise
    end
    switch p(c,d) %根据棋子类型,用蓝色显示出可以所有落棋的位置并用输入落棋点
        case 8 %黑方判定与输入与红方相同
            if d<=5
                if c==1
                     switch p(c,d)
                         case {0 1 2 3 4 5 6 7}
                        plot(c+1,d,'o b',"MarkerSize",20)
                        a81=[c+1 d];
                         otherwise
                     end
                    switch p(c,d)
                        case {0 1 2 3 4 5 6 7}
                        plot(c,d-1,'o b',"MarkerSize",20)
                        a82=[c d-1];
                        otherwise
                    end
                elseif c>=2&&c<=8
                    switch p(c+1,d)
                        case {0 1 2 3 4 5 6 7}
                            plot(c+1,d,'o b',"MarkerSize",20)
                            a81=[c+1 d];
                        otherwise
                            a81=[0 0];
                    end
                    switch p(c-1,d)
                        case {0 1 2 3 4 5 6 7}
                            plot(c-1,d,'o b',"MarkerSize",20)
                            a83=[c-1 d];
                        otherwise
                            a83=[0 0];
                    end
                    switch p(c,d-1)
                        case {0 1 2 3 4 5 6 7}
                            plot(c,d-1,'o b',"MarkerSize",20)
                            a82=[c d-1];
                        otherwise
                            a82=[0 0];
                    end
                elseif c==9
                   switch p(c-1,d)
                        case {0 1 2 3 4 5 6 7}
                            plot(c-1,d,'o b',"MarkerSize",20)
                            a83=[c-1 d];
                        otherwise
                            a83=[0 0];
                    end
                    switch p(c,d-1)
                        case {0 1 2 3 4 5 6 7}
                            plot(c,d-1,'o b',"MarkerSize",20)
                            a82=[c d-1];
                        otherwise
                            a82=[0 0];
                    end
                end
    else
        switch p(c,d-1)
                    case {0 1 2 3 4 5 6 7}
                        plot(c,d-1,'o b',"MarkerSize",20)
                        a82=[c d-1];
                    otherwise
                        a82=[0 0];
         end
    end
    while(1)
        [e,f]=ginput(1);
        g=round(e);
        h=round(f);
        if g>=1&&h>=1
            break
        end
    end
    if (g==a81(1)&&h==a81(2))||(g==a82(1)&&h==a82(2))||(g==a83(1)&&h==a83(2))
                p(c,d)=0;
                p(g,h)=8;
                player=0;
    end
    case 9
            for i=c+1:9
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                    a91x(i)=i;
                    a91y(i)=d;
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    if i~=c+1
                        plot(i-1,d,'o b',"MarkerSize",20)
                        break
                    elseif i==c+1
                        break
                    end
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    plot(i,d,'o b',"MarkerSize",20)
                    a91x(i)=i;
                    a91y(i)=d;
                    break
                end
            end
            for i=c-1:-1:1
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                    a93x(i)=i;
                    a93y(i)=d;
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    if i~=c-1
                        plot(i+1,d,'o b',"MarkerSize",20)
                        break
                    elseif i==c-1
                        break
                    end
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                    plot(i,d,'o b',"MarkerSize",20)
                    a93x(i)=i;
                    a93y(i)=d;
                    break
                end
            end
            for j=d+1:10
                if p(c,j)==0
                    plot(c,j,'o b',"MarkerSize",20)
                    a92x(j)=c;
                    a92y(j)=j;
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    if j~=d+1
                        plot(c,j-1,'o b',"MarkerSize",20)
                        break
                    elseif j==d+1
                        d2=0;
                        break
                    end
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    plot(c,j,'o b',"MarkerSize",20)
                    a92x(j)=c;
                    a92y(j)=j;
                    break
                end
            end
            for j=d-1:-1:1
                if p(c,j)==0
                    plot(c,j,'o b',"MarkerSize",20)
                    a94x(j)=c;
                    a94y(j)=j;
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    if j~=d-1
                        plot(c,j+1,'o b',"MarkerSize",20)
                        break
                    elseif j==d-1
                        break
                    end
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                    plot(c,j,'o b',"MarkerSize",20)
                    a94x(j)=c;
                    a94y(j)=j;
                    break
                end
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            for i=1:length(a91x)
                if g==a91x(i)&&h==a91y(i)
                    p(c,d)=0;
                    p(g,h)=9;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a92x)
                if g==a92x(i)&&h==a92y(i)
                    p(c,d)=0;
                    p(g,h)=9;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a93x)
                if g==a93x(i)&&h==a93y(i)
                    p(c,d)=0;
                    p(g,h)=9;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a94x)
                if g==a94x(i)&&h==a94y(i)
                    p(c,d)=0;
                    p(g,h)=9;
                    player=0;
                else
                    continue
                end
            end
            case 10
            a101=[c+2,d+1];
            a102=[c+1,d+2];
            a103=[c-1,d+2];
            a104=[c-2,d+1];
            a105=[c-2,d-1];
            a106=[c-1,d-2];
            a107=[c+1,d-2];
            a108=[c+2,d-1];
            if c==9||c==8
                a101=[0 0];
            elseif d==10
                a101=[0 0];
            elseif p(c+1,d)~=0
                a101=[0 0];
            elseif p(c+2,d+1)==8||p(c+2,d+1)==9||p(c+2,d+1)==10||p(c+2,d+1)==11||p(c+2,d+1)==12||p(c+2,d+1)==13||p(c+2,d+1)==14
                a101=[0 0];
            else
                plot(c+2,d+1,'o b',"MarkerSize",20)
            end
            if c==9
                a102=[0 0];
            elseif d==10||d==9
                a102=[0 0];
            elseif p(c,d+1)~=0
                a102=[0 0];
            elseif p(c+1,d+2)==8||p(c+1,d+2)==9||p(c+1,d+2)==10||p(c+1,d+2)==11||p(c+1,d+2)==12||p(c+1,d+2)==13||p(c+1,d+2)==14
                a102=[0 0];
            else
                plot(c+1,d+2,'o b',"MarkerSize",20)
            end
            if c==1
                a103=[0 0];
            elseif d==10||d==9
                a103=[0 0];
            elseif p(c,d+1)~=0
                a103=[0 0];
            elseif p(c-1,d+2)==8||p(c-1,d+2)==9||p(c-1,d+2)==10||p(c-1,d+2)==11||p(c-1,d+2)==12||p(c-1,d+2)==13||p(c-1,d+2)==14
                a103=[0 0];
            else
                plot(c-1,d+2,'o b',"MarkerSize",20)
            end
            if c==1||c==2
                a104=[0 0];
            elseif d==10
                a104=[0 0];
            elseif p(c-1,d)~=0
                a104=[0 0];
            elseif p(c-2,d+1)==8||p(c-2,d+1)==9||p(c-2,d+1)==10||p(c-2,d+1)==11||p(c-2,d+1)==12||p(c-2,d+1)==13||p(c-2,d+1)==14
                a104=[0 0];
            else
                plot(c-2,d+1,'o b',"MarkerSize",20)
            end
            if c==1||c==2
                a105=[0 0];
            elseif d==1
                a105=[0 0];
            elseif p(c-1,d)~=0
                a105=[0 0];
            elseif p(c-2,d-1)==8||p(c-2,d-1)==9||p(c-2,d-1)==10||p(c-2,d-1)==11||p(c-2,d-1)==12||p(c-2,d-1)==13||p(c-2,d-1)==14
                a105=[0 0];
            else
                plot(c-2,d-1,'o b',"MarkerSize",20)
            end
            if c==1
                a106=[0 0];
            elseif d==1||d==2
                a106=[0 0];
            elseif p(c,d-1)~=0
                a106=[0 0];
            elseif p(c-1,d-2)==8||p(c-1,d-2)==9||p(c-1,d-2)==10||p(c-1,d-2)==11||p(c-1,d-2)==12||p(c-1,d-2)==13||p(c-1,d-2)==14
                a106=[0 0];
            else
                plot(c-1,d-2,'o b',"MarkerSize",20)
            end
            if c==9
                a107=[0 0];
            elseif d==1||d==2
                a107=[0 0];
            elseif p(c,d-1)~=0
                a107=[0 0];
            elseif p(c+1,d-2)==8||p(c+1,d-2)==9||p(c+1,d-2)==10||p(c+1,d-2)==11||p(c+1,d-2)==12||p(c+1,d-2)==13||p(c+1,d-2)==14
                a107=[0 0];
            else
                plot(c+1,d-2,'o b',"MarkerSize",20)
            end
            if c==9||c==8
                a108=[0 0];
            elseif d==1
                a108=[0 0];
            elseif p(c+1,d)~=0
                a108=[0 0];
            elseif p(c+2,d-1)==8||p(c+2,d-1)==9||p(c+2,d-1)==10||p(c+2,d-1)==11||p(c+2,d-1)==12||p(c+2,d-1)==13||p(c+2,d-1)==14
                a108=[0 0];
            else
                plot(c+2,d-1,'o b',"MarkerSize",20)
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a101(1)&&h==a101(2))||(g==a102(1)&&h==a102(2))||(g==a103(1)&&h==a103(2))||(g==a104(1)&&h==a104(2))||(g==a105(1)&&h==a105(2))||(g==a106(1)&&h==a106(2))||(g==a107(1)&&h==a107(2))||(g==a108(1)&&h==a108(2))
                p(c,d)=0;
                p(g,h)=10;
                player=0;
            else
                continue
            end
        case 11
            if c==3&&d==10
                if p(2,9)==0
                    if p(1,8)==8||p(1,8)==9||p(1,8)==10||p(1,8)==11||p(1,8)==12||p(1,8)==13||p(1,8)==14
                    else
                        a113=[1 8];
                        plot(1,8,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,9)==0
                    if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                    else
                        a114=[5 8];
                        plot(5,8,'o b',"MarkerSize",20)
                    end
                end
            elseif c==7&&d==10
                if p(6,9)==0
                    if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                    else
                        a113=[5 8];
                        plot(5,8,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(8,9)==0
                    if p(9,8)==8||p(9,8)==9||p(9,8)==10||p(9,8)==11||p(9,8)==12||p(9,8)==13||p(9,8)==14
                    else
                        a114=[9 8];
                        plot(9,8,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==1&&d==8
                if p(2,9)==0
                    if p(3,10)==8||p(3,10)==9||p(3,10)==10||p(3,10)==11||p(3,10)==12||p(3,10)==13||p(3,10)==14
                    else
                        a111=[3 10];
                        plot(3,10,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(2,7)==0
                    if p(3,6)==8||p(3,6)==9||p(3,6)==10||p(3,6)==11||p(3,6)==12||p(3,6)==13||p(3,6)==14
                    else
                        a114=[3,6];
                        plot(3,6,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==5&&d==8
                if p(6,9)==0
                    if p(7,10)==8||p(7,10)==9||p(7,10)==10||p(7,10)==11||p(7,10)==12||p(7,10)==13||p(7,10)==14
                    else
                        a111=[7 10];
                        plot(7,10,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,9)==0
                    if p(3,10)==8||p(3,10)==9||p(3,10)==10||p(3,10)==11||p(3,10)==12||p(3,10)==13||p(3,10)==14
                    else
                        a112=[3 10];
                        plot(3,10,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(4,7)==0
                    if p(3,6)==8||p(3,6)==9||p(3,6)==10||p(3,6)==11||p(3,6)==12||p(3,6)==13||p(3,6)==14
                    else
                        a113=[3 6];
                        plot(3,6,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(6,7)==0
                    if p(7,6)==8||p(7,6)==9||p(7,6)==10||p(7,6)==11||p(7,6)==12||p(7,6)==13||p(7,6)==14
                    else
                        a114=[7 6];
                        plot(7,6,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==9&&d==8
                if p(8,9)==0
                    if p(7,10)==8||p(7,10)==9||p(7,10)==10||p(7,10)==11||p(7,10)==12||p(7,10)==13||p(7,10)==14
                    else
                        a112=[7 10];
                        plot(7,10,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(8,7)==0
                    if p(7,6)==8||p(7,6)==9||p(7,6)==10||p(7,6)==11||p(7,6)==12||p(7,6)==13||p(7,6)==14
                    else
                        a113=[7 6];
                        plot(7,6,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==3&&d==6
                if p(4,7)==0
                    if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                    else
                        a111=[5 8];
                        plot(5,8,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(2,7)==0
                    if p(1,8)==8||p(1,8)==9||p(1,8)==10||p(1,8)==11||p(1,8)==12||p(1,8)==13||p(1,8)==14
                    else
                        a112=[1 8];
                        plot(1,8,'o b',"MarkerSize",20)
                    end
                else
                end
            elseif c==7&&d==6
                if p(8,7)==0
                    if p(9,8)==8||p(9,8)==9||p(9,8)==10||p(9,8)==11||p(9,8)==12||p(9,8)==13||p(9,8)==14
                    else
                        a111=[9 8];
                        plot(9,8,'o b',"MarkerSize",20)
                    end
                else
                end
                if p(6,7)==0
                    if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                    else
                        a112=[5 8];
                        plot(5,8,'o b',"MarkerSize",20)
                    end
                else
                end
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a111(1)&&h==a111(2))||(g==a112(1)&&h==a112(2))||(g==a113(1)&&h==a113(2))||(g==a114(1)&&h==a114(2))
                p(c,d)=0;
                p(g,h)=11;
                player=0;
            else
            end
        case 12
            if c==4&&d==10
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a124=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==10
                 if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                 else
                    a123=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                 end
            elseif c==5&&d==9
                if p(6,10)==8||p(6,10)==9||p(6,10)==10||p(6,10)==11||p(6,10)==12||p(6,10)==13||p(6,10)==14
                else
                    a121=[6 10];
                    plot(6,10,'o b',"MarkerSize",20)
                end
                if p(4,10)==8||p(4,10)==9||p(4,10)==10||p(4,10)==11||p(4,10)==12||p(4,10)==13||p(4,10)==14
                else
                     a122=[4 10];
                     plot(4,10,'o b',"MarkerSize",20)
                end
                if p(4,8)==8||p(4,8)==9||p(4,8)==10||p(4,8)==11||p(4,8)==12||p(4,8)==13||p(4,8)==14
                else
                    a123=[4 8];
                    plot(4,8,'o b',"MarkerSize",20)
                end
                if p(6,8)==8||p(6,8)==9||p(6,8)==10||p(6,8)==11||p(6,8)==12||p(6,8)==13||p(6,8)==14
                else
                    a124=[6 8];
                    plot(6,8,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==8
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a121=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==8
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a122=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a121(1)&&h==a121(2))||(g==a122(1)&&h==a122(2))||(g==a123(1)&&h==a123(2))||(g==a124(1)&&h==a124(2))
                p(c,d)=0;
                p(g,h)=12;
                player=0;
            else
            end
        case 13
            if c==4&&d==10
                if p(5,10)==8||p(5,10)==9||p(5,10)==10||p(5,10)==11||p(5,10)==12||p(5,10)==13||p(5,10)==14
                else
                    a131=[5,10];
                    plot(5,10,'o b',"MarkerSize",20)
                end
                if p(4,9)==8||p(4,9)==9||p(4,9)==10||p(4,9)==11||p(4,9)==12||p(4,9)==13||p(4,9)==14
                else
                    a134=[4 9];
                    plot(4,9,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==10
                if p(6,10)==8||p(6,10)==9||p(6,10)==10||p(6,10)==11||p(6,10)==12||p(6,10)==13||p(6,10)==14
                else
                    a131=[6 10];
                    plot(6,10,'o b',"MarkerSize",20)
                end
                if p(4,10)==8||p(4,10)==9||p(4,10)==10||p(4,10)==11||p(4,10)==12||p(4,10)==13||p(4,10)==14
                else
                    a133=[4 10];
                    plot(4,10,'o b',"MarkerSize",20)
                end
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a134=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==10
                if p(5,10)==8||p(5,10)==9||p(5,10)==10||p(5,10)==11||p(5,10)==12||p(5,10)==13||p(5,10)==14
                else
                    a133=[5,10];
                    plot(5,10,'o b',"MarkerSize",20)
                end
                if p(6,9)==8||p(6,9)==9||p(6,9)==10||p(6,9)==11||p(6,9)==12||p(6,9)==13||p(6,9)==14
                else
                    a134=[6 9];
                    plot(6,9,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==9
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a131=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
                if p(4,10)==8||p(4,10)==9||p(4,10)==10||p(4,10)==11||p(4,10)==12||p(4,10)==13||p(4,10)==14
                else
                    a132=[4 10];
                    plot(4,10,'o b',"MarkerSize",20)
                end
                if p(4,8)==8||p(4,8)==9||p(4,8)==10||p(4,8)==11||p(4,8)==12||p(4,8)==13||p(4,8)==14
                else 
                    a134=[4 8];
                    plot(4,8,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==9
                if p(6,9)==8||p(6,9)==9||p(6,9)==10||p(6,9)==11||p(6,9)==12||p(6,9)==13||p(6,9)==14
                else
                    a131=[6 9];
                    plot(6,9,'o b',"MarkerSize",20)
                end
                if p(5,10)==8||p(5,10)==9||p(5,10)==10||p(5,10)==11||p(5,10)==12||p(5,10)==13||p(5,10)==14
                else
                    a132=[5,10];
                    plot(5,10,'o b',"MarkerSize",20)
                end
                if p(4,9)==8||p(4,9)==9||p(4,9)==10||p(4,9)==11||p(4,9)==12||p(4,9)==13||p(4,9)==14
                else
                    a133=[4 9];
                    plot(4,9,'o b',"MarkerSize",20)
                end
                if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                else
                    a134=[5 8];
                    plot(5,8,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==9
                if p(6,10)==8||p(6,10)==9||p(6,10)==10||p(6,10)==11||p(6,10)==12||p(6,10)==13||p(6,10)==14
                else
                    a132=[6 10];
                    plot(6,10,'o b',"MarkerSize",20)
                end
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a133=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
                if p(6,8)==8||p(6,8)==9||p(6,8)==10||p(6,8)==11||p(6,8)==12||p(6,8)==13||p(6,8)==14
                else
                    a134=[6 8];
                    plot(6,8,'o b',"MarkerSize",20)
                end
            elseif c==4&&d==8
                if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                else
                    a131=[5 8];
                    plot(5,8,'o b',"MarkerSize",20)
                end
                if p(4,9)==8||p(4,9)==9||p(4,9)==10||p(4,9)==11||p(4,9)==12||p(4,9)==13||p(4,9)==14
                else
                    a132=[4 9];
                    plot(4,9,'o b',"MarkerSize",20)
                end
            elseif c==5&&d==8
                if p(6,8)==8||p(6,8)==9||p(6,8)==10||p(6,8)==11||p(6,8)==12||p(6,8)==13||p(6,8)==14
                else
                    a131=[6 8];
                    plot(6,8,'o b',"MarkerSize",20)
                end
                if p(5,9)==8||p(5,9)==9||p(5,9)==10||p(5,9)==11||p(5,9)==12||p(5,9)==13||p(5,9)==14
                else
                    a132=[5 9];
                    plot(5,9,'o b',"MarkerSize",20)
                end
                if p(4,8)==8||p(4,8)==9||p(4,8)==10||p(4,8)==11||p(4,8)==12||p(4,8)==13||p(4,8)==14
                else 
                    a133=[4 8];
                    plot(4,8,'o b',"MarkerSize",20)
                end
            elseif c==6&&d==8
                if p(6,9)==8||p(6,9)==9||p(6,9)==10||p(6,9)==11||p(6,9)==12||p(6,9)==13||p(6,9)==14
                else
                    a132=[6 9];
                    plot(6,9,'o b',"MarkerSize",20)
                end
                 if p(5,8)==8||p(5,8)==9||p(5,8)==10||p(5,8)==11||p(5,8)==12||p(5,8)==13||p(5,8)==14
                else
                    a133=[5 8];
                    plot(5,8,'o b',"MarkerSize",20)
                 end
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            if (g==a131(1)&&h==a131(2))||(g==a132(1)&&h==a132(2))||(g==a133(1)&&h==a133(2))||(g==a134(1)&&h==a134(2))
                p(c,d)=0;
                p(g,h)=13;
                player=0;
            else
            end
       case 14
            for i=c+1:9
                if p(i,d)==0
                    plot(i,d,'o b',"MarkerSize",20)
                        a141x(i)=i;
                        a141y(i)=d;
                    continue
                elseif p(i,d)~=0
                    tiao1(1)=i;
                    tiao1(2)=d;
                    break
                end
            end
            for i=tiao1(1)+1:9
                if p(i,d)==0
                   continue
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    if i~=c+1
                        break
                    elseif i==c+1
                        break
                    end
                elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                        plot(i,d,'o b',"MarkerSize",20)
                        a141x(i)=i;
                        a141y(i)=d;
                        break
                end
            end
            for j=d+1:10
                if p(c,j)==0
                   plot(c,j,'o b',"MarkerSize",20)
                   a142x(j)=c;
                   a142y(j)=j;
                    continue
                elseif p(c,j)~=0
                    tiao2(1)=c;
                    tiao2(2)=j;
                    break
                end
            end
            for j=tiao2(2)+1:10
                if p(c,j)==0
                   continue
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    if j~=d+1
                        break
                    elseif j==d+1
                        break
                    end
                 elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                        plot(c,j,'o b',"MarkerSize",20)
                        a142x(j)=c;
                        a142y(j)=j;
                        break
                end
            end
            for i=c-1:-1:1
                if p(i,d)==0
                   plot(i,d,'o b',"MarkerSize",20)
                   a143x(i)=i;
                   a143y(i)=d;
                    continue
                elseif p(i,d)~=0
                    tiao3(1)=i;
                    tiao3(2)=d;
                    break
                end
            end
            for i=tiao3(1)-1:-1:1
                if p(i,d)==0
                    continue
                elseif p(i,d)==8||p(i,d)==9||p(i,d)==10||p(i,d)==11||p(i,d)==12||p(i,d)==13||p(i,d)==14
                    if i~=c+1
                        break
                    elseif i==c+1
                        break
                    end
                 elseif p(i,d)==1||p(i,d)==2||p(i,d)==3||p(i,d)==4||p(i,d)==5||p(i,d)==6||p(i,d)==7
                        plot(i,d,'o b',"MarkerSize",20)
                        a143x(i)=i;
                        a143y(i)=d;
                        break
                end
            end
            for j=d-1:-1:1
                if p(c,j)==0
                   plot(c,j,'o b',"MarkerSize",20)
                   a144x(j)=c;
                   a144y(j)=j;
                    continue
                elseif p(c,j)~=0
                    tiao4(1)=c;
                    tiao4(2)=j;
                    break
                end
            end
            for j=tiao4(2)-1:-1:1
                if p(c,j)==0
                    continue
                elseif p(c,j)==8||p(c,j)==9||p(c,j)==10||p(c,j)==11||p(c,j)==12||p(c,j)==13||p(c,j)==14
                    if j~=d-1
                        break
                    elseif j==d+1
                        break
                    end
                elseif p(c,j)==1||p(c,j)==2||p(c,j)==3||p(c,j)==4||p(c,j)==5||p(c,j)==6||p(c,j)==7
                        plot(c,j,'o b',"MarkerSize",20)
                        a144x(j)=c;
                        a144y(j)=j;
                        break
                end
            end
            while(1)
                [e,f]=ginput(1);
                g=round(e);
                h=round(f);
                if g>=1&&h>=1
                    break
                end
            end
            for i=1:length(a141x)
                if g==a141x(i)&&h==a141y(i)
                    p(c,d)=0;
                    p(g,h)=14;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a142x)
                if g==a142x(i)&&h==a142y(i)
                    p(c,d)=0;
                    p(g,h)=14;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a143x)
                if g==a143x(i)&&h==a143y(i)
                    p(c,d)=0;
                    p(g,h)=14;
                    player=0;
                else
                    continue
                end
            end
            for i=1:length(a144x)
                if g==a144x(i)&&h==a144y(i)
                    p(c,d)=0;
                    p(g,h)=14;
                    player=0;
                else
                    continue
                end
            end
    end
end
clf %落子后重新绘制一次棋盘和棋子
hold on
axis([1,9,1,10]);
axis square;
x=1:9;
y=1:10;
shu1=linspace(10,10,9);
shu2=linspace(6,6,9);
shu3=[10,5,5,5,5,5,5,5,10];
stem(x,shu1,'- . k',"MarkerSize",0.001);
stem(x,shu2,'- . w',"MarkerSize",0.001);
stem(x,shu3,'- . k',"MarkerSize",0.001);
xie1x=[4,5,6,5,6,5,4];
xie1y=[1,2,1,2,3,2,3];
xie2x=[4,5,6,5,6,5,4];
xie2y=[10,9,10,9,8,9,8];
for i=1:10
    for j=1:9
        heng(i,j)=11-i;
    end
        plot(x,heng(i,:),'k-')
end
plot(xie1x,xie1y,'k')
plot(xie2x,xie2y,'k')
for i=1:9
    for j=1:10
        switch p(i,j)
            case 1
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'兵',"Color",[1 0 0])
            case 2
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'车',"Color",[1 0 0])
            case 3
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'马',"Color",[1 0 0])
            case 4
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'象',"Color",[1 0 0])
            case 5
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'士',"Color",[1 0 0])
            case 6
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'帅',"Color",[1 0 0])
            case 7
                plot(i,j,'o r',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'炮',"Color",[1 0 0])
            case 8
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'兵',"Color",[0 0 0])
            case 9
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'车',"Color",[0 0 0])
            case 10
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'马',"Color",[0 0 0])
            case 11
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'象',"Color",[0 0 0])
            case 12
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'士',"Color",[0 0 0])
            case 13
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'帅',"Color",[0 0 0])
            case 14
                plot(i,j,'o k',"MarkerSize",20)
                plot(i,j,'. w',"MarkerSize",65)
                text(i-0.1,j,'炮',"Color",[0 0 0])
            otherwise
                continue
        end
    end
end
hongshuai=0; %初始化红方帅状态
heishuai=0; %初始化黑方帅状态
for i=1:9 %更新红方帅状态
    for j=1:10
        if p(i,j)==6
            hongshuai=1;
            p6(1)=i;
            p6(2)=j;
            break
        else
        end
    end
end
for i=1:9 %更新黑方帅状态
    for j=1:10
        if p(i,j)==13
            heishuai=1;
            p13(1)=i;
            p13(2)=j;
            break
        else
            continue
        end
    end
end
if p6(1)==p13(1) %判定将帅是否碰面
    for j=p6(2)+1:p13(2)
        if p(p6(1),j)==0||p(p6(1),j)==13
            zhishuai=1;
            continue    
        else
            zhishuai=0;
            break
        end
    end
end
if (hongshuai==1&&heishuai==1) %判断游戏是否结束
    if zhishuai==0
        continue
    elseif zhishuai==1
        return
    end
else
    return
end
end

后记

棋子的判定都是用的最基础的判定语句和遍历,导致代码多、繁杂,运行效率低下,以后技术好了尽量改进一下

  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值