<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                GuiZe.java ~~~ public class GuiZe { QiZi[][] qiZi;//聲明棋子的數組 boolean canMove=false; int i; int j; public GuiZe(QiZi[][] qiZi) { this.qiZi=qiZi; } public boolean canMove(int startI,int startJ,int endI,int endJ,String name) { int maxI;//定義一些輔助變量 int minI; int maxJ; int minJ; canMove=true; if(startI>=endI)//確定其實坐標的大小關系 { maxI=startI; minI=endI; } else//確定maxI和minI { maxI=endI; minI=startI; } if(startJ>=endJ)//確定endJ和startJ { maxJ=startJ; minJ=endJ; } else { maxJ=endJ; minJ=startJ; } if(name.equals("車"))//如果是"車" { this.ju(maxI,minI,maxJ,minJ); } else if(name.equals("馬"))//如果是"馬" { this.ma(maxI,minI,maxJ,minJ,startI,startJ,endI,endJ); } else if(name.equals("相"))//如果是"相" { this.xiang1(maxI,minI,maxJ,minJ,startI,startJ,endI,endJ); } else if(name.equals("象"))//如果是"象" { this.xiang2(maxI,minI,maxJ,minJ,startI,startJ,endI,endJ); } else if(name.equals("士")||name.equals("仕")) //如果是"士" { this.shi(maxI,minI,maxJ,minJ,startI,startJ,endI,endJ); } else if(name.equals("帥")||name.equals("將"))//如果是"將" { this.jiang(maxI,minI,maxJ,minJ,startI,startJ,endI,endJ); } else if(name.equals("炮")||name.equals("砲"))//如果是"炮" { this.pao(maxI,minI,maxJ,minJ,startI,startJ,endI,endJ); } else if(name.equals("兵"))//如果是"兵" { this.bing(maxI,minI,maxJ,minJ,startI,startJ,endI,endJ); } else if(name.equals("卒"))//如果是"卒" { this.zu(maxI,minI,maxJ,minJ,startI,startJ,endI,endJ); } return canMove; } public void ju(int maxI,int minI,int maxJ,int minJ) {//對"車"的處理方法 if(maxI==minI)//如果在一條橫線上 { for(j=minJ+1;j<maxJ;j++) { if(qiZi[maxI][j]!=null)//如果中間有棋子 { canMove=false;//不可以走棋 break; } } } else if(maxJ==minJ)//如果在一條豎線上 { for(i=minJ+1;i<maxJ;i++) { if(qiZi[i][maxJ]!=null)//如果中間有棋子 { canMove=false;//不可以走棋 break; } } } else if(maxI!=minI&&maxJ!=minJ)//如果不在同一條線上 { canMove=false;//不可以走棋 } } public void ma(int maxI,int minI,int maxJ,int minJ,int startI,int startJ,int endI,int endJ) {//對"馬"的處理方法 int a=maxI-minI; int b=maxJ-minJ;//獲得兩坐標點之間的差 if(a==1&&b==2)//如果是豎著的"日"字 { if(startJ>endJ)//如果是從下向上走 { if(qiZi[startI][startJ-1]!=null)//如果馬腿處有棋子 { canMove=false;//不可以走 } } else {//如果是從上往下走 if(qiZi[startI][startJ+1]!=null)//如果馬腿處有棋子 { canMove=false;//不可以走 } } } else if(a==2&&b==1)//如果是橫著的"日" { if(startI>endI)//如果是從右往左走 { if(qiZi[startI-1][startJ]!=null)//如果馬腿處有棋子 { canMove=false;//不可以走 } } else {//如果是從左往右走 if(qiZi[startI+1][startJ]!=null)//如果馬腿處有棋子 { canMove=false;//不可以走 } } } else if(!((a==2&&b==1)||(a==1&&b==2)))//如果不時"日"字 { canMove=false;//不可以走 } } public void xiang1(int maxI,int minI,int maxJ,int minJ,int startI,int startJ,int endI,int endJ) {//對"相"的處理 int a=maxI-minI; int b=maxJ-minJ;//獲得X,Y坐標的差 if(a==2&&b==2)//如果是"田"字 { if(endJ>4)//如果過河了 { canMove=false;//不可以走 } if(qiZi[(maxI+minI)/2][(maxJ+minJ)/2]!=null)//如果"田"字中間有棋子 { canMove=false;//不可以走 } } else { canMove=false;//如果不是"田"字,不可以走 } } public void xiang2(int maxI,int minI,int maxJ,int minJ,int startI,int startJ,int endI,int endJ) {//對"象"的處理 int a=maxI-minI; int b=maxJ-minJ;//獲得X,Y坐標的差 if(a==2&&b==2)//如果是"田"字 { if(endJ<5)//如果過河了 { canMove=false;//不可以走 } if(qiZi[(maxI+minI)/2][(maxJ+minJ)/2]!=null)//如果"田"字中間有棋子 { canMove=false;//不可以走 } } else { canMove=false;//如果不是"田"字,不可以走 } } public void shi(int maxI,int minI,int maxJ,int minJ,int startI,int startJ,int endI,int endJ) { int a=maxI-minI; int b=maxJ-minJ;//獲得X,Y坐標的差 if(a==1&&b==1)//如果是小斜線 { if(startJ>4)//如果是下方的士 { if(endJ<7) { canMove=false;//如果下方的士越界,不可以走 } } else {//如果是上方的仕 if(endJ>2) { canMove=false;//如果上方的仕越界,不可以走 } } if(endI>5||endI<3)//如果左右越界,則不可以走 { canMove=false; } } else {//如果不時小斜線 canMove=false;//不可以走 } } public void jiang(int maxI,int minI,int maxJ,int minJ,int startI,int startJ,int endI,int endJ) {//對"帥"、"將"的處理 int a=maxI-minI; int b=maxJ-minJ;//獲得X,Y坐標的差 if((a==1&&b==0)||(a==0&&b==1)) {//如果走的是一小格 if(startJ>4)//如果是下方的將 { if(endJ<7)//如果越界 { canMove=false;//不可以走 } } else {//如果是上方的將 if(endJ>2)//如果越界 { canMove=false;//不可以走 } } if(endI>5||endI<3)//如果左右越界,不可以走 { canMove=false; } } else {//如果走的不是一格,不可以走 canMove=false; } } public void pao(int maxI,int minI,int maxJ,int minJ,int startI,int startJ,int endI,int endJ) {//對"炮"、"砲"的處理 if(maxI==minI)//如果走的豎線 { if(qiZi[endI][endJ]!=null)//如果終點有棋子 { int count=0; for(j=minJ+1;j<maxJ;j++) { if(qiZi[minI][j]!=null)//判斷起點與終點之間有幾個棋子 { count++; } } if(count!=1) {//如果不是一個棋子 canMove=false;//不可以走 } } else if(qiZi[endI][endJ]==null)//如果終點沒有棋子 { for(j=minJ+1;j<maxJ;j++) { if(qiZi[minI][j]!=null)//如果起止點之間有棋子 { canMove=false;//不可以走 break; } } } } else if(maxJ==minJ)//如果走的是橫線 { if(qiZi[endI][endJ]!=null)//如果終點有棋子 { int count=0; for(i=minI+1;i<maxI;i++) { if(qiZi[i][minJ]!=null)//判斷起點與終點之間有幾個棋子 { count++; } } if(count!=1)//如果不是一個棋子 { canMove=false;//不可以走 } } else if(qiZi[endI][endJ]==null)//如果終點沒有棋子 { for(i=minI+1;i<maxI;i++) { if(qiZi[i][minJ]!=null)//如果起止點之間有棋子 { canMove=false;//不可以走 break; } } } } else if(maxJ!=minJ&&maxI!=minI) {//如果走的既不是豎線,也不是橫線,則不可以走 canMove=false; } } public void bing(int maxI,int minI,int maxJ,int minJ,int startI,int startJ,int endI,int endJ) {//對"兵"的處理 if(startJ<5)//如果還沒有過河 { if(startI!=endI)//如果不是向前走 { canMove=false;//不可以走 } if(endJ-startJ!=1)//如果走的不是一格 { canMove=false;//不可以走 } } else {//如果已經過河 if(startI==endI) {//如果走的是豎線 if(endJ-startJ!=1)//如果走的不是一格 { canMove=false;//不可以走 } } else if(startJ==endJ) {//如果走的是橫線 if(maxI-minI!=1) {//如果走的不是一格 canMove=false;//不可以走 } } else if(startI!=endI&&startJ!=endJ) {//如果走的既不是豎線,也不是橫線,則不可以走 canMove=false; } } } public void zu(int maxI,int minI,int maxJ,int minJ,int startI,int startJ,int endI,int endJ) {//對"卒"的處理 if(startJ>4) {//如果還沒有過河 if(startI!=endI) {//如果不是向前走 canMove=false;//不可以走 } if(endJ-startJ!=-1)//如果走的不是一格 { canMove=false; } } else {//如果已經過河 if(startI==endI) {//如果走的是豎線 if(endJ-startJ!=-1) {//如果走的不是一格 canMove=false;//不可以走 } } else if(startJ==endJ) {//如果走的是橫線 if(maxI-minI!=1) {//如果走的不是一格 canMove=false;//不可以走 } } else if(startI!=endI&&startJ!=endJ) {//如果走的既不是豎線,也不是橫線,則不可以走 canMove=false; } } } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看