Minesweeper - Daten

alapychak07

Mitglied
Hallo,

ich möchte eine Klasse Spielfeld erstellen,in der ein zweidimensionales Array von Objekten der Klasse Feld referenziert wird.Die Größe des Spielfeldes und die Anzahl der Minen sollen dabei im Konstruktor als Parameter angegeben werden können. Der Konstruktor verteilt dann die Minen zufällig im Spielfeld und definiert bei den Nachbarfeldern die Anzahl der angrenzenden Minen.
Nun stellt sich mir eine grobe Frage.

Wie erstelle ich dies?
 

alapychak07

Mitglied
Java:
class Feld{
 
    boolean istMine;
    boolean offen;
    int anzahl;

    public void Feld(){
        offen = false;
        istMine = false;
        anzahl = 0;
    }
    public boolean getMine(){
        return istMine;
    }
    public void setMine(){
        istMine=true;
    }
    public void setNachbar(){
        anzahl++;
    }
    public printFeld(){
        if(istMine==true){
            return("X");
    
        }
        else{
            return String(anzahl);
        }
    }

class Spielfeld{
    
        int hohe;
        int breite;
        int anzahlMine;
    
  Spielfeld(int h, int b, int a){
            hohe= h;
            breite = b;
            anzahl = a;
              Feld[][] bombs= new Feld[breite][hohe];
for(int i=0;i<hohe;i++){
                for(int j=0; j<breite;j++){
                    bombs[i][j] = new Feld();
                }
            }


}
 

Robat

Top Contributor
1. Ich geh stark davon aus, dass das Array nicht nur lokal im Konstruktor existieren soll
2. Wenn du nun zufällig x Minen haben möchtest musst du beim erstellen per Zufall schauen, ob eine Bedingung erfüllt ist (zB. ob ein boolean true ist und ob du noch Minen belegen darfst)
Den zufälligen boolschen Wert bekommst du so
Java:
Random rand = new Random();
rand.nextBoolean();
Immer wenn du eine Mine setzt musst du einen Counter hochzählen und ein Feld darf nur dann zu einer Mine werden, wenn sowohl der Boolean true ist also auch counter < MAX_AMOUNT_OF_MINES true ist
 

alapychak07

Mitglied
Java:
class Spielfeld{
public static void main(String[] args) { 
        int m = Integer.parseInt(args[0]);
        int n = Integer.parseInt(args[1]);
        double p = Double.parseDouble(args[2]);
     
        boolean[][] bombs = new boolean[m+2][n+2];
        for (int i = 1; i <= m; i++)
            for (int j = 1; j <= n; j++)
                bombs[i][j] = (Math.random() < p);

        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++)
                if (bombs[i][j]) System.out.print("* ");
                else             System.out.print(". ");
            System.out.println();
        }

        int[][] sol = new int[m+2][n+2];
        for (int i = 1; i <= m; i++)
            for (int j = 1; j <= n; j++)
                for (int ii = i - 1; ii <= i + 1; ii++)
                    for (int jj = j - 1; jj <= j + 1; jj++)
                        if (bombs[ii][jj]) sol[i][j]++;
        System.out.println();
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                if (bombs[i][j]) System.out.print("* ");
                else             System.out.print(sol[i][j] + " ");
            }
            System.out.println();
        }

    }
}
Soll es so sein?
 

Robat

Top Contributor
Was machst du da? Das hat doch nichts mit dem zu tun, was ich oben beschrieben hatte. Wozu das 2D boolean Array?
Das hier reicht völlig aus:
Java:
  public Spielfeld(int width, int height, int bombsAmount) {
    this.bombs = new Feld[width][height];
  
    final Random rand = new Random();
    int bombsCounter = 0;
  
    for(int i = 0; i < bombs.length; i++) {
      for(int j = 0; j < bombs[i].length; j++) {
        bombs[i][j] = new Feld();
        if(rand.nextBoolean() && bombsCounter < bombsAmount) {
           bombsCounter++;
           bombs[i][j].setMine(true);
        }
      }
    }
  }
 

alapychak07

Mitglied
Was machst du da? Das hat doch nichts mit dem zu tun, was ich oben beschrieben hatte. Wozu das 2D boolean Array?
Das hier reicht völlig aus:
Java:
  public Spielfeld(int width, int height, int bombsAmount) {
    this.bombs = new Feld[width][height];
 
    final Random rand = new Random();
    int bombsCounter = 0;
 
    for(int i = 0; i < bombs.length; i++) {
      for(int j = 0; j < bombs[i].length; j++) {
        bombs[i][j] = new Feld();
        if(rand.nextBoolean() && bombsCounter < bombsAmount) {
           bombsCounter++;
           bombs[i][j].setMine(true);
        }
      }
    }
  }

das funktioniert nicht zusammen
Java:
public class Feld{ 
    boolean istMine;
    boolean offen;
    int anzahl;
    public void Feld(){
        offen = false;
        istMine = false;
        anzahl = 0;
        }
    public boolean getMine(){
        return istMine;
    }
    public void setMine(){
        istMine=true;
    }
    public void setNachbar(){
        anzahl++;
    }
    public String printFeld(){
        if(istMine==true){
            return("X");
     
        }
        else{
            return Integer.toString(anzahl);
        }
    }
 

}
 public  Spielfeld(int width, int height, int bombsAmount) {
    this.bombs = new Feld[width][height];
 
    final Random rand = new Random();
    int bombsCounter = 0;
 
    for(int i = 0; i < bombs.length; i++) {
      for(int j = 0; j < bombs[i].length; j++) {
        bombs[i][j] = new Feld();
        if(rand.nextBoolean() && bombsCounter < bombsAmount) {
           bombsCounter++;
           bombs[i][j].setMine(true);
        }
      }
    }
  }
  }
[/QUOTE]
 

Robat

