Ratespiel1

Status
Nicht offen für weitere Antworten.
D

DerAnfänger

Gast
so hab kleines problem..zum Thema was ich schon geschrieben hatte (Ratespiel)

Code:
import java.io.*;
class heisskalt {
    public static void main(String[] args) throws IOException {
        
        double zufallszahl = 10*Math.random();
        zufallszahl= Math.round((zufallszahl * 100)/100.);
        
        System.out.println("Zahl "+zufallszahl);
        
        boolean korrekt= false;
        boolean richtig=false;
        
        BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
        int versuch = 1;
        
        while (versuch <=3 && !richtig){
            System.out.println("Geben Sie ein Zahl ein:");
            String input;
            input = stdin.readLine();
            double zahl=Integer.parseInt(input);
            

            double diff;
         if(zufallszahl > zahl){
                diff = zufallszahl - zahl;
         }
            if(zufallszahl < zahl){
                diff=zahl-zufallszahl;
                
            }
            
        
            while(diff==0);
           switch(diff){
               case 1:System.out.println("Richtig");
           } 
            
        } 
        
    }
    
    
    
}
der sagt mir bei switch(diff) einen Fehler weil double und int nicht kommunizieren :)

wie kann ich das lösen?

ich danke für schnelle hilfe
 

mattulla

Bekanntes Mitglied
Indem du keine double-Varialblen benutzt, sondern nur int. Soweit ich das Spiel verstanden hatte braucht das nur ganze Zahlen....also int!
 

norman

Top Contributor
switch kann nur auf ints angewendet werden. ein cast von double nach int ist abe rnicht immer verlustfrei möglich und wird dahe rnicht automatisch durchgeführt. du kannst das also explizit machen mit
Code:
switch( (int) diff) {
dabei gehen dir die nachkommastellen aber (ungerundet) verloren.

aber double ist hier eh verkehrt. du parst die eingabe mit Integer.parseInt(input) .. weißt den wert dann aber unlogischerweise einer double-variablen zu ..
 
G

Gast

Gast
aber ist das überhaupt möglich einem math.random ein int wert zuzuweisen??
 

mattulla

Bekanntes Mitglied
wenn du nen int-Wert haben willst geht das in etwas so:

Code:
Random r = new Random();
int x = r.nextInt();
 
G

Gast

Gast
danke,

werde mich aber sicher gleich mit noch einem Problem melden :))
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben