private void processGame() {
        final int fieldSize = field.getFieldSize();
        final int maxAmountOfMoves = fieldSize*fieldSize;

        while ((field.gameState() == Field.GAME_STATE_CONTINUES)&&(field.getMovesPassed() < maxAmountOfMoves)) {

            field.drawField();

            System.out.print(currentPlayer.getName() + "'s turn:");

            int[] move = currentPlayer.makeMove(field.getField());
            if (move[0] == Player.CODE_EXIT) {
                processExit();
            } else if (move[0] == Player.CODE_TAKE_STEP_BACK) {
                field.getOneStepBack();
                System.out.println("shall change");
            } else {
                char item;
                if (currentPlayer == playerX) {
                    item = Field.DEFAULT_X_ITEM;
                } else {
                    item = Field.DEFAULT_O_ITEM;
                }

                if ((move[0] == Player.CODE_INVALID_CELL_CODE)||(!field.makeMove(item, move[0], move[1]))) {
                    System.out.println("Invalid code, please type again.");
                    continue;
                }
            }
            currentPlayer = currentPlayer == playerX ? playerO : playerX;
        }
        field.drawField();
    }