zoukankan      html  css  js  c++  java
  • 纵横放火柴

    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;
        }
    
    }
  • 相关阅读:
    Opencv算法运行时间
    markdown转换为html
    jQuery类名添加click方法
    box-sizing 盒子模型不改变大小
    nodejs 发送get 请求 获取博客园文章列表
    6、Python3中的常用正则表达式
    5、Python3打印函数名之__name__属性
    4、reduce函数工具的使用
    3、Python字符编码区分utf-8和utf-8-sig
    9、QT QLineEdit 密码模式
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8645121.html
Copyright © 2011-2022 走看看