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;
        }
    
    }
  • 相关阅读:
    CSS学习笔记 糖不苦
    Servlet与HTTP介绍学习 糖不苦
    new 的原理和实现 糖不苦
    HTML学习笔记 糖不苦
    事务的概念,以及事务在JDBC编程中处理事务的步骤 糖不苦
    前端JS获取用户位置 糖不苦
    数据接口请求异常:parsererror 糖不苦
    所有CSS字体属性 糖不苦
    jQuery CSS样式方法
    jQuery效果隐藏/显示,淡入/淡出,滑动,动画
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8645121.html
Copyright © 2011-2022 走看看