Top Contributor
Du hast es auch in die falsche Klasse gepackt. Das ist der Konstruktor für die Klasse Spielfeld. Du versuchst gerade den Konstruktor in der Klasse Feld zu überschreiben.
Hast du das ganze Thema Klassen / Konstruktoren - bzw die Java Grundlagen an sich - denn schon verinnerlicht? Vielleicht solltest du noch mal einen Schritt zurück gehen und dir die Grundlagen noch mal anschauen.

Edit: Genauer gesagt, steht der Konstruktor nicht mal in der Klasse Feld. Du definierst den Konstruktor gerade außerhalb einer Klasse
 

alapychak07

Mitglied
Ich bin Anfänger, deshalb verstehe ich nicht immer was du meinst(
Du hast es auch in die falsche Klasse gepackt. Das ist der Konstruktor für die Klasse Spielfeld. Du versuchst gerade den Konstruktor in der Klasse Feld zu überschreiben.
Hast du das ganze Thema Klassen / Konstruktoren - bzw die Java Grundlagen an sich - denn schon verinnerlicht? Vielleicht solltest du noch mal einen Schritt zurück gehen und dir die Grundlagen noch mal anschauen.

Edit: Genauer gesagt, steht der Konstruktor nicht mal in der Klasse Feld. Du definierst den Konstruktor gerade außerhalb einer Klasse
;
 

Robat

Top Contributor
Was genau verstehst du denn nicht. Und Anfänger sein ist das eine. Aber du merkst ja selber, dass es an den Grundlagen irgendwo hapert .. Also Buch nehmen und nachlesen oder hier nachfragen ;)
 

Robat

Top Contributor
Die Frage verstehe ich nich ganz.
Du hattest doch vorhin schon einen recht soliden Anfang.
Die Klasse Feld beschreibt ein einziges (Minen-) Feld.
Die Klasse Spielfeld besitzt ein Array von Feld-Objekte. Deine Aufgabe sollte es nun sein im Konstruktor der Spielfeld-Klasse das Array zu initialisieren und zufällig x Minen festzulegen.
Das Initialisieren hattest du ja schon ganz gut gemeistert. Erstellt eine verschachtelte for-Schleife um durch das Array zu laufen und jedes Element zu initialisieren. Jetzt brauchst du noch einen Weg um ein Feld zufällig als Mine festzulegen. Das hate ich oben schon beschrieben. Nimm dazu zB die Random Klasse und lass dir für jedes Feld zufällig einen boolean generieren. Wenn dieser boolean true ist und du noch nicht alle Minen festgelegt hast hast du eine neue Mine
 

alapychak07

Mitglied
Die Frage verstehe ich nich ganz.
Du hattest doch vorhin schon einen recht soliden Anfang.
Die Klasse Feld beschreibt ein einziges (Minen-) Feld.
Die Klasse Spielfeld besitzt ein Array von Feld-Objekte. Deine Aufgabe sollte es nun sein im Konstruktor der Spielfeld-Klasse das Array zu initialisieren und zufällig x Minen festzulegen.
Das Initialisieren hattest du ja schon ganz gut gemeistert. Erstellt eine verschachtelte for-Schleife um durch das Array zu laufen und jedes Element zu initialisieren. Jetzt brauchst du noch einen Weg um ein Feld zufällig als Mine festzulegen. Das hate ich oben schon beschrieben. Nimm dazu zB die Random Klasse und lass dir für jedes Feld zufällig einen boolean generieren. Wenn dieser boolean true ist und du noch nicht alle Minen festgelegt hast hast du eine neue Mine
import java.util.Random;
Java:
 class Spielfeld{
     
        int laenge; //y hoehe
        int breite; //x breite
        int anzahl;
     
        Feld[][] EndeSF ;
     
        Spielfeld(int l, int b, int a){
            //Feldererstellung
            laenge = l;
            breite = b;
            anzahl = a;
            Feld[][] spfe = new Feld[breite][laenge];
            for(int h1=0;h1<laenge;h1++){
                for(int h2=0; h2<breite;h2++){
                    spfe[h2][h1] = new Feld();
                }
            }
            //Minenverteilung
            Random rand = new Random();
            for(int h1=0; h1<anzahl;h1++){
                int rb =rand.nextInt(breite);
                int rl = rand.nextInt(laenge);
                if(spfe[rb][rl].istMine==false){
                    spfe[rb][rl].setMine();
                    //linker Rand
                    if(rb!=0){
                        if(rl!=0){
                            spfe[rb-1][rl-1].setNachbar();
                         
                        }
                        if(rl!=laenge-1){
                            spfe[rb-1][rl+1].setNachbar();
                        }
                        spfe[rb-1][rl].setNachbar();
                    }
                    //rechter Rand
                    if(rb!=breite-1){
                        if(rl!=0){
                            spfe[rb+1][rl-1].setNachbar();
                        }
                        if(rl!=laenge-1){
                            spfe[rb+1][rl+1].setNachbar();
                         
                        }
                        spfe[rb+1][rl].setNachbar();
                    }
                    //oben und unten
                    if(rl!=0){
                        spfe[rb][rl-1].setNachbar();
                    }
                    if(rl!=laenge-1){
                        spfe[rb][rl+1].setNachbar();
                    }
                }
                else {
                    h1--;
                }
            }
            EndeSF=spfe;
        }
        public void printSPFE(){
            for(int h1=0;h1<laenge;h1++){
                System.out.print("\n");
                for(int h2=0; h2<breite;h2++){
                    System.out.print(EndeSF[h2][h1].printFeld()+" ");
             
                }
            }
        } 

    }
 

alapychak07

Mitglied
Für was denn? Versuch doch mal mit Worten zu erläutern, was jetzt gerade dein Problem ist ;)
endlich gemacht habe
Java:
class Feld{
      
    boolean istMine;//Eigenschaft
    boolean istgeoeffnet;
    int anzahlMine;
  
    Feld(){
        istMine = false; //konstruktur
        istgeoeffnet = false;
        anzahlMine = 0;
    }
  
    void setMine(){
        istMine= true; //Methode
    }
  
    boolean getMine(){
        return istMine;
    }
  
