Advertisement
macrofish

checkthecheck

Sep 16th, 2014
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 26.88 KB | None | 0 0
  1. package checkthecheck;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6.  
  7. class Main {
  8.     public static void main(String[] args) throws IOException {
  9.        char [][]gameboard = new char[8][8];
  10.        
  11.        
  12.        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  13.        String line = null;
  14.        
  15.        
  16.        
  17.        int numberOfTheGame = 1;
  18.        int inCheck = 0;
  19.        
  20.        int xCoordWhiteKing=0;
  21.        int yCoordWhiteKing=0;
  22.        
  23.        int xCoordBlackKing = 0;
  24.        int yCoordBlackKing = 0;
  25.        
  26.        boolean isOver = false;
  27.        boolean moreBoards = true;
  28.        boolean found = false;
  29.        int tmp=0;
  30.        int tmp1 = 0;
  31.        int tmp2 = 0;
  32.        
  33.        int nonDotChars = 0;
  34.        
  35.        //start huge cycle here      
  36.        while(moreBoards)
  37.        {
  38.            nonDotChars = 0;
  39.            inCheck = 0;
  40.            found = false;
  41.            for(int i = 0; i<8;i++)
  42.            {
  43.               line = br.readLine();
  44.               for(int j = 0; j <8; j++)
  45.               {
  46.                   gameboard[i][j] = line.charAt(j);
  47.               }
  48.            }
  49.            
  50.            for(int i = 0; i<8;i++)
  51.            {
  52.               for(int j = 0; j <8; j++)
  53.               {
  54.                   if(gameboard[i][j]!='.')
  55.                   {
  56.                       nonDotChars++;
  57.                   }
  58.               }
  59.            }
  60.            
  61.            if(nonDotChars == 0)
  62.            {
  63.                break;
  64.            }
  65.            
  66. //           for(int i = 0 ; i < 8 ; i++)
  67. //           {
  68. //               for(int j =0;j<8;j++)
  69. //               {
  70. //                   System.out.print(gameboard[i][j]);
  71. //               }
  72. //               System.out.println();
  73. //           }
  74.            
  75.  
  76.            
  77.            for(int i = 0; i <8; i++)
  78.            {
  79.                for(int j = 0; j<8;j++)
  80.                {
  81.                    if(gameboard[i][j]=='K')
  82.                    {
  83.                        xCoordWhiteKing = i;
  84.                        yCoordWhiteKing = j;
  85.                    }
  86.  
  87.                    if(gameboard[i][j]=='k')
  88.                    {
  89.                        xCoordBlackKing = i;
  90.                        yCoordBlackKing = j;
  91.                    }
  92.                }
  93.            }
  94.  
  95.            //////////////////////////
  96.            //////// WHITE KING //////
  97.            //////////////////////////
  98.  
  99.  
  100.            //check if white king (K) has check from black tower(r) and black queen(q) from sides
  101.            tmp = xCoordWhiteKing - 1;
  102.            //top from king
  103.            if(found == false)
  104.            while((tmp >=0) &&
  105.                    ((gameboard[tmp][yCoordWhiteKing]=='.')||(gameboard[tmp][yCoordWhiteKing]=='r')
  106.                             ||(gameboard[tmp][yCoordWhiteKing]=='q')))
  107.            {
  108.                if(gameboard[tmp][yCoordWhiteKing]=='r' || gameboard[tmp][yCoordWhiteKing]=='q')
  109.                {
  110.                    inCheck = 1;
  111.                    System.out.println("Game #"+ numberOfTheGame +": white king is in check.1");
  112.                    found = true;
  113.                    ++numberOfTheGame;
  114.                }
  115.                tmp--;
  116.            }
  117.  
  118.            tmp = xCoordWhiteKing + 1;
  119.            //bot from king
  120.            if(found == false)
  121.            while((tmp <=7) &&
  122.                    ((gameboard[tmp][yCoordWhiteKing]=='.')||(gameboard[tmp][yCoordWhiteKing]=='r')
  123.                             ||(gameboard[tmp][yCoordWhiteKing]=='q')))
  124.            {
  125.                if(gameboard[tmp][yCoordWhiteKing]=='r' || gameboard[tmp][yCoordWhiteKing]=='q')
  126.                {
  127.  
  128.                    inCheck = 1;
  129.                    System.out.println("Game #"+ numberOfTheGame +": white king is in check.2");
  130.                    found = true;
  131.                    ++numberOfTheGame;
  132.                }
  133.                tmp++;
  134.            }
  135.  
  136.            tmp = yCoordWhiteKing -1;
  137.            //left from king
  138.            if(found == false)
  139.            while((tmp >=0) &&
  140.                    ((gameboard[xCoordWhiteKing][tmp]=='.')||(gameboard[xCoordWhiteKing][tmp]=='r')
  141.                    ||(gameboard[xCoordWhiteKing][tmp]=='q')))
  142.            {
  143.                if(gameboard[xCoordWhiteKing][tmp]=='r' || gameboard[xCoordWhiteKing][tmp]=='q')
  144.                {
  145.                    inCheck = 1;
  146.                    System.out.println("Game #"+ numberOfTheGame +": white king is in check.3");
  147.                    found = true;
  148.                    ++numberOfTheGame;
  149.                }
  150.                tmp--;
  151.            }
  152.  
  153.            tmp = yCoordWhiteKing +1;
  154.            //left from king
  155.            if(found == false)
  156.            while((tmp <=7) &&
  157.                    ((gameboard[xCoordWhiteKing][tmp]=='.')||(gameboard[xCoordWhiteKing][tmp]=='r')
  158.                    ||(gameboard[xCoordWhiteKing][tmp]=='q')))
  159.            {
  160.                if(gameboard[xCoordWhiteKing][tmp]=='r' || gameboard[xCoordWhiteKing][tmp]=='q')
  161.                {
  162.                    inCheck = 1;
  163.                    System.out.println("Game #"+ numberOfTheGame +": white king is in check.4");
  164.                    found = true;
  165.                    ++numberOfTheGame;
  166.                }
  167.                tmp++;
  168.            }
  169.  
  170.  
  171.            //check if the white king(K)is in check by bishops and queen from diagonal
  172.  
  173.            //top left from king
  174.            tmp1 = xCoordWhiteKing - 1;
  175.            tmp2 = yCoordWhiteKing - 1;
  176.            if(found == false)
  177.            while((tmp1 >=0 && tmp2>=0) &&
  178.                    ((gameboard[tmp1][tmp2]=='.')||(gameboard[tmp1][tmp2]=='b')
  179.                             ||(gameboard[tmp1][tmp2]=='q')))
  180.            {
  181.                if(gameboard[tmp1][tmp2]=='b' || gameboard[tmp1][tmp2]=='q')
  182.                {
  183.                    inCheck = 1;
  184.                    System.out.println("Game #"+ numberOfTheGame +": white king is in check.5");
  185.                    found = true;
  186.                    ++numberOfTheGame;
  187.                }
  188.                tmp1--;
  189.                tmp2--;
  190.            }
  191.  
  192.  
  193.            //bot left from king
  194.  
  195.            tmp1 = xCoordWhiteKing - 1;
  196.            tmp2 = yCoordWhiteKing + 1;
  197.            if(found == false)
  198.            while((tmp1 >=0 && tmp2<=7) &&
  199.                    ((gameboard[tmp1][tmp2]=='.')||(gameboard[tmp1][tmp2]=='b')
  200.                             ||(gameboard[tmp1][tmp2]=='q')))
  201.            {
  202.                if(gameboard[tmp1][tmp2]=='b' || gameboard[tmp1][tmp2]=='q')
  203.                {
  204.                    inCheck = 1;
  205.                    System.out.println("Game #"+ numberOfTheGame +": white king is in check.6");
  206.                    found = true;
  207.                    ++numberOfTheGame;
  208.                }
  209.                tmp1--;
  210.                tmp2++;
  211.            }
  212.  
  213.            //bot right from king
  214.  
  215.            tmp1 = xCoordWhiteKing + 1;
  216.            tmp2 = yCoordWhiteKing + 1;
  217.            if(found == false)
  218.            while((tmp1 <=7 && tmp2<=7) &&
  219.                    ((gameboard[tmp1][tmp2]=='.')||(gameboard[tmp1][tmp2]=='b')
  220.                             ||(gameboard[tmp1][tmp2]=='q')))
  221.            {
  222.                if(gameboard[tmp1][tmp2]=='b' || gameboard[tmp1][tmp2]=='q')
  223.                {
  224.                    inCheck = 1;
  225.                    System.out.println("Game #"+ numberOfTheGame +": white king is in check.7");
  226.                    found = true;
  227.                    ++numberOfTheGame;
  228.                }
  229.                tmp1++;
  230.                tmp2++;
  231.            }
  232.  
  233.            //top right from king
  234.            tmp1 = xCoordWhiteKing + 1;
  235.            tmp2 = yCoordWhiteKing - 1;
  236.            if(found == false)
  237.            while((tmp1 <=7 && tmp2>=7) &&
  238.                    ((gameboard[tmp1][tmp2]=='.')||(gameboard[tmp1][tmp2]=='b')
  239.                             ||(gameboard[tmp1][tmp2]=='q')))
  240.            {
  241.                if(gameboard[tmp1][tmp2]=='b' || gameboard[tmp1][tmp2]=='q')
  242.                {
  243.                    inCheck = 1;
  244.                    System.out.println("Game #"+ numberOfTheGame +": white king is in check.8");
  245.                    found = true;
  246.                    ++numberOfTheGame;
  247.                }
  248.                tmp1++;
  249.                tmp2--;
  250.            }  
  251.  
  252.  
  253.            //check if the white king(K)is in check by pawns          
  254.            if(xCoordWhiteKing>0)
  255.            {
  256.                //if king is not at sides of the board
  257.                if(yCoordWhiteKing>0 && yCoordWhiteKing <7)
  258.                {
  259.                    if(found == false)
  260.                    if(gameboard[xCoordWhiteKing-1][yCoordWhiteKing-1]=='p'
  261.                            || gameboard[xCoordWhiteKing-1][yCoordWhiteKing+1]=='p')
  262.                    {
  263.                        inCheck = 1;
  264.                        System.out.println("Game #"+ numberOfTheGame +": white king is in check.9");                    
  265.                        found = true;
  266.                        ++numberOfTheGame;
  267.                    }
  268.                }
  269.                //if king is on the most left side
  270.                if(xCoordWhiteKing > 0 && yCoordWhiteKing==0)
  271.                if(found == false)
  272.                if(gameboard[xCoordWhiteKing-1][yCoordWhiteKing+1]=='p')
  273.                {
  274.                    inCheck = 1;
  275.                    System.out.println("Game #"+ numberOfTheGame +": white king is in check.10");
  276.                    found = true;
  277.                    ++numberOfTheGame;
  278.                }
  279.                if(found == false)
  280.                if(xCoordWhiteKing > 0 && yCoordWhiteKing==7)
  281.                if(gameboard[xCoordWhiteKing-1][yCoordWhiteKing-1]=='p')
  282.                {
  283.                    inCheck = 1;
  284.                    System.out.println("Game #"+ numberOfTheGame +": white king is in check.11");
  285.                    found = true;
  286.                    ++numberOfTheGame;
  287.                }
  288.            }
  289.  
  290.            //check if the white king(K)is in check by knights
  291.            
  292.            tmp1 = xCoordWhiteKing + 1;
  293.            tmp2 = yCoordWhiteKing - 2;
  294.            if(found == false)
  295.            if(tmp1>=0 && tmp1<=7)
  296.                if(tmp2>=0 && tmp2<=7)
  297.                {
  298.                    if(gameboard[tmp1][tmp2]=='n')
  299.                    {
  300.                        inCheck = 1;
  301.                       System.out.println("Game #"+ numberOfTheGame +": white king is in check.12");
  302.                       found = true;
  303.                       ++numberOfTheGame;
  304.                    }
  305.                }
  306.            //check if the white king(K)is in check by knights
  307.            
  308.            tmp1 = xCoordWhiteKing + 2;
  309.            tmp2 = yCoordWhiteKing + 1;
  310.            if(found == false)
  311.            if(tmp1>=0 && tmp1<=7)
  312.                if(tmp2>=0 && tmp2<=7)
  313.                {
  314.                    if(gameboard[tmp1][tmp2]=='n')
  315.                    {
  316.                        inCheck = 1;
  317.                       System.out.println("Game #"+ numberOfTheGame +": white king is in check.13");
  318.                       found = true;
  319.                       ++numberOfTheGame;
  320.                    }
  321.                }
  322.            //check if the white king(K)is in check by knights
  323.            
  324.            tmp1 = xCoordWhiteKing + 2;
  325.            tmp2 = yCoordWhiteKing - 1;
  326.            if(found == false)
  327.            if(tmp1>=0 && tmp1<=7)
  328.                if(tmp2>=0 && tmp2<=7)
  329.                {
  330.                    if(gameboard[tmp1][tmp2]=='n')
  331.                    {
  332.                        inCheck = 1;
  333.                       System.out.println("Game #"+ numberOfTheGame +": white king is in check.14");
  334.                       found = true;
  335.                       ++numberOfTheGame;
  336.                    }
  337.                }
  338.            //check if the white king(K)is in check by knights
  339.            
  340.            tmp1 = xCoordWhiteKing + 1;
  341.            tmp2 = yCoordWhiteKing + 2;
  342.            if(found == false)
  343.            if(tmp1>=0 && tmp1<=7)
  344.                if(tmp2>=0 && tmp2<=7)
  345.                {
  346.                    if(gameboard[tmp1][tmp2]=='n')
  347.                    {
  348.                        inCheck = 1;
  349.                       System.out.println("Game #"+ numberOfTheGame +": white king is in check.15");
  350.                       found = true;
  351.                       ++numberOfTheGame;
  352.                    }
  353.                }
  354.            //check if the white king(K)is in check by knights
  355.            
  356.            tmp1 = xCoordWhiteKing - 1;
  357.            tmp2 = yCoordWhiteKing - 2;
  358.            if(found == false)
  359.            if(tmp1>=0 && tmp1<=7)
  360.                if(tmp2>=0 && tmp2<=7)
  361.                {
  362.                    if(gameboard[tmp1][tmp2]=='n')
  363.                    {
  364.                        inCheck = 1;
  365.                       System.out.println("Game #"+ numberOfTheGame +": white king is in check.16");
  366.                       found = true;
  367.                       ++numberOfTheGame;
  368.                    }
  369.                }
  370.            //check if the white king(K)is in check by knights
  371.            
  372.            tmp1 = xCoordWhiteKing - 2;
  373.            tmp2 = yCoordWhiteKing - 1;
  374.            if(found == false)
  375.            if(tmp1>=0 && tmp1<=7)
  376.                if(tmp2>=0 && tmp2<=7)
  377.                {
  378.                    if(gameboard[tmp1][tmp2]=='n')
  379.                    {
  380.                        inCheck = 1;
  381.                       System.out.println("Game #"+ numberOfTheGame +": white king is in check.17");
  382.                       found = true;
  383.                       ++numberOfTheGame;
  384.                    }
  385.                }
  386.            //check if the white king(K)is in check by knights
  387.            
  388.            tmp1 = xCoordWhiteKing - 2;
  389.            tmp2 = yCoordWhiteKing + 1;
  390.            if(found == false)
  391.            if(tmp1>=0 && tmp1<=7)
  392.                if(tmp2>=0 && tmp2<=7)
  393.                {
  394.                    if(gameboard[tmp1][tmp2]=='n')
  395.                    {
  396.                        inCheck = 1;
  397.                       System.out.println("Game #"+ numberOfTheGame +": white king is in check.18");
  398.                       found = true;
  399.                       ++numberOfTheGame;
  400.                    }
  401.                }
  402.            //check if the white king(K)is in check by knights
  403.            
  404.            tmp1 = xCoordWhiteKing - 1;
  405.            tmp2 = yCoordWhiteKing + 2;
  406.            if(found == false)
  407.            if(tmp1>=0 && tmp1<=7)
  408.                if(tmp2>=0 && tmp2<=7)
  409.                {
  410.                    if(gameboard[tmp1][tmp2]=='n')
  411.                    {
  412.                        inCheck = 1;
  413.                       System.out.println("Game #"+ numberOfTheGame +": white king is in check.19");
  414.                       found = true;
  415.                       ++numberOfTheGame;
  416.                    }
  417.                }
  418.  
  419.  
  420.            //////////////////////////
  421.            //////// BLACK KING //////
  422.            //////////////////////////
  423.  
  424.            //check if the black king(K)is in check by knights
  425.            
  426.            tmp1 = xCoordBlackKing + 1;
  427.            tmp2 = yCoordBlackKing - 2;
  428.            if(found == false)
  429.            if(tmp1>=0 && tmp1<=7)
  430.                if(tmp2>=0 && tmp2<=7)
  431.                {
  432.                    if(gameboard[tmp1][tmp2]=='N')
  433.                    {
  434.                        inCheck = 1;
  435.                       System.out.println("Game #"+ numberOfTheGame +": black king is in check.20");
  436.                       found = true;
  437.                       ++numberOfTheGame;
  438.                    }
  439.                }
  440.            //check if the black king(K)is in check by knights
  441.            
  442.            tmp1 = xCoordBlackKing + 2;
  443.            tmp2 = yCoordBlackKing + 1;
  444.            if(found == false)
  445.            if(tmp1>=0 && tmp1<=7)
  446.                if(tmp2>=0 && tmp2<=7)
  447.                {
  448.                    if(gameboard[tmp1][tmp2]=='N')
  449.                    {
  450.                        inCheck = 1;
  451.                       System.out.println("Game #"+ numberOfTheGame +": black king is in check.21");
  452.                       found = true;
  453.                       ++numberOfTheGame;
  454.                    }
  455.                }
  456.            //check if the black king(K)is in check by knights
  457.            
  458.            tmp1 = xCoordBlackKing + 2;
  459.            tmp2 = yCoordBlackKing - 1;
  460.            if(found == false)
  461.            if(tmp1>=0 && tmp1<=7)
  462.                if(tmp2>=0 && tmp2<=7)
  463.                {
  464.                    if(gameboard[tmp1][tmp2]=='N')
  465.                    {
  466.                        inCheck = 1;
  467.                       System.out.println("Game #"+ numberOfTheGame +": black king is in check.22");
  468.                       found = true;
  469.                       ++numberOfTheGame;
  470.                    }
  471.                }
  472.            //check if the black king(K)is in check by knights
  473.            
  474.            tmp1 = xCoordBlackKing + 1;
  475.            tmp2 = yCoordBlackKing + 2;
  476.            if(found == false)
  477.            if(tmp1>=0 && tmp1<=7)
  478.                if(tmp2>=0 && tmp2<=7)
  479.                {
  480.                    if(gameboard[tmp1][tmp2]=='N')
  481.                    {
  482.                        inCheck = 1;
  483.                       System.out.println("Game #"+ numberOfTheGame +": black king is in check.23");
  484.                       found = true;
  485.                       ++numberOfTheGame;
  486.                    }
  487.                }
  488.            //check if the black king(K)is in check by knights
  489.            tmp1 = xCoordBlackKing - 1;
  490.            tmp2 = yCoordBlackKing - 2;
  491.            if(found == false)
  492.            if(tmp1>=0 && tmp1<=7)
  493.                if(tmp2>=0 && tmp2<=7)
  494.                {
  495.                    if(gameboard[tmp1][tmp2]=='N')
  496.                    {
  497.                        inCheck = 1;
  498.                       System.out.println("Game #"+ numberOfTheGame +": black king is in check.24");
  499.                       found = true;
  500.                       ++numberOfTheGame;
  501.                    }
  502.                }
  503.            //check if the black king(K)is in check by knights
  504.            
  505.            tmp1 = xCoordBlackKing - 2;
  506.            tmp2 = yCoordBlackKing - 1;
  507.            if(found == false)
  508.            if(tmp1>=0 && tmp1<=7)
  509.                if(tmp2>=0 && tmp2<=7)
  510.                {
  511.                    if(gameboard[tmp1][tmp2]=='N')
  512.                    {
  513.                        inCheck = 1;
  514.                       System.out.println("Game #"+ numberOfTheGame +": black king is in check.25");
  515.                       found = true;
  516.                       ++numberOfTheGame;
  517.                    }
  518.                }
  519.            //check if the black king(K)is in check by knights
  520.            
  521.            tmp1 = xCoordBlackKing - 2;
  522.            tmp2 = yCoordBlackKing + 1;
  523.            if(found == false)
  524.            if(tmp1>=0 && tmp1<=7)
  525.                if(tmp2>=0 && tmp2<=7)
  526.                {
  527.                    if(gameboard[tmp1][tmp2]=='N')
  528.                    {
  529.                        inCheck = 1;
  530.                       System.out.println("Game #"+ numberOfTheGame +": black king is in check.26");
  531.                       found = true;
  532.                       ++numberOfTheGame;
  533.                    }
  534.                }
  535.            //check if the black king(K)is in check by knights
  536.            
  537.            tmp1 = xCoordBlackKing - 1;
  538.            tmp2 = yCoordBlackKing + 2;
  539.            if(found == false)
  540.            if(tmp1>=0 && tmp1<=7)
  541.                if(tmp2>=0 && tmp2<=7)
  542.                {
  543.                    if(gameboard[tmp1][tmp2]=='N')
  544.                    {
  545.                        inCheck = 1;
  546.                       System.out.println("Game #"+ numberOfTheGame +": black king is in check.27");
  547.                       found = true;
  548.                       ++numberOfTheGame;
  549.                    }
  550.                }
  551.  
  552.  
  553.  
  554.            //check if black king (K) has check from white tower(r) and white queen(q) from sides
  555.            tmp = xCoordBlackKing - 1;
  556.            //top from king
  557.            if(found == false)
  558.            while((tmp >=0) &&
  559.                    ((gameboard[tmp][yCoordBlackKing]=='.')||(gameboard[tmp][yCoordBlackKing]=='R')
  560.                             ||(gameboard[tmp][yCoordBlackKing]=='Q')))
  561.            {
  562.                if(gameboard[tmp][yCoordBlackKing]=='R' || gameboard[tmp][yCoordBlackKing]=='Q')
  563.                {
  564.                    inCheck = 1;
  565.                    System.out.println("Game #"+ numberOfTheGame +": black king is in check.28");
  566.                    found = true;
  567.                    ++numberOfTheGame;
  568.                }
  569.                tmp--;
  570.            }
  571.  
  572.            tmp = xCoordBlackKing+1;
  573.            //bot from king
  574.            if(found == false)
  575.            while((tmp <=7) &&
  576.                    ((gameboard[tmp][yCoordBlackKing]=='.')||(gameboard[tmp][yCoordBlackKing]=='R')
  577.                             ||(gameboard[tmp][yCoordBlackKing]=='Q')))
  578.            {
  579.                if(gameboard[tmp][yCoordBlackKing]=='R' || gameboard[tmp][yCoordBlackKing]=='Q')
  580.                {
  581.                    inCheck = 1;    
  582.                    System.out.println("Game #"+ numberOfTheGame +": black king is in check.29");
  583.                    found = true;
  584.                    ++numberOfTheGame;
  585.                }
  586.                tmp++;
  587.            }
  588.  
  589.            tmp = yCoordBlackKing -1;
  590.            //left from king
  591.            if(found == false)
  592.            while((tmp >=0) &&
  593.                    ((gameboard[xCoordBlackKing][tmp]=='.')||(gameboard[xCoordBlackKing][tmp]=='R')
  594.                    ||(gameboard[xCoordBlackKing][tmp]=='Q')))
  595.            {
  596.                if(gameboard[xCoordBlackKing][tmp]=='R' || gameboard[xCoordBlackKing][tmp]=='Q')
  597.                {
  598.                    inCheck = 1;
  599.                   System.out.println("Game #"+ numberOfTheGame +": black king is in check.30");
  600.                   found = true;
  601.                   ++numberOfTheGame;
  602.                }
  603.                tmp--;
  604.            }
  605.  
  606.            tmp = yCoordBlackKing +1;
  607.            //left from king
  608.            if(found == false)
  609.            while((tmp <=7) &&
  610.                    ((gameboard[xCoordBlackKing][tmp]=='.')||(gameboard[xCoordBlackKing][tmp]=='R')
  611.                    ||(gameboard[xCoordBlackKing][tmp]=='Q')))
  612.            {
  613.                if(gameboard[xCoordBlackKing][tmp]=='R' || gameboard[xCoordBlackKing][tmp]=='Q')
  614.                {
  615.                    inCheck = 1;
  616.                    System.out.println("Game #"+ numberOfTheGame +": black king is in check.31");
  617.                    found = true;
  618.                    ++numberOfTheGame;
  619.                }
  620.                tmp++;
  621.            }
  622.  
  623.  
  624.            //check if the black king(k)is in check by bishops and queen from diagonal
  625.  
  626.            //top left from king
  627.            tmp1 = xCoordBlackKing - 1;
  628.            tmp2 = yCoordBlackKing - 1;
  629.            if(found == false)
  630.            while((tmp1 >=0 && tmp2>=0) &&
  631.                    ((gameboard[tmp1][tmp2]=='.')||(gameboard[tmp1][tmp2]=='B')
  632.                             ||(gameboard[tmp1][tmp2]=='Q')))
  633.            {
  634.                if(gameboard[tmp1][tmp2]=='B' || gameboard[tmp1][tmp2]=='Q')
  635.                {
  636.                    inCheck = 1;
  637.                    System.out.println("Game #"+ numberOfTheGame +": black king is in check.32");
  638.                    found = true;
  639.                    ++numberOfTheGame;
  640.                }
  641.                tmp1--;
  642.                tmp2--;
  643.            }
  644.  
  645.  
  646.            //bot left from king
  647.  
  648.            tmp1 = xCoordBlackKing - 1;
  649.            tmp2 = yCoordBlackKing + 1;
  650.            if(found == false)
  651.            while((tmp1 >=0 && tmp2<=7) &&
  652.                    ((gameboard[tmp1][tmp2]=='.')||(gameboard[tmp1][tmp2]=='B')
  653.                             ||(gameboard[tmp1][tmp2]=='Q')))
  654.            {
  655.                if(gameboard[tmp1][tmp2]=='B' || gameboard[tmp1][tmp2]=='Q')
  656.                {
  657.                    inCheck = 1;
  658.                    System.out.println("Game #"+ numberOfTheGame +": black king is in check.33");
  659.                    found = true;
  660.                    ++numberOfTheGame;
  661.                }
  662.                tmp1--;
  663.                tmp2++;
  664.            }
  665.  
  666.            //bot right from king
  667.  
  668.            tmp1 = xCoordBlackKing + 1;
  669.            tmp2 = yCoordBlackKing + 1;
  670.            if(found == false)
  671.            while((tmp1 <=7 && tmp2<=7) &&
  672.                    ((gameboard[tmp1][tmp2]=='.')||(gameboard[tmp1][tmp2]=='B')
  673.                             ||(gameboard[tmp1][tmp2]=='Q')))
  674.            {
  675.                if(gameboard[tmp1][tmp2]=='B' || gameboard[tmp1][tmp2]=='Q')
  676.                {
  677.                    inCheck = 1;
  678.                    System.out.println("Game #"+ numberOfTheGame +": black king is in check.34");
  679.                    found = true;
  680.                    ++numberOfTheGame;
  681.                }
  682.                tmp1++;
  683.                tmp2++;
  684.            }
  685.  
  686.            //top right from king
  687.            tmp1 = xCoordBlackKing + 1;
  688.            tmp2 = yCoordBlackKing - 1;
  689.            if(found == false)
  690.            while((tmp1 <=7 && tmp2>=0) &&
  691.                    ((gameboard[tmp1][tmp2]=='.')||(gameboard[tmp1][tmp2]=='B')
  692.                             ||(gameboard[tmp1][tmp2]=='Q')))
  693.            {
  694.                if(gameboard[tmp1][tmp2]=='B' || gameboard[tmp1][tmp2]=='Q')
  695.                {
  696.                    inCheck = 1;
  697.                    System.out.println("Game #"+ numberOfTheGame +": black king is in check.35");
  698.                    found = true;
  699.                    ++numberOfTheGame;
  700.                }
  701.                tmp1++;
  702.                tmp2--;
  703.            }  
  704.  
  705.  
  706.            //check if black king has check from white Pawn(P)
  707.            if(found == false)
  708.            if(xCoordBlackKing!=7)
  709.            {
  710.                if(yCoordBlackKing<7 && yCoordBlackKing>0)
  711.                {
  712.                    if(gameboard[xCoordBlackKing+1][yCoordBlackKing-1]=='P'
  713.                            || gameboard[xCoordBlackKing+1][yCoordBlackKing+1]=='P')
  714.                    {
  715.                        inCheck = 1;
  716.                       System.out.println("Game #"+ numberOfTheGame +": black king is in check.36");
  717.                       found = true;
  718.                       ++numberOfTheGame;
  719.                    }
  720.                }
  721.            }
  722.            if(found == false)
  723.            if(yCoordBlackKing==0 && xCoordBlackKing<7)
  724.            {
  725.                if(gameboard[xCoordBlackKing+1][yCoordBlackKing+1]=='P')
  726.                {
  727.                    inCheck = 1;
  728.                  System.out.println("Game #"+ numberOfTheGame +": black king is in check.37");
  729.                  found = true;
  730.                  ++numberOfTheGame;
  731.                }
  732.            }
  733.            if(found == false)
  734.            if(yCoordBlackKing==7 && xCoordBlackKing<7)
  735.            {
  736.                if(gameboard[xCoordBlackKing+1][yCoordBlackKing-1]=='P')
  737.                {
  738.                    inCheck = 1;
  739.                   System.out.println("Game #"+ numberOfTheGame +": black king is in check.38");
  740.                   found = true;
  741.                   ++numberOfTheGame;
  742.                }
  743.            }
  744.  
  745.            if(inCheck==0)
  746.            {
  747.                System.out.println("Game #"+numberOfTheGame +": no king is in check.39");
  748.                ++numberOfTheGame;
  749.            }
  750.            //sc.nextLine();  
  751.            
  752.            br.readLine();
  753.        }
  754.     //end cycle here  
  755.     }
  756.    
  757. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement