• 纵横放火柴


    package test;
    
    import java.util.Scanner;
    
    public class 纵横放火柴游戏 {
    
        public static void main(String arg[])
        {
            Scanner input = new Scanner(System.in);
            char[][] arr = new char[3][4];
            int n = input.nextInt();
            
            while(n-- != 0)
            {
                for(int i = 0;i < 3;i++)
                {
                    String str = input.next();
                    arr[i] = str.toCharArray();
                }
                Putmatch(arr);
            }
        }
        //计算最佳放置法,选择第一个空格放置‘-’或‘1’,能放的就输出
        private static void Putmatch(char[][] arr) {
            // TODO Auto-generated method stub
            for(int i = 0;i < 3;i++)
            {
                for(int j = 0;j < 4;j++)
                {
                    if(arr[i][j] == '0')
                    {
                        arr[i][j] = '-';
                        if(isOk(arr,i,j))
                        {
                            System.out.println(i + "" + j + "" + '-');
                            return;
                        }
                        arr[i][j] = '0';
                        arr[i][j] = '1';
                        if(isOk(arr,i,j))
                        {
                            System.out.println(i + "" + j + "" + '1');
                            return;
                        }
                        arr[i][j] = '0';
                    }
                }
            }
        }
        //判断该放置法是否符合条件,查询当前位置所放的方向上是否有同方向且无阻拦
        private static boolean isOk(char[][] arr, int i, int j) {
            // TODO Auto-generated method stub
            if(arr[i][j] == '-')
            {
                for(int k = j-1;k >= 0;k--)
                {
                    if(arr[i][k] == '-')
                    {
                        return false;
                    }else if(arr[i][k] == '1')
                    {
                        return true;
                    }
                }
                for(int l = j+1;l < 4;l++)
                {
                    if(arr[i][l] == '-')
                    {
                        return false;
                    }else if(arr[i][l] == '1')
                    {
                        return true;
                    }
                }
            }else if(arr[i][j] == '1')
            {
                for(int m = i-1;m >=0;m--)
                {
                    if(arr[m][j] == '1')
                    {
                        return false;
                    }else if(arr[m][j] == '-')
                    {
                        return true;
                    }
                }
                for(int n = i+1;n < 3;n++)
                {
                    if(arr[n][j] == '1')
                    {
                        return false;
                    }else if(arr[n][j] == '-')
                    {
                        return true;
                    }
                }
            }
            return true;
        }
    
    }
  • 相关阅读:
    冲刺五
    ubuntu安装utorrent
    struts2中properties属性
    Hadoop下的word count程序
    导入svn项目时eclipse崩溃
    Struts2 中jsp直接跳转到action
    用eclipse开发hadoop程序
    ubuntu下安装java
    【橙色警报】最新盗qq号方式,连我这个老鸟都一不小心被骗了
    在ubuntu上安装hadoop(书和官方文档结合的)
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8645121.html
Copyright © 2020-2023  润新知