# Ich Will Ein Zahlen rate Spiel



## Bierseppi (31. Jan 2010)

Hallo ich in neu im Java:rtfm: . Wir lernen es in der Schule( wie programmieren mit BlueJ wenn es intressiert) und es interressiert mich schon sehr stark und ich möchte jetzt ein ganz kleines Spiel programmieren wo man Zahlen ratet . Leider hab ich das Problem, dass wenn ich eine Zahl eingegeben hab immer das Spiel vorbei ist auch wenn man darunter oder darüber liegt. Wenn ich eine For schleife mach mit 10 Rate Durchgängen dann schreibt es mir wenn ich richtig liege das Richtig  noch so oft an, wie ich for Durchgänge hab. Hier mal das Programm:

```
/** 
 * Beschreiben Sie hier die Klasse ZufallsZahl. 
 *  
 * @author (Bartug Boeluekemini)  
 * @version (1.0) 
 * @support ([url=http://forum.waerP.de]home | waerp.de - just smiLe :)[/url]) 
 */ 
public class ZufallsZahl 
{ 
    /** 
     * zufaelligeZahl-Methode generiert die zufaelligeZahl bis n 
     */ 
    public static int zufaelligeZahl(int n) { 
         
        // Zufallszahl erzeugen 
        double dezimalZahl = Math.random(); 

        // Wert in den Bereich 0 bis n strecken 
        int ganzZahl = (int)Math.round( dezimalZahl * n ); 

        // Ergebnis zurueckgeben 
        return ganzZahl;      
         
    } 
     
    /** 
     * Main-Methode ist Start der Applikation 
     */ 
    public static void main( String[] args ) 
    {
        System.out.println("Bitte Eingabe machen");
        // Die Methode "zufaelligeZahl" wird aufgerufen und eine zufaellige Zahl bis max. 100 wird
        // generiert und in die Variable "zufall" abgelegt. 
        int zufall = zufaelligeZahl(10),a;  
         a = Eingabe.IntZahl();
        // Ausgabe 
       for (int i=0;i<10;i++)
       {
              if(a==zufall)
               {System.out.println("Sie liegen Richtig");
               ;}
        if(a<zufall)
          {System.out.println("Sie Liegen darunter");
            a=Eingabe.IntZahl();
          }
        if(a>zufall)
          {System.out.println("Sie Liegen Darüber");
            a=Eingabe.IntZahl();}
        }
            

    } 

}
```

So das Währe das Programm . Wenn jemand fragen hat zu dem Zufallsgenerator oder dem Eingabe Schema, der soll es mir sagen , denn das Eingabe Schema ist ne andere Klasse die mir der Klasse verknüpft ist.


----------



## Sergeant_Pepper (31. Jan 2010)

Hallo,
du könntest in Zeile 41 (dort wo jetzt das einsame Semikolon steht) ein [c]break[/c] einfügen (siehe auch Java ist auch eine Insel , nach "break" suchen )

Außerdem würde ich in den Zeilen 42 und 46 statt [c]if[/c] [c]else if[/c] schreiben.


----------



## lenniii (31. Jan 2010)

ich würde sogar den letzten Vergleich ganz weglassen. Es bleibt ja eh keine andere Chance, oder?
Zudem würde ich nach der Eingabeaufforderung direkt die Zahl lesen, anstatt dazwischen Zwischenschritte zu tätigen. Das ist unschön (hier macht das nicht viel aus, aber liegen dazwischen komplexe Schritte und der Benutzer muss warten bis er drücken darf ist das schlecht. Kann man sich gleich daran gewöhnen).
Der kleine Optimierer in mir sagt mir noch, dass du vor der Auswertung "Sie liegen " ausgeben kannst, dann brauchst du nur noch "richtig" / "drüber" oder "drunter" ausgeben. Darauf kann man ggf. auch Pfeifen. Nur musst du, wenn du das machst, darauf achten, dass du bei "Sie liegen" .print() nimmst, sonst hast du es in 2 Zeilen.

Viel Spaß noch.


----------



## nrg (31. Jan 2010)

lenniii hat gesagt.:


> Der kleine Optimierer in mir sagt mir noch, dass du vor der Auswertung "Sie liegen " ausgeben kannst, dann brauchst du nur noch "richtig" / "drüber" oder "drunter" ausgeben. Darauf kann man ggf. auch Pfeifen. Nur musst du, wenn du das machst, darauf achten, dass du bei "Sie liegen" .print() nimmst, sonst hast du es in 2 Zeilen.


die Meinung kann ich jetzt nicht wirklich teilen. Halte ich eher für Sinnlos (ein String obj/Methodenaufruf mehr)..


----------



## Bierseppi (1. Feb 2010)

JA Danke ich hab das mit break gemacht und es funktioniert.
Wie kann ich es machen, dass ich ein Applet oder so was daraus mache , dass ich es also frei benutzen kann auf dem handy vil sogar .

Dies ist nur so dass ich es einmal kann, so dass ich es später auch noch anwenden kann


----------



## Sergeant_Pepper (2. Feb 2010)

