Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import matopeli.Matopeli;
- import matopeli.Pala;
- public class Matoaly {
- private int palojaYlapuolella = 0;
- private int palojaAlapuolella = 0;
- private int palojaVasen = 0;
- private int palojaOikea = 0;
- public void haePalojenPaikat(Matopeli matopeli, ArrayList<Pala> mato) {
- for (Pala pala : mato) {
- if (matopeli.matoY() > pala.getY()) {
- palojaAlapuolella++;
- } else {
- palojaYlapuolella++;
- }
- if (matopeli.matoX() >= pala.getX()) {
- palojaVasen++;
- } else {
- palojaOikea++;
- }
- }
- }
- public String annaSiirto(Matopeli matopeli) {
- palojaAlapuolella = 0;
- palojaYlapuolella = 0;
- palojaVasen = 0;
- palojaOikea = 0;
- ArrayList<Pala> madonpalat = matopeli.madonPalat();
- haePalojenPaikat(matopeli, madonpalat);
- // vaihtoehtoja ovat: YLOS, ALAS, VASEN, OIKEA
- int[][] pelialue = matopeli.annaAlusta();
- int matoX = matopeli.matoX();
- int matoY = matopeli.matoY();
- int omppuX = matopeli.omenaX();
- int omppuY = matopeli.omenaY();
- // SEINIIN OSUMINEN --------------------------------------------------
- if (osuuOseinaan(matopeli) && osuuLattiaan(matopeli)) {
- return "YLOS";
- }
- if (osuuVseinaan(matopeli) && osuuLattiaan(matopeli)) {
- return "YLOS";
- }
- if (osuuOseinaan(matopeli) && osuuKattoon(matopeli)) {
- return "ALAS";
- }
- if (osuuVseinaan(matopeli) && osuuKattoon(matopeli)) {
- return "ALAS";
- }
- if (osuuKattoon(matopeli)) {
- if (!osuuItseensa("ALAS", madonpalat, matopeli)) {
- return "ALAS";
- }
- if (!osuuItseensa("OIKEA", madonpalat, matopeli)) {
- return "OIKEA";
- } else {
- return "VASEN";
- }
- }
- if (osuuLattiaan(matopeli)) {
- if (!osuuItseensa("YLOS", madonpalat, matopeli)) {
- return "YLOS";
- }
- if (!osuuItseensa("VASEN", madonpalat, matopeli)) {
- return "VASEN";
- }
- }
- if (osuuOseinaan(matopeli)) {
- if (!osuuItseensa("VASEN", madonpalat, matopeli)) {
- return "VASEN";
- }
- if (!osuuItseensa("ALAS", madonpalat, matopeli)) {
- return "ALAS";
- }
- }
- if (osuuVseinaan(matopeli)) {
- if (!osuuItseensa("OIKEA", madonpalat, matopeli)) {
- return "OIKEA";
- }
- if (!osuuItseensa("ALAS", madonpalat, matopeli)) {
- return "ALAS";
- }
- }
- // ---------------------------------------------------------------------
- // OMENAN ETSIMINEN ----------------------------------------------------
- if (matoY < omppuY) {
- if (!osuuItseensa("YLOS", madonpalat, matopeli)) {
- return "YLOS";
- }
- }
- if (matoY >= omppuY) {
- if (!osuuItseensa("ALAS", madonpalat, matopeli)) {
- if (palojaAlapuolella < palojaYlapuolella) {
- return "ALAS";
- }
- }
- }
- if (matoX <= omppuX) {
- if (!osuuItseensa("OIKEA", madonpalat, matopeli)) {
- if (palojaOikea < palojaVasen) {
- return "OIKEA";
- }
- }
- }
- if (matoX > omppuX) {
- if (!osuuItseensa("VASEN", madonpalat, matopeli)) {
- return "VASEN";
- }
- }
- if (!osuuItseensa("YLOS", madonpalat, matopeli)) {
- return "YLOS";
- }
- if (!osuuItseensa("ALAS", madonpalat, matopeli)) {
- return "ALAS";
- }
- if (!osuuItseensa("VASEN", madonpalat, matopeli)) {
- return "VASEN";
- }
- if (!osuuItseensa("OIKEA", madonpalat, matopeli)) {
- return "OIKEA";
- }
- return "ALAS";
- }
- // METODIT ----------------------------------------------------------------
- public boolean osuuKattoon(Matopeli matopeli) {
- if (matopeli.matoY() + 1 == matopeli.korkeus()) {
- return true;
- }
- return false;
- }
- public boolean osuuLattiaan(Matopeli matopeli) {
- if (matopeli.matoY() - 1 == 0) {
- return true;
- }
- return false;
- }
- public boolean osuuOseinaan(Matopeli matopeli) {
- if (matopeli.matoX() + 1 == matopeli.leveys()) {
- return true;
- }
- return false;
- }
- public boolean osuuVseinaan(Matopeli matopeli) {
- if (matopeli.matoX() - 1 == 0) {
- return true;
- }
- return false;
- }
- public boolean osuuItseensa(String suunta, ArrayList<Pala> mato, Matopeli matopeli) {
- if (suunta.equals("YLOS")) {
- for (Pala palanen : mato) {
- if (matopeli.matoY() + 1 == palanen.getY() && matopeli.matoX() == palanen.getX()) {
- return true;
- }
- }
- }
- if (suunta.equals("ALAS")) {
- for (Pala palanen : mato) {
- if (matopeli.matoY() - 1 == palanen.getY() && matopeli.matoX() == palanen.getX()) {
- return true;
- }
- }
- }
- if (suunta.equals("OIKEA")) {
- for (Pala palanen : mato) {
- if (matopeli.matoX() + 1 == palanen.getX() && matopeli.matoY() == palanen.getY()) {
- return true;
- }
- }
- }
- if (suunta.equals("VASEN")) {
- for (Pala palanen : mato) {
- if (matopeli.matoX() - 1 == palanen.getX() && matopeli.matoY() == palanen.getY()) {
- return true;
- }
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement