Java :: Aufgabe #286 :: Lösung #4

4 Lösungen Lösungen öffentlich
#286

Game - Heiß oder Kalt

Anfänger - Java von DavidDev024 - 20.04.2020 um 19:36 Uhr
Das Spiel läuft folgender Maßen ab:

- Spieler 1 denkt sich eine Zahl aus
- Spieler 2 versucht nun die Zahl zu erraten, indem er eine Zahl eingibt
- nun wird der vorherige Versuch (falls einer vorhanden) mit dem jetzigen verglichen und wärmer oder kälter ausgegeben (je nachdem ob man der geheimen Zahl von Spieler 1 näher kommt oder nicht)
-Erratet Spieler 2 die Zahl sollen die benötigten Versuche und die benötigte Zeit ausgegeben werden.

Have Fun
#4
vote_ok
von Seb (110 Punkte) - 31.12.2020 um 14:22 Uhr
// Hallo zusammen. Ich habe hier mit den Betrag (Abstand) der zu erratenden Zahl gerechnet.
Daher alles zum Quadrat genommen und Wurzel gezogen.
Wenn der Abstand zweier Ratezahlen zur richtigen Zahl gleich ist kommt das Ergebnis "neutral" raus.

Quellcode ausblenden Java-Code
public class HotColdMain {
	public static void main(String[] args) {
		HotCold.HotColdGame();
	}
}


Quellcode ausblenden Java-Code
import java.util.Scanner;

public class HotCold {
	
	public static int counter = 1;
	public static void HotColdGame() {
		System.out.println("Spieler 1: Geben Sie eine natürliche Zahl zum Erraten ein: ");
		Scanner s1 = new Scanner(System.in);
		int n1 = s1.nextInt();
		System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n");
		System.out.println("Spieler 2: Versuchen Sie die Zahl zu erraten: ");
		final long timeStart = System.currentTimeMillis();
		Scanner s2 = new Scanner(System.in);
		int n2 = s2.nextInt();
		int dif1 = (int) Math.sqrt((n2-n1)*(n2-n1));
		if((n2-n1) == 0) {
			System.out.println("Richtig erraten! \nDu hast gewonnen!");
			System.out.println("Versuche: " + counter);
			final long timeEnd1 = System.currentTimeMillis();
			System.out.println("Zeit: " + (timeEnd1-timeStart)/1000.00 + "s");
			restart();
		} else {
			System.out.println("Leider falsch. Nochmal erraten: ");
		}

		while(dif1 != 0) {
			Scanner s3 = new Scanner(System.in);
			int sc = s3.nextInt();
			if ((int)Math.sqrt((sc-n1)*(sc-n1)) < dif1 && (int)Math.sqrt((sc-n1)*(sc-n1)) != 0) {
				System.out.println("wärmer");
				dif1 = (int) Math.sqrt((sc-n1)*(sc-n1));
				counter++;
			} else if ((int)Math.sqrt((sc-n1)*(sc-n1)) > dif1) {
				System.out.println("kälter");
				dif1 = (int) Math.sqrt((sc-n1)*(sc-n1));
				counter++;
			} else if ((int)Math.sqrt((sc-n1)*(sc-n1)) == dif1) {
				System.out.println("neutral");
				dif1 = (int) Math.sqrt((sc-n1)*(sc-n1));
				counter++;
			} else if ((int)Math.sqrt((sc-n1)*(sc-n1)) == 0) {
				final long timeEnd2 = System.currentTimeMillis();
				counter++;
				System.out.println("Richtig erraten!");
				System.out.println("Versuche: " + counter);
				System.out.println("Zeit: " + ((timeEnd2-timeStart)/1000.00) + "s");
				restart();
			}
		}
	}
	
	public static void restart() {
		System.out.println("Willst du nochmal spielen? [1]=JA  / [2]=NEIN" );
		Scanner s4 = new Scanner(System.in);
		int UserEingabe = s4.nextInt();
		if(UserEingabe == 1) {
			HotColdGame();
		} else if (UserEingabe == 2) {
		}
	}	
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben