diff --git a/Battleship$GameState.class b/Battleship$GameState.class index c794b1a..17e083d 100644 Binary files a/Battleship$GameState.class and b/Battleship$GameState.class differ diff --git a/Battleship.class b/Battleship.class index 9ee5753..428c0b8 100644 Binary files a/Battleship.class and b/Battleship.class differ diff --git a/Battleship.java b/Battleship.java index 68e5376..bbba0b9 100644 --- a/Battleship.java +++ b/Battleship.java @@ -1,6 +1,4 @@ import java.awt.event.*; // Use some events -//import java.awt.*; // Graphics -//import javax.swing.*; // Use swing for GUI import java.util.*; // Util import java.io.*; //I/O import java.net.*; //Sockets @@ -11,8 +9,7 @@ * @author Jerrett Fowler * @version 1.2 (August 2013) */ - -//public class Battleship extends JFrame implements MouseListener, WindowListener + public class Battleship { @@ -25,6 +22,8 @@ private enum GameState private Parser parser; private Protocol protocol; Player currentPlayer; + Grid grids; + Fleet fleet; /** * Main @@ -32,7 +31,8 @@ private enum GameState public static void main(String[] args) throws IOException { int i = 0, portArg; - String arg, machine; + String arg = new String(); + String machine = new String(); boolean vflag = false; while (i < args.length && args[i].startsWith("-")) { @@ -84,7 +84,7 @@ public Battleship(String gameState, String serverName, int portNumber) //set up fleet newFleet(); //set up new grids - //createGrids(); + createGrids(); switch(gameState) { @@ -205,6 +205,22 @@ public void play() { printOpening(); + System.out.println(" GAME BOARD"); + + if(gameState == GameState.INITIALISE) //change this when READY works + { + grids.addShipFromFleet(fleet.getShipInFleet("SUBMARINE1")); + grids.addShipFromFleet(fleet.getShipInFleet("SUBMARINE2")); + grids.addShipFromFleet(fleet.getShipInFleet("SUBMARINE3")); + grids.addShipFromFleet(fleet.getShipInFleet("BATTLESHIP1")); + grids.addShipFromFleet(fleet.getShipInFleet("DESTROYER1")); + grids.addShipFromFleet(fleet.getShipInFleet("DESTROYER2")); + grids.printGrid(); + } + + System.out.println(); + System.out.println("Board is set up for you. Command for Placing a ship is not fully implemented."); + //Main gameplay loop while(!getPlayer().getEnd()) { @@ -242,40 +258,49 @@ else if(command.getName().equals("HELP")) else if(command.getName().equals("TALK")) { command.execute(getPlayer()); + + //send message to other player } else if(command.getName().equals("FIRE")) { command.execute(getPlayer()); + + //send message to other player } else if(command.getName().equals("MISS")) { command.execute(getPlayer()); + + //send message to other player } else if(command.getName().equals("HIT")) { command.execute(getPlayer()); + + //edit Grid + + //send message to other player } else if(command.getName().equals("SUNK")) { command.execute(getPlayer()); + + //remove ship from ArrayList + + //send message to other player } else if(command.getName().equals("ILOSE")) { - command.execute(getPlayer()); - } + command.execute(getPlayer()); - else if(command.getName().equals("SHIP")) - { - command.execute(getPlayer()); + //send message to other player } - - - //need to add more stuff here + } printClosing(); @@ -328,7 +353,7 @@ public Player getPlayer() */ public void newFleet() { - Fleet fleet = new Fleet(); + fleet = new Fleet(); } /** @@ -337,34 +362,8 @@ public void newFleet() private void createGrids() { // Create player grid - Grid grids = new Grid(); + grids = new Grid(); + + } - - /** - * Start of program - - public void init() - { - setSize(256, 256); - }*/ - - /** - * Mouse Event Overrides - */ - //public void mouseClicked(MouseEvent event) {} - //public void mouseEntered(MouseEvent event) {} - //public void mouseExited(MouseEvent event) {} - //public void mousePressed(MouseEvent event) {} - //public void mouseReleased(MouseEvent event) {} - - /** - * GFX Event Overrides - */ - //public void windowActivated(WindowEvent event) {} - //public void windowClosed(WindowEvent event) {} - //public void windowClosing(WindowEvent event) {} - //public void windowDeactivated(WindowEvent event) {} - //public void windowDeiconified(WindowEvent event) {} - //public void windowIconified(WindowEvent event) {} - //public void windowOpened(WindowEvent event) {} } diff --git a/Command.java b/Command.java index b8c7d93..0e678ae 100644 --- a/Command.java +++ b/Command.java @@ -6,7 +6,7 @@ * @author Jerrett Fowler * @version 1.0 (July 2013) */ -public abstract class Command //Why use abstract: http://stackoverflow.com/questions/7262892/java-best-practices-put-get-subclass-objects-into-hashmap-that-expects-supercla +public abstract class Command { public String secondWord; public String thirdWord; diff --git a/CommandWords.class b/CommandWords.class index 2852a4f..de2de2a 100644 Binary files a/CommandWords.class and b/CommandWords.class differ diff --git a/CommandWords.java b/CommandWords.java index fb697f7..b87dac6 100644 --- a/CommandWords.java +++ b/CommandWords.java @@ -36,6 +36,7 @@ public CommandWords() commands.put("STRING", new StringCommand()); commands.put("INT", new IntCommand()); commands.put("HELP", new HelpCommand()); + commands.put("PLACE", new PlaceCommand()); } // Method to check if command is valid diff --git a/FireCommand.class b/FireCommand.class index da593c2..fb7b762 100644 Binary files a/FireCommand.class and b/FireCommand.class differ diff --git a/FireCommand.java b/FireCommand.java index 042aaf2..aed19ed 100644 --- a/FireCommand.java +++ b/FireCommand.java @@ -34,8 +34,23 @@ public boolean execute(Object o) } else { - //Check for the secondword and thirdword being ints and convert to ints appropriately - System.out.println("Fire"); + Player p = null; + p = (Player)o; + + String[] strArray = getSecondWord().split(" "); + int[] intArray = new int[strArray.length]; + + for(int i = 1; i < strArray.length; i++) + { + if(strArray[i] != null) + { + intArray[i] = Integer.parseInt(strArray[i]); + } + + } + + System.out.println("Fired on coordinates: " + intArray[1] + " x " + intArray[2]); + return true; } } diff --git a/Fleet.class b/Fleet.class index c26f4df..634eaa2 100644 Binary files a/Fleet.class and b/Fleet.class differ diff --git a/Fleet.ctxt b/Fleet.ctxt index e5857b5..0b806c7 100644 --- a/Fleet.ctxt +++ b/Fleet.ctxt @@ -4,11 +4,14 @@ comment0.target=Fleet() comment0.text=\n\ Constructor\ for\ objects\ of\ class\ Fleet\n comment1.params= comment1.target=int\ size() -comment1.text=\n\ An\ example\ of\ a\ method\ -\ replace\ this\ comment\ with\ your\ own\n\ \n\ @param\ \ y\ \ \ a\ sample\ parameter\ for\ a\ method\n\ @return\ \ \ \ \ the\ sum\ of\ x\ and\ y\ \n +comment1.text=\n\ Size\ of\ fleet\n\ \n\ @param\ \ y\ \ \ a\ sample\ parameter\ for\ a\ method\n\ @return\ \ \ \ \ the\ sum\ of\ x\ and\ y\ \n comment2.params=s comment2.target=void\ sink(Ship) comment2.text=\n\ Remove\ ships\ from\ fleet\n\ \n\ @param\ \ s\ \ \ A\ ship\n\ @return\ \ \ \ \ void\n comment3.params=shipID comment3.target=Ship\ getShipInFleet(java.lang.String) -comment3.text=\n\ Return\ an\ instance\ of\ a\ specific\ ship\n\ \n\ @param\ \ s\ \ \ A\ ship\n\ @return\ \ \ \ \ ship\n -numComments=4 +comment3.text=\n\ Return\ an\ instance\ of\ a\ specific\ ship\n\ \n\ @param\ \ shipID\ \ \ A\ ship\n\ @return\ \ \ \ \ ship\n +comment4.params= +comment4.target=void\ getFleet() +comment4.text=\n\ Lists\ all\ ships\n +numComments=5 diff --git a/Fleet.java b/Fleet.java index fee7719..54389cb 100644 --- a/Fleet.java +++ b/Fleet.java @@ -1,4 +1,5 @@ import java.util.ArrayList; +import java.util.Iterator; /** * Write a description of class Fleet here. @@ -23,18 +24,18 @@ public class Fleet public Fleet() { //3 Subs - sub1 = new Ship("s1", 2, 0, 0, 0); - sub2 = new Ship("s2", 2, 0, 0, 0); - sub3 = new Ship("s3", 2, 0, 0, 0); + sub1 = new Ship("SUBMARINE1", 2, 1, 0, 0); + sub2 = new Ship("SUBMARINE2", 2, 0, 2, 2); + sub3 = new Ship("SUBMARINE3", 2, 1, 1, 6); //1 Battleship - battleship1 = new Ship("b1", 4, 0, 0, 0); + battleship1 = new Ship("BATTLESHIP1", 4, 0, 5, 2); //2 Destroyers - destroyer1 = new Ship("d1", 3, 0, 0, 0); - destroyer2 = new Ship("d2", 3, 0, 0, 0); + destroyer1 = new Ship("DESTROYER1", 3, 1, 7, 1); + destroyer2 = new Ship("DESTROYER2", 3, 1, 6,7); - fleet = new ArrayList(); + fleet = new ArrayList(); fleet.add(sub1); fleet.add(sub2); @@ -42,10 +43,11 @@ public Fleet() fleet.add(battleship1); fleet.add(destroyer1); fleet.add(destroyer2); + } /** - * An example of a method - replace this comment with your own + * Size of fleet * * @param y a sample parameter for a method * @return the sum of x and y @@ -69,35 +71,35 @@ public void sink(Ship s) } } - /** * Return an instance of a specific ship * - * @param s A ship + * @param shipID A ship * @return ship */ public Ship getShipInFleet(String shipID) { - Ship ship = new Ship("id", 0, 0, 0, 0); + Ship temp = null; for(Ship s : fleet) { if(s.getShipID().equals(shipID)) { - ship = s; + temp = s; } } - return ship; + return temp; } /** - * Return all ships locations/Prints - * - * @param position where is the ship? - * @return Return ship - - public Ship location(int position) + * Lists all ships + */ + public void getFleet() { - // - return ; - }*/ + Iterator itr = fleet.iterator(); + + while(itr.hasNext()) + { + System.out.println(itr.next()); + } + } } diff --git a/Grid.class b/Grid.class index f2096c3..fbe477c 100644 Binary files a/Grid.class and b/Grid.class differ diff --git a/Grid.ctxt b/Grid.ctxt index f6af1d5..a591da6 100644 --- a/Grid.ctxt +++ b/Grid.ctxt @@ -5,10 +5,7 @@ comment0.text=\n\ Constructor\ for\ objects\ of\ class\ Grid\n comment1.params=s comment1.target=void\ addShipFromFleet(Ship) comment1.text=\n\ Add\ Ship\ from\ fleet\n\ \n\ @param\ \ y\ \ \ a\ sample\ parameter\ for\ a\ method\n\ @return\ \ \ \ \ the\ sum\ of\ x\ and\ y\ \n -comment2.params=a -comment2.target=void\ fillArray(int[][]) -comment2.text=\n\ \n -comment3.params=a -comment3.target=void\ printGrid(int[][]) -comment3.text=\n\ Print\ grid\n\ \n\ @param\ \ y\ \ \ a\ sample\ parameter\ for\ a\ method\n\ @return\ \ \ \ \ the\ sum\ of\ x\ and\ y\ \n -numComments=4 +comment2.params= +comment2.target=void\ printGrid() +comment2.text=\n\ Print\ grid\n\ \n\ @param\ \ y\ \ \ a\ sample\ parameter\ for\ a\ method\n\ @return\ \ \ \ \ the\ sum\ of\ x\ and\ y\ \n +numComments=3 diff --git a/Grid.java b/Grid.java index 325c2cb..e85e21a 100644 --- a/Grid.java +++ b/Grid.java @@ -9,10 +9,8 @@ public class Grid { // instance variables - private int grid1[][]; - private int grid2[][]; - int x; - int y; + private int[][] grid1; + private int[][] grid2; int size; /** @@ -23,8 +21,6 @@ public Grid() size = 10; grid1 = new int[size][size]; grid2 = new int[size][size]; - fillArray(grid1); - fillArray(grid2); } /** @@ -35,18 +31,35 @@ public Grid() */ public void addShipFromFleet(Ship s) { - // - } - - /** - * - */ - public void fillArray(int a[][]) - { - // Fill each row with 0 - for (int[] row: a) + //get x + int xCoord = s.getColumn(); + + //get y + int yCoord = s.getRow(); + + //get direction + int direction = s.getOrientation(); + + //get Size + int shipSize = s.getSize(); + + if(direction == 0) + { + for(int x = 0; x < shipSize; x++) + { + grid1[yCoord][xCoord + x] = 1; + } + } + else if(direction == 1) + { + for(int y = 0; y < shipSize; y++) + { + grid1[yCoord + y][xCoord] = 1; + } + } + else { - Arrays.fill(a, 0); + throw new RuntimeException("Empty case."); } } @@ -56,18 +69,25 @@ public void fillArray(int a[][]) * @param y a sample parameter for a method * @return the sum of x and y */ - public void printGrid(int a[][]) + public void printGrid() { + //Loop through rows for(int i = 0; i < size; i++) { + //Loops and prints each column for(int j = 0; j < size; j++) { - if(a[i][j] == 1) - { - grid1[i][j] = x; - } - System.out.print(a[i][j]); + System.out.print(grid1[i][j] == 1 ? "X" : "." ); + System.out.print(" "); + } + System.out.print(" "); + for(int k = 0; k < size; k++) + { + System.out.print(grid2[i][k] == 1 ? "X" : "." ); + System.out.print(" "); } + System.out.println(); } + System.out.println(); } } diff --git a/MissCommand.class b/MissCommand.class index 7b9c00c..5a63bae 100644 Binary files a/MissCommand.class and b/MissCommand.class differ diff --git a/MissCommand.java b/MissCommand.java index 264f6f1..4f6852c 100644 --- a/MissCommand.java +++ b/MissCommand.java @@ -29,6 +29,10 @@ public boolean execute(Object o) { if(getSecondWord() == null) { + //convert object + + //sent MISS to other player + System.out.println("Miss"); return true; } diff --git a/Parser.class b/Parser.class index abb060c..758ac0a 100644 Binary files a/Parser.class and b/Parser.class differ diff --git a/Parser.java b/Parser.java index 411f369..3d5873f 100644 --- a/Parser.java +++ b/Parser.java @@ -16,8 +16,6 @@ public class Parser private String input; private String w1; private String theRest; - //private String w2; - //private String w3; /** * Constructor for objects of class Parser @@ -34,10 +32,10 @@ public Parser() */ public Command getCommand() { - input = ""; + input = new String(""); //prompt - System.out.print(":: "); + System.out.print(">> "); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try @@ -60,10 +58,6 @@ public Command getCommand() w1 = null; } - //do a check for the string command - - //do a check for the int command - //store the rest as a string if there are more while(tokenizer.hasMoreTokens()) { @@ -79,22 +73,12 @@ public Command getCommand() { w2 = null; } - - if(tokenizer.hasMoreTokens()) - { - w3 = tokenizer.nextToken(); //Word 3 - } - else - { - w3 = null; - } */ Command command = commands.getCommand(w1); if(command != null) { command.setSecondWord(theRest); - //command.setThirdWord(w3); } return command; @@ -116,14 +100,6 @@ public String getW2() return theRest; } - /** - * Get word 3 as string - - public String getW3() - { - return w3; - }*/ - /** * Get CommandWords */ diff --git a/PlaceCommand.class b/PlaceCommand.class new file mode 100644 index 0000000..dfcceae Binary files /dev/null and b/PlaceCommand.class differ diff --git a/PlaceCommand.ctxt b/PlaceCommand.ctxt new file mode 100644 index 0000000..688a547 --- /dev/null +++ b/PlaceCommand.ctxt @@ -0,0 +1,11 @@ +#BlueJ class context +comment0.params= +comment0.target=PlaceCommand() +comment0.text=\n\ Constructor\ for\ objects\ of\ class\ ShipCommand\n +comment1.params=o +comment1.target=boolean\ execute(java.lang.Object) +comment1.text=\n\ ''SHIP_''\ _\ \n\ \n\ @param\ \ y\ \ \ a\ sample\ parameter\ for\ a\ method\n\ @return\ \ \ \ \ the\ sum\ of\ x\ and\ y\ \n +comment2.params= +comment2.target=java.lang.String\ getName() +comment2.text=\n\ Return\ String\ of\ name\ of\ command\n +numComments=3 diff --git a/PlaceCommand.java b/PlaceCommand.java new file mode 100644 index 0000000..78852cb --- /dev/null +++ b/PlaceCommand.java @@ -0,0 +1,45 @@ + +/** + * Write a description of class ShipCommand here. + * + * @author Jerrett Fowler + * @version 1.0 (September 2013) + */ +public class PlaceCommand extends Command +{ + // instance variables - replace the example below with your own + private String name = "PLACE"; + + /** + * Constructor for objects of class ShipCommand + */ + public PlaceCommand() + { + // + } + + /** + * ''SHIP_'' _ + * + * @param y a sample parameter for a method + * @return the sum of x and y + */ + @Override + public boolean execute(Object o) + { + Ship s = null; + s = (Ship)o; + + System.out.println("Place"); + return false; + } + + /** + * Return String of name of command + */ + @Override + public String getName() + { + return name; + } +} diff --git a/Ship.class b/Ship.class index 47aa680..a05ed67 100644 Binary files a/Ship.class and b/Ship.class differ diff --git a/Ship.java b/Ship.java index a037101..286be72 100644 --- a/Ship.java +++ b/Ship.java @@ -23,8 +23,13 @@ public Ship(String id, int size, int direction, int row, int column) this.hitPoints = size; this.size = size; this.orientation = direction; + + //check if valid row this.row = row; + + //check if valid column this.column = column; + this.shipID = id; } diff --git a/ShipCommand.class b/ShipCommand.class index 46fee6e..2dd7009 100644 Binary files a/ShipCommand.class and b/ShipCommand.class differ diff --git a/ShipCommand.ctxt b/ShipCommand.ctxt index fd1c43d..a6141be 100644 --- a/ShipCommand.ctxt +++ b/ShipCommand.ctxt @@ -4,7 +4,7 @@ comment0.target=ShipCommand() comment0.text=\n\ Constructor\ for\ objects\ of\ class\ ShipCommand\n comment1.params=o comment1.target=boolean\ execute(java.lang.Object) -comment1.text=\n\ ''BATTLESHIP''\ |\ ''DESTROYER''\ |\ ''SUBMARINE''\n\ \n\ @param\ \ y\ \ \ a\ sample\ parameter\ for\ a\ method\n\ @return\ \ \ \ \ the\ sum\ of\ x\ and\ y\ \n +comment1.text=\n\ ''BATTLESHIP''\ |\ ''DESTROYER1''\ |\ ''SUBMARINE1''\n\ |\ ''SUBMARINE2''\ |\ ''SUBMARINE3''\ |\ ''DESTROYER2''\n\ @param\ \ y\ \ \ a\ sample\ parameter\ for\ a\ method\n\ @return\ \ \ \ \ the\ sum\ of\ x\ and\ y\ \n comment2.params= comment2.target=java.lang.String\ getName() comment2.text=\n\ Return\ String\ of\ name\ of\ command\n diff --git a/ShipCommand.java b/ShipCommand.java index 8fa08ee..cec15d4 100644 --- a/ShipCommand.java +++ b/ShipCommand.java @@ -7,6 +7,8 @@ */ public class ShipCommand extends Command { + + // instance variables - replace the example below with your own private String name = "SHIP"; @@ -19,16 +21,54 @@ public ShipCommand() } /** - * ''BATTLESHIP'' | ''DESTROYER'' | ''SUBMARINE'' - * + * ''BATTLESHIP'' | ''DESTROYER1'' | ''SUBMARINE1'' + * | ''SUBMARINE2'' | ''SUBMARINE3'' | ''DESTROYER2'' * @param y a sample parameter for a method * @return the sum of x and y */ @Override public boolean execute(Object o) { - System.out.println("Ship"); - return false; + Ship s = null; + s = (Ship)o; + + if(getSecondWord() == null) + { + if(s.getShipID().equals("SUBMARINE1")) + { + System.out.println("SUBMARINE1"); + } + else if(s.getShipID().equals("SUBMARINE2")) + { + System.out.println("SUBMARINE2"); + } + else if(s.getShipID().equals("SUBMARINE3")) + { + System.out.println("SUBMARINE3"); + } + else if(s.getShipID().equals("BATTLESHIP1")) + { + System.out.println("BATTLESHIP1."); + } + else if(s.getShipID().equals("DESTROYER1")) + { + System.out.println("DESTROYER1"); + } + else if(s.getShipID().equals("DESTROYER2")) + { + System.out.println("DESTROYER2"); + } + else + { + System.out.println("No such ship name."); + return false; + } + } + else + { + + } + return true; } /** diff --git a/SunkCommand.class b/SunkCommand.class index f0a5da0..aef72a4 100644 Binary files a/SunkCommand.class and b/SunkCommand.class differ diff --git a/SunkCommand.java b/SunkCommand.java index 15737b7..25b21e4 100644 --- a/SunkCommand.java +++ b/SunkCommand.java @@ -29,7 +29,12 @@ public boolean execute(Object o) { if(getSecondWord() != null) { - System.out.println("Sunk"); + Ship s = null; + s = (Ship)o; + + //if ship's + + System.out.println("You sunk my ship."); return true; } else diff --git a/TalkCommand.class b/TalkCommand.class index a088516..d3dfe11 100644 Binary files a/TalkCommand.class and b/TalkCommand.class differ diff --git a/TalkCommand.java b/TalkCommand.java index e770072..fd7dbe5 100644 --- a/TalkCommand.java +++ b/TalkCommand.java @@ -1,4 +1,5 @@ import java.io.*; +import java.util.*; /** * Write a description of class TalkCommand here. @@ -29,26 +30,16 @@ public TalkCommand() @Override public boolean execute(Object o) { - if(getSecondWord() == null) + if(getSecondWord() != null) { Player p = null; p = (Player)o; - String input = ""; - BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); + String input = new String(getSecondWord()); + String[] inputArray = input.split(" ", 2); - try - { - input = reader.readLine(); - } - catch(java.io.IOException exc) - { - System.out.println("Error reading: " + exc.getMessage()); - } + System.out.println(inputArray[1]); - - System.out.println(input); - - //handle using the string command + //handle using the command return true; } else diff --git a/package.bluej b/package.bluej index cefcef5..ba50192 100644 --- a/package.bluej +++ b/package.bluej @@ -149,6 +149,18 @@ dependency53.type=UsesDependency dependency54.from=CommandWords dependency54.to=HelpCommand dependency54.type=UsesDependency +dependency55.from=ShipCommand +dependency55.to=Ship +dependency55.type=UsesDependency +dependency56.from=PlaceCommand +dependency56.to=Ship +dependency56.type=UsesDependency +dependency57.from=Battleship +dependency57.to=Ship +dependency57.type=UsesDependency +dependency58.from=SunkCommand +dependency58.to=Ship +dependency58.type=UsesDependency dependency6.from=CommandWords dependency6.to=SupportsCommand dependency6.type=UsesDependency @@ -161,22 +173,22 @@ dependency8.type=UsesDependency dependency9.from=CommandWords dependency9.to=EndCommand dependency9.type=UsesDependency -package.editor.height=651 -package.editor.width=1028 -package.editor.x=1464 -package.editor.y=227 -package.numDependencies=54 -package.numTargets=26 +package.editor.height=611 +package.editor.width=958 +package.editor.x=1566 +package.editor.y=128 +package.numDependencies=58 +package.numTargets=27 package.showExtends=true package.showUses=true project.charset=UTF-8 -target1.editor.height=717 -target1.editor.width=870 -target1.editor.x=1950 -target1.editor.y=32 +target1.editor.height=831 +target1.editor.width=771 +target1.editor.x=657 +target1.editor.y=22 target1.height=50 target1.name=Command -target1.naviview.expanded=true +target1.naviview.expanded=false target1.showInterface=false target1.type=AbstractTarget target1.width=90 @@ -192,44 +204,44 @@ target10.naviview.expanded=false target10.showInterface=false target10.type=ClassTarget target10.width=130 -target10.x=500 -target10.y=520 +target10.x=470 +target10.y=470 target11.editor.height=827 target11.editor.width=755 target11.editor.x=8 target11.editor.y=23 target11.height=50 target11.name=HelpCommand -target11.naviview.expanded=false +target11.naviview.expanded=true target11.showInterface=false target11.type=ClassTarget target11.width=120 -target11.x=810 -target11.y=350 -target12.editor.height=700 +target11.x=780 +target11.y=290 +target12.editor.height=829 target12.editor.width=900 -target12.editor.x=308 -target12.editor.y=38 +target12.editor.x=11 +target12.editor.y=22 target12.height=50 target12.name=Grid target12.naviview.expanded=false target12.showInterface=false target12.type=ClassTarget target12.width=80 -target12.x=160 -target12.y=390 +target12.x=10 +target12.y=90 target13.editor.height=700 target13.editor.width=900 -target13.editor.x=380 -target13.editor.y=39 +target13.editor.x=1594 +target13.editor.y=124 target13.height=50 target13.name=StringCommand target13.naviview.expanded=false target13.showInterface=false target13.type=ClassTarget target13.width=130 -target13.x=810 -target13.y=460 +target13.x=780 +target13.y=350 target14.editor.height=700 target14.editor.width=900 target14.editor.x=531 @@ -240,8 +252,8 @@ target14.naviview.expanded=false target14.showInterface=false target14.type=ClassTarget target14.width=130 -target14.x=660 -target14.y=220 +target14.x=630 +target14.y=170 target15.editor.height=700 target15.editor.width=900 target15.editor.x=0 @@ -252,20 +264,20 @@ target15.naviview.expanded=false target15.showInterface=false target15.type=ClassTarget target15.width=110 -target15.x=500 -target15.y=340 -target16.editor.height=700 -target16.editor.width=900 -target16.editor.x=64 -target16.editor.y=39 +target15.x=470 +target15.y=290 +target16.editor.height=900 +target16.editor.width=666 +target16.editor.x=2386 +target16.editor.y=33 target16.height=50 target16.name=ShipCommand target16.naviview.expanded=false target16.showInterface=false target16.type=ClassTarget target16.width=120 -target16.x=810 -target16.y=280 +target16.x=780 +target16.y=230 target17.editor.height=700 target17.editor.width=900 target17.editor.x=97 @@ -276,8 +288,8 @@ target17.naviview.expanded=false target17.showInterface=false target17.type=ClassTarget target17.width=120 -target17.x=810 -target17.y=220 +target17.x=780 +target17.y=170 target18.editor.height=700 target18.editor.width=676 target18.editor.x=595 @@ -288,32 +300,32 @@ target18.naviview.expanded=false target18.showInterface=false target18.type=ClassTarget target18.width=80 -target18.x=280 -target18.y=50 -target19.editor.height=835 -target19.editor.width=861 -target19.editor.x=15 -target19.editor.y=22 +target18.x=250 +target18.y=10 +target19.editor.height=831 +target19.editor.width=873 +target19.editor.x=208 +target19.editor.y=24 target19.height=50 target19.name=Battleship target19.naviview.expanded=false target19.showInterface=false target19.type=ClassTarget target19.width=90 -target19.x=50 +target19.x=80 target19.y=170 target2.editor.height=832 target2.editor.width=612 -target2.editor.x=1642 -target2.editor.y=109 +target2.editor.x=1935 +target2.editor.y=105 target2.height=50 target2.name=EndCommand target2.naviview.expanded=false target2.showInterface=false target2.type=ClassTarget target2.width=110 -target2.x=500 -target2.y=460 +target2.x=470 +target2.y=410 target20.editor.height=835 target20.editor.width=587 target20.editor.x=849 @@ -324,8 +336,8 @@ target20.naviview.expanded=false target20.showInterface=false target20.type=ClassTarget target20.width=120 -target20.x=500 -target20.y=220 +target20.x=470 +target20.y=170 target21.editor.height=700 target21.editor.width=809 target21.editor.x=466 @@ -336,20 +348,20 @@ target21.naviview.expanded=false target21.showInterface=false target21.type=ClassTarget target21.width=140 -target21.x=500 -target21.y=280 -target22.editor.height=700 +target21.x=470 +target21.y=230 +target22.editor.height=831 target22.editor.width=657 -target22.editor.x=619 -target22.editor.y=23 +target22.editor.x=761 +target22.editor.y=22 target22.height=50 target22.name=Ship target22.naviview.expanded=false target22.showInterface=false target22.type=ClassTarget target22.width=80 -target22.x=120 -target22.y=500 +target22.x=140 +target22.y=350 target23.editor.height=700 target23.editor.width=900 target23.editor.x=380 @@ -360,56 +372,68 @@ target23.naviview.expanded=false target23.showInterface=false target23.type=ClassTarget target23.width=110 -target23.x=810 -target23.y=520 -target24.editor.height=835 -target24.editor.width=784 -target24.editor.x=649 -target24.editor.y=22 +target23.x=780 +target23.y=410 +target24.editor.height=900 +target24.editor.width=581 +target24.editor.x=1489 +target24.editor.y=38 target24.height=50 -target24.name=CommandWords -target24.naviview.expanded=true +target24.name=PlaceCommand +target24.naviview.expanded=false target24.showInterface=false target24.type=ClassTarget -target24.width=130 -target24.x=310 -target24.y=170 -target25.editor.height=700 -target25.editor.width=900 -target25.editor.x=187 -target25.editor.y=39 +target24.width=120 +target24.x=780 +target24.y=470 +target25.editor.height=835 +target25.editor.width=784 +target25.editor.x=2051 +target25.editor.y=22 target25.height=50 -target25.name=HitCommand -target25.naviview.expanded=false +target25.name=CommandWords +target25.naviview.expanded=true target25.showInterface=false target25.type=ClassTarget -target25.width=110 -target25.x=660 -target25.y=460 -target26.editor.height=720 -target26.editor.width=620 -target26.editor.x=487 -target26.editor.y=22 +target25.width=130 +target25.x=310 +target25.y=110 +target26.editor.height=700 +target26.editor.width=900 +target26.editor.x=187 +target26.editor.y=39 target26.height=50 -target26.name=Fleet +target26.name=HitCommand target26.naviview.expanded=false target26.showInterface=false target26.type=ClassTarget -target26.width=80 -target26.x=30 -target26.y=440 +target26.width=110 +target26.x=630 +target26.y=410 +target27.editor.height=831 +target27.editor.width=620 +target27.editor.x=642 +target27.editor.y=22 +target27.height=50 +target27.name=Fleet +target27.naviview.expanded=false +target27.showInterface=false +target27.type=ClassTarget +target27.width=80 +target27.x=140 +target27.y=410 target3.editor.height=722 target3.editor.width=707 -target3.editor.x=615 -target3.editor.y=34 +target3.editor.x=265 +target3.editor.y=45 target3.height=50 target3.name=Parser target3.naviview.expanded=false target3.showInterface=false target3.type=ClassTarget target3.width=90 -target3.x=140 -target3.y=50 +target3.x=120 +target3.y=10 target4.editor.height=700 target4.editor.width=900 target4.editor.x=380 @@ -420,8 +444,8 @@ target4.naviview.expanded=false target4.showInterface=false target4.type=ClassTarget target4.width=120 -target4.x=660 -target4.y=400 +target4.x=630 +target4.y=350 target5.editor.height=835 target5.editor.width=727 target5.editor.x=2486 @@ -432,44 +456,44 @@ target5.naviview.expanded=false target5.showInterface=false target5.type=ClassTarget target5.width=80 -target5.x=180 -target5.y=300 +target5.x=230 +target5.y=270 target6.editor.height=825 target6.editor.width=844 -target6.editor.x=277 -target6.editor.y=22 +target6.editor.x=411 +target6.editor.y=24 target6.height=50 target6.name=FireCommand target6.naviview.expanded=false target6.showInterface=false target6.type=ClassTarget target6.width=110 -target6.x=660 -target6.y=340 -target7.editor.height=700 +target6.x=630 +target6.y=290 +target7.editor.height=829 target7.editor.width=900 -target7.editor.x=380 -target7.editor.y=39 +target7.editor.x=527 +target7.editor.y=24 target7.height=50 target7.name=SunkCommand target7.naviview.expanded=false target7.showInterface=false target7.type=ClassTarget target7.width=120 -target7.x=660 -target7.y=520 -target8.editor.height=700 -target8.editor.width=900 -target8.editor.x=380 -target8.editor.y=39 +target7.x=630 +target7.y=470 +target8.editor.height=831 +target8.editor.width=721 +target8.editor.x=695 +target8.editor.y=22 target8.height=50 target8.name=TalkCommand target8.naviview.expanded=false target8.showInterface=false target8.type=ClassTarget target8.width=120 -target8.x=660 -target8.y=280 +target8.x=630 +target8.y=230 target9.editor.height=700 target9.editor.width=900 target9.editor.x=0 @@ -480,5 +504,5 @@ target9.naviview.expanded=false target9.showInterface=false target9.type=ClassTarget target9.width=110 -target9.x=500 -target9.y=400 +target9.x=470 +target9.y=350