    void setgeoeffnet(){
        istgeoeffnet = true;
    }
    boolean getgeoeffnet(){
        return istgeoeffnet;
    }
  
    void setanzahl(int a){
        anzahlMine = a;
    }
  
    int getanzahl(int a){
        return anzahlMine;
    }
          
}






class Spielfeld{
    int h;
    int b;
    int am;
    Feld[][]s;
  
    Spielfeld(int h, int b, int am){
        this.h = h;
        this.b = b;
        this.am = am;
      
        s = new Feld[h][b];
      
        for(int i=0; i<h;i++){
            for(int j=0; j<b;j++){
                s[i][j] = new Feld();
            }
        }
        setMine();
        setanzahl();
    }
    public void setMine(){
        boolean anzahlMine = true;
        int counter = 0;
        if(am<=0){
            anzahlMine = false;
        }
        while(anzahlMine){
            int h = (int)(Math.random()*h);
            int b = (int)(Math.random()*b);  
            if(!s[h][b].getMine()){
                s[h][b].setMine();
                counter++;
            }
            if(counter == am){
                anzahlMine = false;
            }
        }
    }
  
  
    public void setanzahl(){
        for(int x = 0; x<s.length;x++){
            for(int y=0;y<s[0].length;y++){
                if(!s[x][y].getMine()){
                    int nachbar = 0;
                    if(x<s.length-1 && y>0 && s[x-1][y].getMine()){ // rechts
                        nachbar++;
                    }
                    if(x>0 && s[x-1][y].getMine()){// links
                        nachbar++;
                    }
                    if(x<s.length-1 && y>0 && s[x+1][y-1].getMine()){//hoch rechts
                        nachbar++;
                      
                    }
                    if(x>0 && y>0 && s[x-1][y-1].getMine()){ //hoch links
                        nachbar++;
                    }
                    if(y>0 && s[x][y-1].getMine()){ //hoch
                        nachbar++;
                    }
                  
                    if(y<s[0].length-1 && s[x][y+1].getMine()){// unten
                        nachbar++;
                    }
                    if(x<s.length-1 && y<s[0].length-1 && s[x+1][y+1].getMine()){ // unten rechts
                        nachbar++;
                    }
                    if(x>0 && y<s[0].length-1 && s[x+1][y+1].getMine()){ // unten links
                        nachbar++;
                    }
                  
                  
                  
                    s[x][y].setanzahl(nachbar);
                }
            }
        }
    }
    public void print(){
        for(int i=0; i<h; i++){
            System.out.print(" ");
            for(int j=0; j<b; j++){
                if(s[i][j].getMine()){
                    System.out.print(" * ");
                }else{
                    System.out.print(" "+s[i][j].getanzahl()+" ");
                }
            }
        }
    }
}


class Main{

    public static void main(String[] args) {
        Spielfeld a = new Spielfeld(5,5,10);//konstruktur
        a.print();
      
    }
}
 

alapychak07

Mitglied
Aber es zeigt mir nächste :
error: method getanzahl in class Feld cannot be applied to given types;
System.out.print(" "+s[j].getanzahl()+" ");
^
required: int
found: no arguments
reason: actual and formal argument lists differ in length
 

Robat

Top Contributor
Es steht ja schon in der Fehlermeldung, dass deine Parameterliste der Methode getanzahl nicht mit der geforderten Parameterliste übereinstimmt.
Du deklarierst die Methode wie folgt int getanzahl(int) .. übergibst aber keinen.
Lange Rede kurzer Sinn: Entferne den Parameter bei der Methode
 

alapychak07

Mitglied
Java:
class Feld{
       
    boolean istMine;//Eigenschaft
    boolean istgeoeffnet;
    int anzahlMine;
   
    Feld(){
        istMine = false; //konstruktur
        istgeoeffnet = false;
        anzahlMine = 0;
    }
   
    void setMine(){
        istMine= true; //Methode
    }
   
    boolean getMine(){
        return istMine;
    }
   
    void setgeoeffnet(){
        istgeoeffnet = true;
    }
    boolean getgeoeffnet(){
        return istgeoeffnet;
    }
   
    void setanzahl(int a){
        anzahlMine = a;
    }
   
    int getanzahl(){
        return anzahlMine;
    }
           
}





/*
class Spielfeld{
    int h;
    int b;
    int am;
    Feld[][]s;
   
    Spielfeld(int h, int b, int am){
        this.h = h;
        this.b = b;
        this.am = am;
       
        s = new Feld[h][b];
       
        for(int i=0; i<h;i++){
            for(int j=0; j<b;j++){
                s[i][j] = new Feld();
            }
        }
        setMine();
        setanzahl();
    }
    public void setMine(){
        boolean anzahlMine = true;
        int counter = 0;
        if(am<=0){
            anzahlMine = false;
        }
        while(anzahlMine){
            int h = (int)(Math.random()*h);
            int b = (int)(Math.random()*b);   
            if(!s[h][b].getMine()){
                s[h][b].setMine();
                counter++;
            }
            if(counter == am){
                anzahlMine = false;
            }
        }
    }
   
   
    public void setanzahl(){
        for(int x = 0; x<s.length;x++){
            for(int y=0;y<s[0].length;y++){
                if(!s[x][y].getMine()){
                    int nachbar = 0;
                    if(x<s.length-1 && y>0 && s[x-1][y].getMine()){ // rechts
                        nachbar++;
                    }
                    if(x>0 && s[x-1][y].getMine()){// links
                        nachbar++;
                    }
                    if(x<s.length-1 && y>0 && s[x+1][y-1].getMine()){//hoch rechts
                        nachbar++;
                       
                    }
                    if(x>0 && y>0 && s[x-1][y-1].getMine()){ //hoch links
                        nachbar++;
                    }
                    if(y>0 && s[x][y-1].getMine()){ //hoch
                        nachbar++;
                    }
                   
                    if(y<s[0].length-1 && s[x][y+1].getMine()){// unten
                        nachbar++;
                    }
                    if(x<s.length-1 && y<s[0].length-1 && s[x+1][y+1].getMine()){ // unten rechts
                        nachbar++;
                    }
                    if(x>0 && y<s[0].length-1 && s[x+1][y+1].getMine()){ // unten links
                        nachbar++;
                    }
                   
                   
                   
                    s[x][y].setanzahl(nachbar);
                }
            }
        }
    }
    public void print(){
        for(int i=0; i<h; i++){
            System.out.print(" ");
            for(int j=0; j<b; j++){
                if(s[i][j].getMine()){
                    System.out.print(" * ");
                }else{
                    System.out.print(" "+s[i][j].getanzahl()+" ");
                }
            }
        }
    }
}
*/
/*
class Main{

    public static void main(String[] args) { 
        Spielfeld a = new Spielfeld(5,5,10);//konstruktur 
        a.print();
       
    }
}
*/
Ich habe folgendes Problem :
.\Spielfeld.java:29: error: variable h might not have been initialized
int h = (int)(Math.random()*h);
^
.\Spielfeld.java:30: error: variable b might not have been initialized
int b = (int)(Math.random()*b);
 

