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;
        }
    
    }
  • 相关阅读:
    高精度、大整数幂取模
    关于正则表达式
    003.android资源文件剖析(Resources)
    myBatis 基础测试 表关联关系配置 集合 测试
    Android应用开发学习笔记之播放音频
    移植一个开源点餐网到SAE平台上
    6.0RMB MP3所看到的……
    [读书笔记]设计原本[The Design of Design]
    递归 和 非递归 遍历二叉树
    Android应用开发学习笔记之播放视频
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8645121.html
Copyright © 2011-2022 走看看