private boolean checkPlayerConnected() {
        // Hilfsvariablen
        Queue<Integer> searchQueue = new LinkedList<Integer>();
        List<Integer> checkedList = new ArrayList<Integer>();
        int foundPlayers = 0;
        // breadth-first search
        Map<Integer, GameBoardNode> gameBoardAsGraph = convertGameBoardToGraph();

        GameBoardNode startNode = gameBoardAsGraph.get(0);
        // build the queue
        for (int childId : startNode.getChildren()) {
            searchQueue.add(childId);
        }
        // search in the queue
        while (!searchQueue.isEmpty()) {
            Integer id = searchQueue.poll();
            if (id != null && !checkedList.contains(id)) {
                // add to checklist 
                checkedList.add(id);
                // check if node is a player station and add children to queue
                GameBoardNode node = gameBoardAsGraph.get(id);
                if (node != null) {
                    for (int childId : node.getChildren()) {
                        searchQueue.add(childId);
                    }

                    if (node.isPlayerStation) {
                        foundPlayers++;

                        StringBuilder msg = new StringBuilder("Player found at: ");
                        msg.append(node.getCoordinate().getX()).append(",");
                        msg.append(node.getCoordinate().getY());
                        // log msg
                        logger.log(Level.INFO, msg.toString());

                        if (foundPlayers >= playerStack.size()) {
                            return true;
                        }
                    }
                }
            }
        }

        String msg = "Not all Players are connected!";
        // log msg
        logger.log(Level.SEVERE, msg);
        // add msg to stack
        errorStack.append(msg).append("\n");

        return false;
    }