I have made movetile code and it works, but it's very chaotic and would like to simplify it. I would be very grateful if someone could help me.private void moveTiles(Richting r) {    switch (r) {        case BOVEN:            for (int x = 0; x < 4; x++) {                for (int y = 0; y < 4; y++) {                    int checkLeeg = 0;                    if (y == 0) {                        continue;                    }                    if (y != 0) {                        if (view.getTileValue(x, y).getText().equals(view.getTileValue(x, y - 1).getText()) &&                                !view.getTileValue(x, y).getText().equals()) {                            view.getTileValue(x, y - 1).setText(mergeTiles(view.getTileValue(x, y).getText(),                                    view.getTileValue(x, y - 1).getText()));                            view.getTileValue(x, y).setText();                            continue;                        }                    }                    if (view.getTileValue(x, checkLeeg).getText().equals()) {                        while (view.getTileValue(x, checkLeeg).getText().equals()) {                            view.getTileValue(x, checkLeeg).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 3) {                                break;                            }                            checkLeeg++;                        }                    } else if (view.getTileValue(x, checkLeeg + 1).getText().equals()) {                        while (view.getTileValue(x, checkLeeg + 1).getText().equals()) {                            view.getTileValue(x, checkLeeg + 1).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 2) {                                break;                            }                            checkLeeg++;                        }                    } else {                        while (view.getTileValue(x, checkLeeg + 2).getText().equals()) {                            view.getTileValue(x, checkLeeg + 2).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 1) {                                break;                            }                            checkLeeg++;                        }                    }                }            }            break;        case BENEDEN:            for (int x = 0; x < 4; x++) {                for (int y = 3; y >= 0; y--) {                    int checkLeeg = 3;                    if (y == 3) {                        continue;                    }                    if (y != 3) {                        if (view.getTileValue(x, y).getText().equals(view.getTileValue(x, y + 1).getText()) &&                                !view.getTileValue(x, y).getText().equals()) {                            view.getTileValue(x, y + 1).setText(mergeTiles(view.getTileValue(x, y).getText(),                                    view.getTileValue(x, y + 1).getText()));                            view.getTileValue(x, y).setText();                            continue;                        }                    }                    if (view.getTileValue(x, checkLeeg).getText().equals()) {                        while (view.getTileValue(x, checkLeeg).getText().equals()) {                            view.getTileValue(x, checkLeeg).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 0) {                                break;                            }                            checkLeeg--;                        }                    } else if (view.getTileValue(x, checkLeeg - 1).getText().equals()) {                        while (view.getTileValue(x, checkLeeg - 1).getText().equals()) {                            view.getTileValue(x, checkLeeg - 1).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 1) {                                break;                            }                            checkLeeg--;                        }                    } else if (view.getTileValue(x, checkLeeg - 2).getText().equals()) {                        while (view.getTileValue(x, checkLeeg - 2).getText().equals()) {                            view.getTileValue(x, checkLeeg - 2).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 2) {                                break;                            }                            checkLeeg--;                        }                    }                }            }            break;        case LINKS:            for (int x = 0; x < 4; x++) {                for (int y = 0; y < 4; y++) {                    int checkLeeg = 0;                    if (x == 0) {                        continue;                    }                    if (x != 0) {                        if (view.getTileValue(x, y).getText().equals(view.getTileValue(x - 1, y).getText()) &&                                !view.getTileValue(x, y).getText().equals()) {                            view.getTileValue(x - 1, y).setText(mergeTiles(view.getTileValue(x, y).getText(),                                    view.getTileValue(x - 1, y).getText()));                            view.getTileValue(x, y).setText();                            continue;                        }                    }                    if (view.getTileValue(checkLeeg, y).getText().equals()) {                        while (view.getTileValue(checkLeeg, y).getText().equals()) {                            view.getTileValue(checkLeeg, y).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 3) {                                break;                            }                            checkLeeg++;                        }                    } else if (view.getTileValue(checkLeeg + 1, y).getText().equals()) {                        while (view.getTileValue(checkLeeg + 1, y).getText().equals()) {                            view.getTileValue(checkLeeg + 1, y).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 2) {                                break;                            }                            checkLeeg++;                        }                    } else {                        while (view.getTileValue(checkLeeg + 2, y).getText().equals()) {                            view.getTileValue(checkLeeg + 2, y).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 1) {                                break;                            }                            checkLeeg++;                        }                    }                }            }            break;        case RECHTS:            for (int x = 3; x >= 0; x--) {                for (int y = 0; y < 4; y++) {                    int checkLeeg = 3;                    if (x == 3) {                        continue;                    }                    if (x != 3) {                        if (view.getTileValue(x, y).getText().equals(view.getTileValue(x + 1, y).getText()) &&                                !view.getTileValue(x, y).getText().equals()) {                            view.getTileValue(x + 1, y).setText(mergeTiles(view.getTileValue(x, y).getText(),                                    view.getTileValue(x + 1, y).getText()));                            view.getTileValue(x, y).setText();                            continue;                        }                    }                    if (view.getTileValue(checkLeeg, y).getText().equals()) {                        while (view.getTileValue(checkLeeg, y).getText().equals()) {                            view.getTileValue(checkLeeg, y).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 0) {                                break;                            }                            checkLeeg--;                        }                    } else if (view.getTileValue(checkLeeg - 1, y).getText().equals()) {                        while (view.getTileValue(checkLeeg - 1, y).getText().equals()) {                            view.getTileValue(checkLeeg - 1, y).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 1) {                                break;                            }                            checkLeeg--;                        }                    } else {                        while (view.getTileValue(checkLeeg - 2, y).getText().equals()) {                            view.getTileValue(checkLeeg - 2, y).setText(view.getTileValue(x, y).getText());                            view.getTileValue(x, y).setText();                            if (checkLeeg == 2) {                                break;                            }                            checkLeeg--;                        }                    }                }            }            break;    }}
Tile-merging moves
java;javafx;mvp