mihe7

Top Contributor
Ja, ist klar, du kannst nicht auf den Wert einer Variablen zugreifen, so lange sie nicht initialisiert wurde. Die Frage ist, wie immer, was möchtest Du denn als Ergebnis bekommen?

EDIT: hab gerade Deinen restlichen Code angesehen. Du musst auf der rechten Seite this.h und this.b verwenden.
 

alapychak07

Mitglied
Ja, ist klar, du kannst nicht auf den Wert einer Variablen zugreifen, so lange sie nicht initialisiert wurde. Die Frage ist, wie immer, was möchtest Du denn als Ergebnis bekommen?

EDIT: hab gerade Deinen restlichen Code angesehen. Du musst auf der rechten Seite this.h und this.b verwenden.
das habe ich schon verändert :
Java:
class Feld{
       
    boolean istMine;//Eigenschaft
    boolean istgeoeffnet;
    int anzahlMine;
   
    Feld(){
        istMine = false; //konstruktur
        istgeoeffnet = false;
        anzahlMine = 0;
    }
   
    void setMine(){
        istMine= true; //Methode
    }
   
    boolean getMine(){
        return istMine;
    }
   
    void setgeoeffnet(){
        istgeoeffnet = true;
    }
    boolean getgeoeffnet(){
        return istgeoeffnet;
    }
   
    void setanzahl(int a){
        anzahlMine = a;
    }
   
    int getanzahl(){
        return anzahlMine;
    }
           
}





/*
class Spielfeld{
    int h;
    int b;
    int am;
    Feld[][]s;
   
    Spielfeld(int h, int b, int am){
        this.h = h;
        this.b = b;
        this.am = am;
       
        s = new Feld[h][b];
       
        for(int i=0; i<h;i++){
            for(int j=0; j<b;j++){
                s[i][j] = new Feld();
            }
        }
        setMine();
        setanzahl();
    }
    public void setMine(){
        boolean anzahlMine = true;
        int counter = 0;
        if(am<=0){
            anzahlMine = false;
        }
        while(anzahlMine){
            int h = (int)(Math.random()*this.h);
            int b = (int)(Math.random()*this.b);   
            if(!s[h][b].getMine()){
                s[h][b].setMine();
                counter++;
            }
            if(counter == am){
                anzahlMine = false;
            }
        }
    }
   
   
    public void setanzahl(){
        for(int x = 0; x<s.length;x++){
            for(int y=0;y<s[0].length;y++){
                if(!s[x][y].getMine()){
                    int nachbar = 0;
                    if(x<s.length-1 && y>0 && s[x-1][y].getMine()){ // rechts
                        nachbar++;
                    }
                    if(x>0 && s[x-1][y].getMine()){// links
                        nachbar++;
                    }
                    if(x<s.length-1 && y>0 && s[x+1][y-1].getMine()){//hoch rechts
                        nachbar++;
                       
                    }
                    if(x>0 && y>0 && s[x-1][y-1].getMine()){ //hoch links
                        nachbar++;
                    }
                    if(y>0 && s[x][y-1].getMine()){ //hoch
                        nachbar++;
                    }
                   
                    if(y<s[0].length-1 && s[x][y+1].getMine()){// unten
                        nachbar++;
                    }
                    if(x<s.length-1 && y<s[0].length-1 && s[x+1][y+1].getMine()){ // unten rechts
                        nachbar++;
                    }
                    if(x>0 && y<s[0].length-1 && s[x+1][y+1].getMine()){ // unten links
                        nachbar++;
                    }
                   
                   
                   
                    s[x][y].setanzahl(nachbar);
                }
            }
        }
    }
    public void print(){
        for(int i=0; i<h; i++){
            System.out.print(" ");
            for(int j=0; j<b; j++){
                if(s[i][j].getMine()){
                    System.out.print(" * ");
                }else{
                    System.out.print(" "+s[i][j].getanzahl()+" ");
                }
            }
        }
    }
}
*/
/*
class Main{

    public static void main(String[] args) { 
        Spielfeld a = new Spielfeld(5,5,10);//konstruktur 
        a.print();
       
    }
}
*/
wenn ich eine Klasse Main aufrufe, besteht folgende Fehler :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at Spielfeld.setanzahl(Spielfeld.java:47)
at Spielfeld.<init>(Spielfeld.java:20)
at Main.main(Main.java:4)
 

mihe7

Top Contributor
Ja, da Deine Schleifen bei 0 beginnen, musst Du natürlich sicherstellen, dass x > 0 bzw. y > 0 gilt, sobald Du auf Indizes x-1 bzw. y-1 zugreifst. Im ersten if in der Schleife von setanzahl fehlt z. B. der Test auf x > 0.
 

alapychak07

