www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Sonstiges - Informatik" - [JAVA] Ratespiel - Probleme
[JAVA] Ratespiel - Probleme < Sonstige < Schule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Sonstiges - Informatik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

[JAVA] Ratespiel - Probleme: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:15 Sa 17.01.2009
Autor: foxxx

Aufgabe
Entwerfen Sie ein kleines Java-Programm.

Hallo liebe Community,

Bin recht neu hier und habe logischerweise ein Problem ^^

Im Info Unterricht machen wir grad Programmieren mit Java und eigentlich hatte ich da auch kein Problem mit.

Ist ja ein bisschen wie bei Javascript (miz zusätzlichem Konstruktor etc..) und das hat auch immer geklappt.

Jedenfalls ging es jetzt erstmal darum ein Ratespiel zu machen, wie das gelöst wird, ist jedem selbst überlassen.

Hier ist der Quellcode der main-Klasse(n)

1: class RateSpiel {
2:
3:       int computerZahl;
4:       int spielerZahl;
5:       boolean weiterSpielen;
6:       int wievielteRunde;
7:       int unterGrenze;
8:       int obgerGrenze;
9:       int maxVersuche;
10:       ConInput eingabe = new ConInput();
11:       
12:       RateSpiel(int uG, int oG, int maxV){
13:         this.unterGrenze = uG;
14:         this.obgerGrenze = oG;
15:         
16:         if (uG > oG) {
17:            this.unterGrenze = oG;
18:            this.obgerGrenze = uG;
19:         }
20:         else {
21:            this.unterGrenze = uG;
22:            this.obgerGrenze = oG;
23:         }
24:
25:         if (maxV > 1) this.maxVersuche = maxV;
26:         else this.maxVersuche = 3;
27:         
28:         this.weiterSpielen = true;
29:         this.wievielteRunde = 0;
30:       }
31:       
32:       public void run(){
33:         this.wievielteRunde = 0;
34:         this.computerZahl = (int) (Math.random() * (oberGrenze - unterGrenze) + unterGrenze);
35:         // System.out.println(this.computerZahl);
36:         while (this.wievielteRunde < this.maxVersuche){
37:           this.wievielteRunde++;
38:           this.spielerZahl = eingabe.eingabeInt("Dein Tipp: ");
39:           if (this.spielerZahl == this.computerZahl){
40:             System.out.println("Richtig geraten!");
41:             break;
42:           }
43:           else
44:           if (this.spielerZahl < this.computerZahl){
45:             System.out.println("Falsch, Deine Zahl war zu klein! Noch " + (maxVersuche - wievielteRunde) + " Versuch(e)");
46:           }
47:           else System.out.println("Falsch, Deine Zahl war zu groß! Noch " + (maxVersuche - wievielteRunde) + " Versuch(e)");
48:         }
49:       }
50:       
51:       public void hauptSchleife(){
52:         do{
53:           this.run();
54:           this.weiterSpielen = eingabe.eingabeBoolean("Willst Du nochmal spielen? (ja/nein)");
55:         }
56:         while (this.weiterSpielen);
57:       }
58: }






Und hier ein kleines Programm zum Testen davon:

1: class SpielTest {
2:
3:       public static void main(String[] args) {
4:         RateSpiel spiel = new RateSpiel(20, 40, 4);
5:         spiel.hauptSchleife();
6:       }
7: }


Allerdings lässt sich das Programm nichtmal Kompilieren....

Hier der Auszug aus dem Compiler vom Java-Editor:

1: Compiliere C:\Users\FoX\Desktop\ratespiel\RateSpiel.java mit Java-Compiler
2: RateSpiel.java:10:7: cannot find symbol
3: symbol  : class ConInput
4: location: class RateSpiel
5:       ConInput eingabe = new ConInput();
6:       ^
7: RateSpiel.java:10:30: cannot find symbol
8: symbol  : class ConInput
9: location: class RateSpiel
10:       ConInput eingabe = new ConInput();
11:                              ^
12: RateSpiel.java:34:53: cannot find symbol
13: symbol  : variable oberGrenze
14: location: class RateSpiel
15:         this.computerZahl = (int) (Math.random() * (oberGrenze - unterGrenze) + unterGrenze);
16:                                                     ^
17: 3 errors
18:
19: Compiliere C:\Users\FoX\Desktop\ratespiel\SpielTest.java mit Java-Compiler
20: .\RateSpiel.java:10:7: cannot find symbol
21: symbol  : class ConInput
22: location: class RateSpiel
23:       ConInput eingabe = new ConInput();
24:       ^
25: .\RateSpiel.java:10:30: cannot find symbol
26: symbol  : class ConInput
27: location: class RateSpiel
28:       ConInput eingabe = new ConInput();
29:                              ^
30: .\RateSpiel.java:34:53: cannot find symbol
31: symbol  : variable oberGrenze
32: location: class RateSpiel
33:         this.computerZahl = (int) (Math.random() * (oberGrenze - unterGrenze) + unterGrenze);
34:                                                     ^
35: 3 errors




Ich bin nun mittlerweile etwas ratlos, da ich davon ausging, dass das einfach so funktioniert.

Mit Java an sich hatte ich auch keine Probleme, ich wollte mich jetzt auch primär auf die grafische Oberfläche stürzen und nur schnell ein kleines Programm dafür schreiben.

Ich sehe meinen Fehler echt nicht, allerdings bin ich mir mit dem ConInput noch nicht sicher, aber dazu finde ich auch bei google irgendwie nichts ...


Es wäre sehr nett, wenn mir jemand erläutern könnte, WO und WARUM der Fehler da ist. :)

Desweiteren wäre eine Einleitung in die grafische Oberfläche mit Swing echt nützlich, ich kann zwar mit dem Java-Editor ein Grundgerüst aufrufen, aber weiß noch nicht, wie ich mein Programm dort einfüge.
Außerdem müssten so Sachen wie die Eingabe des Benutzers in Text-Felder gelegt werden und ein Button zum starten wäre auch nicht verkehrt.

mfg
foxxx

        
Bezug
[JAVA] Ratespiel - Probleme: Antwort
Status: (Antwort) fertig Status 
Datum: 12:22 Sa 17.01.2009
Autor: rainerS

Hallo!


> Hier der Auszug aus dem Compiler vom Java-Editor:
>  
>
1: Compiliere 
2: > [mm]C:\Users\FoX\Desktop\ratespiel\RateSpiel.java[/mm] mit 
3: > Java-Compiler
4: >  RateSpiel.java:10:7: cannot find symbol
5: >  symbol  : class ConInput
6: >  location: class RateSpiel
7: >        ConInput eingabe = new ConInput();
8: >        ^
9: >  RateSpiel.java:10:30: cannot find symbol
10: >  symbol  : class ConInput
11: >  location: class RateSpiel
12: >        ConInput eingabe = new ConInput();
13: >                               ^
14: >  RateSpiel.java:34:53: cannot find symbol
15: >  symbol  : variable oberGrenze
16: >  location: class RateSpiel
17: >          this.computerZahl = (int) (Math.random() * 
18: > (oberGrenze - unterGrenze) + unterGrenze);
19: >                                                      ^
20: >  3 errors
21: >  
22: > Compiliere [mm]C:\Users\FoX\Desktop\ratespiel\SpielTest.java[/mm] 
23: > mit Java-Compiler
24: >  [mm].\RateSpiel.java:10:7:[/mm] cannot find symbol
25: >  symbol  : class ConInput
26: >  location: class RateSpiel
27: >        ConInput eingabe = new ConInput();
28: >        ^
29: >  [mm].\RateSpiel.java:10:30:[/mm] cannot find symbol
30: >  symbol  : class ConInput
31: >  location: class RateSpiel
32: >        ConInput eingabe = new ConInput();
33: >                               ^
34: >  [mm].\RateSpiel.java:34:53:[/mm] cannot find symbol
35: >  symbol  : variable oberGrenze
36: >  location: class RateSpiel
37: >          this.computerZahl = (int) (Math.random() * 
38: > (oberGrenze - unterGrenze) + unterGrenze);
39: >                                                      ^
40: >  3 errors
41: >  


>  
>
>
> Ich bin nun mittlerweile etwas ratlos, da ich davon
> ausging, dass das einfach so funktioniert.
>  
> Mit Java an sich hatte ich auch keine Probleme, ich wollte
> mich jetzt auch primär auf die grafische Oberfläche stürzen
> und nur schnell ein kleines Programm dafür schreiben.
>  
> Ich sehe meinen Fehler echt nicht, allerdings bin ich mir
> mit dem ConInput noch nicht sicher, aber dazu finde ich
> auch bei google irgendwie nichts ...
>  
>
> Es wäre sehr nett, wenn mir jemand erläutern könnte, WO und
> WARUM der Fehler da ist. :)

In Java müssen alle verwendeten Klassen definiert werden. Ich sehe in deinem Programm weder irgendwo die Definition von ConInput nocht eine import-Anweisung, um die Klasse aus einer Bibliothek zu holen.

> Desweiteren wäre eine Einleitung in die grafische
> Oberfläche mit Swing echt nützlich, ich kann zwar mit dem
> Java-Editor ein Grundgerüst aufrufen, aber weiß noch nicht,
> wie ich mein Programm dort einfüge.
>  Außerdem müssten so Sachen wie die Eingabe des Benutzers
> in Text-Felder gelegt werden und ein Button zum starten
> wäre auch nicht verkehrt.

Da verlangst du zuviel; das kann keiner in wenigen Sätzen tun. Es gibt bei Sun ein []englisches Tutorial.

Viele Grüße
   Rainer

Bezug
                
Bezug
[JAVA] Ratespiel - Probleme: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:20 Sa 17.01.2009
Autor: foxxx


> Hallo!
> In Java müssen alle verwendeten Klassen definiert werden.
> Ich sehe in deinem Programm weder irgendwo die Definition
> von ConInput nocht eine import-Anweisung, um die Klasse aus
> einer Bibliothek zu holen.
> Viele Grüße
>     Rainer


Das mit der grafischen Oberfläche ist auch erstmal nebensächlich.

Das Programm soll funktionieren.

Es wäre jetzt sehr nett, wenn du mi sagen könntest, wie ich ConInput zu definieren habe, oder wie ich das umgehen kann etc, die eigentliche Funktionsweise des Programms sollte ja klar sein :)

mfg
foxxx

Bezug
                        
Bezug
[JAVA] Ratespiel - Probleme: Antwort
Status: (Antwort) fertig Status 
Datum: 15:55 Sa 17.01.2009
Autor: rainerS

Hallo!


> Es wäre jetzt sehr nett, wenn du mi sagen könntest, wie ich
> ConInput zu definieren habe, oder wie ich das umgehen kann
> etc, die eigentliche Funktionsweise des Programms sollte ja
> klar sein :)


Schau mal []hier.

Ich rate dir, eine Einführung in Java durchzuarbeiten. Die Ähnlichkeit mit JavaScript endet doch schon bald nach der Syntax.

Viele Grüße
   Rainer

Bezug
                                
Bezug
[JAVA] Ratespiel - Probleme: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 17:04 Sa 17.01.2009
Autor: foxxx

Ich bin jetzt schon etwas weiter, das Programm läuft schonmal :D

funktionierender Quellcode:

1: import java.io.*;
2:
3: class RateSpiel {
4:
5:       int computerZahl;
6:       String spielerEingabe;
7:       String spielen;
8:       int spielerZahl;
9:       boolean weiterSpielen;
10:       int wievielteRunde;
11:       int unterGrenze;
12:       int oberGrenze;
13:       int maxVersuche;
14:       BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
15:       
16:       RateSpiel(int uG, int oG, int maxV){
17:         this.unterGrenze = uG;
18:         this.oberGrenze = oG;
19:         
20:         if (uG > oG) {
21:            this.unterGrenze = oG;
22:            this.oberGrenze = uG;
23:         }
24:         else {
25:            this.unterGrenze = uG;
26:            this.oberGrenze = oG;
27:         }
28:
29:         if (maxV > 1) this.maxVersuche = maxV;
30:         else this.maxVersuche = 3;
31:         
32:         this.weiterSpielen = true;
33:         this.wievielteRunde = 0;
34:       }
35:       
36:       public void run(){
37:         this.wievielteRunde = 0;
38:         this.computerZahl = (int) (Math.random() * (oberGrenze - unterGrenze) + unterGrenze);
39:         // System.out.println(this.computerZahl);
40:         while (this.wievielteRunde < this.maxVersuche){
41:           this.wievielteRunde++;
42:           
43:                                 System.out.print("Dein Tipp: ");
44:                                 String spielerEingabe = null;
45:                                  try {
46:                                     spielerEingabe = console.readLine();
47:                                  }
48:                                  catch (IOException e) {
49:                                     // Sollte eigentlich nie passieren
50:                                     e.printStackTrace();
51:                                  }
52:                                  spielerZahl = Integer.parseInt(spielerEingabe);
53:
54:           
55:           //System.out.println("Dein Tipp lautet: " + spielerZahl);
56:           
57:           if (this.spielerZahl == this.computerZahl){
58:             System.out.println("Richtig geraten!");
59:             break;
60:           }
61:           else
62:           if (this.spielerZahl < this.computerZahl){
63:             System.out.println("Falsch, Deine Zahl war zu klein! Noch " + (maxVersuche - wievielteRunde) + " Versuch(e)");
64:           }
65:           else System.out.println("Falsch, Deine Zahl war zu groß! Noch " + (maxVersuche - wievielteRunde) + " Versuch(e)");
66:         }
67:       }
68:       
69:       public void hauptSchleife(){
70:         do{
71:           this.run();
72:           System.out.println("Willst Du nochmal spielen? (ja/nein)");
73:           String spielen = null;
74:           try {
75:             spielen = console.readLine();
76:           }
77:           catch (IOException e) {
78:             // Sollte eigentlich nie passieren
79:             e.printStackTrace();
80:           }
81:           //System.out.println(spielen.toLowerCase().equals("ja"));
82:           this.weiterSpielen = spielen.toLowerCase().equals("ja");
83:
84:         }
85:         while (this.weiterSpielen);
86:       }
87: }




Start-Programm:

1: class SpielTest {
2:
3:       public static void main(String[] args) {
4:         RateSpiel spiel = new RateSpiel(10, 20, 3);
5:         spiel.hauptSchleife();
6:       }
7: }



In der ersten Version waren noch einige Tippfehler, die ich einfach nicht gesehen hab, naja jetzt sind sie weg :)

Jetzt bin ich gerade dabei, die grafische Oberfläche zu machen.

Aktuell sieht es jetzt so aus:

[][img=http://www.abload.de/thumb/swing_versuch1zhuz.jpg]


Ich weiß aber nicht, ob das so intelligent gelöst ist...

Außerdem habe ich die Objekte alle nur platziert und mal halbwegs sinnvoll benannt.

Es fehlt nocht jegliche Einbindung und Verknüpfung in mein Ratespiel.

Da habe ich nun kein Plan und muss nochmal suchen, ob ich da eine vernünftige Anleitung finde.

mfg
foxxx

Bezug
                                        
Bezug
[JAVA] Ratespiel - Probleme: Status
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 01:45 So 18.01.2009
Autor: foxxx

Ich komm noch immer nicht weiter, ich hab leider keine brauchbare Anleitung für Swing gefunden ...

Bei "Java ist auch eine Insel" hab ich auch geguckt, aber das hilft mir auch nicht weiter.

Elemente sind wie gesagt alle platziert, aber müssen noch verknüpft werden, ich weiß nur noch nicht wie ...

mfg
foxxx

Bezug
                                        
Bezug
[JAVA] Ratespiel - Probleme: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:44 So 18.01.2009
Autor: foxxx

Ich möchte ja nicht drängeln, aber bis morgen müsste das Programm schon fertig sein ...

mfg
foxxx

Bezug
                                        
Bezug
[JAVA] Ratespiel - Probleme: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 05:21 Di 20.01.2009
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Sonstiges - Informatik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]