Add initial implementation including utility classes, core modules, and project configuration files
This commit is contained in:
49
aufgabenblatt1/src/task3/NumberGuesser.java
Normal file
49
aufgabenblatt1/src/task3/NumberGuesser.java
Normal file
@@ -0,0 +1,49 @@
|
||||
package task3;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class NumberGuesser {
|
||||
private int number;
|
||||
|
||||
public NumberGuesser(int targetNumber){
|
||||
this.number = targetNumber;
|
||||
}
|
||||
public boolean isBigger(int guess){
|
||||
return guess < number;
|
||||
}
|
||||
|
||||
public void guess(){
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
System.out.println("Guess a number: ");
|
||||
int guess = scanner.nextInt();
|
||||
switch (Integer.compare(guess, number)) {
|
||||
case -1 -> System.out.println("Too low!");
|
||||
case 0 -> System.out.println("Correct!");
|
||||
case 1 -> System.out.println("Too high!");
|
||||
}
|
||||
}
|
||||
|
||||
public void autoGuess(){
|
||||
int low = Integer.MIN_VALUE;
|
||||
int high = Integer.MAX_VALUE;
|
||||
|
||||
while (low <= high) {
|
||||
int mid = low + (high - low) / 2;
|
||||
|
||||
if (mid == number) {
|
||||
System.out.println("Found the number: " + mid);
|
||||
return;
|
||||
} else if (isBigger(mid)) {
|
||||
low = mid + 1;
|
||||
} else {
|
||||
high = mid - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
NumberGuesser numberGuesser = new NumberGuesser(100);
|
||||
System.out.println(numberGuesser.isBigger(Integer.MAX_VALUE/2));
|
||||
numberGuesser.autoGuess();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user