Ibe6

import sk.upjs.jpaz2.Turtle;

public class Poliarka extends Turtle {

        public boolean jeNeklesajuce(int[] pole) {
                for (int i = 1; i < pole.length; i++) {
                        if (pole[i -1] > pole[i]) {
                                return false;
                        }
                }
                return true;
        }

        public double[] lenKladne(double[] pole) {
                int pk = 0;
                for (int i=0; i<pole.length; i++)
                        if (pole[i] >= 0)
                                pk++;

                double[] vysledok = new double[pk];

                pk = 0;
                for (int i=0; i<pole.length; i++)
                        if (pole[i] >= 0) {
                                vysledok[pk] = pole[i];
                                pk++;
                        }

                return vysledok;
        }
}
import java.awt.Color;
import java.awt.event.MouseEvent;

import sk.upjs.jpaz2.*;

public class PrepinaciaHra extends WinPane {
        /**
         * Policka hracej dosky
         */

        private boolean[][] doska = new boolean[6][6];

        /**
         * Indikuje, ci hra bezi (hra konci, ked sa dosiahlo vyherne rozlozenie)
         */

        private boolean hraBezi = true;

        public PrepinaciaHra() {
                this.kresliMriezku();
                this.zamiesaj(30);
                this.kresliDosku();
        }

        /**
         * Nakresli mriezku
         */

        public void kresliMriezku() {
                Turtle k = new Turtle();
                this.add(k);

                for (int i = 1; i < 6; i++) {
                        k.setPosition(i * 50, 0);
                        k.moveTo(i * 50, this.getHeight());
                }

                for (int i = 1; i < 6; i++) {
                        k.setPosition(0, i * 50);
                        k.moveTo(this.getWidth(), i * 50);
                }

                this.remove(k);
        }

        /**
         * Nakresli farebne kamene na zaklade obsahu policok v this.doska
         */

        public void kresliDosku() {
                Turtle kreslic = new Turtle();
                add(kreslic);

                for (int r = 0; r < 6; r++) {
                        for (int s = 0; s < 6; s++) {
                                kreslic.setPosition(s * 50 + 25, r * 50 + 25);
                                if (doska[r][s]) {
                                        kreslic.setFillColor(Color.red);
                                } else {
                                        kreslic.setFillColor(Color.blue);
                                }
                                kreslic.dot(20);
                        }
                }

                remove(kreslic);
        }

        /**
         * Overi, ci riadok r a stlpec s su platne suradnice
         */

        public boolean dobraSuradnica(int r, int s) {
                return (r >= 0) && (r < 6) && (s >= 0) && (s < 6);
        }

        /**
         * Zrealizuje tah, kedy bolo zatlaceny prepinac na policku v riadku r a
         * stlpci s
         */

        public void tah(int r, int s) {
                int[][] smery = { { 1, 0 }, { 0, 1 }, { -1, 0 }, { 0, -1 } };

                for (int i = 0; i < smery.length; i++) {
                        int rSused = r + smery[i][0];
                        int sSused = s + smery[i][1];
                        if (dobraSuradnica(rSused, sSused)) {
                                doska[rSused][sSused] = !doska[rSused][sSused];
                        }
                }
        }

        /**
         * Vytvori startovacie rozlozenie kamenov tak, ze spravi zadany pocet
         * nahodnych prepnuti (tahov)
         */

        public void zamiesaj(int pocetMiesani) {
                for (int i=0; i<pocetMiesani; i++) {
                        tah((int)(Math.random()*6), (int)(Math.random()*6));
                }
        }

        /**
         * Vrati, ci v aktualnom stave policok je kresliaca plocha jednofarebna
         */

        public boolean jeVyherna() {
                for (int r=0; r<6; r++) {
                        for (int s=0; s<6; s++) {
                                if (doska[0][0] != doska[r][s]) {
                                        return false;
                                }
                        }
                }

                return true;
        }

        @Override
        protected void onMouseClicked(int x, int y, MouseEvent detail) {
                if (!hraBezi)
                        return;

                tah(y / 50, x / 50);
                kresliDosku();
                if (jeVyherna()) {
                        hraBezi = false;
                }
        }
}
import java.util.Arrays;

public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                Poliarka nova = new Poliarka();
                double[] moje = { 1, 3, -8, 5, -6};

                //System.out.println(nova.jeNeklesajuce(moje));
                System.out.println(Arrays.toString(nova.lenKladne(moje)));

                PrepinaciaHra hra = new PrepinaciaHra();
        }
}