From e65488554ed8c4f8968c110783494dea7d505334 Mon Sep 17 00:00:00 2001 From: Sebastian Lehto <sebastian.m.lehto@utu.fi> Date: Sat, 11 Jun 2022 22:57:52 +0300 Subject: [PATCH] Viimeisin versio --- bin/tetris/Main.class | Bin 3972 -> 5733 bytes bin/tetris/Ohjain.class | Bin 3384 -> 3708 bytes src/tetris/Main.java | 122 ++++++++++++++++++++++++++++++++++++---- src/tetris/Ohjain.java | 19 ++++++- 4 files changed, 129 insertions(+), 12 deletions(-) diff --git a/bin/tetris/Main.class b/bin/tetris/Main.class index 22431629137517532bc159ad0710e953268a672a..09df4da480e4d5572d5c9d24249566b3991be639 100644 GIT binary patch delta 2133 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 TGcYi4F|aVKVc5Z_!*CG*{~G?g delta 453 zcmaE=(<0Ax>ff$?3=9m`3~x7bZR406z^Ti4XL22<1oLeM^~qnkjQAKc85vk}6BCOP z85tO}Cbx5YOg7;$Wny?UIh$uHBim+1-seoLHH@kZwUgiSZ?11(;Afb@;LO0lAjZJN zz`!8D;L6~}00IIG0t|u-j0{W+HyLg*Ffzz6Ffht7Ff*_-Ffc^#X1E=>o#C!8vmLV; z%W?)MW;0f1Gq&XnqMI0$MA?i)S@dQyu(hx<wy-gZvTb6J6_CtX`2U$GD}=d#fv<&` zaT9|bOMSv-2D=s(Mp2ec4Dw(_J2x^gFt9K<F)%QgG4L`lFwAD)V3@<e#W0safMFhk zFvENXNrnXsstgMmG#KVHm@zD2aAa7@;KHzs!G~ckLlna*ux~sd?u7d$n&BP;KLaBJ z2SYH!eTD}NOblEMfea6$8Q2(@8F(3d86GjPF|aTQGgvY_W?*ArWe{UfV0gm7#=yq# zl!1YP2d?!Q0~5mq1_lOE2DX0;0_+U885#dFa4<6RG5usvU}9iqc+SAUz{K!^;pJp= YF*yN-R}2gcTnsD>YZ!Jgyk@uv071=MssI20 diff --git a/bin/tetris/Ohjain.class b/bin/tetris/Ohjain.class index 7f85bcf0c6b24470ff52e84312e18fbb75d62a69..6c14b2d7c189e86478d0deccd801c3e3f3446068 100644 GIT binary patch literal 3708 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 delta 2136 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 diff --git a/src/tetris/Main.java b/src/tetris/Main.java index 8e846cf..fb069b1 100644 --- a/src/tetris/Main.java +++ b/src/tetris/Main.java @@ -106,14 +106,16 @@ public class Main extends Application { } if (!peliOhi) { - if (muoto.suurinY() >= KORKEUS - KOKO) { + int y = muoto.suurinY(); + Ohjain.liikutaAlas(muoto); + if (muoto.suurinY() == y) { Muoto a = seuraavaMuoto; ikkuna.getChildren().addAll(a.a, a.b, a.c, a.d); moveOnKeyPress(a); muoto = a; seuraavaMuoto = Ohjain.teeMuoto(); + removeRows(ikkuna); } - Ohjain.liikutaAlas(muoto); scoreTeksti.setText("Score: " + Integer.toString(score)); taso.setText("Taso: " + Integer.toString(riveja)); } @@ -151,22 +153,122 @@ public class Main extends Application { }); } + public void nelioAlas(Rectangle nelio) { + RUUDUKKO[(int)nelio.getX()/KOKO][(int)nelio.getY()/KOKO] = 0; + nelio.setY(nelio.getY()+KOKO); + RUUDUKKO[(int)nelio.getX()/KOKO][(int)nelio.getY()/KOKO] = 1; + } + private void removeRows(Pane pane) { ArrayList<Node> neliot = new ArrayList<>(); - int rivit = 0; - for (int i = 0; i < KORKEUS / KOKO; i++) { - int maara = 0; - for (int j = 0; j < LEVEYS / KOKO; j++) { + ArrayList<Integer> rivit = new ArrayList<>(); + ArrayList<Rectangle> uudetNeliot = new ArrayList<>(); + int tayna = 0; + int ylinrivi = 100; + for (int i = 0; i < RUUDUKKO[0].length; i++) { + for (int j = 0; j < RUUDUKKO.length; j++) { if (RUUDUKKO[j][i] != 0) { - maara++; + tayna++; + } + } + if (tayna == RUUDUKKO.length) { + rivit.add(i); + if (i < ylinrivi) { + ylinrivi = i; + } + } + tayna = 0; + } + + for (Node nelio : pane.getChildren()) { + if (nelio instanceof Rectangle) { + neliot.add(nelio); + } + } + + while (true) { + ArrayList<Node> poistettavat = new ArrayList<>(); + boolean lopeta = true; + for (Node nelio : neliot) { + Rectangle a = (Rectangle) nelio; + if (rivit.contains((int)a.getY()/KOKO)) { + lopeta = false; + pane.getChildren().remove(nelio); + poistettavat.add(nelio); + RUUDUKKO[(int)a.getX()/KOKO][(int)a.getY()/KOKO] = 0; + } else { + uudetNeliot.add(a); } } - if (maara == LEVEYS / KOKO) { - rivit++; - riveja++; + for (Node pois : poistettavat) { + neliot.remove(pois); + } + + + + if (lopeta) { + break; + } + } + + for (Rectangle a : uudetNeliot) { + for (int j = 0; j < rivit.size(); j++) { + if (a.getY()/KOKO < ylinrivi) { + for (int r : rivit) { + nelioAlas(a); + } + } } } + + +// if (rivit.size() > 0) { +// do { +// for (Node nelio : pane.getChildren()) { +// if (nelio instanceof Rectangle) { +// neliot.add(nelio); +// } +// } +// score += 50; +// riveja++; +// +// for (Node nelio : neliot) { +// Rectangle a = (Rectangle) nelio; +// if (a.getY() == rivit.get(0)*KOKO) { +// RUUDUKKO[(int) a.getX()/KOKO][(int) a.getY()/KOKO] = 0; +// pane.getChildren().remove(nelio); +// } else { +// uudetNeliot.add(nelio); +// } +// } +// for (Node nelio : uudetNeliot) { +// Rectangle a = (Rectangle) nelio; +// if (a.getY() < rivit.get(0)*KOKO) { +// RUUDUKKO[(int)a.getX()/KOKO][(int) a.getY()/KOKO] = 0; +// a.setY(a.getY()+KOKO); +// } +// rivit.remove(0); +// neliot.clear(); +// uudetNeliot.clear(); +// +// for (Node nelio1 : pane.getChildren()) { +// if (nelio1 instanceof Rectangle) { +// neliot.add(nelio1); +// } +// } +// for (Node nelio2 : neliot) { +// Rectangle b = (Rectangle) nelio2; +// try { +// RUUDUKKO[(int) b.getX()/KOKO][(int) b.getY()/KOKO] = 1; +// } catch (ArrayIndexOutOfBoundsException e) { +// +// } +// } +// neliot.clear(); +// } +// } while(rivit.size() > 0); +// } } diff --git a/src/tetris/Ohjain.java b/src/tetris/Ohjain.java index be70fd1..186b988 100644 --- a/src/tetris/Ohjain.java +++ b/src/tetris/Ohjain.java @@ -12,6 +12,7 @@ public class Ohjain { public static int [][] RUUDUKKO = Main.RUUDUKKO; public static void liikuOikealle(Muoto muoto) { + asetaRuudukonArvo(muoto, 0); if (muoto.suurinX() < LEVEYS - KOKO) { if (tilaa(muoto, 1, 0)) { @@ -21,9 +22,11 @@ public class Ohjain { muoto.d.setX(muoto.d.getX() + ASKEL); } } + asetaRuudukonArvo(muoto, 1); } public static void liikuVasemmalle(Muoto muoto) { + asetaRuudukonArvo(muoto, 0); if (muoto.pieninX() > 0) { int liikutaA = RUUDUKKO[((int) muoto.a.getX() / KOKO) - 1][(int) muoto.a.getY()/KOKO]; int liikutaB = RUUDUKKO[((int) muoto.b.getX() / KOKO) - 1][(int) muoto.b.getY()/KOKO]; @@ -37,10 +40,11 @@ public class Ohjain { muoto.d.setX(muoto.d.getX() - ASKEL); } } + asetaRuudukonArvo(muoto, 1); } public static void kaanna(Muoto muoto) { - + asetaRuudukonArvo(muoto, 0); switch (muoto.getNimi()) { case "o": break; @@ -48,15 +52,26 @@ public class Ohjain { muoto.muutaAsentoa(); break; } + asetaRuudukonArvo(muoto, 1); + } + + public static void asetaRuudukonArvo(Muoto muoto, int arvo) { + RUUDUKKO[(int)muoto.a.getX()/KOKO][(int)muoto.a.getY()/KOKO] = arvo; + RUUDUKKO[(int)muoto.b.getX()/KOKO][(int)muoto.b.getY()/KOKO] = arvo; + RUUDUKKO[(int)muoto.c.getX()/KOKO][(int)muoto.c.getY()/KOKO] = arvo; + RUUDUKKO[(int)muoto.d.getX()/KOKO][(int)muoto.d.getY()/KOKO] = arvo; } public static void liikutaAlas(Muoto muoto) { - if (tilaa(muoto, 0, 1)) { //muoto.suurinY() < KORKEUS - KOKO + asetaRuudukonArvo(muoto, 0); + + if (tilaa(muoto, 0, 1)) { muoto.a.setY(muoto.a.getY() + KOKO); muoto.b.setY(muoto.b.getY() + KOKO); muoto.c.setY(muoto.c.getY() + KOKO); muoto.d.setY(muoto.d.getY() + KOKO); } + asetaRuudukonArvo(muoto, 1); } public static boolean tilaa(Muoto muoto, int xDiff, int yDiff) { -- GitLab