import java.util.*;

public class Poistopeli {
    public static void main(String[] args) {
        int n = 19;
        int[] taulu = new int[n];
        for (int i = 0; i < n; i++) {
            taulu[i] = (int)(Math.random()*10+1);
        }

        int[][] tulos = new int[n][n];
        for (int i = 0; i < n; i++) {
            tulos[i][i] = taulu[i];
        }
        for (int k = 2; k <= n; k++) {
            for (int i = 0; i+k <= n; i++) {
                int vasen = taulu[i]-tulos[i+1][i+k-1];
                int oikea = taulu[i+k-1]-tulos[i][i+k-2];
                tulos[i][i+k-1] = Math.max(vasen, oikea);
            }
        }

        int eka = 0, vika = n-1;
        int pelaaja = 0, tekoaly = 0;
        Scanner input = new Scanner(System.in);
        while (true) {
            System.out.print("Luvut: ");
            for (int i = eka; i <= vika; i++) {
                System.out.print(taulu[i] + " ");
            }
            System.out.println();
            System.out.println("Pelaaja: " + pelaaja);
            System.out.println("Tekoäly: " + tekoaly);
            System.out.print("Vasen (V) vai oikea (O)? ");
            String merkki = input.next().toUpperCase();
            int valinta = -1;
            if (merkki.equals("V")) valinta = eka;
            if (merkki.equals("O")) valinta = vika;
            if (valinta == -1) {
                System.out.println("Virheellinen valinta!");
                continue;
            }
            if (valinta == eka) {
                pelaaja += taulu[eka];
                eka++;
            } else {
                pelaaja += taulu[vika];
                vika--;
            }
            if (eka > vika) break;
            System.out.print("Luvut: ");
            for (int i = eka; i <= vika; i++) {
                System.out.print(taulu[i] + " ");
            }
            System.out.println();
            System.out.println("Pelaaja: " + pelaaja);
            System.out.println("Tekoäly: " + tekoaly);
            int vasen = taulu[eka]-tulos[eka+1][vika];
            int oikea = taulu[vika]-tulos[eka][vika-1];
            if (vasen > oikea) {
                System.out.println("Tekoäly valitsee vasemman");
                tekoaly += taulu[eka];
                eka++;
            } else {
                System.out.println("Tekoäly valitsee oikean");
                tekoaly += taulu[vika];
                vika--;
            }
            if (eka > vika) break;
        }
        System.out.println("Peli päättyi!");
        System.out.println("Pelaaja: " + pelaaja);
        System.out.println("Tekoäly: " + tekoaly);
    }
}
