From 7d03fb4108dc2c82a970444ead27d13d41b7056d Mon Sep 17 00:00:00 2001 From: davpapp Date: Thu, 25 Jan 2018 04:27:39 -0500 Subject: [PATCH] Grid correctly working with --- bin/Mouse.class | Bin 6184 -> 5882 bytes bin/MousePathTest.class | Bin 1053 -> 1098 bytes bin/MouseTest.class | Bin 626 -> 670 bytes bin/main.class | Bin 743 -> 775 bytes src/Mouse.java | 77 +++++++++++++++++++--------------------- src/main.java | 2 +- 6 files changed, 38 insertions(+), 41 deletions(-) diff --git a/bin/Mouse.class b/bin/Mouse.class index 311d540d1223e241867ed29b32123941001ede28..9d34f3dc0df5f2b72b812e4966e53aeba153d2d9 100644 GIT binary patch literal 5882 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 V716}oh`HY4;VZ;!Zr~Du{{S;6d!YaT literal 6184 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 v1T0Dlnxv+viFIhm0~c=H`5M@9euks7c7 delta 28 kcmX@bF_&Y)X~x*e{7j0Qr5JBBGIC9Rz%06%o7tWb0Ec%7Hvj+t diff --git a/bin/MouseTest.class b/bin/MouseTest.class index 5bc627e6471725f9c68e1e8fc63b5491fc029382..52119cc1d32be746a71aa7723fd6a04f77c0fe84 100644 GIT binary patch delta 85 zcmeywGLLn_XU3Bgzo@Gv=jRod6qP2I6^XS8CJ6=vXOU|`^3U<8s}K$;gwGcrg3NhStK01(FqJOBUy diff --git a/bin/main.class b/bin/main.class index cef3839eba52b883658deee56228bfa0d81be851..85220e15d74cbc022f8c12477c4931e415c2656f 100644 GIT binary patch delta 184 zcmaFP+Rnyx>ff$?3=9mW42B!IW-*$pGBSv3_+%xPCFff$?3=9mW3PYbeFQ%^=6X!=T2%3uG}c ch(S~{XfbF5c~U@89R^(nMj+G!@|hU)0SOEjKmY&$ diff --git a/src/Mouse.java b/src/Mouse.java index 43283ce..9d844ad 100644 --- a/src/Mouse.java +++ b/src/Mouse.java @@ -13,14 +13,29 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class Mouse { - private HashMap> gridMap; + private ArrayList>> grid; + int granularity; //private ArrayList mousePaths; + private int windowWidth; + private int windowHeight; PointerInfo pointer; - public Mouse(String path) { + public Mouse(String path, int windowWidth, int windowHeight) { + this.windowWidth = windowWidth; + this.windowHeight = windowHeight; + granularity = 10; // TODO: Is there another way to get the pointer location?? pointer = MouseInfo.getPointerInfo(); - gridMap = new HashMap>(); + + grid = new ArrayList>>(); + for (int i = 0; i < 2 * (windowWidth / granularity) + 1; i++) { + grid.add(new ArrayList>()); + for (int j = 0; j < 2 * (windowHeight / granularity) + 1; j++) { + grid.get(i).add(new ArrayList()); + } + } + + System.out.println("Grid size: " + grid.size() + "x" + grid.get(0).size()); ArrayList mousePaths = readFile(path); assignPathsToGrid(mousePaths); } @@ -29,7 +44,7 @@ public class Mouse { int[] mouseLoc = getMouseLocation(); int deltaX = endingX - mouseLoc[0]; int deltaY = endingY - mouseLoc[1]; - Integer[] gridKey = getGridMapKey(deltaX, deltaY); + int[] gridIndex = getGridIndex(deltaX, deltaY); // Fetch from map } @@ -44,36 +59,23 @@ public class Mouse { } - public Integer[] getGridMapKey(int deltaX, int deltaY) { - Integer[] gridKey = {deltaX / 100, deltaY / 100}; - return gridKey; + public int[] getGridIndex(int deltaX, int deltaY) { + int offsetX = windowWidth / granularity; + int offsetY = windowHeight / granularity; + int[] gridIndex = {deltaX / granularity + offsetX, deltaY / granularity + offsetY}; + return gridIndex; } public void assignPathsToGrid(ArrayList mousePaths) { - Integer[] key1 = getGridMapKey(0, 0); - Integer[] key2 = getGridMapKey(0, 0); - gridMap.put(key1, new ArrayList()); - if (gridMap.containsKey(key2)) { - System.out.println("same key!"); - } - if (gridMap.containsKey(key1)) { - System.out.println("Same key2!"); - } - /*for (MousePath mousePath : mousePaths) { + for (MousePath mousePath : mousePaths) { int deltaX = mousePath.getDeltaX(); int deltaY = mousePath.getDeltaY(); - Integer[] gridKey = getGridMapKey(deltaX, deltaY); - - if (gridMap.containsKey(gridKey)) { - System.out.println("Same category!"); - gridMap.get(gridKey).add(mousePath); - } - else { - ArrayList newPath = new ArrayList(); - newPath.add(mousePath); - gridMap.put(gridKey, newPath); - } - }*/ + + int[] gridIndex = getGridIndex(deltaX, deltaY); + //System.out.println(deltaX + "," + deltaY); + //System.out.println("index: " + gridIndex[0] + "," + gridIndex[1]); + grid.get(gridIndex[0]).get(gridIndex[1]).add(mousePath); + } } public ArrayList readFile(String path) { @@ -140,18 +142,13 @@ public class Mouse { public void displayPaths() { - System.out.println("Displaying paths in HashMap..."); - for (HashMap.Entry> entry : gridMap.entrySet()) { - Integer[] gridKey = entry.getKey(); - System.out.println("Key is: (" + gridKey[0] + ", " + gridKey[1] + ")"); - - ArrayList mousePaths = entry.getValue(); - System.out.println("There are " + mousePaths.size() + " paths with these deltas."); - for (MousePath path : mousePaths) { - //path.display(); - System.out.println("----------------------------------------------------------"); + for (int i = 0; i < 2 * (windowWidth / granularity) + 1; i++) { + for (int j = 0; j < 2 * (windowHeight / granularity) + 1; j++) { + if (grid.get(i).get(j).size() > 0) { + System.out.println("(" + i + "," + j + ")"); + System.out.println("There are " + grid.get(i).get(j).size() + " paths in this delta range."); + } } - System.out.println("Size of HashMap: " + gridMap.size()); } } } \ No newline at end of file diff --git a/src/main.java b/src/main.java index f6c30e8..62aefc3 100644 --- a/src/main.java +++ b/src/main.java @@ -7,7 +7,7 @@ public class main { System.out.println("Starting mouse script..."); System.out.println("Fetching mouse paths from script..."); - Mouse mouse = new Mouse("/home/dpapp/GhostMouse/coordinates.txt"); + Mouse mouse = new Mouse("/home/dpapp/GhostMouse/coordinates.txt", 1920, 1080); mouse.displayPaths(); System.out.println("Finished..."); }