/*
Online Java - IDE, Code Editor, Compiler

Online Java is a quick and easy tool that helps you to build, compile, test your programs online.
*/

import java.util.Scanner;
import java.io.*;
import java.util.*;
import java.util.Arrays;
import java.util.regex.Pattern;
import java.util.regex.Matcher;


interface Playable
{
    //public void assignChip();    
    public void selectChipPosition();
    public boolean checkAvailability(Character input);
    public boolean insertChip(int pos); 
    public boolean checkConnectFour(int pos);
    public void viewBoard();
}


public class Main
{
    
    
    public static void main (String[] args)
    {
        
        
        ConnectFour cf = new ConnectFour();
        
    }
}


class PlayerTwo
{
    public PlayerTwo(ConnectFour cf)
    {
        
    }
}


class PlayerOne
{
    String[][] board;
    PlayerTwo plTwo;
    
     enum Chips
    {
        RED("X"),
        YELLOW("O");
            
        final String value;
        
        Chips(String value)
        {
            this.value=value;
        }
    }
    
    public PlayerOne(ConnectFour cf)
    {
        this.board=board;
        Chips yellow = Chips.YELLOW;
        System.out.println("PLAYER1 has been assigned: " + yellow.value + " chip");
        cf.selectChipPosition();
        cf.checkAvailability(cf.input);
        cf.checkConnectFour(cf.inputAsInteger);
        plTwo = new PlayerTwo (cf);
        
    }
}

class ConnectFour implements Playable
{
    String[][]board;
    Matcher matcher;
    Character input;
    int inputAsInteger;
    
    public boolean checkAvailability(int input)
    {
        for (int k=(board.length-1); k>=0; k--)
        {
            //if board[k][input]
        }
        
        return true;
    };
    
    public void insertChip(int pos)
    {
        
    }
    
    
    public boolean checkConnectFour()
    {
        return true;
    };
    
    
    public void assignChip()
    {
       
    }
    
    public void selectChipPosition()
    {
        Scanner in = new Scanner(System.in);
        
        //we want to accept input as a String
        //this will mean that whilst validating input,
        //it needs to keep while loop while 
        //!length==1 && indexOf(numbers between 1 - 7)
        
        viewBoard();
        //currentAvailability();
        
        do
        {
        System.out.println("Which column would you like to insert the chip?");
        input = in.next().charAt(0);
        
        String regexColumns="[1234567]";
        Pattern pattern = Pattern.compile(regexColumns, Pattern.CASE_INSENSITIVE);
        matcher = pattern.matcher(Character.toString(input));
        
        }while (!matcher.find());
        
        inputAsInteger = Character.getNumericValue(input);
    }
    
    
    public void viewBoard()
    {
        System.out.println("****CURRENT BOARD****");
        for (String[]row:board)
        {
                System.out.println(Arrays.deepToString(row));
        }
    };
    
    public ConnectFour() 
    {
        System.out.println("Welcome to Online IDE!! Happy Coding :)");
        
        board = new String [][]   { {"-","-","-","-","-","-","-"},
                                    {"-","-","-","-","-","-","-"},
                                    {"-","-","-","-","-","-","-"},
                                    {"-","-","-","-","-","-","-"},
                                    {"-","-","-","-","-","-","-"},
                                    {"-","-","-","-","-","-","-"},
                                };
        viewBoard();
        
        PlayerOne plOne = new PlayerOne (this);
    }
    
   
   
    
}