Rätsel-Spiel - Hilfe!

Status
Nicht offen für weitere Antworten.

joni89

Mitglied
Java:
import java.io.*;

class Lohn
{
  public static void main( String[] args ) throws IOException
  {


	double zufallszahl = Math.random()*10+1;
	int zufallszahlint = (int) zufallszahl;
    int zahl = 11;
    int runde = 1;
    int gewonnen = 0;
    boolean ok = false;


    BufferedReader stdin = new BufferedReader(
        new InputStreamReader( System.in ) );
    String input;

    int     versuch  = 0;



while (runde <= 10)
   {
System.out.println("\nRunde "+runde+":\n");

System.out.println("Ich denke an eine Zahl zwischen 1 und 10.\nSie haben drei Versuche, um die Zahl zu erraten.\nGeben Sie eine Zahl ein:");


while (versuch < 3 && zahl != zufallszahlint)
    {
input = stdin.readLine();
zahl  = Integer.parseInt( input );


if (zahl == zufallszahlint +1 || zahl == zufallszahlint -1)

System.out.println("heiss");

if (zahl == zufallszahlint +2 || zahl == zufallszahlint -2)

System.out.println("warm");

if (zahl <= zufallszahlint -3 || zahl >= zufallszahlint + 3)

System.out.println("kalt");


versuch = versuch + 1;


if (zahl == zufallszahlint)
{
      System.out.println("RICHTIG!\n");
      gewonnen = gewonnen +1;
}





    }
if ( versuch >= 3)

{
System.out.println("Die richtige Zahl war "+zufallszahlint+".\nSie haben das Spiel verloren.");
}

runde = runde + 1;
versuch = 0;

System.out.println("\nSie haben "+gewonnen+" von 10 Runden gewonnen.");
}



if (gewonnen <= 7)

System.out.println("\nIhre Bewertung: Amateur\n");


if (gewonnen == 8)

System.out.println("\nIhre Bewertung: Fortgeschritten\n");


if (gewonnen == 9)

System.out.println("\nIhre Bewertung: Profi\n");


if (gewonnen == 10)

System.out.println("\nIhre Bewertung: Hacker\n");



}
}


Programming Exercises

aufgabe 3 - 5.

ja, ich weiß, is wirklich nicht schön aufgebaut, und auch nur auf eigenen logiken - und würd bestimmt einfacher gehen. ging auch alles gut, nur bei kapitel 5, wo es das ganze 10 mal abspielen soll klappts durch den versuch zähler nicht mehr.

kann mir irgendjemand helfen, wie ich das - ohne viel verändern zu müssen (und wichtig: mit möglichst den gleichen befehlen, da das eigentlich alle sind, die im tutorial bisher vorkamen) trotzdem noch hinbekommen könnte?

problem is:
sobalds einmal gelöst is fragts nicht mehr, sondern gibt den rest als falsch aus und es is immer die gleiche zufällige zahl..

rein theoretisch: wenn mans alle 10 spiele zu je 3 versuchen falsch ausfüllen würd, funktionierts sogar perfekt (außer eben, dass es immer die gleiche zahl verlangt). ^^

danke.
 
Zuletzt bearbeitet:
Was macht das eigentlich für einen Sinn ein Tutorial durchzuarbeiten
wenn du dessen Aufgaben hier erkunden willst? 😛ueh:
 
nach jedem kapitel kommen immer n paar programmieraufgaben, wovon die letzten 2-3 dann immer um einiges schwieriger sind, als das zeugs was im tutorial gezeigt wurde.

bisher ging trotzdem immer alles mit viel überlegen, nur bei dem kapitel jetz komm ich trotz öfterem durchlesen nicht wirklich klar, und brauch hilfe..
 
Java:
import java.io.*;

class Lohn
{
  public static void main( String[] args ) throws IOException
  {


    double zufallszahl = Math.random()*10+1;
    int zufallszahlint = (int) zufallszahl;
    int zahl = 11;
    int runde = 1;
    int gewonnen = 0;
    boolean ok = false;


    BufferedReader stdin = new BufferedReader(
        new InputStreamReader( System.in ) );
    String input;

    int     versuch  = 0;



    while (runde <= 10)
    {
     System.out.println("\nRunde "+runde+":\n");

      System.out.println("Ich denke an eine Zahl zwischen 1 und 10.\nSie haben drei Versuche, um die Zahl zu erraten.\nGeben Sie eine Zahl ein:");


      while (versuch < 3 && zahl != zufallszahlint)
      {
            input = stdin.readLine();
            zahl  = Integer.parseInt( input );

            if (zahl == zufallszahlint +1 || zahl == zufallszahlint -1)
               System.out.println("heiss");

            if (zahl == zufallszahlint +2 || zahl == zufallszahlint -2)
               System.out.println("warm");

            if (zahl <= zufallszahlint -3 || zahl >= zufallszahlint + 3)
               System.out.println("kalt");

               versuch = versuch + 1;


            if (zahl == zufallszahlint)
           {
              System.out.println("RICHTIG!\n");
              gewonnen = gewonnen +1;
              versuch=0;
           }

    }
    if ( versuch >= 3)
    {
      System.out.println("Die richtige Zahl war "+zufallszahlint+".\nSie haben das Spiel verloren.");
    }

    runde = runde + 1;
    versuch = 0;
    zufallszahl = Math.random()*10+1;
    zufallszahlint = (int) zufallszahl;
    stdin = new BufferedReader(
        new InputStreamReader( System.in ) );

    System.out.println("\nSie haben "+gewonnen+" von "+(runde-1)+" Runden gewonnen.");
   }


if (gewonnen <= 7)

System.out.println("\nIhre Bewertung: Amateur\n");


if (gewonnen == 8)

System.out.println("\nIhre Bewertung: Fortgeschritten\n");


if (gewonnen == 9)

System.out.println("\nIhre Bewertung: Profi\n");


if (gewonnen == 10)

System.out.println("\nIhre Bewertung: Hacker\n");



}
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben