diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..91e1216 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "vscjava.vscode-java-pack", + "SonarSource.sonarlint-vscode" + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 8720bec..a07dbb5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,6 @@ "sonarlint.connectedMode.project": { "connectionId": "bme-mit-iet-org", "projectKey": "BME-MIT-IET_iet-hf-2024-nomad-szabotorok" - } + }, + "java.configuration.updateBuildConfiguration": "interactive" } \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9cf99a8..1444842 100644 --- a/pom.xml +++ b/pom.xml @@ -9,13 +9,11 @@ 1.0-SNAPSHOT pipe_game - - http://www.example.com UTF-8 - 1.7 - 1.7 + 1.8 + 1.8 bme-mit-iet-org https://sonarcloud.io diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/Cistern.java b/src/main/java/hu/bme/mit/iet/pipe_game/Cistern.java index e3fc573..0315f72 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/Cistern.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/Cistern.java @@ -26,6 +26,7 @@ public class Cistern extends SystemPart { private boolean hasPipe = false; private int pCount = 0; private int timeLeft = 2; + private Random rand = new Random(); /** * Konstruktor, ami beállítja az id-t az osztály nevére és egy eltérő számra @@ -39,13 +40,13 @@ public Cistern() { * A csőnek mindkét szomszégjának magát állítja be, * hogy ne legyen szabad és ne folyon ki belőle a víz */ - public void CreatePipe() { + public void createPipe() { Pipe p = new Pipe(); - Control.AddPipe(p); - p.AddNeighbour(this); - p.AddNeighbour(this); - AddNeighbour(p); - AddNeighbour(p); + Control.addPipe(p); + p.addNeighbour(this); + p.addNeighbour(this); + addNeighbour(p); + addNeighbour(p); pipe = p; hasPipe = true; pCount++; @@ -54,9 +55,9 @@ public void CreatePipe() { /** * Létrehoz egy új pumpát és eltárolja azt a tagváltozójába */ - public void CreatePump() { + public void createPump() { pump = new Pump(); - Control.AddPump(pump); + Control.addPump(pump); } /** @@ -64,7 +65,7 @@ public void CreatePump() { * @return visszadjuk a pumpát */ @Override - public Pump CarryPump() { + public Pump carryPump() { Pump p = pump; pump = null; @@ -78,12 +79,12 @@ public Pump CarryPump() { * @return visszadja hogy mennyi vizet gyűjtött össze */ @Override - public int PullWater() { + public int pullWater() { int points = 0; - for (SystemPart pipe: neighbours) { - points += pipe.getWater(); - pipe.setWater(0); + for (SystemPart _pipe: neighbours) { + points += _pipe.getWater(); + _pipe.setWater(0); } return points; } @@ -92,16 +93,15 @@ public int PullWater() { * A control minden körben meghívja, * ha letelik az idő akkor generál egy pumpát vagy csövet */ - public void Generate() { - Random rand = new Random(); + public void generate() { int coin = rand.nextInt(2); if (--timeLeft == 0) { if (coin == 1 ) { - CreatePump(); + createPump(); } else { - CreatePipe(); + createPipe(); } timeLeft = 2; } diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/CisternView.java b/src/main/java/hu/bme/mit/iet/pipe_game/CisternView.java index 7c01171..2ac4ba1 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/CisternView.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/CisternView.java @@ -31,7 +31,7 @@ public CisternView(View view, Cistern cistern) { * frissíti a part JButtont a jelenlegi állapotoknak megfelelően */ @Override - public void Update() { + public void update() { button.setBounds(x,y,50,50); button.setBackground(Color.RED); @@ -42,7 +42,7 @@ public void Update() { */ view.getPanel().remove(button); - while (players.size() > 0){ + while (!players.isEmpty()){ view.getPanel().remove(players.get(0)); players.remove(0); } @@ -79,6 +79,7 @@ public void Update() { * getter fügvény ID-re * @return ID-t adja vissza */ + @Override public String getID(){ return cistern.getId(); } diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/Control.java b/src/main/java/hu/bme/mit/iet/pipe_game/Control.java index 6b91848..75ec616 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/Control.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/Control.java @@ -3,18 +3,22 @@ import java.util.*; public class Control { - private ArrayList mechanics = new ArrayList<>(); - private ArrayList saboteurs = new ArrayList<>(); + private static ArrayList mechanics = new ArrayList<>(); + private static ArrayList saboteurs = new ArrayList<>(); private static ArrayList pumps = new ArrayList<>(); - private ArrayList cisterns = new ArrayList<>(); - private ArrayList waterSources = new ArrayList<>(); + private static ArrayList cisterns = new ArrayList<>(); + private static ArrayList waterSources = new ArrayList<>(); private static ArrayList pipes = new ArrayList<>(); - private int rounds, maxRound; - private static int saboteurPoints, mechanicPoints; - private Player currentPlayer,lastPlayer; - private boolean gameOver = false; - private boolean randEnabled = true; - private int pumpBreak = 2; + private static int rounds; + private static int maxRound; + private static int saboteurPoints; + private static int mechanicPoints; + private static Player currentPlayer; + private static Player lastPlayer; + private static boolean gameOver = false; + private static boolean randEnabled = true; + private static int pumpBreak = 2; + private static Random rnd = new Random(); /** * A játék inicializálása: @@ -25,7 +29,7 @@ public class Control { * @param mechanicCounter hány szerelő játszik * @param saboteurCounter hány szabotőr játszik */ - public void Init(int r, int mechanicCounter, int saboteurCounter) { + public static void init(int r, int mechanicCounter, int saboteurCounter) { maxRound = r; rounds = 1; @@ -65,8 +69,8 @@ public void Init(int r, int mechanicCounter, int saboteurCounter) { connect(pump2, pipe3); connect(pump2, pipe5); - pump1.AcceptNewFlow(pipe1,pipe4); - pump2.AcceptNewFlow(pipe2,pipe5); + pump1.acceptNewFlow(pipe1,pipe4); + pump2.acceptNewFlow(pipe2,pipe5); connect(c1, pipe4); connect(c2, pipe5); @@ -100,36 +104,40 @@ public void Init(int r, int mechanicCounter, int saboteurCounter) { * Ilyenkor folyik a víz a csőrendszerben és frissülnek a csapatok pontszámai * Csökkenti az efektek időtartalmát */ - public void RoundOver() { - /** ciszternák - */ - for (Cistern c:cisterns) { - mechanicPoints += c.PullWater(); - c.Generate(); - } - /** pumpák - */ + + public static void handlePumps() { for (Pump p:pumps) { - saboteurPoints += p.PushWater(); + saboteurPoints += p.pushWater(); } for (Pump p:pumps) { - p.PullWater(); + p.pullWater(); // pump random eltörése - Random rnd = new Random(); pumpBreak--; if (randEnabled) { if(rnd.nextInt(10) > 7) - p.BreakPump(); + p.breakPump(); } else { if (pumpBreak == 0) - p.BreakPump(); + p.breakPump(); } } + } + public static void roundOver() { + /** ciszternák + */ + for (Cistern c:cisterns) { + mechanicPoints += c.pullWater(); + c.generate(); + } + /** pumpák + */ + handlePumps(); + /** Vízforrás */ for (WaterSource ws:waterSources) { - saboteurPoints += ws.PushWater(); + saboteurPoints += ws.pushWater(); } /** Csövek */ @@ -149,28 +157,53 @@ public void RoundOver() { } } + public void pumpChangeFlow(List command) { + if (command.size() < 3) { + return; + } + String[] s1 = command.get(1).split(" "); + int p1 = Integer.parseInt(s1[1]); + int p2 = Integer.parseInt(command.get(3)); + if (0 > p1 || p1 >= pipes.size() || 0 > p2 || p2 >= pipes.size() ){ + // Nem letezo elemek + return; + } - /** - * A játékos parancsait feldolgozó és megvalósító metódus - * @param "currentPlayer" az éppen soron lévő játékos - */ - public int PlayerAction(ArrayList command) { + Pipe pipe1 = pipes.get(p1); + Pipe pipe2 = pipes.get(p2); + boolean p1found = false; + boolean p2found = false; + + for (int i = 0; i < currentPlayer.getPosition().getNeighbours().size();++i) { + String id = currentPlayer.getPosition().getNeighbours().get(i).getId(); + if (!p1found && id.equals(pipe1.id)) + p1found = true; + if (!p2found && id.equals(pipe2.id)) + p2found = true; + if (p1found && p2found) { + currentPlayer.changePumpFlow(pipe1, pipe2); + break; + } + } + } + + public int handlePlayerCommand(List command) { int pumpLayed = -1; switch (command.get(0)){ case "breakpipe": - currentPlayer.BreakPipe(); + currentPlayer.breakPipe(); break; case "carrypipe": - currentPlayer.CarryPipeEnd(pipes.get(Integer.parseInt(command.get(2)))); + currentPlayer.carryPipeEnd(pipes.get(Integer.parseInt(command.get(2)))); break; case "carrypump": - currentPlayer.CarryPump(); + currentPlayer.carryPump(); break; case "laypipe": - currentPlayer.LayPipe(); + currentPlayer.layPipe(); break; case "laypump": - SystemPart pump = currentPlayer.LayPump(); + SystemPart pump = currentPlayer.layPump(); if (pumps.contains(pump)) pumpLayed = pumps.indexOf(pump); break; @@ -185,45 +218,20 @@ public int PlayerAction(ArrayList command) { if (moveTo == null) {//ha nem erheto el breakelunk break; } - currentPlayer.Move(moveTo);//jatekos probal mozogni + currentPlayer.move(moveTo);//jatekos probal mozogni break; } case "pumpchangeflow": - if (command.size() < 3) { - break; - } - String[] s1 = command.get(1).split(" "); - int p1 = Integer.parseInt(s1[1]); - int p2 = Integer.parseInt(command.get(3)); - if (0 > p1 || p1 >= pipes.size() || 0 > p2 || p2 >= pipes.size() ){ - // Nem letezo elemek - break; - } - - Pipe pipe1 = pipes.get(p1); - Pipe pipe2 = pipes.get(p2); - boolean p1found = false, p2found = false; - - for (int i = 0; i < currentPlayer.getPosition().getNeighbours().size();++i) { - String id = currentPlayer.getPosition().getNeighbours().get(i).getId(); - if (!p1found && id.equals(pipe1.id)) - p1found = true; - if (!p2found && id.equals(pipe2.id)) - p2found = true; - if (p1found && p2found) { - currentPlayer.ChangePumpFlow(pipe1, pipe2); - break; - } - } + pumpChangeFlow(command); break; case "repair": - currentPlayer.Repair(); + currentPlayer.repair(); break; case "makeslippery": - currentPlayer.MakePipeSlippery(); + currentPlayer.makePipeSlippery(); break; case "makegluey": - currentPlayer.GluePipe(); + currentPlayer.gluePipe(); break; case "pass": // passed the turn @@ -232,23 +240,32 @@ public int PlayerAction(ArrayList command) { default: break; } + return pumpLayed; + } + + /** + * A játékos parancsait feldolgozó és megvalósító metódus + * @param "currentPlayer" az éppen soron lévő játékos + */ + public int playerAction(List command) { + int pumpLayed = handlePlayerCommand(command); currentPlayer.decActionPoints(); boolean roundOver = false; /** Ha nincs akciopontja a jelenlegi jatekosnak, iteralni kell egyet a jatekosok kozott */ if (currentPlayer.getActionPoints() <= 0) { - roundOver = IterateCurrentPlayer(); + roundOver = iterateCurrentPlayer(); currentPlayer.setActionPoints(3); } /** Ha kör vége van */ if (roundOver){ - RoundOver(); + roundOver(); } return pumpLayed; } - public void setMechanicPoints(int points) { + public static void setMechanicPoints(int points) { mechanicPoints = points; } public int getMechanicPoints(){ @@ -261,42 +278,42 @@ public static int getSaboteurPoints() { return saboteurPoints; } - public static void AddPump(Pump p) { + public static void addPump(Pump p) { Control.pumps.add(p); } - public static void AddPipe(Pipe p) { + public static void addPipe(Pipe p) { Control.pipes.add(p); } - private void connect(SystemPart s1, SystemPart s2) { - s1.AddNeighbour(s2); - s2.AddNeighbour(s1); + private static void connect(SystemPart s1, SystemPart s2) { + s1.addNeighbour(s2); + s2.addNeighbour(s1); } - public void setRand(boolean a) { + public static void setRand(boolean a) { randEnabled = a; } - public ArrayList getMechanics(){ + public List getMechanics(){ return mechanics; } - public ArrayList getSaboteurs(){ + public List getSaboteurs(){ return saboteurs; } - public ArrayList getPipes(){ + public List getPipes(){ return pipes; } - public ArrayList getPumps(){ + public List getPumps(){ return pumps; } - public ArrayList getCisterns(){ + public List getCisterns(){ return cisterns; } - public ArrayList getWaterSources(){ + public List getWaterSources(){ return waterSources; } @@ -305,7 +322,7 @@ public ArrayList getWaterSources(){ * Iteralja a jatekosokat * @return */ - public boolean IterateCurrentPlayer(){ + public static boolean iterateCurrentPlayer(){ if(mechanics.contains(currentPlayer)) { int mechIdx = mechanics.indexOf(currentPlayer); if (mechIdx == (mechanics.size() - 1)) { @@ -338,21 +355,22 @@ else if(saboteurs.contains(currentPlayer)) { * @return String status */ public String getStatus() { - String mehanicParts = ""; - for (Mechanic m: mechanics) { - mehanicParts += m.getId() + " has: " + m.getPart() + "\n" ; + StringBuilder mechanicPartsBuilder = new StringBuilder(); + for (Mechanic m : mechanics) { + mechanicPartsBuilder.append(m.getId()) + .append(" has: ") + .append(m.getPart()) + .append("\n"); } - String status = - "Round " + rounds + "/" + maxRound + "\n" + + String mechanicParts = mechanicPartsBuilder.toString(); + return "Round " + rounds + "/" + maxRound + "\n" + "Mechanic points: " + mechanicPoints + "\n" + "Saboteur points: " + saboteurPoints + "\n" + "\n" + "Now playing: " + currentPlayer.id + "\n" + "Actions left: " + currentPlayer.getActionPoints() + "\n" + "\n" + - mehanicParts ; - - return status; + mechanicParts ; } /** @@ -369,7 +387,7 @@ public Player getLastPlayer() { * Vege van-e a hateknak * @return vege van-e a jateknak */ - public boolean GameOver() { + public boolean gameOver() { return gameOver; } } diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/GUIControl.java b/src/main/java/hu/bme/mit/iet/pipe_game/GUIControl.java index 8b6fff2..c1c98d7 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/GUIControl.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/GUIControl.java @@ -2,25 +2,24 @@ import javax.swing.*; import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.WindowEvent; -import java.awt.geom.Line2D; -import java.beans.PropertyChangeListener; -import java.nio.channels.Pipe; import java.util.ArrayList; +import java.util.List; public class GUIControl extends JFrame{ - private Control gameControl; + private transient Control gameControl; private View gameField; - private int rounds, mechCount, sabCount; + private int rounds; + private int mechCount; + private int sabCount; + private String arial = "Arial"; /** * a menu létrehozása exit és start gombokkal * a gombok műkődésének beállítása */ - public void Run(){ - this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + public void run(){ + this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); this.setSize(1000, 855); this.setTitle("Sivatagi Vízhálózat"); this.setResizable(false); @@ -31,16 +30,16 @@ public void Run(){ menu.setPreferredSize(new Dimension(500,500)); JButton start = new JButton("Játék indítása"); - start.setFont(new Font("Arial", Font.BOLD, 32)); + start.setFont(new Font(arial, Font.BOLD, 32)); start.setBounds((1000-300)/2, 250, 300, 100); JButton exit = new JButton("Kilépés"); exit.setBounds((1000-300)/2, 400, 300, 100); - exit.setFont(new Font("Arial", Font.BOLD, 32)); + exit.setFont(new Font(arial, Font.BOLD, 32)); JLabel title = new JLabel("Sivatagi Vízhálózat", SwingConstants.CENTER); title.setBounds(0, 50, 1000, 150); - title.setFont(new Font("Arial", Font.BOLD, 60)); + title.setFont(new Font(arial, Font.BOLD, 60)); menu.add(title); menu.add(start); @@ -53,20 +52,8 @@ public void Run(){ * ActionListener-ek a gombokhoz * kilepes es start */ - exit.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - dispatchEvent(new WindowEvent(GUIControl.this, WindowEvent.WINDOW_CLOSING)); - } - }); - - start.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - Settings(menu); - } - }); - + exit.addActionListener(e -> dispatchEvent(new WindowEvent(GUIControl.this, WindowEvent.WINDOW_CLOSING))); + start.addActionListener(e -> settings(menu)); } /** @@ -76,7 +63,7 @@ public void actionPerformed(ActionEvent e) { * a start gomb megnyomására a kiválasztott beállítások beállítása * @param oldMenu */ - public void Settings(JPanel oldMenu) { + public void settings(JPanel oldMenu) { this.remove(oldMenu); final JPanel menu = new JPanel(); @@ -85,11 +72,11 @@ public void Settings(JPanel oldMenu) { JLabel title = new JLabel("Beállítások", SwingConstants.CENTER); title.setBounds(0, 20, 1000, 150); - title.setFont(new Font("Arial", Font.BOLD, 60)); + title.setFont(new Font(arial, Font.BOLD, 60)); JLabel kor = new JLabel("Hány kör legyen?", SwingConstants.LEFT); kor.setBounds(150, 200, 500, 100); - kor.setFont(new Font("Arial", Font.BOLD, 30)); + kor.setFont(new Font(arial, Font.BOLD, 30)); Integer[] szamok = new Integer[]{1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20}; final JComboBox roundNum = new JComboBox<>(szamok); @@ -97,20 +84,20 @@ public void Settings(JPanel oldMenu) { JLabel saboteur = new JLabel("Hány szabotőr legyen?", SwingConstants.LEFT); saboteur.setBounds(150, 300, 500, 100); - saboteur.setFont(new Font("Arial", Font.BOLD, 30)); + saboteur.setFont(new Font(arial, Font.BOLD, 30)); final JComboBox saboteurCount = new JComboBox<>(new Integer[]{2, 3, 4}); saboteurCount.setBounds(650, 340, 50, 20); JLabel mechanic = new JLabel("Hány szerelő legyen?", SwingConstants.LEFT); mechanic.setBounds(150, 400, 500, 100); - mechanic.setFont(new Font("Arial", Font.BOLD, 30)); + mechanic.setFont(new Font(arial, Font.BOLD, 30)); final JComboBox mechanicCount = new JComboBox<>(new Integer[]{2, 3, 4}); mechanicCount.setBounds(650, 440, 50, 20); JButton start = new JButton("Játék indítása"); - start.setFont(new Font("Arial", Font.BOLD, 32)); + start.setFont(new Font(arial, Font.BOLD, 32)); start.setBounds((1000 - 300) / 2, 500, 300, 100); menu.add(title); @@ -125,16 +112,14 @@ public void Settings(JPanel oldMenu) { /** * 3 comboboxhoz ActionListener */ - start.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { + start.addActionListener(e -> { rounds = (int)roundNum.getSelectedItem(); sabCount = (int)saboteurCount.getSelectedItem(); mechCount = (int)mechanicCount.getSelectedItem(); remove(menu); - StartGame(); + startGame(); } - }); + ); this.add(menu); this.revalidate(); @@ -144,12 +129,12 @@ public void actionPerformed(ActionEvent e) { * Játék indítása * játékmező beállítása és kirajzolása */ - public void StartGame() { + public void startGame() { gameField = new View(this); gameControl= new Control(); - gameControl.Init(rounds,mechCount,sabCount); + Control.init(rounds,mechCount,sabCount); - ArrayList things = new ArrayList(); + ArrayList things = new ArrayList<>(); for (int i = 0; i < gameControl.getPipes().size(); ++i){ PipeView thing = new PipeView(gameField, gameControl.getPipes().get(i)); @@ -188,72 +173,77 @@ public void StartGame() { things.get(10).setCoords(750, 0); gameField.setFields(things); - gameField.UpdateAll(); + gameField.updateAll(); } - /** - * Egy commandot vegrehajt, azaz atad a modellnek, h vegrehajtsa az akciot. - * Ha letettunk egy pumpat, akkor azt felveszi a jatekterbe - * @param commands - */ - public void commitCommand(ArrayList commands) { - int ertek = gameControl.PlayerAction(commands); + public void handlePutDownPipe(int ertek) throws NullPointerException { + Pump pump = gameControl.getPumps().get(ertek); + PumpView pumpView = new PumpView(gameField, pump); + PipeView pipeView = new PipeView(gameField, gameControl.getPipes().get(gameControl.getPipes().size() - 1)); - /** - * ha ertek <0 ,akkor nem volt pumpaletetel - * ha ertek >= 0, akkro volt, es ertek a pumps-ban az idnexet adja vissza - */ - if ( ertek>= 0) { - Pump pump = gameControl.getPumps().get(ertek); - PumpView pumpView = new PumpView(gameField, pump); - PipeView pipeView = new PipeView(gameField, gameControl.getPipes().get(gameControl.getPipes().size() - 1)); - - ViewBase posPipe = null; - for (int i = 0; i < gameField.getFields().size(); ++i) { + ViewBase posPipe = null; + for (int i = 0; i < gameField.getFields().size(); ++i) { - if (gameControl.getLastPlayer().getPosition().getId().equals(gameField.getFields().get(i).getID())) { - posPipe = gameField.getFields().get(i); - break; - } + if (gameControl.getLastPlayer().getPosition().getId().equals(gameField.getFields().get(i).getID())) { + posPipe = gameField.getFields().get(i); + break; } + } - int n1X = 0; - int n1Y = 0; - int n2X = 0; - int n2Y = 0; + int n1X = 0; + int n1Y = 0; + int n2X = 0; + int n2Y = 0; - SystemPart posp = pump.getNeighbours().get(0); - SystemPart newp = pump.getNeighbours().get(1); + SystemPart posp = pump.getNeighbours().get(0); + SystemPart newp = pump.getNeighbours().get(1); - String n1 = posp.getNeighbours().get(0).getId(); - String n2 = newp.getNeighbours().get(1).getId(); + String n1 = posp.getNeighbours().get(0).getId(); + String n2 = newp.getNeighbours().get(1).getId(); - ArrayList fields = gameField.getFields(); - for (ViewBase f : fields) { - String id = f.getID(); - if (id.equals(n1)) { - n1X = f.getX(); - n1Y = f.getY(); - } - if (id.equals(n2)) { - n2X = f.getX(); - n2Y = f.getY(); - } + List fields = gameField.getFields(); + for (ViewBase f : fields) { + String id = f.getID(); + if (id.equals(n1)) { + n1X = f.getX(); + n1Y = f.getY(); + } + if (id.equals(n2)) { + n2X = f.getX(); + n2Y = f.getY(); } + } + if (posPipe == null) + return; + pumpView.setCoords(posPipe.x, posPipe.y); + pipeView.setCoords((n2X + posPipe.x) / 2, (n2Y + posPipe.y) / 2); + posPipe.setCoords((n1X + posPipe.x) / 2, (n1Y + posPipe.y) / 2); + + fields.add(pumpView); + fields.add(pipeView); + } - pumpView.setCoords(posPipe.x, posPipe.y); - pipeView.setCoords((n2X + posPipe.x) / 2, (n2Y + posPipe.y) / 2); - posPipe.setCoords((n1X + posPipe.x) / 2, (n1Y + posPipe.y) / 2); + /** + * Egy commandot vegrehajt, azaz atad a modellnek, h vegrehajtsa az akciot. + * Ha letettunk egy pumpat, akkor azt felveszi a jatekterbe + * @param commands + */ + public void commitCommand(List commands) { + int ertek = gameControl.playerAction(commands); - fields.add(pumpView); - fields.add(pipeView); + /** + * ha ertek <0 ,akkor nem volt pumpaletetel + * ha ertek >= 0, akkro volt, es ertek a pumps-ban az idnexet adja vissza + */ + if (ertek>= 0) { + handlePutDownPipe(ertek); } - ArrayList cisterns = gameControl.getCisterns(); + List cisterns = gameControl.getCisterns(); for (int i = 0; i < cisterns.size(); ++i){ - if ( !cisterns.get(i).hasPump() && cisterns.get(i).hasP() ==true) { - ArrayList fields = gameField.getFields(); + if ( !cisterns.get(i).hasPump() && cisterns.get(i).hasP()) { + List fields = gameField.getFields(); PipeView pw = new PipeView(gameField, cisterns.get(i).getPipe()); int x = 0; int y = 0; @@ -266,20 +256,19 @@ public void commitCommand(ArrayList commands) { } pw.setCoords(x, y-100*cisterns.get(i).getpCount()); fields.add(pw); - System.out.println("generalodott"); } } /** * Vege van e a jateknak */ - CheckState(); + checkState(); } /** * Ellenorizzuk, hogy vege van e a jateknak */ - public void CheckState() { - if(gameControl.GameOver()) { + public void checkState() { + if(gameControl.gameOver()) { int mech = gameControl.getMechanicPoints(); int sab = Control.getSaboteurPoints(); String end = "Vége a Játéknak!\nSzerelők pontjai: " + mech + @@ -296,7 +285,7 @@ else if (mech fields, String id, int i) { + for (ViewBase f: fields) { + if (id.equals(f.getID())){ + int vX = x-f.getX(); + int vY = y-f.getY(); + double hossz = sqrt((x-f.getX())*(x-f.getX())+(double)(y-f.getY())*(y-f.getY())); + int eX = (int) ((vX/hossz)*26); + int eY = (int) ((vY/hossz)*26); + Line2D line = new Line2D.Float(x+25-(float)eX,y+25-(float)eY,f.getX()+25+(float)eX,f.getY()+25+(float)eY); + view.addLine(line); + + String[] splitted = id.split(" "); + if (splitted[0].equals("pump")) { + SystemPart pump = pipe.getNeighbours().get(i); + + if (pump.getFrom() != null && pump.getFrom().equals(pipe.getId())) { + Line2D lineend1 = new Line2D.Float(f.getX() + 25 + (float)eX, f.getY() + 25 + (float)eY, f.getX() + 25 + 2 * eX - (float)eY / 2, f.getY() + 25 + 2 * eY + (float)eX / 2); + Line2D lineend2 = new Line2D.Float(f.getX() + 25 + 2 * eX + (float)eY / 2, f.getY() + 25 + 2 * eY - (float)eX / 2, f.getX() + 25 + (float)eX, f.getY() + 25 + (float)eY); + view.addLine(lineend1); + view.addLine(lineend2); + } + else if (pump.getTo() != null && pump.getTo().equals(pipe.getId())) { + Line2D lineend1 = new Line2D.Float(x + 25 - (float)eX, y + 25 - (float)eY, x+ 25 - 2 * eX - (float)eY / 2, y+ 25 - 2 * eY + (float)eX / 2); + Line2D lineend2 = new Line2D.Float(x + 25 - 2 * eX + (float)eY / 2, y + 25 - 2 * eY - (float)eX / 2, x + 25 - (float)eX, y + 25 - (float)eY); + view.addLine(lineend1); + view.addLine(lineend2); + } + } + } + } + } + + public void drawLinesAndArrows() { + List fields = view.getFields(); + for (int i = 0; i < pipe.neighbours.size(); ++i){ + String id = pipe.getNeighbours().get(i).getId(); + drawFields(fields, id, i); + } + } + /** * A példány jelenlegi állapotához kötődő grafikus frissítés * effectek beállítása * játékosok helyes feltétele a jelenlegi állapotnak megfelelően */ @Override - public void Update() { + public void update() { button.setBounds(x, y, 50, 50); button.setBackground(Color.LIGHT_GRAY); button.setFont(new Font("Arial", Font.BOLD, 10)); @@ -57,7 +95,7 @@ else if (pipe.isGlued()) } view.getPanel().remove(nev); - if (pipe.players.size() == 0) + if (pipe.players.isEmpty()) button.setText(pipe.getId()); else { button.setText(pipe.getId()); @@ -71,39 +109,7 @@ else if (pipe.isGlued()) /** * Vonalak es nyilak kirajzolasa */ - ArrayList fields = view.getFields(); - for (int i = 0; i < pipe.neighbours.size(); ++i){ - String id = pipe.getNeighbours().get(i).getId(); - for (ViewBase f: fields) { - if (id.equals(f.getID())){ - int vX = x-f.getX(); - int vY = y-f.getY(); - double hossz = sqrt((x-f.getX())*(x-f.getX())+(y-f.getY())*(y-f.getY())); - int eX = (int) ((vX/hossz)*26); - int eY = (int) ((vY/hossz)*26); - Line2D line = new Line2D.Float(x+25-eX,y+25-eY,f.getX()+25+eX,f.getY()+25+eY); - view.addLine(line); - - String[] splitted = id.split(" "); - if (splitted[0].equals("pump")) { - SystemPart pump = pipe.getNeighbours().get(i); - - if (pump.getFrom() != null && pump.getFrom().equals(pipe.getId())) { - Line2D lineend1 = new Line2D.Float(f.getX() + 25 + eX, f.getY() + 25 + eY, f.getX() + 25 + 2 * eX - eY / 2, f.getY() + 25 + 2 * eY + eX / 2); - Line2D lineend2 = new Line2D.Float(f.getX() + 25 + 2 * eX + eY / 2, f.getY() + 25 + 2 * eY - eX / 2, f.getX() + 25 + eX, f.getY() + 25 + eY); - view.addLine(lineend1); - view.addLine(lineend2); - } - else if (pump.getTo() != null && pump.getTo().equals(pipe.getId())) { - Line2D lineend1 = new Line2D.Float(x + 25 - eX, y + 25 - eY, x+ 25 - 2 * eX - eY / 2, y+ 25 - 2 * eY + eX / 2); - Line2D lineend2 = new Line2D.Float(x + 25 - 2 * eX + eY / 2, y + 25 - 2 * eY - eX / 2, x + 25 - eX, y + 25 - eY); - view.addLine(lineend1); - view.addLine(lineend2); - } - } - } - } - } + drawLinesAndArrows(); } /** diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/Player.java b/src/main/java/hu/bme/mit/iet/pipe_game/Player.java index 7881f47..321c201 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/Player.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/Player.java @@ -29,7 +29,7 @@ public abstract class Player { */ void setPos(SystemPart next){ position = next; - next.AcceptPlayer(this); + next.acceptPlayer(this); } /** @@ -62,11 +62,11 @@ void decGlued() { * ha épp le van ragadva akkor nem tud lépni * @param newPos az új hely, ahova mozog a játékos. */ - public void Move(SystemPart newPos) { + public void move(SystemPart newPos) { if (glued != 0) return; - if (newPos.AcceptPlayer(this)){ - position.RemovePlayer(this); + if (newPos.acceptPlayer(this)){ + position.removePlayer(this); position = newPos; } } @@ -76,56 +76,56 @@ public void Move(SystemPart newPos) { * @param from a cső, ahonnan folyjon a víz. * @param to a cső, ahova menjen a víz. */ - public void ChangePumpFlow(Pipe from, Pipe to) { - position.AcceptNewFlow(from, to); + public void changePumpFlow(Pipe from, Pipe to) { + position.acceptNewFlow(from, to); } /** * Amennyiben a leszármazott nem tud csövet kilyukasztani, akkor kiírja, hogy ezt nem teheti meg. */ - public void BreakPipe() { - position.BreakPipe(); + public void breakPipe() { + position.breakPipe(); } /** * Amennyiben a leszármazott nem tud csövet javítani, akkor kiírja, hogy ezt nem teheti meg. */ - public void Repair() { } + public void repair() { } /** * Amennyiben a leszármazott nem tud felvenni csövet, akkor kiírja, hogy ezt nem teheti meg. * @param pipe */ - public void CarryPipeEnd(SystemPart pipe) { } + public void carryPipeEnd(SystemPart pipe) { } /** * Amennyiben a leszármazott nem tud csövet lerakni, akkor kiírja, hogy ezt nem teheti meg. * @return */ - public boolean LayPipe() { + public boolean layPipe() { return false; } /** * Amennyiben a leszármazott nem tud pumpát felvenni, akkor kiírja, hogy ezt nem teheti meg. */ - public void CarryPump() { } + public void carryPump() { } /** * Amennyiben a leszármazott nem tud pumpát lerakni, akkor kiírja, hogy ezt nem teheti meg. * @return */ - public SystemPart LayPump() { + public SystemPart layPump() { return null; } /** * Ragadóssá teszi a csövet amin áll a játékos */ - public void GluePipe() { + public void gluePipe() { position.setGlued(); } - public void MakePipeSlippery() {} + public void makePipeSlippery() {} public int getActionPoints() { return actionPoints; } diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/Pump.java b/src/main/java/hu/bme/mit/iet/pipe_game/Pump.java index 081168d..4019fc4 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/Pump.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/Pump.java @@ -11,9 +11,6 @@ // // - -import java.util.ArrayList; - /** * SystemPart, amely a víz áthelyezésére használható: * egy beállított csőből kiszívja a vizet, @@ -44,11 +41,11 @@ public Pump(Pipe f, Pipe t){ * Beallit uj pumpalasi iranyt * Ha rosszul lett megadva a from és to cső akkor sikertelen * @param from Az uj cso amibol vizet sziv a pumpa - * @param to az uj cso amibe vezet tol a pumpa + * @param to az uj cso amibe vizet tol a pumpa * @return ha sikeres a muvelet true-val ter vissza egyébként false */ @Override - public boolean AcceptNewFlow(Pipe from, Pipe to) { + public boolean acceptNewFlow(Pipe from, Pipe to) { if(from.equals(to)) { return false; } @@ -61,7 +58,7 @@ public boolean AcceptNewFlow(Pipe from, Pipe to) { * Megjavítja az eltorott pumpat */ @Override - public void Repair() { + public void repair() { broken = false; } @@ -74,26 +71,18 @@ public void Repair() { * @return visszatér a beszívott víz mennyiségével */ @Override - public int PullWater() { - if (broken) { - return 0; - } - if (from == null) { - return 0; - } - if (from.isBroken()) { - return 0; + public int pullWater() { + if (!broken && from != null && !from.isBroken()) { + int fromWater = from.getWater(); //lekérdezzük mennyi vizet tudunk beszívni + int canFit = capacity - water; //megnézzük menniy üres hely van a pumpában + int w = canFit - fromWater; //kivonjuk a szabad helyből a bejövő vizet + //ha ez NEM negatív az azt jelenti hogy befér az összes beszívható/csőben lévő víz + //ha negatív akkor pedig annyi vizet szívunk be amennyi befér + int pulled = w >= 0 ? fromWater : canFit; //így megkapjuk a tényleges beszívott vizet + + water += pulled; + from.setWater(from.getCapacity()-pulled); } - - int fromWater = from.getWater(); //lekérdezzük mennyi vizet tudunk beszívni - int canFit = capacity - water; //megnézzük menniy üres hely van a pumpában - int w = canFit - fromWater; //kivonjuk a szabad helyből a bejövő vizet - //ha ez NEM negatív az azt jelenti hogy befér az összes beszívható/csőben lévő víz - //ha negatív akkor pedig annyi vizet szívunk be amennyi befér - int pulled = w >= 0 ? fromWater : canFit; //így megkapjuk a tényleges beszívott vizet - - water += pulled; - from.setWater(from.getCapacity()-pulled); return 0; } @@ -102,7 +91,7 @@ public int PullWater() { * @return visszatér a lyukas csövön kifolyt vízzel */ @Override - public int PushWater() { + public int pushWater() { if (broken) { return 0; } @@ -128,7 +117,7 @@ public int PushWater() { * Eltori a pumpat */ @Override - public void BreakPump() { + public void breakPump() { broken = true; } diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/PumpView.java b/src/main/java/hu/bme/mit/iet/pipe_game/PumpView.java index 3ef5a92..23856a0 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/PumpView.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/PumpView.java @@ -28,7 +28,7 @@ public PumpView(View view, Pump pump){ * játékosok újrahelyezése */ @Override - public void Update() { + public void update() { button.setBounds(x,y,50,50); button.setBackground(new Color(89, 158, 227,255)); if (pump.isBroken()) { @@ -43,7 +43,7 @@ public void Update() { */ view.getPanel().remove(button); - while (players.size() > 0){ + while (!players.isEmpty()){ view.getPanel().remove(players.get(0)); players.remove(0); } @@ -68,6 +68,7 @@ public void Update() { * getter függvény * @return */ + @Override public String getID(){ return pump.getId(); } diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/Saboteur.java b/src/main/java/hu/bme/mit/iet/pipe_game/Saboteur.java index c0416c6..82af714 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/Saboteur.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/Saboteur.java @@ -27,7 +27,7 @@ public Saboteur() { * A szabotőr csúszóssá teszi a csövet amin áll. */ @Override - public void MakePipeSlippery() { + public void makePipeSlippery() { position.setSlippery(); } } diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/SystemPart.java b/src/main/java/hu/bme/mit/iet/pipe_game/SystemPart.java index e5df479..f1a6bac 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/SystemPart.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/SystemPart.java @@ -12,6 +12,7 @@ // import java.util.ArrayList; +import java.util.List; /** * Az elemek absztrakt ősosztálya. @@ -31,14 +32,14 @@ public abstract class SystemPart { * visszaadja a szomszédokat (controlnak kell csak) * @return */ - public ArrayList getNeighbours(){return neighbours;} + public List getNeighbours(){return neighbours;} /** * Elfogadja a rálépő játékost * A Pipe-ban felül van definiálva, hogy csak egy ember állhasson az elemen * @param mover A player ami szeretne az elemre lepni * @return ezt a fuggvenyt felulirjak a leszarmazottak igy mindig false-ot ad vissza */ - public boolean AcceptPlayer(Player mover) { + public boolean acceptPlayer(Player mover) { players.add(mover); return true; } @@ -47,41 +48,41 @@ public boolean AcceptPlayer(Player mover) { * Lelépteti az elemen álló játékost * @param mover az elemen allo jatokosok listajabol torlendo objektum */ - public void RemovePlayer(Player mover) { + public void removePlayer(Player mover) { players.remove(mover); } /** - * @param from - * @param to + * @param from Az uj cso amibol vizet sziv a pumpa + * @param to az uj cso amibe vizet tol a pumpa * @return leszarmazott felulirja, mivel itt nem csinal semmit false-al ter vissza. */ - public boolean AcceptNewFlow(Pipe from, Pipe to) { + public boolean acceptNewFlow(Pipe from, Pipe to) { return false; } /** * leszarmazott felulirja, igy itt nem csinal semmit */ - public void BreakPipe() { } + public void breakPipe() { } /** * leszarmazott felulirja, igy itt nem csinal semmit */ - public void Repair() { } + public void repair() { } /** * Az aktív elemből felveszünk egy csövet * A Pipe-ban felüldefiniáljuk mert ott mást csinál * @param whichEnd melyik csövet vesszük fel */ - public boolean CarryPipeEnd(SystemPart whichEnd) { + public boolean carryPipeEnd(SystemPart whichEnd) { if (!whichEnd.players.isEmpty()) { return false; } - this.RemoveNeighbour(whichEnd); - whichEnd.RemoveNeighbour(this); + this.removeNeighbour(whichEnd); + whichEnd.removeNeighbour(this); whichEnd.setCarried(true); return true; } @@ -92,15 +93,15 @@ public boolean CarryPipeEnd(SystemPart whichEnd) { * @param pipe az a cső amit lehelyezünk * @return sikeres volt-e a lehelyezés */ - public boolean LayPipe(SystemPart pipe) { + public boolean layPipe(SystemPart pipe) { if(neighbours.size() >= 4) { return false; } if (neighbours.contains(pipe)) { return false; } - AddNeighbour(pipe); - pipe.AddNeighbour(this); + addNeighbour(pipe); + pipe.addNeighbour(this); pipe.setCarried(false); return true; } @@ -109,14 +110,14 @@ public boolean LayPipe(SystemPart pipe) { * Kitörli a szomszédai közül a paraméterként kapott Systempartot * @param remove ezt SystemPart-ot eltavolitja a neighbours listabol */ - public void RemoveNeighbour(SystemPart remove) { + public void removeNeighbour(SystemPart remove) { neighbours.remove(remove); } /** * Felveszi a paraméterként kapott SystemPartot szomszédnak * @param newPart ezt a SystemPart objektumot hozzaadja a neighbours listahoz */ - public void AddNeighbour(SystemPart newPart) { + public void addNeighbour(SystemPart newPart) { neighbours.add(newPart); } @@ -124,16 +125,16 @@ public void AddNeighbour(SystemPart newPart) { * leszarmazott felulirja, igy itt nem csinal semmit * @return */ - public Pump CarryPump() { + public Pump carryPump() { return null; } /** * leszarmazott felulirja, igy itt nem csinal semmit - * @param pump + * @param pump a lerakandó pumpa. * @return */ - public boolean LayPump(SystemPart pump) { + public boolean layPump(SystemPart pump) { return false; } @@ -141,7 +142,7 @@ public boolean LayPump(SystemPart pump) { * leszarmazott felulirja, igy itt nem csinal semmit, -1-el (hiba) tér vissza * @return */ - public int PushWater() { + public int pushWater() { return 0; } @@ -149,14 +150,14 @@ public int PushWater() { * leszarmazott felulirja, igy itt nem csinal semmit, -1-el (hiba) tér vissza * @return */ - public int PullWater() { + public int pullWater() { return 0; } /** * leszarmazott felulirja, igy itt nem csinal semmit */ - public void BreakPump() { + public void breakPump() { } /** diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/View.java b/src/main/java/hu/bme/mit/iet/pipe_game/View.java index 91333a2..35b5efb 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/View.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/View.java @@ -2,21 +2,20 @@ import javax.swing.*; import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.geom.Line2D; import java.util.ArrayList; +import java.util.List; public class View extends JPanel{ - private ArrayList fields; + private transient List fields; private GUIControl guiControl; private JFrame frame; private JComboBox commandSelect; private JLayeredPane pane; private JTextArea statusTextBox; private JLabel command; - private ArrayList tempCommand = new ArrayList<>(); //a több parancsból állokhoz - private ArrayList lines = new ArrayList<>(); + private List tempCommand = new ArrayList<>(); //a több parancsból állokhoz + private transient List lines = new ArrayList<>(); /** * Konstruktor @@ -27,7 +26,7 @@ public class View extends JPanel{ public View(GUIControl control) { guiControl = control; frame = guiControl.getFrame(); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); pane = new JLayeredPane(); pane.setBounds(0,0,1000, 855); @@ -38,7 +37,7 @@ public View(GUIControl control) { statusTextBox.setFont(new Font("Arial", Font.BOLD, 16)); statusTextBox.setBounds(800, 20, 180, 250); - commandSelect = new JComboBox(); + commandSelect = new JComboBox<>(); commandSelect.setBounds(800, 330, 180, 20); commandSelect.addItem("Break pipe"); @@ -61,12 +60,7 @@ public View(GUIControl control) { pane.add(command, Integer.valueOf(0)); pane.add(commandSelect, Integer.valueOf(0)); - commandSelect.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - commitCommand((String) commandSelect.getSelectedItem()); - } - }); + commandSelect.addActionListener(e -> commitCommand((String) commandSelect.getSelectedItem())); this.setLayout(null); this.setOpaque(true); @@ -87,7 +81,6 @@ public void paint(Graphics g){ super.paint(g); Graphics2D g2d = (Graphics2D) g; - ArrayList lines = this.getlines(); for (int i = 0; i < lines.size(); ++i) { g2d.draw(lines.get(i)); } @@ -97,12 +90,12 @@ public void paint(Graphics g){ /** * grafikusan frissíti a teljes játékmezőt minden elemével együtt */ - public void UpdateAll() { + public void updateAll() { String str = guiControl.getStatus(); statusTextBox.setText(str); lines.clear(); for (ViewBase field :fields ) { - field.Update(); + field.update(); } frame.repaint();//test frame.revalidate(); @@ -113,22 +106,22 @@ public void UpdateAll() { * ,majd az új állapot szerint teljes grafikus frissítés * @param input */ - public void ManageCommand(String input){ + public void manageCommand(String input){ tempCommand.add(input); guiControl.commitCommand(tempCommand); tempCommand.clear(); - UpdateAll(); + updateAll(); } - public void ManageLongCommand(){ + public void manageLongCommand(){ guiControl.commitCommand(tempCommand); tempCommand.clear(); - UpdateAll(); + updateAll(); } public void commitCommand(String input) { switch (input){ case "Break pipe": tempCommand.clear(); - ManageCommand("breakpipe"); + manageCommand("breakpipe"); break; case "Carry pipe"://több infó kel egynél tempCommand.clear(); @@ -136,15 +129,15 @@ public void commitCommand(String input) { break; case "Carry pump": tempCommand.clear(); - ManageCommand("carrypump"); + manageCommand("carrypump"); break; case "Lay pipe": tempCommand.clear(); - ManageCommand("laypipe"); + manageCommand("laypipe"); break; case "Lay pump": tempCommand.clear(); - ManageCommand("laypump"); + manageCommand("laypump"); break; case "Move"://több infó is kellene majd tempCommand.clear(); @@ -156,19 +149,19 @@ public void commitCommand(String input) { break; case "Repair": tempCommand.clear(); - ManageCommand("repair"); + manageCommand("repair"); break; case "Make pipe slippery": tempCommand.clear(); - ManageCommand("makeslippery"); + manageCommand("makeslippery"); break; case "Glue pipe": tempCommand.clear(); - ManageCommand("makegluey"); + manageCommand("makegluey"); break; case "Pass": tempCommand.clear(); - ManageCommand("pass"); + manageCommand("pass"); break; default: break; @@ -180,7 +173,7 @@ public void commitCommand(String input) { * setter függvény * @param things */ - public void setFields(ArrayList things) { + public void setFields(List things) { fields = things; } @@ -204,7 +197,7 @@ public JFrame getFrame(){ * getter függvény * @return */ - public ArrayList getFields(){ + public List getFields(){ return fields; } @@ -220,7 +213,7 @@ public void addLine(Line2D line) { * getter függvény * @return */ - public ArrayList getlines(){ + public List getlines(){ return lines; } @@ -228,7 +221,7 @@ public ArrayList getlines(){ * getter függvény * @return */ - public ArrayList getTempCommand(){ return tempCommand; } + public List getTempCommand(){ return tempCommand; } /** * új command hozzáadása a tempCommand temporary commandokat tartalmazó listához diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/ViewBase.java b/src/main/java/hu/bme/mit/iet/pipe_game/ViewBase.java index 5b09ffb..4e8db69 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/ViewBase.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/ViewBase.java @@ -2,17 +2,19 @@ import java.awt.event.ActionListener; import java.util.ArrayList; +import java.util.List; import java.util.Arrays; public abstract class ViewBase implements ActionListener { - protected int x, y; + protected int x; + protected int y; protected View view; /** * konstruktor, ami beállítja a view elemet * @param view */ - public ViewBase(View view){ + protected ViewBase(View view){ this.view = view; } @@ -22,20 +24,19 @@ public ViewBase(View view){ * @param input */ public void action(String input){ - ArrayList temp = view.getTempCommand(); + List temp = view.getTempCommand(); String[] temp2 = input.split(" "); ArrayList togive = new ArrayList<>(Arrays.asList(temp2)); if(!temp.isEmpty()) { if (temp.get(0).equals("carrypipe") || temp.get(0).equals("move")) { view.addCommand(togive.get(0)); view.addCommand(togive.get(1)); - view.ManageLongCommand(); + view.manageLongCommand(); } else if (temp.get(0).equals("pumpchangeflow")) { if (temp.size() == 2) { view.addCommand(togive.get(0)); view.addCommand(togive.get(1)); - view.ManageLongCommand(); - return; + view.manageLongCommand(); } else if (temp.size() == 1) view.addCommand(input); } @@ -45,7 +46,7 @@ public void action(String input){ /** * Felul kell definialni leszarmazzott View-kban */ - public abstract void Update(); + public abstract void update(); /** * setter függvény, ami átállítja a koordinátákat diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/WaterSource.java b/src/main/java/hu/bme/mit/iet/pipe_game/WaterSource.java index cf9fd6a..3a584be 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/WaterSource.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/WaterSource.java @@ -19,7 +19,7 @@ public WaterSource() { * @return a vizmennyiseg, ami a lyuaks csöveket kifolyt */ @Override - public int PushWater() { + public int pushWater() { int points = 0; for (SystemPart pipe: neighbours) { if (pipe.isBroken()) { diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/WaterSourceView.java b/src/main/java/hu/bme/mit/iet/pipe_game/WaterSourceView.java index 8b9e66f..3713a50 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/WaterSourceView.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/WaterSourceView.java @@ -28,7 +28,7 @@ public WaterSourceView(View view, WaterSource waterSource) { * leszedi a rajta levő játékosokat, majd helyesen felteszi őket újra */ @Override - public void Update() { + public void update() { button.setBounds(x, y, 50, 50); button.setBackground(Color.GREEN); @@ -36,7 +36,7 @@ public void Update() { view.getPanel().remove(button); - while (players.size() > 0){ + while (!players.isEmpty()){ view.getPanel().remove(players.get(0)); players.remove(0); } @@ -59,6 +59,7 @@ public void Update() { * getter függvény * @return */ + @Override public String getID() { return waterSource.getId(); }