ein Applet habe ich selber nur vom 3 Jahren mal in einem Kurs programmiert, das kann ich jetzt nicht ad hoc wiedergeben.

Aber in (oder auf?)  ;-)  der Insel solltest du eine gute Anleitung finden. Für den Anfang muss das aber nicht sein, oder?


----------



## Juli10000 (26. Dez 2010)

```
<script type='text/javascript'> <!--


var cards = new Array(6);
var play = 0;
var cn = 0;
var ttl = 0;
cards[1] = " KARTE EINS \n  1  3  5  7  9 11 13 15 \n 17 19 21 23 25 27 29 31 \n 33 35 37 39 41 43 45 47 \n 49 51 53 55 57 59 61 63";
cards[2] = " KARTE ZWEI \n  2  3  6  7 10 11 14 15 \n 18 19 22 23 26 27 30 31 \n 34 35 38 39 42 43 46 47 \n 50 51 54 55 58 59 62 63";
cards[3] = " KARTE DREI \n  4  5  6  7 12 13 14 15 \n 20 21 22 23 28 29 30 31 \n 36 37 38 39 44 45 46 47 \n 52 53 54 55 60 61 62 63";
cards[4] = " KARTE VIER \n  8  9 10 11 12 13 14 15 \n 24 25 26 27 28 29 30 31 \n 40 41 42 43 44 45 46 47 \n 56 57 58 59 60 61 62 63";
cards[5] = " KARTE FÜNF \n 16 17 18 19 20 21 22 23 \n 24 25 26 27 28 29 30 31 \n 48 49 50 51 52 53 54 55 \n 56 57 58 59 60 61 62 63";
cards[6] = " KARTE SECHS \n 32 33 34 35 36 37 38 39 \n 40 41 42 43 44 45 46 47 \n 48 49 50 51 52 53 54 55 \n 56 57 58 59 60 61 62 63";
var ccol = new Array("","#FF7777","Green","Blue","Gray","Red","Black");
var knos = new Array("",1,2,4,8,16,32);
function Nextcard() {
   cn++;
   if(cn == 7)
      End();
   else {
      document.x.card.value=cards[cn];
      document.x.card.style.backgroundColor=ccol[cn];
      document.x.text.value="Ist Deine Zahl auf der oberen Karte abgebildet??";
   }
}

function Restart() {
   play=0;
   cn=0;
   ttl=0;
   document.x.card.style.backgroundColor = "#FFFFFF";
   document.x.card.style.color = "#000000";
   document.x.card.value = "Denk Dir eine Zahl zwischen 1 und 63 aus. Es werden 6 Karten eingeblendet. Nach der letzten Karte habe ich Deine Zahl herausgefunden.";
   document.x.text.value = "Drücke Start";
   document.x.stbt.value = "Start";
}

function Yes() {
   ttl = ttl + knos[cn];
   Nextcard();
}

function Start() {
   document.x.card.style.color = "White";
   document.x.stbt.value = "Neustart";
   play = 1;
   Nextcard();
}

function End() {
   play = 2;
   if(ttl < 10)
      ttl = " " + ttl;
   ttl = " " + ttl;
   var one = ttl.charAt(1);
   var two = ttl.charAt(2);
   document.x.card.value = "\n Die Zahl, die Du dir ausgedacht hast, lautet : n -- [ "+one+" "+two+" ] --";
   document.x.card.style.color = "Yellow";
   document.x.text.value = "Drücke auf Neustart um noch einmal zu spielen";
}

function click() {
   event.cancelBubble = true;
   event.returnValue = false;
}
document.oncontextmenu = click;
//-->
</script>
<form name="x">
    <center>
    <table border="0">
        <tbody>
            <tr>
                <td><center> <textarea cols="30" rows="6" name="card">Denk Dir eine Zahl zwischen 1 und 63 aus. Es werden 6 Karten eingeblendet. Nach der letzten Karte habe ich Deine Zahl herausgefunden. </textarea> </center></td>
            </tr>
            <tr>
                <td><center> <input type="text" style="font-size: 8pt;" value="Dr&uuml;cke Start" name="text" size="46" /> </center></td>
            </tr>
            <tr>
                <td><center> <input type="button" style="font-size: 8pt;" onclick="if(play==1) Yes()" value=" JA " /> <input type="button" style="font-size: 8pt;" onclick="if(play==1) Nextcard()" value="NEIN" /> <input type="button" style="font-size: 8pt;" onclick="if(play==0) Start(); else Restart()" value=" Start " name="stbt" /> </center></td>
            </tr>
        </tbody>
    </table>
    </center>
</form>
```


----------



## Cola_Colin (26. Dez 2010)

Das ist kein Java, sondern Javascript, ich glaube kaum das er das sucht.

Hier wird erklärt, wie man Applets erstellt.

EDIT:

Der Thread ist außerdem wenig älter :autsch:


----------



## ARadauer (27. Dez 2010)

1. 10 Monate zu spät
2. Total am Thema vorbei Java != JavaScript
3. Schlechter Code

solid first post ;-)


----------