Mitglied
Ja, da Deine Schleifen bei 0 beginnen, musst Du natürlich sicherstellen, dass x > 0 bzw. y > 0 gilt, sobald Du auf Indizes x-1 bzw. y-1 zugreifst. Im ersten if in der Schleife von setanzahl fehlt z. B. der Test auf x > 0.
Also, ich brauche Hilfe, weil ich nicht ganz verstehe, was du meinst
Ich muss zuerst ein Programm Minesweeper - Daten schreiben.
Hier habe ich es geschrieben
Java:
class Feld{
       
    boolean istMine;//Eigenschaft
    boolean istgeoeffnet;
    int anzahlMine;
   
    Feld(){
        istMine = false; //konstruktur
        istgeoeffnet = false;
        anzahlMine = 0;
    }
   
    void setMine(){
        istMine= true; //Methode
    }
   
    boolean getMine(){
        return istMine;
    }
   
    void setgeoeffnet(){
        istgeoeffnet = true;
    }
    boolean getgeoeffnet(){
        return istgeoeffnet;
    }
   
    void setanzahl(int a){
        anzahlMine = a;
    }
   
    int getanzahl(){
        return anzahlMine;
    }
           
}





/*
class Spielfeld{
    int h;
    int b;
    int am;
    Feld[][]s;
   
    Spielfeld(int h, int b, int am){
        this.h = h;
        this.b = b;
        this.am = am;
       
        s = new Feld[h][b];
       
        for(int i=0; i<h;i++){
            for(int j=0; j<b;j++){
                s[i][j] = new Feld();
            }
        }
        setMine();
        setanzahl();
    }
    public void setMine(){
        boolean anzahlMine = true;
        int counter = 0;
        if(am<=0){
            anzahlMine = false;
        }
        while(anzahlMine){
            int h = (int)(Math.random()*this.h);
            int b = (int)(Math.random()*this.b);   
            if(!s[h][b].getMine()){
                s[h][b].setMine();
                counter++;
            }
            if(counter == am){
                anzahlMine = false;
            }
        }
    }
   
   
    public void setanzahl(){
        for(int x = 0; x<s.length;x++){
            for(int y=0;y<s[0].length;y++){
                if(!s[x][y].getMine()){
                    int nachbar = 0;
                    if(x<s.length-1 && y>0 && s[x-1][y].getMine()){ // rechts
                        nachbar++;
                    }
                    if(x>0 && s[x-1][y].getMine()){// links
                        nachbar++;
                    }
                    if(x<s.length-1 && y>0 && s[x+1][y-1].getMine()){//hoch rechts
                        nachbar++;
                       
                    }
                    if(x>0 && y>0 && s[x-1][y-1].getMine()){ //hoch links
                        nachbar++;
                    }
                    if(y>0 && s[x][y-1].getMine()){ //hoch
                        nachbar++;
                    }
                   
                    if(y<s[0].length-1 && s[x][y+1].getMine()){// unten
                        nachbar++;
                    }
                    if(x<s.length-1 && y<s[0].length-1 && s[x+1][y+1].getMine()){ // unten rechts
                        nachbar++;
                    }
                    if(x>0 && y<s[0].length-1 && s[x+1][y+1].getMine()){ // unten links
                        nachbar++;
                    }
                   
                   
                   
                    s[x][y].setanzahl(nachbar);
                }
            }
        }
    }
    public void print(){
        for(int i=0; i<h; i++){
            System.out.print(" ");
            for(int j=0; j<b; j++){
                if(s[i][j].getMine()){
                    System.out.print(" * ");
                }else{
                    System.out.print(" "+s[i][j].getanzahl()+" ");
                }
            }
        }
    }
}
*/
/*
class Main{

    public static void main(String[] args) { 
        Spielfeld a = new Spielfeld(5,5,10);//konstruktur 
        a.print();
       
    }
}
*/
Aber wie ich schon gesagt habe ,wenn ich eine Klasse Main aufrufe, besteht Fehler.
Außerdem brauche ich Minesweeper Test
Java:
class TestSpielFeld{
   
    public static void main(String[] args){
        new TestSpielFeld();
       
    }
   
    TestSpielFeld(){
        minenAnzahl();
        anzahlsetzen();
        testFelderAnzahl();
       
    }
   
    void minenAnzahl(){
        System.out.println("\n Test : MinenAnzahl stimmt");
        SpielFeld a = new SpielFeld(5,5 ,0 );
        int minen =0;
        for(int i=0; i<a.s.length;i++){
            for(int j=0; j<a.s[0].length;j++){
                if(a.s[i][j].getMine()){
                    minen++;
                }
            }
        }
        annahmeGleich(minen, 0);
       
        a = new
        SpielFeld(5,5 ,25 );
        minen =0;
        for(int i=0; i<a.s.length;i++){
            for(int j=0; j<a.s[0].length;j++){
                if(a.s[i][j].getMine()){
                    minen++;
                }
            }
        }
        annahmeGleich(minen, 25);
       
    }
   
    void anzahlsetzen(SpielFeld a){
        a.s[1][1].setzeMine();
        a.s[3][2].setzeMine();
        a.s[2][3].setzeMine();
        a.s[0][4].setzeMine();
        a.setAnzahl();
        a.print();
    }
   
    void testFelderAnzahl(){
        SpielFeld a = new SpielFeld(5,5 ,0);
        anzahlsetzen(a);
        System.out.println("\n Test : stimmmen die Zahlen in den Felder");
        annahmeGleich(a.s[1][4].getAnzahl(),2);
        annahmeGleich(a.s[4][0].getAnzahl(),0);
        annahmeGleich(a.s[0][2].getAnzahl(),1);
    }
   
    void annahmeGleich(int ist , int soll){
        if(ist == soll){
            System.out.println("Test : ok");
        }
        else
        System.out.println("Test : nicht ok");
    }
   
}
Das habe ich schon auch geschrieben
Und jetzt stellt sich mir eine grobe Frage, wie soll ich das alles zusammen verbinden?
 

mihe7

