# "Schiffe versenken" Spielfeld



## TDWP_ (5. Jun 2012)

hallo community,

ich bin neu hier im forum, aber hoffe auf eure hilfe, bin so langsam am verzweifeln...
ich bin ein schüler eines technischen gymnasiums mit schwerpunkt informationstechnik in der 12ten klasse und ich und meine gruppenmitglieder haben uns in der schule ausgesucht schiffe versenken als projekt in java zu programmieren.
funktional ist alles soweit fertig (hoffe ich zumindest), nur komme ich mit der ausgabe des spielfelds nicht zurecht.
benutzt habe ich für das spielfeld ein 3-dimensionales array aus ganzzahlen, die erste dimension steht für den spieler (pc oder spieler), die zweite für die x-koordinaten, die dritte für die y-koordinaten.
nur wenn ich das spielfeld wie unten ausgeben lasse, sind x-&y-achse vertauscht. (-> anhang bild : option oben wird auch nach rechts ausgegeben, ich nehme an deswegen...) 
kennt jemand eine lösung für das problem oder muss ich jetzt meine ganze struktur neu aufbauen ?


```
public void Spielfeldanzeigen()
  {
    int i,j;
    
    for (j=9; j>-1; j--)
    {
      for (i=0; i<10; i++)
      {
        if (dieSteuerung.Spielfeld[dieSteuerung.spieler][j][i] == 0 || dieSteuerung.Spielfeld[dieSteuerung.spieler][j][i] == 1)
        {
          if (dieSteuerung.Spielfeld[dieSteuerung.spieler][j][i] == 1)
          {
            System.out.print("[R ]");
          }
          else
          {
            System.out.print("[W ]");
          }
        }
        else
        {
          System.out.print("["+dieSteuerung.Spielfeld[dieSteuerung.spieler][j][i]+"]");
        }
      }
      System.out.println();
    }
    System.out.println("     [0 ][1 ][2 ][3 ][4 ][5 ][6 ][7 ][8 ][9 ]");
  }
```

( W steht für wasser, R steht für feldrahmen (beim setzen des schiffs wichtig), die 30 ist die zahl des schiffs zur identifizierung. hier habe ich ein 3er schiff gesetzt mit eben der identifizierungszahl 30 )

schonmal vielen dank für eure antworten !
grüße, tdwp_


----------



## SlaterB (5. Jun 2012)

x und y, im Code auch noch i und j, sind von Natur aus keiner Array-Dimension fest zugeordnet, 
ein richtig und falsch gibt es dabei nicht,

du könntest _[j] statt [j] im Code ausprobieren, vielleicht behebt das schon alle Probleme,
ansonsten nochmal grundlegend über Aufbau nachdenken und Schritt für Schritt erklären/ mit Code vergleichen usw._


----------



## TDWP_ (6. Jun 2012)

okay, ich habs hinbekommen, nachdem ich nen schreibtischtest gemacht hab, so wie die ausgabe aussehen sollte.
falls es jemanden interessiert :


```
public void Spielfeldanzeigen(boolean schiffesetzen )
  {
    int x,y;
    
    for (y=9; y>-1; y--)
    {
      System.out.print("[" + y + "]");
      for (x=0; x<10; x++)
      {
        if (dieSteuerung.pruefeFeld(x,y)==0 || dieSteuerung.pruefeFeld(x,y)==1)
        {
          if (dieSteuerung.pruefeFeld(x,y)==1)
          {
            System.out.print("[R ]");
          }
          else
          {
            System.out.print("[W ]");
          }
        }
        else
        {
           System.out.print("["+dieSteuerung.Spielfeld[dieSteuerung.spieler][x][y]+"]");
        }
      }
      System.out.println();
    }
    System.out.println("   [0 ][1 ][2 ][3 ][4 ][5 ][6 ][7 ][8 ][9 ]");
    System.out.println();
  }
```

dann kommt das raus :


----------

