Fui adicionando os códigos conforme fui me lembrando do que poderia colocar. Para mim está bom, mas não sei se ficou confuso e se outra pessoa leria com facilidade.
import java.util.Random;
import java.util.Scanner;
public class JogoAdivinhacao {
    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        int solucao = new Random().nextInt(100);
        System.out.println("JOGO DA ADIVINHAÇÃO");
        for (int i = 0; i < 5; i++) {
            System.out.println("Tente descobrir o número de 1 à 100. Para sair, digite '0'.");
            int resposta = leitura.nextInt();
            if (resposta < 0 || resposta > 100) {
                System.out.println("Digite um número válido entre 1 e 100.");
                i--;
            }
            if(resposta < solucao && resposta != 0) {
                System.out.println("A solução é maior que " + resposta + ". ");
                if (i < 4){
                    System.out.println("Você tem " + (4 - i) + " tentativas");
                } else {
                    System.out.println("Suas chances acabaram. A solução é: " + solucao);
                }
            } else if (resposta > solucao) {
                System.out.println("A solução é menor que " + resposta + ". ");
                if (i < 4){
                    System.out.println("Você tem " + (4 - i) + " tentativas");
                } else {
                    System.out.println("Suas chances acabaram. A solução é: " + solucao);
                }
            } else if (resposta == solucao) {
                System.out.println("Parabéns. " + resposta + " é o número correto.");
                break;
            } else {
                System.out.println("Que pena. Você desistiu.");
                break;
            }
        }
    }
}