TweakPC

Zurück   Computer Hardware Forum - TweakPC > Games und Software > Programmiersprachen
Registrieren Hilfe Community Downloads

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04.08.2007, 02:36   #1 (permalink)
PC Schrauber
 

Registriert seit: 11.05.2006
Beiträge: 131

Greeven befindet sich auf einem aufstrebenden Ast

Standard [Java] Was ist an der Zeile falsch?

Guten Tag. Warum hat er ein Problem mit folgender Zeile?

String ineins = istdn.readLine();
mit der übernächsten auch.


PHP-Code:
package punkt;
import java.io.*;
// Datei: TestPerson.java

public class TestPerson
{
   public static 
void main (String args[])
   {
      
BufferedReader istdn = new BufferedReader (new InputStreamReader (System.in));
      
System.out.println("Also hier muss ein name rein");
      
String ineins istdn.readLine();
      
System.out.println("Und hier der nachname");
      
String inzwei istdn.readLine();
       
      
      
String vorname;
      
String name;
      
Person schoettle;

      
schoettle = new Person();
      
schoettle.setName (ineins);
      
schoettle.setVorname (inzwei);

      
name schoettle.getName();
      
vorname schoettle.getVorname();
      
System.out.println ("Vorname : " vorname);
      
System.out.println ("Name : " name);
   }

und noch eine Klasse

PHP-Code:
package punkt;
// Datei: Person.java

public class Person
{
   private 
String name;

   private 
String vorname;

   public 
void setName (String n)
   {
      
name n;
   }

   public 
String getName()
   {
      return 
name;
   }

   public 
void setVorname (String n)
   {
      
vorname n;
   }

   public 
String getVorname()
   {
      return 
vorname;
   }

Ich bin mir ganz sicher. Irgendwas mach ich falsch.^^
Greeven ist offline   Mit Zitat antworten
Alt 04.08.2007, 08:41   #2 (permalink)
Hardware Freak
 

Registriert seit: 28.03.2003
Beiträge: 8.252

redfalcon kann auf vieles stolz sein
redfalcon kann auf vieles stolz sein

Standard AW: Was ist an der Zeile falsch?

Welchen Fehler gibt der Compiler denn aus?

/Edit:

Wenn du einfach nur die Eingabe in ner Variable speichern willst, würde ich das so machen:

Code:
public void lineReader{

String name=null;

 System.out.println("Name eingeben!");
    try{
            DataInput t = new DataInputStream(System.in);
             name = t.readLine();
        }
             
     catch (Exception e) {e.printStackTrace}
             
System.out.println(name);
}
Auch wenn wahrscheinlich gleich irgendwer mit ner schöneren Lösung ankommt =P

Geändert von redfalcon (04.08.2007 um 08:47 Uhr)
redfalcon ist offline   Mit Zitat antworten
Alt 04.08.2007, 15:22   #3 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: Was ist an der Zeile falsch?

Zitat:
Zitat von Greeven Beitrag anzeigen
Guten Tag. Warum hat er ein Problem mit folgender Zeile?

String ineins = istdn.readLine();
mit der übernächsten auch.

[...]

Ich bin mir ganz sicher. Irgendwas mach ich falsch.^^

Schonmal in die Javadoc zur Methode BufferedReader.readLine geguckt? Die kann eine IOException werfen, daher muss der aufruf in einem try/catch Block stehen, wie es redfalcon unten auch gemacht hat. Wenn du Eclipse verwendest produziert dir die IDE den nötigen try/catch Block von selbst.

Im übrigen ist es völlig in Ordnung dort einen BufferedReader zu verwenden, der DataInputStream muss nicht unbedingt sein - im Gegenteil, die Methode

DataInputStream.readLine ist DEPRECATED!

Quellen:

DataInputStream (Java 2 Platform SE 5.0)
BufferedReader (Java 2 Platform SE 5.0)

Also - das was redfalcon da schreibst ist ok für Java bis 1.4, danach sollte man den BufferedReader verwenden.

Gruß

tele
tele ist offline   Mit Zitat antworten
Für diesen Beitrag bedankt sich:
[EID]-Mr.GiZMO (04.08.2007)
Alt 05.08.2007, 00:09   #4 (permalink)
PC Schrauber
 

Registriert seit: 11.05.2006
Beiträge: 131

Greeven befindet sich auf einem aufstrebenden Ast

Standard AW: Was ist an der Zeile falsch?

Das "throws Exception" hat gefehlt.

Zitat:
Schonmal in die Javadoc zur Methode BufferedReader.readLine geguckt?
Ja, und sie sagt mir, dass readLine einen String erstellt, der aus einer Zeile gelesen wird.
Is doch richtig oder? Also mehr bekommt man nicht raus.
Bei der Anwendung der API bin ich noch nich so sicher. Also die Aufzeichnungen.
Das kommt wohl hoffentlich noch, wenn man mit dem Programm mehr vertraut ist.

Geändert von Greeven (05.08.2007 um 00:29 Uhr)
Greeven ist offline   Mit Zitat antworten
Alt 05.08.2007, 13:11   #5 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: Was ist an der Zeile falsch?

Zitat:
Zitat von Greeven Beitrag anzeigen
Das "throws Exception" hat gefehlt.

Ja, und sie sagt mir, dass readLine einen String erstellt, der aus einer Zeile gelesen wird.
Is doch richtig oder?
Das ist noch richtig, ja.

Zitat:
Zitat von Greeven Beitrag anzeigen
Also mehr bekommt man nicht raus.
Nein, das ist nicht mehr richtig.

Zitat:
Zitat von http://java.sun.com/j2se/1.5.0/docs/api/java/io/BufferedReader.html#readLine()
readLine
public String readLine()
throws IOException
Read a line of text. A line is considered to be terminated by any one of a line feed ('n'), a carriage return ('r'), or a carriage return followed immediately by a linefeed.

Returns:
A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached
Throws:
IOException - If an I/O error occurs
Wenn eine Methode mit "Throws: ExeptionXYZ" spezifiziert ist, heißt das, sie KÖNNTE eine Exception des angegebenen Typs werfen. Will man also diese Methode verwenden, so muss man den Methodenaufruf in einem try/catch Block notieren.

Wenn du also notierst:

PHP-Code:
BufferedReader istdn = new BufferedReader (new InputStreamReader (System.in));
String ineins istdn.readLine(); 
Wird dir eine ordentliche IDE das bemängeln, z.B. mit folgendem Kommentar:

http://www.tweakpc.de/gallery/data/5...lipseError.JPG

Eclipse bietet dazu eine automatische Hilfe (QuickFix), wenn man mit der Maus über die Fehlermeldung am linken Rand geht:

http://www.tweakpc.de/gallery/data/5...edSolution.JPG

wen man nun auf "surrond with try/catch Block" klickt, wird folgender korrekter Code produziert:
(ich stell mal nur die main() dar)
PHP-Code:
    public static void main(String[] args) {
        
BufferedReader istdn = new BufferedReader (new InputStreamReader (System.in));
      
System.out.println("Also hier muss ein name rein");
      try {
            
String ineins istdn.readLine();
        } catch (
IOException e) {
            
// TODO Auto-generated catch block
            
e.printStackTrace();
        }
    } 
Natürlich sollte man die Deklaration von "ineins" noch außerhalb des try machen, will man die Variable später weiter verwenden. z.B. so:

PHP-Code:
    public static void main(String[] args) {
        
BufferedReader istdn = new BufferedReader (new InputStreamReader (System.in));
      
System.out.println("Also hier muss ein name rein");
      
String ineins "";
      try {
            
ineins istdn.readLine();
        } catch (
IOException e) {
            
// TODO Auto-generated catch block
            
e.printStackTrace();
        }
    } 
Wie man genau mit Exceptions und der JavaDoc umgeht, solltest du dir hier erlesen können:

Lesson: Exceptions (The Java™ Tutorials > Essential Classes)


mfg

tele, "SUN certified Java Programmer"
tele ist offline   Mit Zitat antworten
Alt 05.08.2007, 16:37   #6 (permalink)
EoN
Kaffeejunkie
 
Benutzerbild von EoN
 

Registriert seit: 01.05.2002
Beiträge: 5.035

EoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer AnblickEoN ist ein wunderbarer Anblick

Standard AW: Was ist an der Zeile falsch?

Was bei Teles Ausführungen noch fehlt ist, dass Du mit dem "throws.." die Exeptionbehandlung nur weiter verschiebst.
Wenn Du hinter die Klasse ein "throws ... Exception" schreibst, musst Du diese Exception dann in der Methode abfangen in der Du die Methode aus der entsprechend definierten Klasse aufrufst.

Also wenn Du hast:
Code:
public class Test throws Exeption {
...

public void blubb(int y) {
...
}
}
Dann musst Du beim Aufruf diese trotzdem mit einem try und catch block abfangen:
Code:
...
public static void main(String[] args) {
Test x = new Test();
try {
 x.blubb(3);
}
 catch (Exception e) {
 [Exception hier behandeln]
}
Um das zu vereinfachen kannst Du die Exception gleich in der Methode blubb abfangen:
Code:
public void blubb(int y)= {
try {
 ...
}
catch (Exception e) {
 [Exception hier behandeln]
}
}
EoN ist offline   Mit Zitat antworten
Alt 05.08.2007, 16:59   #7 (permalink)
PC Schrauber
 

Registriert seit: 11.05.2006
Beiträge: 131

Greeven befindet sich auf einem aufstrebenden Ast

Standard AW: Was ist an der Zeile falsch?

try und catch muss ich nicht verwenden. Das Programm von mir aus dem ersten Post funktioniert doch auch. Nur noch das throws Exception ran.
Ich nehme an, dass ich noch nicht genug weiß, um mir dir Frage selbst zu beantworten und es vielleicht sogar in der API nachlesen könnte.

Warum gibt es eigentlich verschiedene Varianten zum Einlesen?
In dem Buch, was ich grad lese habe ich jetzt diese Variante kennengelernt:

Zitat:
Scanner eingabe= new Scanner (System.in);
String NAME = eingabe.next();
import java.util.Scanner; noch dazu
Greeven ist offline   Mit Zitat antworten
Alt 05.08.2007, 20:43   #8 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: Was ist an der Zeile falsch?

Zitat:
Zitat von Greeven Beitrag anzeigen
try und catch muss ich nicht verwenden. Das Programm von mir aus dem ersten Post funktioniert doch auch. Nur noch das throws Exception ran.
Nein, musst du nicht. Deine main Methode wird ja schließlich von einer anderen Methode gerufen, welche die Fehlerbehandlung macht

Falls du das Kapitel über Exceptions nicht nicht hinreichend studiert hat: Man fängt SPÄTESTENS in der ersten Methode, welche das Programm startet (in diesem Fall die main) alle möglichen Exceptions ab und benahdelt diese entsprechend.

Man muss das nicht tun, man kann auch der aufrufenden Methode sagen "behandel diese Fehler, ich hab keine Lust", allerdings sollte man dort das die Fehlerbehandlung implementieren. Da aber die main selten von einer anderen Java Methode gerufen wird, ist dort Fehlerbehandlung angebracht.

Was passiert wenn man das nicht macht?

1. andere die das Programm lesen werden einen nicht für voll nehmen. Ein Program ohne Fehlerbehandlung (z.b. aussagekräftiges Logging) beenden zu lassen ist "Hello World" Stil von Anfängern.
2. Fehler rauschen an einem vorbei ohne das man eine Ahnung hat, dass diese passiert sind. zumindest ein printStackTrace sollte man schon verwenden, um wenigstens die Fehlerursache bestimmen zu können.


edit: Warum schreib ich das - Eon hat das doch 20 min vor deinem Post korrekt dargestellt. naja ...
Zitat:
Zitat von Greeven Beitrag anzeigen
Ich nehme an, dass ich noch nicht genug weiß, um mir dir Frage selbst zu beantworten und es vielleicht sogar in der API nachlesen könnte.

Warum gibt es eigentlich verschiedene Varianten zum Einlesen?
In dem Buch, was ich grad lese habe ich jetzt diese Variante kennengelernt:



import java.util.Scanner; noch dazu
Es gibt nicht in jedem Fall etwas vom stdin zu lesen, eventuell möchtest du andere Datenströme verwenden (z.B. eine named pipe oder was weiß ich den ausgabestrom eines anderen Programms), daher gibt es auch zeichenbasierte Einleseverfahren.

Gruß

tele
tele ist offline   Mit Zitat antworten
Alt 06.08.2007, 14:35   #9 (permalink)
PC Schrauber
 

Registriert seit: 11.05.2006
Beiträge: 131

Greeven befindet sich auf einem aufstrebenden Ast

Standard AW: Was ist an der Zeile falsch?

Was mir grad aufgefallen ist: Es heißt "throws IOException". Macht aber wohl keinen Unterschied.

Zitat:
1. andere die das Programm lesen werden einen nicht für voll nehmen. Ein Program ohne Fehlerbehandlung (z.b. aussagekräftiges Logging) beenden zu lassen ist "Hello World" Stil von Anfängern.
2. Fehler rauschen an einem vorbei ohne das man eine Ahnung hat, dass diese passiert sind. zumindest ein printStackTrace sollte man schon verwenden, um wenigstens die Fehlerursache bestimmen zu können.
Und genau diesen Hello World Stil habe ich. So weiß ich nicht, was IOException macht und ich solle es einfach überlesen und mit übernehmen. Wird dann später erklärt.
printStackTrace sagt mir jetz so spontan zum Beispiel gar nichts. Da es nicht von Vorteil ist alles, was man nicht kennt nachzuschlagen, und es wohl in einem späteren Kapitel noch erklärt wird, werde ich dies jetzt nicht tun.
Mein Fehler was, dass ich throws IOException vergessen habe und wenn ich irgendwann etwas über try, cath oder Exception lesen werde, dann habe ich dank (<-- dies ist ein Danke) eurer Erklärungen schon mal ein wenig Vorwissen.

Gruß Christian.
Greeven ist offline   Mit Zitat antworten
Alt 06.08.2007, 14:58   #10 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: Was ist an der Zeile falsch?

Arghh ....

naja - ich weiß ja nicht nach welchem buch du dir Wissen aneignest, aber ein Input/Output Stream Kapitel vor dem Exceptionhandling durchzukauen ist in meinen Augen schlichtweg Blödsinn. Der Grund? Nahezu alle I/O Methoden werfen Exceptions, mit denen man sich ZUMINDEST im Prinzip auskennen sollte.

Meine Emfpehlung daher: überspringe das Kapitel und gehe direkt zu Exceptionhandling.

Zitat:
Da es nicht von Vorteil ist alles, was man nicht kennt nachzuschlagen, und es wohl in einem späteren Kapitel noch erklärt wird, werde ich dies jetzt nicht tun.
Wo auch immer du das her hast, ich würde das nicht so machen.

Meine Empfehlung:
1. In der Javadoc nachschlagen was die Methode/Klasse macht und wofür sie da ist.
2. Das kurz notieren (selbst schreiben ist eine der besten Lernmethoden) was du nachgeschlagen hast
3. für später (das von dir beschriebene Kapitel) weglegen und im aktuellen Text weitermachen.

Man nennt das auch "Scheuklappen ablegen", um derzeit ggf. wichtige Fakten aufnehmen zu können.

Und um es nochmal zu wiederholen: ein "throws" an eine main zu notieren ist nicht nur schlecht, nein es ist grauenhaft, auch wenn der Compiler das erstmal frisst.

Gruß

tele
tele ist offline   Mit Zitat antworten
Alt 07.08.2007, 10:13   #11 (permalink)
PC Schrauber
 

Registriert seit: 11.05.2006
Beiträge: 131

Greeven befindet sich auf einem aufstrebenden Ast

Standard AW: Was ist an der Zeile falsch?

Du magst deinen Grund haben, aber als Anfänger scheint es mir gut so.
Man muss ja zugeben, dass Java am Anfang ziemlich trocken ist und man die ganze Zeit Sachen gesagt bekommt, welche man vllt zwar versteht, aber den Sinn so richtig nicht dahinter versteht.
Dass man dabei dann - ohne es zu erklären erstmal - dem Anfänger die Möglichkeit gibt, dass er wenigstens etwas eingeben kann finde ich gut.
(Es geht am Anfang ja erstmal darum zu verstehen, was das Programm macht)
So schreibt man erst Sachen wie
Zitat:
String str;
str = new String ("blabla");
und erst später dann:
Zitat:
String str = new String ("immernochblabla");
In Mathe ist es doch auch so, dass man erst einige Jahre später lernt, wie die Formeln für den Weg und die für die Geschwindigkeit zustandekommen und zusammenhängen.

Und alles nachschlagen ist anstrengend und Nerven aufreibend. Vor allem, da man dort dann meistens noch mehr erfährt, was man nicht weiß.
In der Javadoc nachschlagen find ich aber auch gut. (Wenn man sich damit abfindet nicht alles verstehen zu müssen)
Darauf wird auch immer wieder verwiesen.

Das soll es gewesen sein. Noch eine Frage zum Schluss: Kennt jemand Hero Quest?
Wenn das Ziel ist, ein Spiel mit graphischer Oberfläche zu erstellen, dann ist doch "Mensch ärgere dich nicht" für den Anfang gut oder?
Greeven ist offline   Mit Zitat antworten
Alt 07.08.2007, 19:00   #12 (permalink)
Feanor
Gast
 

Beiträge: n/a

Standard AW: [Java] Was ist an der Zeile falsch?

"Mensch ärgere dich nicht" ist vielleicht nicht gerade das beste Spiel für den Anfang. Probier dich doch mal an "3 gewinnt" (Feld mit 3x3 Kästchen, Spieler, der 3 Stück nebeneinander bekommt hat gewonnen), das sollte recht einfach sein. Da ist es auch nicht schwer einen Netzwerkmodus hinzuzufügen, da es genügt Strings hin und her zu schicken; man muss nicht zwingend Objekte serialisieren.
  Mit Zitat antworten
Alt 07.08.2007, 20:02   #13 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: [Java] Was ist an der Zeile falsch?

Mensch ärgere dich nicht ist auch nicht undebedingt komplexer:

1. man benötigt in keiner Weise Serialisierung (auch nicht bei 3 gewinnt)
2. man benötigt für eine einfache Implementierung keine Netzwerkprogrammierung

Was man braucht:
1. Implementierung eines Würfels (sehr leicht)
2. Implemtneriung der GUI (das reine spielbrett->leicht, Darstellung von dynischen Objekten darauf-> mittel)
3. Implementierung eines Rundensystems mit Zügen (leicht bis mittel)
4. Implementierung des Regelwerkes und der begehbaren Pfade (mittel)

man kann sich das ganze Extrem vereinfachen, wenn man nicht einfach drauf los programmiert, sondern folgende Dinge beachtet:

1. Entwurf des groben Klassenaufbaus
2. Entwurf einer Ablaufsequenz (z.B. mittels Sequenzdiagrammen)
3. Definition aller nicht zu implementierenden Features (Schutz vor Ablenkung)

Hilfreich kann zudem sein, die Entwürfe einer erfahrenen Person zum Review zu geben, um frühzeitig "Fehlerkorrektur" betreiben zu können.

Gruß

tele
tele ist offline   Mit Zitat antworten
Alt 08.08.2007, 12:10   #14 (permalink)
PC Schrauber
 

Registriert seit: 11.05.2006
Beiträge: 131

Greeven befindet sich auf einem aufstrebenden Ast

Standard

Darf ich mal drauf losbrainstormen? Danke sage jetzt nichts.
...
ok.

Zuerst stellt sich mir die Frage, was in der main-Methode alles reinkommt.
So wie ich das bis jetzt kenne, würde ich wie folgt anfangen:
Ich habe eine Klasse "Spieler" die Anzahl der maximal vier Spieler wird am Anfang gewählt (das Wählen findet in der main Methode statt). In der Klasse befindet sich die Farbe und sie erstellt vier Objekte der Klasse "Spielstein". Diese haben als Daten, die Nummer des Feldes auf, dem sie grad stehen. (Am Anfang ist das immer der gleiche Wert.)
Ach, zu den Feldern... das gibt es doch bestimmt einige Varianten, oder.
Eine Klasse "Feld". durchgehend nummeriert.
Für jeden Spieler müsste es eine Kette von Feldern geben. Beginnend dort, wo er anfängt und endend da, wo es aufhört. (Was für ein Satz)
Einige Felder überschneiden sich ja und einige wiederum nich.
Nachdem gewürfelt wurde, wird der Wert des Wurfes genommen und zu dem aktuellen Feld dazu addiert. Anschließend wird das Feld "angeschrieben" (wie nennt man das? aufgerufen?) und es gibt zurück, ob man drauf kann oder nich. (Spielsteine, die nicht dieselbe Farbe besitzen werden auf das Anfangsfeld zurückgesetzt)
Es ist also auf einem Feld, neben der Nummer, nur gespeichert, ob und wenn, dann welcher Spielstein draufsteht.

Also:
class Spielstein (Farbe, aktuelles Feld)
class Spieler (Farbe, welchen Spieler als nächstes aufrufen,die entsprechende Felderkette ,zugehörige Spielsteine)
class Felder (Nummer des Feldes, besetzt oder nicht besetzt)

GUI... davon hab ich noch keine Ahnung. Eine Vorstellung, aber bevor ich damit anfange, warte ich erstmal auf das Feedback.
Es gibt natürlcih noch einiges anderes, aber der Kern ist erstmal dargestellt.

Gruß Christian



PS.: Für den Würfel gibt es doch bestimmt eine Methode, welche einen zufälligen Wert von 1-6 zurückgibt oder?

Geändert von tele (08.08.2007 um 12:30 Uhr)
Greeven ist offline   Mit Zitat antworten
Alt 08.08.2007, 13:01   #15 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: [Java] Was ist an der Zeile falsch?

Zitat:
Zitat von Greeven Beitrag anzeigen
Zuerst stellt sich mir die Frage, was in der main-Methode alles reinkommt.
je nachdem wie du es schreibst. Bei meinen GUI anwendungen stand meist nur der konstrierende Aufruf für das ganze GUI Geraffel drin, also ein Java typischer 3-4 Zeiler.


Zitat:
Zitat von Greeven Beitrag anzeigen
Ich habe eine Klasse "Spieler" die Anzahl der maximal vier Spieler wird am Anfang gewählt (das Wählen findet in der main Methode statt). In der Klasse befindet sich die Farbe und sie erstellt vier Objekte der Klasse "Spielstein". Diese haben als Daten, die Nummer des Feldes auf, dem sie grad stehen. (Am Anfang ist das immer der gleiche Wert.)
Die Objekte haben bei dir derzeit nur Attribute. Es fehlen noch ein paar Methoden, was man mit den so machen kann, z.B.

Spieler: würfle()
Spielstein: zieheVor(int Felder)
Spielstein: werdeGeschlagen()
Spielstein: schlage(Spielstein spielstein) [wobei so eine MEthode verdammt cheat-anfällig ist, besser wäre etwas unsichtbares aus sicht des schlagenden Spielteinst, also eher Spielstein au Feld -> Feld merkt Doppeltbesetzung und löst Schlagen von altem Stein aus]

Zitat:
Zitat von Greeven Beitrag anzeigen
Ach, zu den Feldern... das gibt es doch bestimmt einige Varianten, oder.
Eine Klasse "Feld". durchgehend nummeriert.
Für jeden Spieler müsste es eine Kette von Feldern geben. Beginnend dort, wo er anfängt und endend da, wo es aufhört. (Was für ein Satz)
Einige Felder überschneiden sich ja und einige wiederum nich.
Das wäre eine Möglichkeit (eigentlich mal gar nicht so dumm, könnte man auch nett aufmalen, als 4 parallel verlaufende Ketten.
Eine andere Möglichkeit wäre eine einzige Kette, nur dass die Felder unterschiedliche Typen haben (z.b. "normal", "startfeld für Spieler X", "Zielfeld für spieler X", "Kreuzungsfeld für spieler x".

Zitat:
Zitat von Greeven Beitrag anzeigen
Nachdem gewürfelt wurde, wird der Wert des Wurfes genommen und zu dem aktuellen Feld dazu addiert. Anschließend wird das Feld "angeschrieben" (wie nennt man das? aufgerufen?) und es gibt zurück, ob man drauf kann oder nich. (Spielsteine, die nicht dieselbe Farbe besitzen werden auf das Anfangsfeld zurückgesetzt)
1. du würdest z.B. eine Methode des Feldes aufrufen, die das macht.
2. Spielsteine, die die GLEICHE Farbe haben, werden nicht versetzt, sonst schlagen.

Zitat:
Zitat von Greeven Beitrag anzeigen
Es ist also auf einem Feld, neben der Nummer, nur gespeichert, ob und wenn, dann welcher Spielstein draufsteht.
siehe felddiskussion, man könnte noch zusätzliche Infos hinterlegen.

Zitat:
Zitat von Greeven Beitrag anzeigen
GUI... davon hab ich noch keine Ahnung. Eine Vorstellung, aber bevor ich damit anfange, warte ich erstmal auf das Feedback.
Es gibt natürlcih noch einiges anderes, aber der Kern ist erstmal dargestellt.
Das wird nochmal ein schöner Lernhappen. Aber für die logische Implementierung nicht unbedingt notwendig. Notfalls kann man das auch textuell implementieren und dann auf einem plan nachmalen und die gui später stricken.

Meine Empfehlung für GUIs: VE (Visual Editor) für Eclipse oder Netbeans.

Zitat:
Zitat von Greeven Beitrag anzeigen
PS.: Für den Würfel gibt es doch bestimmt eine Methode, welche einen zufälligen Wert von 1-6 zurückgibt oder?
ähem ... sicher

sosnt mal im math Paket gucken.
tele ist offline   Mit Zitat antworten
Alt 08.08.2007, 15:23   #16 (permalink)
PC Schrauber
 

Registriert seit: 11.05.2006
Beiträge: 131

Greeven befindet sich auf einem aufstrebenden Ast

Standard AW: [Java] Was ist an der Zeile falsch?

Gibt es eigentlich hier ein Tool, mit welchem man das so schön machen kann wie in den Lehrbüchern (Mit Kästen, wo der Name, die Variablen und die Methoden drinstehen... und so ein Flussdiagramm)?
Oder einfach Text?

Was wird eigentlich bevorzugt? NetBeans oder Eclipse? Ich habe unterschiedliches gehört, aber die Personen kannten eigentlich immer nur eins. Das,was sie halt benutzen. Bei java.sun kann man sich Java mit NetBeans herunterladen (was ich auch gemacht habe). Von Eclipse hab ich da noch nichts gesehen.
Was sind die Vor- und Nachteile von den beiden (anscheinend am meisten verbreiteten) Entwicklungsumgebungen?
Greeven ist offline   Mit Zitat antworten
Alt 08.08.2007, 16:06   #17 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: [Java] Was ist an der Zeile falsch?

Tool: gibt es einige, von OOo über MS Visio bis IBM Rational Rose(?), Ich würd dir mal Omondo ans Herz legen. Kostenlos (die free edition) und eingier maßen gut in eine IDE integriert.

IDE: Eclipse ist offen und mit für fast allem mit Plugins ausrüstbar, Netbeans hat schon ne menge integriert, aber darüber hinaus - keine Ahnung.

Aufgrund meiner Anstellung benutze ich Eclipse für fast alles, sei es J2EE, Java, Java + GUI, Perl, PHP, IBM TPM Workflowentwicklung, XML Editor, CVS / Subversion client.

Guck dir einfach mal beide an und nimm für den Anfang was dir besser gefällt.

Gruß

tele
tele ist offline   Mit Zitat antworten
Für diesen Beitrag bedankt sich:
_Smash_ (09.08.2007)
Alt 11.08.2007, 21:19   #18 (permalink)
Fingerabzähler
 

Registriert seit: 01.04.2006
Beiträge: 10

Wayne76 befindet sich auf einem aufstrebenden Ast

Standard AW: [Java] Was ist an der Zeile falsch?

hiho,

ich habe Beruflich sowohl mit Eclipse als auch mit Netbeans gearbeitet. Aber welche IDE besser ist, kann man nur selber entscheiden. Im Leistungsumfang unterscheiden sie sich nicht, beide sind kostenlos, für beide gibt es Plugins. Letztendlich ist es eine reine Geschmacksfrage, welche einem besser gefällt. Historisch gesehen hatte Eclipse immer die Nase vorne, aber Netbeans hat da viel Boden gutgemacht in letzter zeit. Gerade der Visuelle Editor ist verdammt geworden.

Am besten einfach beide gründlich ausprobieren.
Wayne76 ist offline   Mit Zitat antworten
Alt 11.08.2007, 21:34   #19 (permalink)
Hardware Freak
 

Registriert seit: 28.03.2003
Beiträge: 8.252

redfalcon kann auf vieles stolz sein
redfalcon kann auf vieles stolz sein

Standard AW: [Java] Was ist an der Zeile falsch?

Zitat:
Zitat von Greeven Beitrag anzeigen
Gibt es eigentlich hier ein Tool, mit welchem man das so schön machen kann wie in den Lehrbüchern (Mit Kästen, wo der Name, die Variablen und die Methoden drinstehen... und so ein Flussdiagramm)?
Oder einfach Text?
Wenn es dir einfach nur um die Grafik an sich geht, und du keine Codeerzeugung brauchst, dann schau dir mal Dia an. Da gibts auch ein UML-Plugin für, womit du dann Fluss/Sequenz/Klassen/Objekt/whatever-Diagramme machen kannst.
redfalcon ist offline   Mit Zitat antworten
Alt 12.08.2007, 14:16   #20 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: [Java] Was ist an der Zeile falsch?

Genau das hab ich die ganzen Zeit gesucht (also der Name vom Programm). Aber wenn man Visio gewöhnt ist bekommt man bei Dia:

Aber wenn man Visio net kennt ist es sicher recht sinnvoll. Der Vorteil von einem visuellen Tool, welches schon in die IDE eingebaut ist, liegt meist in der automat. Codeerzeugung.

Gruß

tele
tele ist offline   Mit Zitat antworten
Antwort

Stichworte
falsch, java, zeile


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Jede zweite Zeile fehlerhaft Peacemaker_bin Sonstige Hardware 3 20.03.2011 10:46
[Java] Drucken mit Java ? [Gelöst] TH€_BR@!N Programmiersprachen 0 09.02.2011 19:51
Mp3 player für Java Muffdog Notebooks, Laptops, PDAs, Handy usw. 1 24.01.2008 17:41
Datumsrückberechnung in Java Stümper Programmiersprachen 1 09.09.2005 10:51
Drucker druckt jede Zeile auf einzelnes Blatt! *HILFE* Gast Sonstige Hardware 10 25.04.2004 19:05


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.






Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.
Impressum, Datenschutz Copyright © 1999-2015 TweakPC, Alle Rechte vorbehalten, all rights reserved