Java :: Aufgabe #286

4 Lösungen Lösungen öffentlich

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

Lösungen:

vote_ok
von fcn200 (220 Punkte) - 05.05.2020 um 15:31 Uhr
Quellcode ausblenden Java-Code
package Game;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Scanner;

public class Game {
	Scanner c = new Scanner(System.in);
	int zahl=0,geratene_zahl=0,geratene_zahl_vor=0;
	int versuche=0;
	Timestamp start,ende;
	SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Game g = new Game();
		g.EingabeSpieler1();
	}

	public void EingabeSpieler1()
	{
		System.out.println("Spieler 1: Geben Sie die zu eratende Zahl ein: ");
		zahl = c.nextInt();
		start = new Timestamp(System.currentTimeMillis());
		
		EingabeSpieler2();
	}
	public void EingabeSpieler2()
	{
		versuche++;
		System.out.println("Spieler 2: Raten Sie die Zahl: ");
		geratene_zahl = c.nextInt();
		if(geratene_zahl == zahl) {
			System.out.println("Spieler 2 hat die Zahl erraten");
			ende = new Timestamp(System.currentTimeMillis());
			System.out.println("Versuche: "+versuche);
			long zeit = (ende.getTime()-start.getTime());
			System.out.println("Zeit: ["+(zeit/1000)+"s "+(zeit%1000)+"ms]");
			
			System.out.println("Neue Runde? [0=Nein 1=Ja]");
			versuche=0;
			if(c.nextInt()==0) // Nein
			{
				System.out.println("Spiel beendet");
			}
			else //Ja
			{
				EingabeSpieler1();
			}
		}
		else
		{
			
			if(geratene_zahl < geratene_zahl_vor)
			{
				System.out.println("Kälter");
				geratene_zahl_vor = geratene_zahl;
				EingabeSpieler2();
			}
			else
			{
				System.out.println("Wärmer");
				geratene_zahl_vor = geratene_zahl;
				EingabeSpieler2();
			}
		}
	}
}
vote_ok
von daniel91 (150 Punkte) - 29.05.2020 um 00:44 Uhr
Quellcode ausblenden Java-Code
import java.util.Scanner;

public class Zahlenraten {

	public static void main(String[] args) {
		
		// Eingabe einer Zahl durch Spieler 1
		Scanner scanner = new Scanner(System.in);
		int zahl = scanner.nextInt();
		boolean test = false;
		
		// Spieler 2 gibt erste Zahl ein
		int newZahl = scanner.nextInt();
		long start = System.currentTimeMillis();
		if(newZahl == zahl) {
			System.out.println("Herzlichen Glückwunsch! Sie haben gewonnen.");
			test = true;
		}
		else {
			System.out.println("Leider falsch.");
		}
		
		// Spieler 2 gibt so lange Zahlen ein, bis er die geheime Zahl erraten hat
		int i = 1;
		while(test == false) {
			int newZahl2 = scanner.nextInt();
			if(newZahl2 == zahl) {
				System.out.println("Herzlichen Glückwunsch! Sie haben gewonnen.");
				test = true;
			}
			else if(Math.abs(newZahl2-zahl) < Math.abs(newZahl-zahl)){
				System.out.println("Wärmer!");
			}
			else if(Math.abs(newZahl2-zahl) > Math.abs(newZahl-zahl)){
				System.out.println("Kälter!");
			}
			newZahl = newZahl2;
			i = i+1;
		}
		System.out.println("Sie haben " + i + " Versuche gebraucht!");
		long finish = System.currentTimeMillis();
		System.out.println("Sie haben " + ((finish - start)/60000) + " Minuten " + (((finish - start)/1000)%60) + " Sekunden gebraucht.");
	}
}
vote_ok
von Des_ORNTRT (530 Punkte) - 31.07.2020 um 01:08 Uhr
Quellcode ausblenden Java-Code
import java.util.Scanner;
import java.util.Random;

public class Aufgabe1 {

    public static void main(String[] args)
    {
        long displayMinutes=0;
        long starttime=System.currentTimeMillis();
        Random rand = new Random();
        Scanner Scnr = new Scanner(System.in);
        int upperbound = 3;
        int int_random = rand.nextInt(upperbound);

        System.out.println("Versuchen Sie, die Zahl zu erraten: \n");
        while (true) {

            int num_guess = Integer.parseInt(Scnr.nextLine());
            if (num_guess > int_random) {
                System.out.println("Die geheime Zahl ist kleiner als " + num_guess);
            }
            if (num_guess < int_random) {
                System.out.println("Die geheime Zahl ist größer als " + num_guess);
            }
            if (num_guess==int_random){ break; }}


        System.out.println("Richtig");

        long timepassed = System.currentTimeMillis() - starttime;
        long secondspassed = (timepassed / 1000);

        String _10_seconds = Long.toString(timepassed / 100);
        String _100_seconds = Long.toString(timepassed / 10);
        String secs10 = Character.toString(_10_seconds.charAt(0));
        String secs100 = Character.toString(_10_seconds.charAt(0));
        System.out.print(secondspassed + ":" + secs10 + secs100);

    }

}


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) {
		}
	}	
}