private void updateShip(Info info) {

                Node nodeOne;
                Node nodeTwo;
                Set<Node> nodes;

                // visit every edge in the actual ship
                for (Edge e : info.adjacentEdges) {
                        nodeOne = info.location;
                        nodeTwo = Node.getOtherNode(e, nodeOne);
                        nodes = new HashSet<Node>();
                        nodes.add(nodeOne);
                        nodes.add(nodeTwo);
                        Edge predEdge = predatorShip.edgeMap.get(nodes);

                        // compare it to the predators memory, makes necessary
                        // adjustments
                        if (predEdge != null) {
                                if (e.getEdgeState() != predEdge.getEdgeState()) {
                                        predEdge.setEdgeState(e.getEdgeState());
                                }
                        }
                        else {
                                Node predsNodeOne = predatorShip.getNodeAt(nodeOne.getRow(), nodeOne.getCol());
                                Node predsNodeTwo = predatorShip.getNodeAt(nodeTwo.getRow(), nodeTwo.getCol());
                                Set<Node> nodesForEdge = new HashSet<Node>();
                                nodesForEdge.add(predsNodeOne);
                                nodesForEdge.add(predsNodeTwo);
                                predatorShip.edgeMap.put(nodesForEdge, new Edge(e.getEdgeState(), predsNodeOne, predsNodeTwo));
                        }
                }

        }