tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
533
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von 123123123
    123123123 123123123 ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    177
    Hallo!
    Mal eine Frage:
    Gibt es irgendwo ein Beispiel zu das Spiel 'Schiffe versenken' für NetBeans?
    Es soll nicht graphisch dargestellt werden, sondern es geht einfach um Prinzip! Es kann mit Nullen und Kreuzen dargestellt werden!
    Ich finde einfach keinen passendes und ich hab selber noch nie mit Java gearbeitet.
    Dankeschön!
     

  2. #2
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    eventuell hilft dir das weiter: klick.

    Ansonsten: Nein, ich wüsste nicht wo man das sonst herunterladen kann. Ist eine Aufgabe, die nicht allzu schwer ist und somit auch für Anfänger geeignet ist.

    Gruß,
    BK
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  3. #3
    G1n0 0n3 G1n0 0n3 ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Beiträge
    32
    Hi,

    vielleicht hilft es dir weiter: http://informatik.zum.de/pieper/java...eversenken.pdf

    Gruß
    G1n0
     

  4. #4
    Avatar von 123123123
    123123123 123123123 ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    177
    Dankeschön für die Seiten.
    Hab mal selber was gebastelt aber ich kriege eine endlose Schleife, warum?
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    
    package Gebiet;
     
    public class Gebiet
    {
        /**
        * @param args
        */
        public static void main(String[] args)
        {
            int x=10;
            int y=10;
            int counter = 1;
            
            int [][] O = new int [x][y];
            
            for(int col = 0; col < y; col++)
            {
                for(int line = 0; line < x; line++)
                {
                    O    [col][line] = -1;
                }
            }
            System.out.println("");
            while(counter < 11)
            {
                for(int k = 0; k < x; k++)
                {
                    int a = (int) (Math.random()*x);
                    int b = (int) (Math.random()*y);
                    O[a][b] = 0;
                }
                System.out.println();
                
                for(int col = 0; col < y; col++)
                {
                    for(int line = 0; line < x; line++)
                    {
                        if(O[col][line] == -1)
                        {
                            System.out.print("0" + " ");
                        }
                        
                        if(O[col][line] == 0)
                        {
                            System.out.print("X" + " ");
                        }
     
                        if(O[col][line] == 1)
                        {
                            System.out.print("S" + " ");
                        }
                    }
                    System.out.println("");
                }
                
            
            }
            
        }
    }

    Also ich brauch nur 2 solche 10x10 Kästchen erstmal ohne die Schiffe! Ich bin ziemlich am Anfang mit Java deswegen bitte ich euch mir mit einfach Wörtern zu erklären!
    Danke!
     

  5. #5
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    Code java:
    1
    
    while(counter < 11)

    Du erhöhst den Counter nie.

    Würde dir ausserdem empfehlen das ganze etwas abstrakter zu machen. Somit kannst du dich auch etwas genauer mit Vererbung auseinander setzen.

    Zum Beispiel:
    Eine abstrakte Klasse Feld. Davon erben dann die Klassen Schiff und Wasser. In jeder von Feld abgeleiteten Klasse kannst du die toString() Methode überschreiben, die bei Aufruf den entsprechenden Buchstaben zurückgibt die das Feld darstellt.

    Gruß,
    BK
    Geändert von Bratkartoffel (10.01.12 um 16:15 Uhr) Grund: Ableitung von Schiff in Schiffstypen eher nicht so optimal, rausgestrichen
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  6. #6
    Avatar von 123123123
    123123123 123123123 ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    177
    Ok, was du mir vogeschlagen hast verwirrt mich!
    Hab jetzt so gelöst:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    
    package Schiffeversenken;
     
    public class Schiffeversenken {
     
            /**
            * @param args
            */
        public static void main(String[] args) {
                int x=8;
                int y=8;
                            
                int [][] Schiff = new int [x][y];
                
                for(int spalte = 0; spalte < y; spalte++)
                {
                    for(int row = 0; row < x; row++)
                    {
                        Schiff   [spalte][row] = -1;
                    }
                }
                System.out.println("");
                
                    for(int c = 0; c < x; c++)
                    {
                        int a = (int) (Math.random()*x);
                        int b = (int) (Math.random()*y);
                        Schiff[a][b] = 0;
                    }
                    System.out.println();
                    
                    for(int spalte = 0; spalte < y; spalte++)
                    {
                        for(int row = 0; row < x; row++)
                        {
                            if(Schiff[spalte][row] == -1)
                            {
                                System.out.print("0" + " ");
                            }
                            
                            if(Schiff[spalte][row] == 0)
                            {
                                System.out.print("X" + " ");
                            }
     
                        }
                        System.out.println("");
                    }
                    
                    System.out.println("<---------Gegner---------->");
                    int x1=8;
                    int y1=8;
                 
                    int [][] Feind = new int [x1][y1];
                    
                    for(int spalte = 0; spalte < y1; spalte++)
                    {
                        for(int row = 0; row < x1; row++)
                        {
                            Feind   [spalte][row] = -1;
                        }
                    }
                    System.out.println("");
                    
                        for(int k = 0; k < x1; k++)
                        {
                            int a = (int) (Math.random()*x1);
                            int b = (int) (Math.random()*y1);
                            Feind[a][b] = 0;
                        }
                        System.out.println();
                        
                        for(int spalte = 0; spalte < y1; spalte++)
                        {
                            for(int row = 0; row < x1; row++)
                            {
                                if(Feind[spalte][row] == -1)
                                {
                                    System.out.print("0" + " ");
                                }
                                
                                if(Feind[spalte][row] == 0)
                                {
                                    System.out.print("X" + " ");
                                }
     
                            }
                            System.out.println("");
                        }
                }
                
            }


    Kann man das meinem Lehrer zeigen? Ich musste nur das Grundgerüst aufbauen, ohne graphische Tricks !
    Geändert von 123123123 (10.01.12 um 16:43 Uhr)
     

  7. #7
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    ich würde da noch ein paar Änderungen vorschlagen:

    1. Du hast alles in der Main-Methode. Das sieht nicht schick aus, und wird so normal auch nicht gemacht. Lagere die einzelnen Teile in sinnvollen Schritten in Methoden aus.

    2. Die static main() ist eigentlich nur dazu da, eine Instanz von dem Objekt zu erstellen, in der sie steht. Das heißt die komplette Funktionalität wird über Methoden des Objektes durchgeführt.

    3. Du hast viel redundanten Code drin und das Ding lässt sich schlecht erweitern. Wieder ein Grund die einzelnen Schritte in Methoden auszulagern.

    4. Du hast keine Kommentare drin. Lediglich die Standard-JavaDoc Kommentare, diese sagen aber auch nichts aus.

    Gruß
    BK
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

Ähnliche Themen

  1. Schiffe versenken - Problem
    Von Marimi im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 13.11.11, 14:26
  2. Schiffe versenken - Probleme
    Von Effa im Forum Java Grundlagen
    Antworten: 5
    Letzter Beitrag: 28.04.11, 15:54
  3. Schiffe versenken für Einsteiger?
    Von Marimi im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 14.11.10, 12:45
  4. Schiffe versenken
    Von Victim De Ace im Forum Java
    Antworten: 1
    Letzter Beitrag: 12.04.06, 18:21