public void move() {
        List<Field> fieldList = this.getField().getNearByRoads(1);
        if (fieldList.size() > 1) {
            List<Integer> roadIds = new ArrayList<Integer>();
            List<Field> possibleFields = new ArrayList<Field>();
            // elagazashoz ertunk
            this.getField().execute(this);
            Random gen = new Random();

            for (Field field : fieldList) {
                if (field != null) {
                    possibleFields.add(field);
                    roadIds.add(fieldList.indexOf(field));
                }
            }
            int i = gen.nextInt(possibleFields.size());
            if (fieldList.size() > 1) {
                this.setField(fieldList.get(i));
                fieldList.get(i).addVisitable(this);
                this.setRoad(roadIds.get(i));
            } else {
                System.out.println("Game over, character reached the end of a road. ");
            }

        } else {
            // nem elagazas
            this.getField().execute(this);
            if (fieldList.size() < 1) {
                System.out.println("Game over, character reached the end of a road. ");
            } else {
                this.setField(fieldList.get(0));
                fieldList.get(0).addVisitable(this);
            }
        }
        // speed reseteles
        this.setSpeed(maxSpeed);
        // csapdaba lepes visitorminta segitsegevel
        for (Visitable v : this.getField().getVisitables()) {
            v.accept(this);
        }
    }