Top Contributor
Hier
Java:
for(int x = 0; x<s.length;x++){
fängst Du mit x = 0 an und hier
Java:
if(x<s.length-1 && y>0 && s[x-1][y].getMine()){ // rechts
greifst Du auf s[x-1], also s[-1] zu.
 

mihe7

Top Contributor
Du fängst ganz links auf dem Spielfeld an und prüfst:
Java:
if(x<s.length-1 && y>0 && s[x-1][y].getMine()){ // rechts
Du prüfst aber nicht nach rechts (s[x+1]) sondern nach links (s[x-1]). Und nachdem Du schon ganz links stehst, gibt es einen Fehler.
 

alapychak07

Mitglied
Du fängst ganz links auf dem Spielfeld an und prüfst:
Java:
if(x<s.length-1 && y>0 && s[x-1][y].getMine()){ // rechts
Du prüfst aber nicht nach rechts (s[x+1]) sondern nach links (s[x-1]). Und nachdem Du schon ganz links stehst, gibt es einen Fehler.
Ist es so richtig?
Java:
                    if(x>0 && y>0 && s[x-1][y-1].getMine()){ //hoch links
                        nachbar++;
                    }
                    if(x>0 && y<s[0].length-1 && s[x-1][y+1].getMine()){ // unten links
                        nachbar++;
                    }
                    if(x>0 && s[x-1][y].getMine()){// links
                        nachbar++;
                    }
                    if(x<s.length-1 && y>0 && s[x+1][y-1].getMine()){//hoch rechts
                        nachbar++;
                      
                    }
                    if(x<s.length-1 && y<s[0].length-1 && s[x+1][y+1].getMine()){ // unten rechts
                        nachbar++;
                    }
                    if(x<s.length-1 && y>0 && s[x+1][y].getMine()){ // rechts
                        nachbar++;
                    }
                  
                    if(y>0 && s[x][y-1].getMine()){ //hoch
                        nachbar++;
                    }
                  
                    if(y<s[0].length-1 && s[x][y+1].getMine()){// unten
                        nachbar++;
                    }
 

mihe7

Top Contributor
Zumindest sollte hier Exception mehr auftreten.
Java:
if(x<s.length-1 && y>0 && s[x+1][y].getMine()){ // rechts
Da bräuchtest Du && y > 0 nicht.
 

alapychak07

Mitglied
jetzt brauche ich Minesweeper Test zum Testen der Klasse Spielfeld. Dabei ist darauf zu achten, dass die Zufallszahlen im Programm keinen Einfluss auf das Testergebnis haben. Sie können dazu z.B. die Minen durch einen Befehl ihres Testprogramms an eine konkrete Stelle legen und dann prüfen, ob das die gewünschten Auswirkungen hatte:  Sind wirklich genauso viele Mienen vorhanden, wie angegeben wurden?  Stimmen die Zahlen in den Feldern?  Testen Sie mit unterschiedlichen Eingabewerten
Java:
class TestSpielFeld{
   
    public static void main(String[] args){
        new TestSpielFeld();
       
    }
   
    TestSpielFeld(){
        minenAnzahl();
        anzahlsetzen();
        testFelderAnzahl();
       
    }
   
    void minenAnzahl(){
        System.out.println("\n Test : MinenAnzahl stimmt");
        SpielFeld a = new SpielFeld(5,5 ,0 );
        int minen =0;
        for(int i=0; i<a.s.length;i++){
            for(int j=0; j<a.s[0].length;j++){
                if(a.s[i][j].getMine()){
                    minen++;
                }
            }
        }
        annahmeGleich(minen, 0);
       
        a = new
        SpielFeld(5,5 ,25 );
        minen =0;
        for(int i=0; i<a.s.length;i++){
            for(int j=0; j<a.s[0].length;j++){
                if(a.s[i][j].getMine()){
                    minen++;
                }
            }
        }
        annahmeGleich(minen, 25);
       
    }
   
    void anzahlsetzen(SpielFeld a){
        a.s[1][1].setzeMine();
        a.s[3][2].setzeMine();
        a.s[2][3].setzeMine();
        a.s[0][4].setzeMine();
        a.setAnzahl();
        a.print();
    }
   
    void testFelderAnzahl(){
        SpielFeld a = new SpielFeld(5,5 ,0);
        anzahlsetzen(a);
        System.out.println("\n Test : stimmmen die Zahlen in den Felder");
        annahmeGleich(a.s[1][4].getAnzahl(),2);
        annahmeGleich(a.s[4][0].getAnzahl(),0);
        annahmeGleich(a.s[0][2].getAnzahl(),1);
    }
   
    void annahmeGleich(int ist , int soll){
        if(ist == soll){
            System.out.println("Test : ok");
        }
        else
        System.out.println("Test : nicht ok");
    }
   
}
Das habe ich schon geschrieben aber wenn ich TestSpielFeld aufrufe,besteht folgendes Problem
TestSpielFeld.java:42: error: cannot find symbol
void anzahlsetzen(SpielFeld a){
^
symbol: class SpielFeld
location: class TestSpielFeld
TestSpielFeld.java:10: error: method anzahlsetzen in class TestSpielFeld cannot be applied to given types;
anzahlsetzen();
^
required: SpielFeld
found: no arguments
reason: actual and formal argument lists differ in length
TestSpielFeld.java:17: error: cannot find symbol
SpielFeld a = new SpielFeld(5,5 ,0 );
^
symbol: class SpielFeld
location: class TestSpielFeld
TestSpielFeld.java:17: error: cannot find symbol
SpielFeld a = new SpielFeld(5,5 ,0 );
^
symbol: class SpielFeld
location: class TestSpielFeld
TestSpielFeld.java:29: error: cannot find symbol
SpielFeld(5,5 ,25 );
^
symbol: class SpielFeld
location: class TestSpielFeld
TestSpielFeld.java:52: error: cannot find symbol
SpielFeld a = new SpielFeld(5,5 ,0);
^
symbol: class SpielFeld
location: class TestSpielFeld
TestSpielFeld.java:52: error: cannot find symbol
SpielFeld a = new SpielFeld(5,5 ,0);
^
symbol: class SpielFeld
location: class TestSpielFeld
7 errors

C:\Java>
 

alapychak07

Mitglied
Deine Klasse heißt Spielfeld und nicht SpielFeld. Ändere das in TestSpielFeld.java ab.
Java:
class TestSpielfeld{
   
    public static void main(String[] args){
        new TestSpielfeld();
       
    }
   
    TestSpielfeld(){
        minenAnzahl();
        anzahlsetzen();
        testFelderAnzahl();
       
    }
   
    void minenAnzahl(){
        System.out.println("\n Test : MinenAnzahl stimmt");
        Spielfeld a = new Spielfeld(5,5 ,0 );
        int minen =0;
        for(int i=0; i<a.s.length;i++){
            for(int j=0; j<a.s[0].length;j++){
                if(a.s[i][j].getMine()){
                    minen++;
                }
            }
        }
        annahmeGleich(minen, 0);
       
        a = new
        Spielfeld(5,5 ,25 );
        minen =0;
        for(int i=0; i<a.s.length;i++){
            for(int j=0; j<a.s[0].length;j++){
                if(a.s[i][j].getMine()){
                    minen++;
                }
            }
        }
        annahmeGleich(minen, 25);
       
    }
   
    void anzahlsetzen(Spielfeld a){
        a.s[1][1].setzeMine();
        a.s[3][2].setzeMine();
        a.s[2][3].setzeMine();
        a.s[0][4].setzeMine();
        a.setAnzahl();
        a.print();
    }
   
    void testFelderAnzahl(){
        Spielfeld a = new Spielfeld(5,5 ,0);
        anzahlsetzen(a);
        System.out.println("\n Test : stimmmen die Zahlen in den Felder");
        annahmeGleich(a.s[1][4].getAnzahl(),2);
        annahmeGleich(a.s[4][0].getAnzahl(),0);
        annahmeGleich(a.s[0][2].getAnzahl(),1);
    }
   
    void annahmeGleich(int ist , int soll){
        if(ist == soll){
            System.out.println("Test : ok");
        }
        else
        System.out.println("Test : nicht ok");
    }
   
}
ich habe verändert aber das funktioniert nicht
 

Robat

Top Contributor
Du erstellst in testFelderAnzahl() ein Objekt von Spielfeld und in minenAnzahl() sogar gleich 2 mal .. das kann nicht funktionieren.
Du brauchst ein und das selbe Objekt für alle Methoden dieser Klasse.
 

alapychak07

Mitglied
Du erstellst in testFelderAnzahl() ein Objekt von Spielfeld und in minenAnzahl() sogar gleich 2 mal .. das kann nicht funktionieren.
Du brauchst ein und das selbe Objekt für alle Methoden dieser Klasse.
Java:
class TestSpielfeld{
   
    public static void main(String[] args){
        new TestSpielfeld();
       
    }
   
    TestSpielfeld(){
        minenAnzahl();
        //anzahlsetzen();
        testFelderAnzahl();
       
    }
   
    void minenAnzahl(){
        System.out.println("\n Test : MinenAnzahl stimmt");
        Spielfeld a = new Spielfeld(5,5 ,0 );
        int minen =0;
        for(int i=0; i<a.s.length;i++){
            for(int j=0; j<a.s[0].length;j++){
                if(a.s[i][j].getMine()){
                    minen++;
                }
            }
        }
        annahmeGleich(minen, 0);
       
        a = new
        Spielfeld(5,5 ,25 );
        minen =0;
        for(int i=0; i<a.s.length;i++){
            for(int j=0; j<a.s[0].length;j++){
                if(a.s[i][j].getMine()){
                    minen++;
                }
            }
        }
        annahmeGleich(minen, 25);
       
    }
   
    void anzahlsetzen(Spielfeld a){
        a.s[1][1].setzeMine();
        a.s[3][2].setzeMine();
        a.s[2][3].setzeMine();
        a.s[0][4].setzeMine();
        a.setanzahl();
        //a.print();
    }
   
    void testFelderAnzahl(){
        Spielfeld a = new Spielfeld(5,5 ,0);
        anzahlsetzen(a);
        System.out.println("\n Test : stimmmen die Zahlen in den Felder");
        annahmeGleich(a.s[1][4].getanzahl(),2);
        annahmeGleich(a.s[4][0].getanzahl(),0);
        annahmeGleich(a.s[0][2].getanzahl(),1);
    }
   
    void annahmeGleich(int ist , int soll){
        if(ist == soll){
            System.out.println("Test : ok");
        }
        else
        System.out.println("Test : nicht ok");
    }
   
}
So jetzt funktioniert
upload_2018-12-17_16-45-23.png
aber wenn ich //anzahlsetzen(); aktiviert habe, zeigt mir folgende
 

Anhänge

  • upload_2018-12-17_16-45-15.png
    upload_2018-12-17_16-45-15.png
    73,2 KB · Aufrufe: 16
  • upload_2018-12-17_16-45-15.png
    upload_2018-12-17_16-45-15.png
    73,2 KB · Aufrufe: 24
  • upload_2018-12-17_16-50-11.png
    upload_2018-12-17_16-50-11.png
    107,7 KB · Aufrufe: 20

mihe7

Top Contributor
Man kann im übrigen auch in der Eingabeaufforderung markieren, kopieren und hier als Text einfügen. Dann brauchst Du keine zig Screenshots einzustellen.
 

alapychak07

Mitglied
Ich habe eine Frage und zwar, Ich habe hier eine Methode „linksKlick(int x, int y)“ geschrieben. Und jetzt soll ich
meine Implementierung testen, indem man für linksKlick und ggf. weitere Prozeduren geeignete Testmethoden in Testprogramm .Dazu braucht man Situationen, die wiederherstellbar sind. Hier ist das zufällige Verteilen der Minen natürlich nicht geeignet…
Wie kann man das realisieren?

Java:
class Spielfeld{
    int h;
    int b;
    int am;
    Feld[][]s;
 
    Spielfeld(int h, int b, int am){
        this.h = h;
        this.b = b;
        this.am = am;
     
        s = new Feld[h][b];
     
        for(int i=0; i<h;i++){
            for(int j=0; j<b;j++){
                s[i][j] = new Feld();
            }
        }
        setMine();
        setanzahl();
    }
    public void setMine(){
        boolean anzahlMine = true;
        int counter = 0;
        if(am<=0){
            anzahlMine = false;
        }
        while(anzahlMine){
            int h = (int)(Math.random()*this.h);
            int b = (int)(Math.random()*this.b); 
            if(!s[h][b].getMine()){
                s[h][b].setMine();
                counter++;
            }
            if(counter == am){
                anzahlMine = false;
            }
        }
    }
 
 
    public void setanzahl(){
        for(int x = 0; x<s.length;x++){
            for(int y=0;y<s[0].length;y++){
                if(!s[x][y].getMine()){
                    int nachbar = 0;
                    if(x>0 && y>0 && s[x-1][y-1].getMine()){ //hoch links
                        nachbar++;
                    }
                    if(x>0 && y<s[0].length-1 && s[x-1][y+1].getMine()){ // unten links
                        nachbar++;
                    }
                    if(x>0 && s[x-1][y].getMine()){// links
                        nachbar++;
                    }
                    if(x<s.length-1 && y>0 && s[x+1][y-1].getMine()){//hoch rechts
                        nachbar++;
                     
                    }
                    if(x<s.length-1 && y<s[0].length-1 && s[x+1][y+1].getMine()){ // unten rechts
                        nachbar++;
                    }
                    if(x<s.length-1 &&  s[x+1][y].getMine()){ // rechts
                        nachbar++;
                    }
                 
                    if(y>0 && s[x][y-1].getMine()){ //hoch
                        nachbar++;
                    }
                 
                    if(y<s[0].length-1 && s[x][y+1].getMine()){// unten
                        nachbar++;
                    }
                 
                 
                 
                 
                 
                    s[x][y].setanzahl(nachbar);
                }
            }
        }
    }
    public void print(){
        for(int i=0; i<h; i++){
            System.out.println(" ");
            for(int j=0; j<b; j++){
                String z = "?";
                if(s[i][j].getgeoeffnet())
                    z = "+";
                else
                    z = "-";
                if(s[i][j].getMine()){
                    System.out.print(" *"+z);
                }else{
                    System.out.print(" "+s[i][j].getanzahl()+z);
                }
            }
        }
    }
    public void linksKlick(int x, int y){
         
            if(x>=0 && y>=0 && x< s.length && y<s[0].length){
                if(s[x][y].istgeoeffnet == false) {
                   s[x][y].istgeoeffnet = true;
             
                    if(s[x][y].getMine()){
                     
                        System.out.println("Verloren");// in neue Methode ausgliedern
                    }
             
                    if(s[x][y].anzahlMine == 0){
                        linksKlick(x -1, y -1);
                        linksKlick(x -1, y +1);
                        linksKlick(x -1, y);
                        linksKlick(x +1, y -1);
                        linksKlick(x +1, y +1);
                        linksKlick(x +1, y );     
                        linksKlick(x , y -1);
                        linksKlick(x , y +1);
                }
                }
            }
        }
}
 

mihe7

Top Contributor
Wie kann man das realisieren?
Zum Beispiel mit einem Konstruktor, der ein initialisiertes Array entgegennimmt. Andere Möglichkeit wäre, die Klasse Random zu verwenden und mit einem Seed zu initialisieren.

Deine setMine-Methode grenzt übrigens an Obfuscation. Witzig ist auch, dass Du die Instanzvariable mit einem nichtssagenden "am" bezeichnest, in setMine dagegen einen an sich aussagekräftigen Bezeichner "anzahlMine" verwendest, der aber völlig irreführend ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Minesweeper Logik Java Basics - Anfänger-Themen 10
T Minesweeper Test Java Basics - Anfänger-Themen 2
E Minesweeper-Problem Java Basics - Anfänger-Themen 13
J Minesweeper Hilfe Java Basics - Anfänger-Themen 26
C Klassen Minesweeper Problem. int needs to be final (inner class problem) Java Basics - Anfänger-Themen 3
W Problem bei MineSweeper Programmierung Java Basics - Anfänger-Themen 10
C Minesweeper mit Arrays über Konsole Java Basics - Anfänger-Themen 4
0 Minesweeper Java Basics - Anfänger-Themen 16
J minesweeper Java Basics - Anfänger-Themen 2
I Minesweeper Java Basics - Anfänger-Themen 2
I Warum kommt der Fehler? Minesweeper programmieren Java Basics - Anfänger-Themen 7
T Minesweeper in Java Java Basics - Anfänger-Themen 6
G Minesweeper Java Basics - Anfänger-Themen 4
G ZUFALLSFUNKTION in Minesweeper (6x6)? Java Basics - Anfänger-Themen 17
S Fehler nach dynamischer Anpassung - Minesweeper Java Basics - Anfänger-Themen 6
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Daten in Echtzeit übernehmen Java Basics - Anfänger-Themen 5
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
H Passwortmanager, Sicherheit der Daten Java Basics - Anfänger-Themen 12
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
W Best Practice problemabhängige Persistentmachung von Daten Java Basics - Anfänger-Themen 6
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
V Einlesen von Daten Java Basics - Anfänger-Themen 8
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
J Daten im Programm speichern Java Basics - Anfänger-Themen 14
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
O Probleme mit CSV Daten Java Basics - Anfänger-Themen 10
M Arrays: Trennung von Daten und Darstellung Java Basics - Anfänger-Themen 1
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
W (XML/XSL) Daten aus Eclipse in eine Klasse Laden. Java Basics - Anfänger-Themen 1
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
D Daten von einem int in einen string Java Basics - Anfänger-Themen 5
L Daten aus Array Feld löschen Java Basics - Anfänger-Themen 2
T Input/Output Daten/Objekte einfach speichern Java Basics - Anfänger-Themen 5
IngoF GUI mit Thread Daten austauschen. Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben