O problema do valor de pontos final ser maior que o inicial 1000 quando usados números menores que o numero secreto, é o seguinte:
Na subtração, se o valor da esquerda for menor que o da direita, o resultado será negativo. Fazendo de conta que o numero chutado foi 10 e o numsecreto seja 20: Ex: 10-20 = -10
Na hora de subtrair pontos, vai acontecer o seguinte: 1000 = 1000 - (-10). Isso será 1000 + 10 = 1010.
Para a solução do problema, deverá ser feito o seguinte: Se depois da operação matemática, o valor de pontosperdidos ficar negativo (menor que zero), ele deverá entrar numa condição:
int pontosperdidos = (numero - numsecreto) / 2;
if(pontosperdidos<0){ pontosperdidos = pontosperdidos*(-1); }
pontos = pontos - pontosperdidos; *
Pois qualquer valor negativo, multiplicado por (-1), se torna positivo.